程序启动地址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

相关推荐
mounter62513 小时前
【Linux 网络进阶】下一代虚拟网络设备 netkit 详解:超越 veth 的云原生基石
linux·服务器·网络·io_uring·netkit·devmem·hard lease
zhangrelay13 小时前
三分钟云课实践速通--数字电子技术-数电--SimulIDE
linux·笔记·学习·ubuntu·simulide
木木_王13 小时前
嵌入式Linux学习 | 数据结构 (Day04)链表升级(进阶优化 + 柔性数组原理 + 双向循环链表完整实现 + 高频面试深挖)
linux·数据结构·学习
有谁看见我的剑了?1 天前
linux 添加硬盘后系统识别不到硬盘处理
linux·运维·服务器
yc_12241 天前
用 Visual Studio 远程调试 Linux:从零到流畅的完整指南
linux·ide·visual studio
计算机安禾1 天前
【Linux从入门到精通】第31篇:防火墙漫谈——iptables与firewalld防护指南
linux·运维·php
下一页盛夏花开1 天前
ubuntu 20中安装QT以后出现红色空心断点
linux·运维·ubuntu
sanshanjianke1 天前
Thunderobot 911ME 笔记本 Linux 风扇控制研究
linux
fengyehongWorld1 天前
TeraTerm ttl脚本登录wsl
linux·teraterm
乌托邦的逃亡者1 天前
Linux中如何检测IP冲突
linux·运维·tcp/ip