ARM汇编指令和体系结构之4月8号
2017-04-08 09:20
155 查看
学习朱老师嵌入式课程第一天
整个编程及运行过程;
程序员用汇编指令编程 --经汇编器汇编成二进制可执行程序文件-->二进制文件被CPU读取进去-->CPU内部电路对二进制文件解码-->解码通过则CPU执行指令、完成指令动作。
汇编语言与C等高级语言的差异;
汇编难写,C好写
汇编无可移植性,C语言有一定可移植性,Java等更高级语言移植性更强。
汇编语言效率最高,C语言次之,Java等更高级语言效率更低。
汇编不适合完成大型复杂的项目,更高级语言更适合完成更大、更复杂的项目
机器指令集是一款CPU的编程特征,是这款CPU的设计者制定的。CPU的内部电路设计就是为了实现这些指令集的功能。机器指令集就好象CPU的API接口一样。
不同CPU的机器指令集设计不同,因此汇编程序不能在不同CPU间互相移植。
RISC和CISC的区别;
complex instruction set computer复杂指令集CPU
Reduced Instruction-Set Computer精简指令集CPU
ARM是RISC架构
ARM是统一编址的
32位ARM CPU支持的内存少于4G,通过CPU地址总线来访问
SoC中的各种内部外设通过各自的SFR编程访问,这些SFR的访问方式类似于访问普通内存,这叫IO与内存统一编址。
ARM是哈佛结构的
哈佛结构保证了ARM CPU运行的稳定性和安全性,因此ARM适用于嵌入式领域
哈佛结构也决定了ARM裸机程序(使用实地址即物理地址)的链接比较麻烦,必须使用复杂的链接脚本告知链接器如何组织程序;对于OS之上的应用(工作在虚拟地址之中)则不需考虑这么多
S5PV210的内存映射详解
S5PV210属于ARM Cortex-A8架构,32位CPU,CPU设计时就有32根地址线&32根数据线。
在S5PV210_UM_REV1.1.pdf数据手册中的cpu的地址空间
DRAM0和DRAM1是真正的内存映射,所以最多支持1.5g的内存
0x0000000是0xd0000000的映射,0x0000000是空的 启动代码在0xd0000000中
内存 用来运行程序的 RAM DRAM SRAM DDR
外存 用来存储数据的 ROM 硬盘 flash【inand ,nand ssd】光盘等
cpu访问内存和外存方式不一样 内存采用地址总线和数据总线的总线式访问方式连接
好处 直接访问,随机访问
坏处 占用cpu的地址空间 大小受限
外存是通过cpu的外存接口来访问
好处 不占用cpu的地址空间
坏处 访问速度慢 要通过时钟来访问外存 访问需要几个周期 访问时序复杂
SoC常用外部存储器
flash
flash分为 norflash和nandflash
NorFlash
可以总线式访问 价格很高 一般接到 SROM bank 一般用来启动
以下全是 现在的cpu一般都支持从nandflash启动 nandflash分为SLC和MLC
NandFlash
eMMC/iNand/moviNand
oneNAND三星公司的
SD卡/TF卡/MMC卡
eSSD
非flash
SATA硬盘
整个编程及运行过程;
程序员用汇编指令编程 --经汇编器汇编成二进制可执行程序文件-->二进制文件被CPU读取进去-->CPU内部电路对二进制文件解码-->解码通过则CPU执行指令、完成指令动作。
汇编语言与C等高级语言的差异;
汇编难写,C好写
汇编无可移植性,C语言有一定可移植性,Java等更高级语言移植性更强。
汇编语言效率最高,C语言次之,Java等更高级语言效率更低。
汇编不适合完成大型复杂的项目,更高级语言更适合完成更大、更复杂的项目
机器指令集是一款CPU的编程特征,是这款CPU的设计者制定的。CPU的内部电路设计就是为了实现这些指令集的功能。机器指令集就好象CPU的API接口一样。
不同CPU的机器指令集设计不同,因此汇编程序不能在不同CPU间互相移植。
RISC和CISC的区别;
complex instruction set computer复杂指令集CPU
Reduced Instruction-Set Computer精简指令集CPU
ARM是RISC架构
ARM是统一编址的
32位ARM CPU支持的内存少于4G,通过CPU地址总线来访问
SoC中的各种内部外设通过各自的SFR编程访问,这些SFR的访问方式类似于访问普通内存,这叫IO与内存统一编址。
ARM是哈佛结构的
哈佛结构保证了ARM CPU运行的稳定性和安全性,因此ARM适用于嵌入式领域
哈佛结构也决定了ARM裸机程序(使用实地址即物理地址)的链接比较麻烦,必须使用复杂的链接脚本告知链接器如何组织程序;对于OS之上的应用(工作在虚拟地址之中)则不需考虑这么多
S5PV210的内存映射详解
S5PV210属于ARM Cortex-A8架构,32位CPU,CPU设计时就有32根地址线&32根数据线。
在S5PV210_UM_REV1.1.pdf数据手册中的cpu的地址空间
DRAM0和DRAM1是真正的内存映射,所以最多支持1.5g的内存
0x0000000是0xd0000000的映射,0x0000000是空的 启动代码在0xd0000000中
内存 用来运行程序的 RAM DRAM SRAM DDR
外存 用来存储数据的 ROM 硬盘 flash【inand ,nand ssd】光盘等
cpu访问内存和外存方式不一样 内存采用地址总线和数据总线的总线式访问方式连接
好处 直接访问,随机访问
坏处 占用cpu的地址空间 大小受限
外存是通过cpu的外存接口来访问
好处 不占用cpu的地址空间
坏处 访问速度慢 要通过时钟来访问外存 访问需要几个周期 访问时序复杂
SoC常用外部存储器
flash
flash分为 norflash和nandflash
NorFlash
可以总线式访问 价格很高 一般接到 SROM bank 一般用来启动
以下全是 现在的cpu一般都支持从nandflash启动 nandflash分为SLC和MLC
NandFlash
eMMC/iNand/moviNand
oneNAND三星公司的
SD卡/TF卡/MMC卡
eSSD
非flash
SATA硬盘
相关文章推荐
- 体系结构设计MVC
- windows核心编程系列13---Windows内存体系结构
- 诺依曼体系结构、哈佛体系结构与改进型哈佛结构之间的区别
- 体系结构,框架,库,设计模式,设计模式 的概念
- 跟我一起学Oracle 11g【4】----Oracle的体系结构
- Oracle 9i & 10g编程艺术-深入数据库体系结构——第10章:数据库表
- oracle物理体系结构---联机重做日志文件
- ARM的体系结构与编程系列博客——ARM的历史与应用范围
- RAC Clusterware 的日志体系结构
- ISO/OSI网络体系结构和TCP/IP协议模型
- 计算机网络系统的五层体系结构
- 【冬瓜哥手绘】大话众核心处理器体系结构
- spring framework体系结构及内部各模块jar之间的maven依赖关系
- spring核心框架体系结构(各个jar包作用)
- 哈佛结构和冯诺依曼体系结构的区别
- oracle的结构体系
- RMAN概述及其体系结构
- EasyDemo*Java常用API体系结构图(download pic Thx)
- WPF 体系结构(一)
- 关于计算机体系结构的一点思考。