-
一般用的板子是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
相关推荐
落笔映浮华丶2 小时前
c程序的翻译过程 linux版阮松云2 小时前
code-server 配置mavenPomelo_刘金2 小时前
Linux I/O 方式进化史(内核/性能视角):从“睡死”到“就绪队列”再到“完成队列”提伯斯6463 小时前
解决 PX4 + ROS px4ctrl 「No odom!」自动起飞失败问题牛奶咖啡133 小时前
shell脚本编程(八)Q16849645153 小时前
知识点-创建、查看和编辑文本文件小宇的天下3 小时前
Calibre 3Dstack --每日一个命令days11【dangling_ports】(3-11)HIT_Weston3 小时前
97、【Ubuntu】【Hugo】搭建私人博客:搜索功能(二)chen_mangoo4 小时前
HDMI简介