你的浏览器版本过低,可能导致网站不能正常访问!为了你能正常使用网站功能,请使用这些浏览器。
举报
查看全部评分
toofree 发表于 2018-7-24 10:50 给你传个“涂鸦”的程序参考一下
xiajintaord 发表于 2018-7-24 09:23 第二张图,你框选出来的地方,有个解释: 一般来说,这个工程的代码是 APP 代码,下载进去之后,起始地址 ...
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楼,解答一下
0x801_0000开始的位置放用户的应用程序。
这样解释可以吗?
评分
查看全部评分
评分
查看全部评分
评分
查看全部评分