[STM32MP1]

【STM32】SRAM启动

[复制链接]
188|10
手机看帖
扫描二维码
随时随地手机跟帖
慢醇|  楼主 | 2022-9-26 23:25 | 显示全部楼层 |阅读模式
创建工程的调试版本

该操作调试版本会复制原工程的配置


109736331c46f305bd.png


使用特权

评论回复
慢醇|  楼主 | 2022-9-26 23:28 | 显示全部楼层
修改FLASH的目标配置
用的是STM32F103C8T6
RAM起始地址为是0x2000 0000大小为20KB,
这里用12KB大小的RAM作为虚拟ROM,用8KB的RAM作为RAM
虚拟ROM起始地址0x2000 0000大小0x3000
RAM起始地址0x2000 3000大小0x2000

使用特权

评论回复
慢醇|  楼主 | 2022-9-26 23:30 | 显示全部楼层
13886331c59963863.png

使用特权

评论回复
慢醇|  楼主 | 2022-9-26 23:41 | 显示全部楼层
配置分散加载文件
keil STM32中sct 分散加载文件学习
478906331c5d76e9c7.png

使用特权

评论回复
慢醇|  楼主 | 2022-9-26 23:53 | 显示全部楼层
注意要与FLASH下的目标配置一致
虚拟ROM起始地址0x2000 0000大小0x3000
RAM起始地址0x2000 3000大小0x2000

使用特权

评论回复
慢醇|  楼主 | 2022-9-26 23:54 | 显示全部楼层
; *************************************************************
; *** Scatter-Loading Description File generated by uVision ***
; *************************************************************

LR_IROM1 0x20000000 0x00003000  {    ; load region size_region
  ER_IROM1 0x20000000 0x00003000  {  ; load address = execution address
   *.o (RESET, +First)
   *(InRoot$$Sections)
   .ANY (+RO)
   .ANY (+XO)
  }
  RW_IRAM1 0x20003000 0x00002000  {  ; RW data
   .ANY (+RW +ZI)
  }
}

使用特权

评论回复
慢醇|  楼主 | 2022-9-26 23:54 | 显示全部楼层
配置中断向量表
编译选项中加入宏 VECT_TAB_SRAM ,在“Options for Target-> c/c+±>Define”框中输入宏VECT_TAB_SRAM ,注意它与其它宏之间要使用英文逗号分隔开。配置完成后重新编译工程,即可生成存储到 SRAM 空间地址的代码指令。

使用特权

评论回复
慢醇|  楼主 | 2022-9-26 23:55 | 显示全部楼层
515576331cb80880c1.png

使用特权

评论回复
慢醇|  楼主 | 2022-9-26 23:57 | 显示全部楼层
修改 FLASH 下载配置
232656331cbf058655.png
Download Function中的擦除选项配置为Do not Erase
这是因为数据写入到内部SRAM 中不需要像 FLASH 那样先擦除后写入。在本工程中,如果我们不选择“Do not Erase”的话,会因为擦除过程导致下载出错。

RAM for Algorithm指“编程算法” (Programming Algorithm) 可使用的 RAM 空间

虚拟ROM地址与大小,与上面目标配置一致

使用特权

评论回复
慢醇|  楼主 | 2022-9-26 23:58 | 显示全部楼层
仿真器配置
需要勾选Verify Code Download及Download to FLASH选项,也就是说点击调试按钮后,本工程的程序会被下载到内部 SRAM 中,只有勾选了这两个选项才能正常仿真
269276331cc325935d.png

使用特权

评论回复
慢醇|  楼主 | 2022-9-26 23:59 | 显示全部楼层
BOOT配置
653906331cc636de7e.png

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

104

主题

1144

帖子

3

粉丝