STM32在Keil MDK环境下RAM上代码调试
刚在STM32F103ZE-EK上进行了一个例程的调试~就发现原来更有方法在RAM中进行代码调试的配置~以前在IAR中知道有个iar- cfg.icf文件是关于存储分配的~貌似也可以如此~不过没实际操作过不敢下结论~索性就在Keil下来了个尝试~比较坎坷~也学到不少东西~
本文引用地址:https://www.eepw.com.cn/article/201611/322723.htm废话少说,进入正题~(Keil4下的画面~这个配置的方法跟是3一样~)
步骤与图示:
1.先给个CPU的数据,需要注意的是三个红圈的地方,架构,型号,Flash和SRAM大小~如图1
图1
2.Target的设置
1)勾上可以用微库,减小生成代码的大小
2,3)分别定义ROM区位置及大小和RAM区位置和大小。在这里需要说明的是,Cortex-M3的架构有4G的寻址空间,而Flash的起始地址在0x08000000,RAM地址在0x20000000,在这里进行了第一次相关地址的更改~如图2
0x1000为4K~这里的0xc000则为48K的ROM分配~RAM的为16K~基本上移植个uCOS-II都够用了~
图2
3.Output的设置
强调一下Name of Executable吧~这里默认的应该是project的名字,我习惯改成output~而且这与编译后产生的*.axf和*.sct文件名字都有关联~没勾选HEX~感觉选了也没用~写到SRAM中的是。。。见图3
图3
4.Listing Label~没啥说的~不上图了~默认~
5.User Label~更没啥说的~同上~
6.C/C++ Label~貌似都没啥说的我后面就不用写了~再同上。。。。~
7.真想罢手了~无语的Asm Label~
8.好啦~来活了~Linker Label
最上边打上勾~是这效果~不打勾~就反白了~然后呢~呵呵~慢慢说来~
先说说打勾的时候,如图4~非人为操作~你什么都不用管了~(很多人会发现~新建的项目~刚开始的时候下面的Scatter File后的内容是空的~当你把这勾去掉后会自动出现~然后随你勾与不勾~就都是存在的了~不过此时还只是个影子~没有实际的文件~什么时候出现这个文件呢~法一:自然你可以自己写~呵呵~法二:在出现影子后打上勾编译一次,此文件就产生了~在output的文件夹里~马上后文还会有对此文件内容的介绍~)
图4
再说说不打勾的时候会反白一些内容~如图5,需要修改两个地方~

图5
再来看看~output.sct文件内容~如图6~6行内容是ROM的地址和大小~11行事RAM的地址和大小~很是一目了然吧~内容根据Target自动生成的~不需要手动修改~
评论