你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

对于keil target界面的设置,一直以来都没有真正弄懂过!

[复制链接]
ssssss 提问时间:2018-7-13 11:10 /
本帖最后由 wwwheihei 于 2018-7-13 11:13 编辑


图中的rom1 和rom2还有ram1和 ram2的设置,我现在了解到的是做iap的时候会设置一下,具体到底每个选项是什么意思有哪个大神可以指导一下?
QQ截图20180713105852.png (16.66 KB, 下载次数: 0)





还有人这么设置,我知道他想移动代码存储位置,但是具体为什么这么设置,很模糊
tt20180713110450.png (25.66 KB, 下载次数: 0)






收藏 2 评论14 发布时间:2018-7-13 11:10

举报

14个回答
七哥 回答时间:2018-7-24 10:50:43
给你传个“涂鸦”的程序参考一下
1476783391-tuya_air_purifier_demo_stm32_v3.0.1.zip (1.41 MB, 下载次数: 42)

评分

参与人数 1蝴蝶豆 +5 收起 理由
zero99 + 5

查看全部评分

ssssss 回答时间:2018-7-16 08:28:56
谁懂啊
xiajintaord 回答时间:2018-7-24 09:23:19

第二张图,你框选出来的地方,有个解释:
一般来说,这个工程的代码是 APP 代码,下载进去之后,起始地址在 0x8010000
如果你有 bootloader 的话,可以将 bootloader 工程在图中同样的位置设置为 0x8000000 size:0x10000


这样 MCU 上电之后,先从 0x8000000 启动,执行 bootloader 程序, bootloader 程序中再跳转到 APP 程序地址(0x8010000)去执行

而 bootloader 程序一般用于 IAP,这么想应该明白了。

评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

jakecumt 回答时间:2018-7-24 09:40:09
不同的芯片启动地址不一样,这个根据每个芯片的数据手册写的,还有一些外扩的,不能只看一个软件,要根据数据手册里面每个芯片的其实地址来写,

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

xiaolingoei 回答时间:2018-7-24 10:13:48
这个是根据你这个芯片内核具体的ROM和RAM的地址来写的,一般指启动地址。
不过,我感觉自己没注意去该写过,貌似,在KEIL创建工程选择芯片型号的时候就自动写好了?
感觉内核一样的,ROM和RAM的地址都差不多,就看外扩了,比如:写51单片机,你建工程的时候,随便选一个C51内核(配置一样),就都可以Bulid.<.<
萌新认识,有错请教。

评分

参与人数 1蝴蝶豆 +4 收起 理由
zero99 + 4

查看全部评分

七哥 回答时间:2018-7-24 10:27:29
IAP可以有两个工程,一个是bootloader、一个是应用工程app。在app中同样也可以进行bootloader,同样可以IAP,只要程序写得足够好。

对于可以互相iap的程序,两个工程的ROM和RAM设置不能冲突。
但是上电启动的地址是固定的,对于STM32内部Flash来说,上电必须从0x0800 0000地址启动。

一般普通的IAP程序,在bootloader程序中,从0x0800 0000地址启动。执行完bootloader后,将程序跳转,并交给应用程序app执行。
ssssss 回答时间:2018-7-24 11:29:32
本帖最后由 wwwheihei 于 2018-7-24 11:33 编辑
toofree 发表于 2018-7-24 10:50
给你传个“涂鸦”的程序参考一下

图1是正常keil配置,图2是我从一个技术文章里面看到上图的配置,地址如下:http://mp.weixin.qq.com/s/51wiRaDD8_x3C9bGqnmayA
他是把程序放到0x8010000,之后,前面是用来存储参数数据的,也就是说他只是把程序挪到后面,因为f4的flash分布不均,后面都是64k一个扇区,或者128k一个扇区。但是我不动为什么这么去配。为什么要给rom1后面starup打钩?
5ec8bd6ca8412409dc96a03411b6f405_110505zwwr4t9r4qxu7rr4.png
ssssss 回答时间:2018-7-24 11:37:16
toofree 发表于 2018-7-24 10:50
给你传个“涂鸦”的程序参考一下

我是从一个文章里看到的,地址如下:http://mp.weixin.qq.com/s/51wiRaDD8_x3C9bGqnmayA,里面的理解和你说的不一样
ssssss 回答时间:2018-7-24 15:11:35
xiajintaord 发表于 2018-7-24 09:23
第二张图,你框选出来的地方,有个解释:
一般来说,这个工程的代码是 APP 代码,下载进去之后,起始地址 ...

看8楼和9楼,解答一下
zhao.zhao 回答时间:2018-7-25 09:36:46
0x800_0000开始的位置放启动程序,另外的一个Project编译出来的,用于判断是否有升级程序,没有就跳转到0x801_0000 执行用户的应用程序,有则进行升级;
0x801_0000开始的位置放用户的应用程序。
这样解释可以吗?

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

huangyanga 回答时间:2018-7-25 10:27:04
楼主那个链接很赞,学习了。一开始对“内部FLASH编程”不是很明白,后来想明白了,就是程序里面用flash做数据存储的意思。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

zzzzzx 回答时间:2018-7-25 11:58:57
第二章图也不是IAP工程配置的方式,按照第二章图的配置方式编译的话,除了向量表和编译系统自己的代码段被分配在第一段地址,用户的应用代码都是从第二段地址开始分配的,可能中间这一段地址0x8004000~0x8010000被用来存储一些参数数据吧,我一般会把参数数据留在flash的最后区域

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

天誓情缘 回答时间:2018-9-2 23:50:14
厉害厉害,学习了
生逝如花草 回答时间:2023-2-3 13:10:50
豁然开朗,学习了

所属标签

相似问题

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新和工艺
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版