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

相关推荐
学嵌入式的小杨同学5 小时前
从零打造 Linux 终端 MP3 播放器!用 C 语言实现音乐自由
linux·c语言·开发语言·前端·vscode·ci/cd·vim
EverydayJoy^v^5 小时前
RH134学习进程——十二.运行容器(1)
linux·运维·容器
syseptember5 小时前
Linux网络基础
linux·网络·arm开发
zl_dfq5 小时前
Linux 之 【多线程】(线程的概念、Linux中的线程、页表)
linux
郝亚军6 小时前
如何在Ubuntu和win10/11之间通过samba访问对方的文件
linux·服务器·ubuntu
曦云沐7 小时前
【避坑指南】Ubuntu更新报错“Repository is not signed”的快速修复
linux·ubuntu·docker
带土17 小时前
10. .out文件
linux
STCNXPARM8 小时前
Linux camera之V4L2子系统详解
android·linux·camera·v4l2架构
yueyuexiaokeai18 小时前
linux kernel常用函数整理
linux·c语言
郝亚军10 小时前
ubuntu-18.04.6-desktop-amd64安装步骤
linux·运维·ubuntu