ZHCAEX1 January 2025 MSPM0G1518 , MSPM0G1519 , MSPM0G3518 , MSPM0G3519 , MSPM0L1227 , MSPM0L1228 , MSPM0L2227 , MSPM0L2228
在此过程中,唯一需要做的是在链接器文件中配置闪存存储器的布局。这样做是为了避免在同一存储体内,应用代码和客户安全代码重叠。请注意,根据客户安全代码政策,两个存储体上的应用代码必须从同一地址开始。以下示例展示了如何为应用代码配置链接器文件。
-uinterruptVectors
--stack_size=256
--define=_CSC_SIZE_=(6*1024)
/* Note: SRAM is partitioned into two separate sections SRAM_BANK0 and SRAM_BANK1
* to account for SRAM_BANK1 being wiped out upon the device entering any low-power
* mode stronger than SLEEP. Thus, this is up to the end-user to enable SRAM_BANK1 for
* applications where the memory is considered lost outside of RUN and SLEEP Modes.
*/
MEMORY
{
FLASH_APP (RX) : origin = _CSC_SIZE_, length = (0x00040000 - _CSC_SIZE_)
SRAM_BANK0 (RWX) : origin = 0x20200000, length = 0x00010000
SRAM_BANK1 (RWX) : origin = 0x20210000, length = 0x00010000
DATA (R) : origin = 0x41D00000, length = 0x00004000
}
SECTIONS
{
.intvecs: > _CSC_SIZE_
.text : palign(8) {} > FLASH_APP
.const : palign(8) {} > FLASH_APP
.cinit : palign(8) {} > FLASH_APP
.pinit : palign(8) {} > FLASH_APP
.rodata : palign(8) {} > FLASH_APP
.ARM.exidx : palign(8) {} > FLASH_APP
.init_array : palign(8) {} > FLASH_APP
.binit : palign(8) {} > FLASH_APP
.TI.ramfunc : load = FLASH_APP, palign(8), run=SRAM_BANK0, table(BINIT)
.vtable : > SRAM_BANK0
.args : > SRAM_BANK0
.data : > SRAM_BANK0
.bss : > SRAM_BANK0
.sysmem : > SRAM_BANK0
.TrimTable : > SRAM_BANK0
.stack : > SRAM_BANK0 (HIGH)
.DataBank : {} > DATA
}
客户可以根据项目要求在应用代码项目中添加其他功能。当应用代码项目准备好进行编程时,请记得更改 IDE 或编程器中的擦除方法,因为该应用项目不包含 NONMAIN 配置。TI 建议使用“仅擦除 MAIN 存储器”功能。
图 3-3 仅擦除 MAIN 存储器