OpenEdv-开源电子网

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

对于32的内存有点疑惑。。

[复制链接]

35

主题

73

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2018-4-10
在线时间
49 小时
发表于 2018-7-15 16:21:04 | 显示全部楼层 |阅读模式
1金钱
我们程序写的时候用到的堆栈大小空间是BLOCK0中的FLASH 划出来的吗?我们烧录的程序放在FLASH,那BLOCK1中的SRAM放什么?block2的片上外设就是我们代码使用外设的寄存器地址吧!,,,那CPU寄存器在那个位置???(这是在其他资料看到的)。。。。请大哥们解释下。。我好乱。。。。堆栈是那个划分出来的???
}A~XA5`I]MJ6DXMFE0YGNAY.png
_T2Q4J(}$}71EQA}8WI1NNI.png

最佳答案

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

1.堆栈在sram中,在stm32fxx_startup.s里面最下面__user_initial_stackheap汇编函数初始化的 2.正常情况下代码都在FLASH中的,不过通过配置,只要支持代码运行的空间如SRAM,SDRAM,FLASH,SQI-FLASH都可以 3.如果没有用到外部memory如SDRAM,PSRAM, 那么所有的全局变量,堆,栈都在SRAM中 4.外设的寄存器在片上外设区是对的,至于通用寄存器r0-r15则是在ARM的内核中的,这部分也叫Core Register, 不在上面所有区域(想了解的话 ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

401

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1770
金钱
1770
注册时间
2015-6-11
在线时间
313 小时
发表于 2018-7-15 16:21:05 | 显示全部楼层
1.堆栈在sram中,在stm32fxx_startup.s里面最下面__user_initial_stackheap汇编函数初始化的
2.正常情况下代码都在FLASH中的,不过通过配置,只要支持代码运行的空间如SRAM,SDRAM,FLASH,SQI-FLASH都可以
3.如果没有用到外部memory如SDRAM,PSRAM, 那么所有的全局变量,堆,栈都在SRAM中
4.外设的寄存器在片上外设区是对的,至于通用寄存器r0-r15则是在ARM的内核中的,这部分也叫Core Register, 不在上面所有区域(想了解的话可以去看Cortex-M3权威指南,如果想深入了解去下载ARM的内核用户手册)   
5.数据寄存器, 地址寄存器和移位寄存器,大概是51时的概念,在ARM里面所有的通用寄存器对于数据,地址以及移位指令都可以处理,并没有这个说法。
回复

使用道具 举报

35

主题

73

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2018-4-10
在线时间
49 小时
 楼主| 发表于 2018-7-15 16:25:53 | 显示全部楼层
还有一些数据寄存器,地址寄存器,移位寄存器等等乱七八糟的在哪里?
回复

使用道具 举报

31

主题

1955

帖子

3

精华

论坛元老

Rank: 8Rank: 8

积分
4524
金钱
4524
注册时间
2018-5-11
在线时间
947 小时
发表于 2018-7-15 17:01:52 | 显示全部楼层
本帖最后由 warship 于 2018-7-15 17:04 编辑

CPU核心的寄存器如R1-R15等是不提供地址的
有一部分如NVIC/SYSTICK等寄存器属于私有寄存器在E000 0000以上
堆栈当然默认是在SRAM区了,就是你说的BLOCK2

我的开源链接 https://github.com/ShuifaHe/STM32.git  请关注,点赞支持哦。
回复

使用道具 举报

35

主题

73

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2018-4-10
在线时间
49 小时
 楼主| 发表于 2018-7-16 01:51:08 | 显示全部楼层
zc123 发表于 2018-7-15 16:21
1.堆栈在sram中,在stm32fxx_startup.s里面最下面__user_initial_stackheap汇编函数初始化的
2.正常情况下 ...

爱你老哥。。。。。
回复

使用道具 举报

35

主题

73

帖子

0

精华

初级会员

Rank: 2

积分
88
金钱
88
注册时间
2018-4-10
在线时间
49 小时
 楼主| 发表于 2018-7-16 01:51:47 | 显示全部楼层
warship 发表于 2018-7-15 17:01
CPU核心的寄存器如R1-R15等是不提供地址的
有一部分如NVIC/SYSTICK等寄存器属于私有寄存器在E000 0000以上 ...

谢谢解答!!!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-15 18:08

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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