http://www.keil.com/support/man/docs/armlink/armlink_pge1362075650322.htm
keil如何生成scatter文件
使用图形工具配置
生成的scatter文件如下:
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************
LR_IROM1 0x00010000 0x00040000 { ; load region size_region
ER_IROM1 0x00010000 0x00040000 { ; load address = execution address
*.o (RESET, +First)
*(InRoot$$Sections)
.ANY (+RO)
.ANY (+XO)
}
RW_IRAM1 0x20000000 0x00010000 { ; RW data
.ANY (+RW +ZI)
}
}
选择自定义scatter文件
keil烧写选项
Eraser Full Chip 代表烧写前擦除整个Flash芯片区域,尝试修改了Address Range没有效果,还是会擦除整个区域
Eraser Sectors 代表烧写前仅擦除编译后实际代码大小所代表的扇区,注意,经验证不是target中指定的扇区,进擦除代码区所代表的扇区。
target中指定代码的范围是0-0x10000(64K),其中60K-63K处用于存放持久化参数,但是验证每次重新烧写并不会擦除该区域。
MSP432远程升级方案
方案一:使用BSL
测试未成功
((void (*)())BSP_BSL_ENTRY_FUNCTION)((uint32_t)BSP_BSL_PARAM) ;
使用手册上推荐的 上述语句之后 程序跑飞,不确定是否进入了BSL,串口发送0xFF,并没有收到预期的0x00响应
方案二:依据Memory Map从flash中划分一个空白区域出来,作为升级程序
step1: 验证scatter文件,是否能将代码下载到flash的指定位置
step2: 添加flash操作函数