|
本帖最后由 wwwheihei 于 2018-7-13 11:13 编辑 图中的rom1 和rom2还有ram1和 ram2的设置,我现在了解到的是做iap的时候会设置一下,具体到底每个选项是什么意思有哪个大神可以指导一下? QQ截图20180713105852.png (16.66 KB, 下载次数: 0) ![]()
tt20180713110450.png (25.66 KB, 下载次数: 0) ![]() |
微信公众号
手机版
bootloader中ROM、RAM设置
bootloader判断是否有正确的应用程序。如果有,则跳转到相应首地址执行。
地址到底是多少呢?两项加一下,也就是0x0800 2000。
APP中ROM、RAM设置,可见ROM首地址为0x0800 2000
评分
查看全部评分
第二张图,你框选出来的地方,有个解释:
一般来说,这个工程的代码是 APP 代码,下载进去之后,起始地址在 0x8010000
如果你有 bootloader 的话,可以将 bootloader 工程在图中同样的位置设置为 0x8000000 size:0x10000
这样 MCU 上电之后,先从 0x8000000 启动,执行 bootloader 程序, bootloader 程序中再跳转到 APP 程序地址(0x8010000)去执行
而 bootloader 程序一般用于 IAP,这么想应该明白了。
评分
查看全部评分
评分
查看全部评分
不过,我感觉自己没注意去该写过,貌似,在KEIL创建工程选择芯片型号的时候就自动写好了?
感觉内核一样的,ROM和RAM的地址都差不多,就看外扩了,比如:写51单片机,你建工程的时候,随便选一个C51内核(配置一样),就都可以Bulid.<.<
萌新认识,有错请教。
评分
查看全部评分
对于可以互相iap的程序,两个工程的ROM和RAM设置不能冲突。
但是上电启动的地址是固定的,对于STM32内部Flash来说,上电必须从0x0800 0000地址启动。
一般普通的IAP程序,在bootloader程序中,从0x0800 0000地址启动。执行完bootloader后,将程序跳转,并交给应用程序app执行。
图1是正常keil配置,图2是我从一个技术文章里面看到上图的配置,地址如下:http://mp.weixin.qq.com/s/51wiRaDD8_x3C9bGqnmayA
他是把程序放到0x8010000,之后,前面是用来存储参数数据的,也就是说他只是把程序挪到后面,因为f4的flash分布不均,后面都是64k一个扇区,或者128k一个扇区。但是我不动为什么这么去配。为什么要给rom1后面starup打钩?
我是从一个文章里看到的,地址如下:http://mp.weixin.qq.com/s/51wiRaDD8_x3C9bGqnmayA,里面的理解和你说的不一样
看8楼和9楼,解答一下