-
一般用的板子是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
相关推荐
修己xj2 小时前
nslookup 使用指南:两种模式与常用查询技巧唠玖馆4 小时前
文件系统详解GeW5 小时前
当Linux内核开始“确定性”,制造高端化才有了底层语法星恒随风6 小时前
MySQL 从零入门(三):表的约束详解StarsGreen8 小时前
libva在intel平台上的前端流程简介坤坤子吖11 小时前
Linux网络编程:自定义应用层协议与 JSON 序列化Felven13 小时前
华为鲲鹏920s芯片serdestool工具使用说明莫晓燚13 小时前
mall 电商项目完整部署---实战咋的啥名都用不了呢~13 小时前
Linux项目部署5(安装Nginx的插件)CodeYp201913 小时前
第11讲:应用层协议 HTTP