http://www.keil.com/support/man/docs/armlink/armlink_pge1362075650322.htm

keil如何生成scatter文件

keil支持图形化配置和自定义scatter文件两种方式

使用图形工具配置

image.png
image.png
生成的scatter文件如下:

  1. ; *************************************************************
  2. ; *** Scatter-Loading Description File generated by uVision ***
  3. ; *************************************************************
  4. LR_IROM1 0x00010000 0x00040000 { ; load region size_region
  5. ER_IROM1 0x00010000 0x00040000 { ; load address = execution address
  6. *.o (RESET, +First)
  7. *(InRoot$$Sections)
  8. .ANY (+RO)
  9. .ANY (+XO)
  10. }
  11. RW_IRAM1 0x20000000 0x00010000 { ; RW data
  12. .ANY (+RW +ZI)
  13. }
  14. }

选择自定义scatter文件

image.png

keil烧写选项

image.png
Eraser Full Chip 代表烧写前擦除整个Flash芯片区域,尝试修改了Address Range没有效果,还是会擦除整个区域
Eraser Sectors 代表烧写前仅擦除编译后实际代码大小所代表的扇区,注意,经验证不是target中指定的扇区,进擦除代码区所代表的扇区。
image.png
target中指定代码的范围是0-0x10000(64K),其中60K-63K处用于存放持久化参数,但是验证每次重新烧写并不会擦除该区域。

MSP432远程升级方案

方案一:使用BSL

测试未成功

  1. ((void (*)())BSP_BSL_ENTRY_FUNCTION)((uint32_t)BSP_BSL_PARAM) ;

使用手册上推荐的 上述语句之后 程序跑飞,不确定是否进入了BSL,串口发送0xFF,并没有收到预期的0x00响应

方案二:依据Memory Map从flash中划分一个空白区域出来,作为升级程序

step1: 验证scatter文件,是否能将代码下载到flash的指定位置
step2: 添加flash操作函数