嵌入式Linux--地址的总结--0x80000000起
目录
- 一、芯片的基础知识说起
- 为啥一般的芯片的开始地址是0x80000000,那是因为芯片制造商的想法。
- 一、地址空间
- (1)i.MX6ULL系列芯片
- i.MX6ULL 应用处理器内存地址映射表
- 二、正点原子Linux开发板
一、芯片的基础知识说起
MCU、MPU、CPU这些主控芯片,有8位、16位和32位、64位,
为啥一般的芯片的开始地址是0x80000000,那是因为芯片制造商的想法。
一、地址空间
一个颗32位架构的芯片它的寻址空间为:0 ~ 0xFFFFFFFF
大小 | 字节 | 尺寸 | 地址范围 |
---|---|---|---|
2^32(4294967296) | 4GB | 0x1 0000 0000 | 0 ~ 0xFFFFFFFF |
(1)i.MX6ULL系列芯片
i.MX6ULL 应用处理器内存地址映射表
来源:《IMX6ULL参考手册》
ARM Platform Memory Map
Start address | End address | Size | Description |
---|---|---|---|
8000_0000 | FFFF_FFFF | 2048 MB | MMDC—x16 DDR Controller. |
7000_0000 | 7FFF_FFFF | 256 MB | Reserved |
6000_0000 | 6FFF_FFFF | 256 MB | QSPI1 Memory |
5800_0000 | 5FFF_FFFF | 128 MB | EIM Aliased |
5000_0000 | 57FF_FFFF | 128 MB | EIM (NOR/SRAM) |
1000_0000 | 4FFF_FFFF | 1024 MB | Reserved |
0E00_0000 | 0FFF_FFFF | 32 MB | Reserved |
0C00_0000 | 0DFF_FFFF | 32 MB | QSPI1 Rx Buffer |
0900_0000 | 0BFF_FFFF | 48 MB | Reserved |
0800_0000 | 08FF_FFFF | 16 MB | Reserved |
02C0_0000 | 07FF_FFFF | 84 MB | Reserved |
0230_0000 | 02BF_FFFF | 9 MB | Reserved |
0220_0000 | 022F_FFFF | 1 MB | Table 2-4 AIPS-3. See IP listing on the separate map. |
0210_0000 | 021F_FFFF | 1 MB | Table 2-3 AIPS-2. See the IP listing on the separate map. |
0200_0000 | 020F_FFFF | 1 MB | Table 2-2 AIPS-1. See the IP listing on the separate map. |
0181_0000 | 01FF_FFFF | 8128 KB | Reserved |
0180_C000 | 0180_FFFF | 16 KB | Reserved |
0180_8000 | 0180_BFFF | 16 KB | BCH |
0180_6000 | 0180_7FFF | 8 KB | GPMI |
0180_4000 | 0180_5FFF | 32 KB | APBH DMA |
0180_0000 | 0180_3FFF | 16 KB | Reserved |
0120_0000 | 017F_FFFF | 6 MB | Reserved |
0110_0000 | 011F_FFFF | 1 MB | Reserved |
0100_0000 | 010F_FFFF | 1 MB | Reserved |
00F0_0000 | 00FF_FFFF | 1 MB | Reserved |
00E0_0000 | 00EF_FFFF | 1 MB | (per_m) configuration port |
00D0_0000 | 00DF_FFFF | 1 MB | (cpu) configuration port |
00C0_0000 | 00CF_FFFF | 1 MB | GPV_1 PL301 |
00B0_0000 | 00BF_FFFF | 1 MB | GPV_0 PL301 configuration port |
00A0_8000 | 00AF_FFFF | 992 KB | Reserved |
00A0_0000 | 00A0_7FFF | 32 KB | ARM Peripherals: GIC400 Only visible to ARM core(s) |
009C_0000 | 009F_FFFF | 256 KB | Reserved |
0098_0000 | 009B_FFFF | 256 KB | Reserved |
0092_0000 | 0097_FFFF | 384 KB | OCRAM aliased |
0090_0000 | 0091_FFFF | 128 KB | OCRAM 128 KB |
008F_8000 | 008F_FFFF | 32 KB | Reserved |
007F_8000 | 008F_7FFF | 1 MB | Reserved |
0010_0000 | 0010_7FFF | 32 KB | Reserved |
0001_8000 | 000F_FFFF | 928 KB | Reserved |
0001_7000 | 0001_7FFF | 4 KB | Boot ROM—Protected 4 KB area |
0000_0000 | 0001_6FFF | 92 KB | Boot ROM (ROMCP) |
从上表可以看出,在整个4GB的地址空间内,前2GB的地址空间有其他用处,后2GB的地址空间分配给了内存控制器,所以在操作内存地址的时候都是从0x80000000地址开始的,这其实就限制了该类型(32位架构)的芯片最大支持内存为4GB,而i.MX6ULL芯片所支持的最大的内存为2GB。
二、正点原子Linux开发板
- 512MB DDR3L
- 8GB EMMC
大小 | 字节 | 尺寸 | 地址范围 |
---|---|---|---|
536870912 | 512MB | 0x2000 0000 | 0 ~ 0x1FFF FFFF |
对应i.MX6ULL地址映射空间:
字节 | 尺寸 | 地址范围 | 对应 |
---|---|---|---|
512MB | 0x2000 0000 | 0 ~ 0x1FFF FFFF | 0x8000 0000 ~ 0xA000 0000 |
我在这里的操作:
嵌入式Linux–U-Boot(九)通过TFT/NFS网络更新U-Boot、Kernel、DTB文件
可以看到:
=> tftp 80800000 zImage
Using FEC1 device
TFTP from server 192.168.0.120; our IP address is 192.168.0.121
Filename 'zImage'.
Load address: 0x80800000
Loading: ###############################################################################################################################################################################################################################################################################################################################################################################################################################################################################2.4 MiB/s
done
Bytes transferred = 6786368 (678d40 hex)
=> tftp 83000000 imx6ull_liefyuan_emmc.dtb
Using FEC1 device
TFTP from server 192.168.0.120; our IP address is 192.168.0.121
Filename 'imx6ull_liefyuan_emmc.dtb'.
Load address: 0x83000000
Loading: ###2.1 MiB/s
done
Bytes transferred = 38823 (97a7 hex)
从上面可以看到:
- 地址0x80800000是从8MB的地方开始的一个内存区域,那前面8MB区域放了些啥玩意?
- 地址0x83000000是从48MB的地方开始的一个内存区域
- 地址一:0x83000000
- 地址二:0x80800000
嵌入式Linux--地址的总结--0x80000000起相关推荐
- linux 怎么查看usb设备端口号,嵌入式Linux USB设备检测端口和地址
我发展我的板USB应用.它有两个USB端口.当我插上USB驱动器在他们每个人我得到控制台以下消息:嵌入式Linux USB设备检测端口和地址 端口1: usb 1-1: new high speed ...
- 深度实践嵌入式linux系统移植 光盘下载地址
深度实践嵌入式Linux系统移植这本书,翻了翻,感觉挺好,但要获得这本书的配套光盘文件真不容易, 书的序言部分给了一个支持站点 ,但是打不开.另外一种方式就是在以在华章网站下载.但是华章网站需要注册才 ...
- 北京迅为i.mx6ull终结者开发板使用手册+嵌入式Linux开发指南+裸机手册下载地址
i.MX6ULL终结者三大手册,加速学习和开发速度,一秒化无形! <嵌入式Linux开发指南>+<开发板使用手册>+<裸机使用手册> 详细手册点击链接下载:http ...
- 【嵌入式Linux】嵌入式Linux驱动开发基础知识之设备树模型
文章目录 前言 1.设备树的作用 2.设备树的语法 2.1.设备树的逻辑图和dts文件.dtb文件 2.1.1.1Devicetree格式 1DTS文件的格式 node的格式 properties的格 ...
- 【嵌入式Linux】嵌入式Linux驱动开发基础知识之总线设备驱动模型
文章目录 前言 1.驱动编写的三种方法 1.1.传统写法 1.2.总线驱动模型 1.3.设备树驱动模型 2.Linux实现分离:Bus/Dev/Drv模型 2.1.Bus/Dev/Drv模型 2.2. ...
- 【正点原子MP157连载】第二十三章 Linux设备树-摘自【正点原子】STM32MP1嵌入式Linux驱动开发指南V1.7
1)实验平台:正点原子STM32MP157开发板 2)购买链接:https://item.taobao.com/item.htm?&id=629270721801 3)全套实验源码+手册+视频 ...
- 【linux】嵌入式linux的组成
嵌入式Linux的组成: 在硬件上,主要由cpu.emmc(或nand.sd,都属于Flash).SDRAM.NFS(网络文件系统)四部分组成,flash是Linux的存储器,类似于Windows的硬 ...
- 嵌入式linux学习笔记--TCP通讯整理
嵌入式linux学习笔记–TCP通讯整理 之前的项目中使用到了比较多的tcp 通讯相关的知识,一直也没有进行整理,今天准备拿出时间好好的整理一下TCP通讯的整个过程.预计会整理linux和window ...
- 【正点原子Linux连载】第三十二章 U-Boot启动流程详解 -摘自【正点原子】I.MX6U嵌入式Linux驱动开发指南V1.0
1)实验平台:正点原子阿尔法Linux开发板 2)平台购买地址:https://item.taobao.com/item.htm?id=603672744434 2)全套实验源码+手册+视频下载地址: ...
- 嵌入式Linux系统开发笔记(七)
嵌入式Linux系统开发笔记(七) 七.U-Boot基础 1.概述 在移植 Linux之前我们需要先移植一个 bootloader 代码,这个 bootloader 代码用于启动 Linux 内核, ...
最新文章
- 如何编写一个测试HIDL接口的vts(gtest)的testcase
- python 混淆矩阵_绘制混沌矩阵
- 求一个特定函数在定义区间上的值是否都为素数
- 区块链学习笔记(二)
- 三维平面叠加图_无人机倾斜摄影技术在三维实景GIS的应用
- 科密t1消费管理系统_科密A1\T1登录密码获取软件-科密A1\T1登录密码获取工具1.0.0 安卓版-东坡下载...
- android 按钮救星,按键救星下载-按键救星专业版(Button Savior Pro) 安卓版v2.1.1-PC6安卓网...
- 高数 | 【微分方程】技巧性例题 及 李林880详解
- STM32G0系列的启动配置与程序下载说明
- 春节不出门!这三款超好评编程游戏,好玩到停不下来
- 爬虫2021广东省普通专升本各院校专业招生计划汇总表
- C++OpenCV实现抠除(也可用于更换)证件照背景
- Discuz!教程之当插件、门户或自定义页面设置成首页时手机版访问跳转到forum.php?mobile=yes的问题
- VR-DANN: 联合视频解码与AI处理
- 不懂就问,机器人做核酸是一种什么体验?|一周AI新闻
- SWAT模型 | 运行Arcswat报错问题及解决办法 | forrt1:error(65): floating invalid解决方法
- EasyExcel导入导出下载模板(带下拉)
- vs2012运行项目报未能加载文件或程序集“System.Web.Mvc, Version=4.0.0.1,Culture=neutral”问题和解决方法...
- ns-3构建简单点对点网络
- Nginx---入门到放弃系列01
热门文章
- 微信小程序 实现蚂蚁森林效果
- 跨主机网络-UDP解析
- go mod报错at revision v0.0.6: unknown revision v0.0.6
- C语言 | 指针和const
- java中实现多态的机制是什么_java多态机制是什么
- windows下配置host
- leetcode 829.连续整数求和
- 周记-20201106
- mybatis和mybatisPlus中解决实体类字段与数据库关键字冲突问题
- macos git: 'credential-wincred' is not a git command. See 'git --help'