OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7431|回复: 8

stm32上电后,是将代码从flash中提取到ram上来执行么

[复制链接]

8

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2017-2-20
在线时间
9 小时
发表于 2017-8-8 21:32:29 | 显示全部楼层 |阅读模式
1金钱
新手,有以下几个问题请教:
1.stm32上电后,是将代码从flash中提取到ram上来执行么?
以stm32f407为例,他的flash是1024KB,而ram是192KB,那么如果程序较大,是不是必须外扩ram来实现程序读取呢?


2. 由于我的板子面积小,希望使用stm32上的flash作为数据存储,那么我在alientek的例程上看到:
执行闪存写操作时,任何对闪存的读操作都会锁住总线,在写操作完成后读操作才能正
确地进行;既在进行写或擦除操作时,不能进行代码或数据的读取操作
是不是意味着,在进行flash写操作的时候,不能读取程序中的常数呢?


谢谢!

最佳答案

查看完整内容[请看2#楼]

单片机不是冯诺依曼结构,我记得好像是哈佛结构吧。直接从flash取指令到CPU去运行的,不会先取出来存在RAM再送给CPU。 不过STM32支持调试的时候将代码下载到SRAM去,然后运行SRAM中的程序,这时候就要考虑SRAM够不够用的问题了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

17

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
490
金钱
490
注册时间
2016-1-3
在线时间
66 小时
发表于 2017-8-8 21:32:30 | 显示全部楼层
单片机不是冯诺依曼结构,我记得好像是哈佛结构吧。直接从flash取指令到CPU去运行的,不会先取出来存在RAM再送给CPU。
不过STM32支持调试的时候将代码下载到SRAM去,然后运行SRAM中的程序,这时候就要考虑SRAM够不够用的问题了
回复

使用道具 举报

8

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2017-2-20
在线时间
9 小时
 楼主| 发表于 2017-8-8 21:40:01 | 显示全部楼层
在网上看了一些资料后,我就迷惑了
有人说程序是可以在flash 中运行的,但是alientek的例程39,将stm32的flash当成存储数据来用,
那么执行代码的时候,不就要访问flash么?这岂不和:
执行闪存写操作时,任何对闪存的读操作都会锁住总线,在写操作完成后读操作才能正
确地进行;既在进行写或擦除操作时,不能进行代码或数据的读取操作

上面这段话冲突了么?
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-8-8 21:59:54 | 显示全部楼层
感觉你是完全不了解什么是单片机.STM32这种高级单片机.是支持RAM运行程序.也可以FLASH运行程序.也可以片外RAM运行程序的.一般大家都喜欢 从FLASH运行程序的.通过BOOT0,BOOT1引脚来配置.
回复

使用道具 举报

0

主题

28

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1013
金钱
1013
注册时间
2017-8-8
在线时间
67 小时
发表于 2017-8-9 11:21:12 | 显示全部楼层
楼上大神已正解!
回复

使用道具 举报

41

主题

113

帖子

0

精华

高级会员

Rank: 4

积分
626
金钱
626
注册时间
2016-12-16
在线时间
222 小时
发表于 2017-8-9 17:45:15 | 显示全部楼层
请认真研究BOOTLOAD汇编语言部分,你就会豁然开朗。
https://shop298719590.taobao.com/
回复

使用道具 举报

8

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2017-2-20
在线时间
9 小时
 楼主| 发表于 2017-8-23 15:46:40 | 显示全部楼层
请教有没有相关的书籍能够给在下扫扫盲?
单片机小白一个。
还有,BOOTLOAD在哪里找?
回复

使用道具 举报

5

主题

32

帖子

0

精华

初级会员

Rank: 2

积分
109
金钱
109
注册时间
2016-10-19
在线时间
13 小时
发表于 2017-8-23 21:55:34 | 显示全部楼层
qd0090 发表于 2017-8-23 15:46
请教有没有相关的书籍能够给在下扫扫盲?
单片机小白一个。
还有,BOOTLOAD在哪里找?

这篇文章或许对你有启发
http://www.eeworld.com.cn/mcu/article_2016052726601.html
回复

使用道具 举报

11

主题

61

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
202
金钱
202
注册时间
2015-11-19
在线时间
31 小时
发表于 2017-8-24 11:58:18 | 显示全部楼层
1.部分STM32支持写时读功能,即在写flash的时候可以读取flash
2.部分STM32有高速缓存了,可以预先从flash读取一部分指令

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-18 05:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表