关于程序是怎样在STM32里运行的,有点困惑。

2019-10-15 07:38发布

用习惯了集成开发环境,有很多基本的问题没有搞明白,现请教大家。
STM32里有ROM和RAM,ROM就是flash,我们的程序就是下载到里面了,但是执行启动STM32的时候,需要搬运ROM里的数据变量到RAM里。
(1) 是不是我们定义的数据变量(全局变量和局部变量)的大小不能超过ram?
(2)执行程序的过程:cpu从rom里取出指令,去操作ram里的数据,然后再存到ram里。这样理解不知恰当否?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
22条回答
chenweigang
1楼-- · 2019-10-16 09:16
回复【楼主位】科科1987:
---------------------------------
执行启动STM32的时候,需要搬运ROM里的数据变量到RAM里?如果有nor flash的话,是不是就不需要RAM了
shihantu
2楼-- · 2019-10-16 11:15
回复【8楼】chenweigang:
---------------------------------
1.是.
2.NOR_FLASH只是实现了内存总线,但擦写寿命有限,不能完全替代RAM.
chenweigang
3楼-- · 2019-10-16 13:51
回复【9楼】shihantu:
---------------------------------
在stm32的启动代码里有实现ROM的数据变量搬到RAM?
shihantu
4楼-- · 2019-10-16 18:03
当然了,难道直接对FLASH操作啊..for一个16位循环就超标了.
chenweigang
5楼-- · 2019-10-16 23:56
回复【11楼】shihantu:
---------------------------------
内部FLASH应该和RAM读写方式一样的吧?STM32启动代码能贴出来吗在哪里
shihantu
6楼-- · 2019-10-17 04:20
https://www.google.com/#hl=en&gs_rn=12&gs_ri=psy-ab&tok=h3a0X39WjcsARwCrYUhYEA&cp=21&gs_id=3&xhr=t&q=%E5%86%85%E9%83%A8FLASH%E5%BA%94%E8%AF%A5%E5%92%8CRAM%E8%AF%BB%E5%86%99%E6%96%B9%E5%BC%8F%E4%B8%80%E6%A0%B7%E7%9A%84%E5%90%A7&es_nrs=true&pf=p&newwindow=1&output=search&sclient=psy-ab&oq=%E5%86%85%E9%83%A8FLASH%E5%BA%94%E8%AF%A5%E5%92%8CRAM%E8%AF%BB%E5%86%99%E6%96%B9%E5%BC%8F%E4%B8%80%E6%A0%B7%E7%9A%84%E5%90%A7&gs_l=&pbx=1&bav=on.2,or.r_qf.&bvm=bv.46340616,d.aGc&fp=1e04ab1166102392&biw=1292&bih=652

关于启动代码,随便下载一个程序,然后汇编跟踪就可以了.本身是不开源,我也没有.

一周热门 更多>