In-system programmable Flash program memory
ATmega168 has 16K bytes of in-system programmable Flash for storing program instruction code. Because all AVR instructions are 16 or 32 bits, the Flash is organized into 8K x 16. For ATmega168, the security of user programs should be considered separately based on the two areas of Flash program memory: the boot program area and the application program area. There is no boot program area and application program area in ATmega48, and SPM instructions can be executed in the entire Flash. For details, see P235 "Stored Program Memory (SPM) Control and Status Register - SPMCSR" and P243 SPMEN section description. .
Flash memory can be erased and written at least 10,000 times. The ATmega168 has a 12-bit program counter (PC), so it can address 8K of program memory. P234 "Flash Self-Programming, ATmega48" and P240 "Boot Loader Support RWW Self-Programming, ATmega168". P254 "Memory Programming" details the serial download of Flash data using the SPI pin interface.
Constants can be stored in the entire program memory address space (refer to the description of the LPM load program memory instruction). For the instruction fetch and execution timing diagram, please refer to P11 "Instruction Execution Timing".
The following are the program memory image diagrams of ATmega48, ATmega88, and ATmega168 respectively.
Previous article:ATmega168 SRAM data memory
Next article:ATmega168 reset and interrupt handling
- Popular Resources
- Popular amplifiers
- Learn ARM development(16)
- Learn ARM development(17)
- Learn ARM development(18)
- Embedded system debugging simulation tool
- A small question that has been bothering me recently has finally been solved~~
- Learn ARM development (1)
- Learn ARM development (2)
- Learn ARM development (4)
- Learn ARM development (6)
Professor at Beihang University, dedicated to promoting microcontrollers and embedded systems for over 20 years.
- LED chemical incompatibility test to see which chemicals LEDs can be used with
- Application of ARM9 hardware coprocessor on WinCE embedded motherboard
- What are the key points for selecting rotor flowmeter?
- LM317 high power charger circuit
- A brief analysis of Embest's application and development of embedded medical devices
- Single-phase RC protection circuit
- stm32 PVD programmable voltage monitor
- Introduction and measurement of edge trigger and level trigger of 51 single chip microcomputer
- Improved design of Linux system software shell protection technology
- What to do if the ABB robot protection device stops
- Detailed explanation of intelligent car body perception system
- How to solve the problem that the servo drive is not enabled
- Why does the servo drive not power on?
- What point should I connect to when the servo is turned on?
- How to turn on the internal enable of Panasonic servo drive?
- What is the rigidity setting of Panasonic servo drive?
- How to change the inertia ratio of Panasonic servo drive
- What is the inertia ratio of the servo motor?
- Is it better for the motor to have a large or small moment of inertia?
- What is the difference between low inertia and high inertia of servo motors?
- GitHub stores open source code repositories in Arctic caves
- Has anyone done OTA online upgrade for RL78?
- Millimeter wave radar IWR1443
- mpy starts supporting USB for STM32L432
- There are 20 prizes left to be drawn: Watch the video "Avoiding Common AC-DC Design Pitfalls" and win a prize
- What should electronics beginners learn? What are the topics worth learning? And in what order should they learn them?
- Use STVP to encrypt and remove write protection for STM8
- What is interval timer mode?
- The third stage of automatic wiring results in the realization of full-scale or partial automatic copper plating
- Power supply dynamic response test, what kind of waveform is qualified?