最近开端学习STM32,芯片STMF103VCT6 编译东西 keil 4.14(评价板)。起初是改写买板子送的例程,下载程序到FLASH,看看现象。虽然FLASH能够下载万次,但看到人家说这样简单损害FLASH。datasheet中提到STM32有三种发动方法,能够在芯片上的SRAM中调试程序。但搞来搞去一直不能理解。
今日我总算搞成了,我以GPIO跑马灯的程序来测验的。首先把程序下载到FLASH,然后改动发动方法。把本来的GPIO跑马灯程序少做修正,在SRAM中调试。最终又把发动方法改回到从FLASH发动,看到板子上的现象和本来下载到FLASH的相同。阐明我在SRAM中调试成功了。
下面来说说我是怎样装备的,当然这其间也参阅了网上收集的许多内容,在这感谢互联网。
STMF103VCT6有内部48K 的SRAM。SRAM的开始地址为0x20000000 到 0x2000c000 。在keil工程选项中设置如下图:

在上面这个图片中留意 IROM1 和 IRAM1 后边的地址就按图中的填写就行,这儿我把SRAM均分两份,一份为虚拟FLASH,一份为SRAM。一起别忘了,前面的复选框打勾。
关于输出的list 和obj 文件放在哪里,信任许多人都会,在就不糟蹋我们的时刻了。接着在debug中做如下设置如图。

仿真器就挑选你自己的就行了,下面有两个复选框必定要选上,Load Application at Startup 和 Run to main()。别的下面还要增加一个文件RAM.ini 在这我给出源码:
SP = _RDWORD(0x20000000);// Setup Stack Pointer
PC = _RDWORD(0x20000004);// Setup Program Counter
_WDWORD(0xE000ED08, 0x20000000);// Setup Vector Table Offset Register
把这个文件增加到你工程的根目录下,以便利查找。
接着在Utilities中Setting选项中挑选你的芯片,并更改RAM 和 FLASH 的地址。

再者便是编写你的主程序,编译 调试了。可是记住一点,必定不关键FLASH下的Download 。
最终别忘了,改动发动方法。
到此为止,设置现已完结。
把程序的CODE 区界说到0x20000000 为开始,巨细为 0xa000,也便是40K 了,然后RAM 区则界说到0x2000a000为开始,巨细为0x2000,即8K
STM32f103VC的RAM开始地址为0x20000000,48k,flash的开始地址为0x4002 2000,256k
声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/ceping/baogao/256020.html