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

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

-
参考:
程序启动地址0x80000000
Jay Chou why did2026-01-15 15:58
相关推荐
我是小灰灰吖12 小时前
QT在线安装器使用指南:从下载到配置完整教程GlueNa2SiO312 小时前
第十八章 Linux故障排查与恢复寺中人13 小时前
Linux 基础命令入门实战教程:从零掌握常用操作,新手快速上手小张成长计划..14 小时前
【Linux】18:基础IOMIXLLRED14 小时前
解决——Ubuntu远程桌面指令更换网络啊哈一半醒15 小时前
Windows 虚拟机搭建 CentOS 全过程(2026 最新版 + 踩坑解决)wunaiqiezixin15 小时前
MIT 6.S081 lazy 前置篇(lab5):缺页异常、惰性分配、写时复制、页面换出Benszen15 小时前
云计算基础-13:Linux网络管理实战-1_kerneler16 小时前
Linux tiny RCUwuminyu17 小时前
虚拟线程底层ForkJoinPool的工作窃取算法机制