-
一般用的板子是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
相关推荐
groundhappy1 小时前
idalib安装和codex ida-mcp配置通信小小昕2 小时前
Ubuntu 26.04 中文输入法安装张小姐的猫3 小时前
【Linux】网络编程 —— HTTP协议(上)栩栩云生3 小时前
AI 写代码犯的错,早被写进了错题集imc.115 小时前
linux基础IOBelongPanda7 小时前
Linux Nginx 纯手动 Let‘s Encrypt 泛域名证书配置教程酷可达拉斯7 小时前
Linux操作系统-shell编程(0)2301_777998347 小时前
Linux中断机制:操作系统如何高效运行yunwei377 小时前
eBPF 教程:检查 exec 后真正安装的可执行镜像笑锝没心没肺8 小时前
yum update 报错:GPG key retrieval failed: [Errno 14] HTTPS Error 404 - Not Found