程序启动地址0x80000000

  1. 一般用的板子是32位的,那么可寻址范围也就是4GB,即芯片可以访问这4GB地址,那么这些地址就可以对应到芯片的寄存器上,按照惯例,通常CPU对DDR(外部ram)的寄存器定义为0x80000000,而运行程序需要把程序拷贝到DDR中运行,所以DDR的寄存器地址0x80000000就是程序启动地址。0x80000000~0xFFFFFFFF的大小为2GB,所以这个板子支持的最大DDR就是2GB.

  2. 程序运行其实应该从0x00000000开始,但是为了支持在多种介质上运行(例如内部ram),所以增加了内存映射功能,需要在DDR上运行时,就把DDR地址映射到0x00000000;需要在内部RAM上运行时,就把内部RAM的地址映射到0x0。

    例如下面对STM32运行介质的说明:

  3. 参考:

    https://blog.csdn.net/qq_28877125/article/details/111876598

    https://www.cnblogs.com/lpajsj/p/18253280

相关推荐
草莓熊Lotso5 小时前
【Redis 初阶】Set 类型深度解析:去重集合的运算能力与实战场景
linux·网络·数据库·windows·redis·tcp/ip·缓存
张文君6 小时前
ubuntu26.04坏道坏块分区隔离急速版260831-V0.12
linux·python
贝锐14 小时前
从国产化信创设备到商用安卓终端,向日葵如何帮助企业实现统一运维管理?
linux·运维·远程控制
Julien200415 小时前
调查和解决 SELinux 问题
linux·运维·服务器·网络·学习方法
小张同学a.18 小时前
Docker 容器实战 1—— docker 基础与镜像构建
linux·运维·docker·容器
Best-Wishes20 小时前
BurpSuite Pro教育版在linux系统中配置
linux·运维·服务器·网络安全·burpsuite
wuminyu20 小时前
深入剖析 Panama Off-heap 的性能损耗与开销
java·linux·c语言·jvm·c++
虎王物联20 小时前
RK3568嵌入式Linux跑Docker:内核配置排查到AIoT容器化的完整路径
linux·运维·docker·rk3568·aiot·嵌入式linux
GeW21 小时前
不只靠技术:RHCE考试的5个隐藏得分点
linux
老当益壮梁奶奶21 小时前
Linux软件编程学习笔记(八):进程间通信详解(1)
linux·c语言·笔记·学习·算法