-
一般用的板子是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
相关推荐
江公望1 小时前
Ubuntu htop命令,10分钟讲清楚哎呦,帅小伙哦1 小时前
Linux 时间:从原子钟到 clock_gettime 的每一面张小姐的猫1 小时前
【Linux】多线程 —— 线程互斥YuanDaima20482 小时前
Linux 进阶运维与 AI 环境实战:进程管理、网络排错与 GPU 监控lolo大魔王3 小时前
Linux 数据文件处理实战:排序、搜索、压缩、归档一站式详解starvapour3 小时前
Ubuntu切换到Fcitx5中文输入法lolo大魔王4 小时前
Linux的监测程序.YYY4 小时前
RHCE--Linux循环执行的例行性任务:crontab从入门到精通木欣欣粉皮4 小时前
解决Ubuntu 26.04的挂起状态唤醒问题ambition202424 小时前
UNIX消息队列:从理论模型到工程实现的演进