The types of internal memory of MSP430 are: program memory FLASH, data memory RAM, peripheral module registers, and special function registers. The memory of a typical microcomputer adopts the von Neumann structure, also known as the Princeton structure, that is, the memory for storing program instructions - program memory and the memory for storing data - data memory adopt a unified address coding structure. The address coding structure in which the program memory and the data memory are separated is called the Harvard structure, such as the MCS-51 series microprocessor. MSP430 adopts the von Neumann structure. Its arrangement is shown in Figure 1-1, and the total addressing space is 64K bytes. It should be noted that although MSP430 is a 16-bit microprocessor, its addressing space is still calculated in bytes. From 0 to 0xF are special function registers. A total of 16 bytes, including interrupt flag register 1 (IFG1), interrupt flag register 2 (IFG2), interrupt enable register 1 (IE1), interrupt enable register 2 (IE2), module enable register 1 (ME1), module enable register 2 (ME2). From 0x10 to 0x1FF are peripheral module registers. They include registers used by modules such as timers, AD converters, and external ports. From 0x200 is the data memory RAM. The size of the data memory varies in different models, but they all start from address 0x200 and expand to the high-end address. For example, the data memory capacity of MSP430F149 is 2KB, and its address range is 0x200 to 0x9FF. From 0x0C00 to 0x0FFF is BOOT ROOM. The content stored in it is a section of code masked in the chip when the chip is produced. This section of code is used to complete the BSL (bootstrap) function. After the confidentiality fuse of the chip is blown, the code in the chip can still be modified through the BSL method. From 0x1000 to 0x107F is a 128-byte FLASH memory, called information memory B. This memory segment is essentially no different from the FLASH memory that stores code at high addresses. It can also store code and execute it, but the length of this memory segment is smaller, only 128 bytes. It is mainly used to store some data that needs to be saved after power failure. Since it is a FLASH memory, it can be written in words or bytes, but the entire segment must be erased. From 0x1080 to 0x10FF is information memory A. The function is the same as that of information storage segment B. The program memory starts from 0xFFFF to expand to the low-end address. The capacity of the program memory in different models is different, but it all starts from 0xFFFF and expands downward. For example, the program memory capacity of MSP430F133 is 8KB, and its address range is 0xE000~0xFFFF; the capacity of MSP430F149 is 60KB, and its address range is 0x1100~0xFFFF. It should be noted that in the chip with a program memory capacity of 60KB, the program memory overlaps with the information memory A and B, extending 60KB from address 0xFFFF to the low-end address, and its address range is 0x1000~0xFFFF, while the address range of information memory A and B is 0x1000~0x10FF. The program memory is a flash memory, which is divided into several segments for management. It can be written by word or byte. It cannot be erased by word or byte when erasing. At least one segment is erased each time, and the length of each segment is 512 bytes. 0xFFE0~0xFFFF is part of the program memory, a total of 32 bytes. MSP430 stipulates that this segment of memory is used to store interrupt vectors for various interrupts. Since the program memory, information memory, and data memory are all uniformly addressed, the program can be executed in all three memories. The difference is that if the program is placed in the data memory, it will be lost after power failure, and it is easy to be rewritten during execution, so the program is generally not placed in the data memory for execution. Modifying the contents of the program memory must be done through an unlocking operation, otherwise it will cause a system reset. The storage structure of MSP430 ensures that the code obtained by programming in C language still has high execution efficiency. Therefore, unless there are high requirements for the program size and execution time, C language should be used to write the program.
The capacity of MSP430F149 is 59.75KB, not 60KB. The problem of overlap between program memory and information memory A and B exists in a microcontroller with a flash storage space of 60KB. The 59.75KB capacity cannot cover the information memory A and B.
Details
Published on 2020-2-10 23:04
The capacity of MSP430F149 is 59.75KB, not 60KB. The problem of overlap between program memory and information memory A and B exists in a microcontroller with a flash storage space of 60KB. The 59.75KB capacity cannot cover the information memory A and B.