OpenEdv-开源电子网

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

对于FLASH读写中地址位数的疑问

[复制链接]

21

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
171
金钱
171
注册时间
2014-3-12
在线时间
3 小时
发表于 2014-5-7 09:06:44 | 显示全部楼层 |阅读模式
5金钱

我想问下大家  在写入FLASH时,每个地址最多能输入多少位 ,按理来说STM32是32位单片机,每个地址可以存放32位即是4个字节(我本来是这样理解的)

也就是理解成,起始地址0x0800 0000    这个地址能存4个字节   然后0x0800 0001  这个字节也能存4个字节。


但我后来软件仿真时打开memery后发现是这样的


那这样理解的话应该是     地址0x0800 0000   存放的是0x90         地址0x0800 0001存放的是0x0A    每个地址还是存放1个字节  而不是32位4个字节

莫非它是这样操作的,每次读写的时候它是一次性读写4个地址,也就是一次读写就取地址 0x0800 0000---0x0800 0003    这样就一次性读写4个字节32位了

不知我这样理解对不对。


另外我还想问个软件仿真的问题  如果我随便定义了一个U32字符  比如 U32 kk 然后在main函数中给它赋值  那我怎样软件仿真时我如何能查看到 这个KK是存放在

FLASH中哪个地址,我的单片机是M103RB  mini板的  FLASH 128K  如果从地址0x0800 0000算起应该是到第31页地址0x0800 FFFF 结束  这当中应该存放在哪里不清楚。

原子大师能帮我解读下吗,下图是仿真图,希望能有效说下如何操作,谢谢!


最佳答案

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

每个地址都是存储一个字节的. 单片机一般都以字节为单位进行管理,这样方便处理. 至于你说的U32 kk; 是局部变量吧?是的话,该变量是放到堆栈里面的了.这个地址具有不确定性. 你可以采用: printf("kk's addr:%x",&kk); 这种方法,来打印出kk的地址.从而查看到kk的地址.
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-7 09:06:45 | 显示全部楼层
每个地址都是存储一个字节的.
单片机一般都以字节为单位进行管理,这样方便处理.
至于你说的U32 kk; 是局部变量吧?是的话,该变量是放到堆栈里面的了.这个地址具有不确定性.
你可以采用:
printf("kk's addr:%x",&kk);
这种方法,来打印出kk的地址.从而查看到kk的地址.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-5-7 12:44:40 | 显示全部楼层
具体可以看下ST官方的资料,你第一个图片的理解是这样的,其实你还可以参考一下库函数操作内部FLASH的代码,这样你就明白了
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

21

主题

51

帖子

0

精华

初级会员

Rank: 2

积分
171
金钱
171
注册时间
2014-3-12
在线时间
3 小时
 楼主| 发表于 2014-5-7 20:14:23 | 显示全部楼层
回复【2楼】Badu_Space:
---------------------------------
真的是这样诶,回过头再细看了下代码,基本看懂了,完全符合,过去对32位单片机的理解完全被颠覆了,感谢原子。。。!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-7 21:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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