arm架构与编程
㈠ arm体系结构与编程 pdf
http://wenku..com/view/335eb719227916888486d78d.html
希望这个能够符合你的要求
直接下载就可以了,不需要积分的
㈡ ARM体系结构与编程的作品目录
第1章 ARM概述及其基本编程模型
1. 1 ARM技术的应用领域及其特点
1. 2 ARM体系结构的版本及命名方法
1. 2. 1 ARM体系结构的版本
1. 2. 2 ARM体系的变种
1. 2. 3 ARM/Thumb体系版本的命名格式
l. 3 ARM处理器系列
1. 3. 1 ARM7系列
1. 3. 2 ARM9系列
1. 3. 3 ARM9E系列
1. 3. 4 ARM1OE系列
1. 3. 5 SecurCore系列
l. 4 ARM处理器模式
1. 5 ARM寄存器介绍
1. 5. l 通用寄存器
1. 5. 3 程序状态寄存器
1. 6 ARM体系的异常中断
1. 6. 1 ARM中异常中断种类
1. 6. 2 ARM处理器对异常中断的响应过程
1. 6. 3 从异常中断处理程序中返回
1. 7 ARM体系中存储系统
1. 7. 1 ARM体系中的存储空间
1. 7. 2 ARM存储器格式
1. 7. 3 非对齐的存储访问操作
1. 7. 4 指令预取和自修改代码
第2章 ARM指令分类及其寻址方式
2. 1 ARM指令集概要介绍
2. 1. 1 ARM指令的分类
2. 1. 2 ARM指令的一般编码格式
2. 1. 3 ARM指令的条件码域
2. 2 ARM指令寻址方式
2. 2. l 数据处理指令的操作数的寻址方式
2. 2. 2 字及无符号字节的Load/Store指令的寻址方式
2. 2. 3 杂类Load/Store指令的寻址方式
2. 2. 4 批量Load/Store指令的寻址方式
2. 2. 5 协处理器Load/Store指令的寻址方式
第3章 ARM指令集介绍
3. 1 ARM指令集
3. 1. l 跳转指令
3. l. 2 数据处理指令
3. 1. 3 乘法指令
3. 1. 4 杂类的算术指令
3. 1. 5 状态寄存器访问指令
3. l. 6 Load/Store内存访问指令
3. 1. 7 批量Load/Store内存访问指令
3. 1. 8 信号量操作指令
3. 1. 9 异常中断产生指令
3. 1. 10 ARM协处理器指令
3. 2 一些基本的ARM指令功能段
3. 2. l 算术逻辑运算指令的应用
3. 2. 2 跳转指令的应用
3. 2. 3 Loacl/Store指令的应用
3. 2. 4 批量Load/Store指令的应用
3. 2. 5 信号量指令的应用
3. 2. 6 与系统相关的一些指令代码段
3. 3 Thumb指令介绍
第4章 ARM汇编语言程序设计
4. 1 伪操作
4. 1. l 符号定义伪操作
4. 1. 2 数据定义伪操作
4. 1. 3 汇编控制伪操作
4. 1. 4 栈中数据帧描述伪操作
4. 1. 5 信息报告伪操作
4. 1. 6 其他的伪操作
4. 2 ARM汇编语言伪指令
4. 3 ARM汇编语言语句格式
4. 3. 1 ARM汇编语言中的符号
4. 3. 2 ARM汇编语言中的表达式
4. 4 ARM汇编语言程序格式.
4. 4. l 汇编语言程序格式
4. 4. 2 汇编语言子程序调用
4. 5 ARM汇编编译器的使用
4. 6 汇编程序设计举例
4. 6. 1 ARM中伪操作使用实例
4. 6. 2 ARM中汇编程序实例
第5章 ARM存储系统
5. 1 ARM存储系统概述
5. 2 ARM中用于存储管理的系统控制协处理器CP15
5. 2. 1 访问CP15寄存器的指令
5. 2. 2 CP15中的寄存器
5. 3 存储器管理单元MMU
5. 3. l 存储器管理单元MMU概述
5. 3. 2 禁止/使能MMU
5. 3. 3 MMU中地址变换过程
5. 3. 4 MMU中存储访问权限控制
5. 3. 5 MMU中的域
5. 3. 6 关于快表的操作
5. 3. 7 ARM中的存储访问失效
5. 4 高速缓冲存储器和写缓冲区
5. 4. 1 基本概念
5. 4. 2 cache的工作原理和地址映像方法
5. 4. 3 cache的分类
5. 4. 4 cache的替换算法
5. 4. 5 缓冲技术的使用注意事项
5. 4. 6 存储系统的一致性问题
5. 4. 7 cache内容锁定
5. 4. 8 与cache和写缓冲区相关的编程接口
5. 5 快速上下文切换技术
5. 5. l 快速上下文切换技术原理
5. 5. 2 快速上下文切换技术编程接口
5. 6 与存储系统相关的程序设计指南
5. 6. l 地址空间
5. 6. 2 存储器格式
5. 6. 3 非对齐的存储访问操作
5. 6. 4 指令预取和自修改代码
5. 6. 5 IMB
5. 6. 6 存储器映射的I/O空间
5. 7 AIOA存储系统的实例
5. 7. 1 L7205的存储系统概述
5. 7. 2 L7205中的SDRAM
5. 7. 3 L7205中的 MMU
第6章 ATPCS介绍
6. 1 ATPCS概述
6. 2 基本ATPCS
6. 2. l 寄存器的使用规则
6. 2. 2 数据栈使用规则
6. 2. 3 参数传递规则
6. 3 几种特定的ATPCS
6. 3. l 支持数据栈限制检查的ATPCS
6. 3. 2 支持只读段位置无关(ROPI)的ATPCS
6. 3. 3 支持可读写段位置无关(RWPI)的ATPCS
6. 3. 4 支持ARM程序和Thumb程序混合使用的ATPCS
6. 3. 5 处理浮点运算的ATPCS
第7章 ARM程序和Thumb程序混合使用
7. 1 概述
7. 2 在汇编语言程序中通过用户代码支持interwork
7. 2. l 可以实现程序状态切换的指令
7. 2. 2 与程序状态切换相关的伪操作
7. 2. 3 进行状态切换的汇编程序实例
7. 3 在C/C++程序中实现interwork
7. 4 在汇编语言程序中通过连接器支持interwork
7. 4. l 利用veneers实现汇编程序间的程序状态切换
7. 4. 2 利用veneers实现汇编程序与C/C++程序间的程序状态切换
第8章 CC++以及汇编语言的混合编程
8. l 内嵌汇编器的使用
8. 1. l 内嵌的汇编指令用法
8. 1. 2 内嵌的汇编器和armasm的区别
8. l. 3 在CC++程序中使用内嵌的汇编指令
8. 1. 4 内嵌汇编指令的应用举例
8. 2 从汇编程序中访问C程序变量
8. 3 汇编程序.C程序以及C++程序的相互调用
8. 3. l 在C++程序中使用C程序头文件
8. 3. 2 汇编程序.C程序以及C++程序的相互调用举例
第9章 异常中断处理
9. 1 ARM中异常中断处理概述
9. 1. 1 ARM体系中异常中断种类
9. 1. 2 异常中断向量表及异常中断优先级
9. 1. 3 异常中断使用的寄存器
9. 2 进入和退出异常中断的过程
9. 2. 1 ARM处理器对异常中断的响应过程
9. 2. 2 从异常中断处理程序中返回
9. 3 在应用程序中安装异常中断处理程序
9. 3. 1 在系统复位时安装异常中断处理程序
9. 3. 2 在C程序中安装异常中断处理程序
9. 4 SWI异常中断处理程序
9. 4. 1 SWI异常中断处理程序的实现
9. 4. 2 SWI异常中断调用
9. 5 FIQ和IRQ异常中断处理程序
9. 5. 1 IRQ/FIQ异常中断处理程序
9. 5. 2 IRQ异常中断处理程序举例
9. 6 复位异常中断处理程序
9. 7 未定义指令异常中断
9. 8 指令预取中止异常中断处理程序
9. 9 数据访问中止异常中断处理程序
第10章 ARM C/0++编译器
10. 1 ARM C/C++编译器概述
10. 1. 1 ARM C/C++编译器及语言库介绍
10. l. 2 ARM编译器中与搜索路径相关的一些基本概念
10. 2 ARM编译器命令行格式
10. 2. l 过程调用标准
10. 2. 2 设置源程序语言类型
10. 2. 3 指定搜索路径
10. 2. 4 设置预处理选项
10. 2. 5 设置输出文件类型
10. 2. 6 指定目标处理器和ARM体系版本
10. 2. 7 生成调试信息
10. 2. 8 代码生成的控制
10. 2. 9 控制警告信息的产生
10. 2. 10 编译时进行的一些额外的检查
10. 2. 11 控制错误信息
10. 3 ARM编译器中的pragmas
10. 4 ARM编译器特定的关键词
10. 4. 1 用于声明函数的关键词
10. 4. 2 用于声明交量的关键词
10. 4. 3 用于限定数据类型的关键词
10. 5 ARM编译器支持的基本数据类型
10. 6 ARM编译器中预定义宏
10. 7 ARM中C/C++库
10. 7. 1 ARM中C/C++运行时库概述
10. 7. 2 建立一个包含C/C++运行时库的C/C++应用程序
10. 7. 3 建立不包含C运行时库的应用程序
10. 7. 4 裁减C/C++运行时库以适应特定的目标运行环境
第11章 ARM连接器
11. 1 ARM映像文件
11. 1. 1 ARM映像文件的组成
11. 1. 2 ARM映像文件的入口点
11. 1. 3 输入段的排序规则
11. 2 ARM连接器介绍
11. 3 ARM连接器生成的符号
11. 3. 1 连接器生成的与域相关的符号
11. 3. 2 连接器生成的与输出段相关的符号
11. 3. 3 连接器生成的与输入段相关的符号
11. 4 连接器的优化功能
11. 5 运行时库的使用
11. 5. 1 C/C++运行时库与目标文件
11. 5. 2 查找需要的C/C++运行时库
11. 5. 3 选择合适种类的C/C++运行时库
11. 5. 4 扫描C/C++运行时库
11. 6 从一个映像文件中使用另一个映像文件中的符号
11. 6. 1 symdefs文件
11. 6. 2 建立symdefs文件
11. 6. 3 symdefs文件的使用
11. 7 隐藏或者重命名全局符号
11. 7. l steering文件的格式
11. 7. 2 steering文件中的命令
11. 8 ARM连接器命令行选项
11. 9 使用scatter文件定义映像文件的地址映射
11. 9. l scatter文件概述
11. 9. 2 satter文件中各部分介绍
11. 9. 3 scatter文件使用举例
第12章 嵌入式应用程序示例
12. l 嵌入式应用程序设计的基本知识
12. 1. 1 嵌入式应用系统中的存储映射
12. 1. 2 系统初始化
12. 2 使用semihosting的 C语言程序示例
12. 2. 1 源程序分析
12. 2. 2 生成映像文件
12. 3 一个嵌入式应用系统示例
12. 3. l 源程序分析
12. 3. 2 生成映像文件
12. 3. 3 本例中地址映射模式
12. 4 进行ROM/RAM地址重映射的嵌入式应用系统
12. 4. l 地址映射模式
12. 4. 2 源程序分析
12. 4. 3 生成映像文件
12. 5 一个嵌入式操作系统示例
第13章 使用CodeWarrior
13. 1 CodeWarrior for ADS概述
13. 2 简单工程项目的使用
13. 2. 1 工程项目窗口
13. 2. 2 简单工程项目的使用
13. 3 配置生成目标
13. 3. 1 Debug Settings对话框介绍
13. 3. 2 设置牛成目标的基本选项
13. 3. 3 汇编器选项设置
13. 3. 4 编译器的选项设置
13. 3. 5 连接器的选项设置
13. 3. 6 fromELF工具的选项设置
13. 4 复杂工程项目的使用
13. 4. l 建立一个新的生成目标
13. 4. 2 将一个生成目标更名
13. 4. 3 建立生成目标之间的依赖关系
13. 4. 4 子工程项目的使用
13. 5 工程项目模板
13. 5. 1 ADS中工程项目模板的使用
13. 5. 2 建立用户工程项目模板
13. 6 编译和连接工程项目
13. 6. 1 编译文件
13. 6. 2 生成工程项目
第14章 ARM体系中的调试方法
14. 1 ARM体系中调试系统概述
14. 2 基于Angel的调试系统
14. 2. l 基于Angel的调试系统的概述
14. 2. 2 使用Angel开发应用程序
14. 2. 3 Angel执行的操作
14. 2. 4 将Angel移植到特定的目标系统
14. 3 基于JTAG的调试系统
14. 3. l 基于JTAG的调试系统的特点
14. 3. 2 基于JTAG的调试系统结构
14. 3. 3 目标系统中的调试功能扩展部件
14. 3. 4 基于JTAG的调试过程
14. 4 ADW使用介绍
14. 4. 1 ADW概述
14. 4. 2 ADW中的窗口
14. 4. 3 ADW使用介绍
㈢ 杜春雷的《arm体系结构与编程》,这本书如何,适合自学吗,题主是一个
这本书知识点掌握后会对ARM硬件内核有较为透彻的了解。但里面牵涉内容比较广泛,对于初学者比较难一次性掌握。
㈣ arm架构下有没有什么编程语言
linux -- gcc (android就是这个开发的)
IOS -- object C
Windows -- VC
㈤ 嵌入式需要学什么嵌入式需要学哪些课程和内容
1.1 有哪些设备使用单片机或Linux
所有的电子产品,所用技术都可以认为要么是单片机,要么是Linux;GUI方面主要是QT/Android,它们都是运行于Linux之上的。我们说的单片机不使用操作系统,但是使用单片机设备肯定远远超过Linux。很多人也是先学习单片机,从单片机进入电子工程师行业,日常生活中,有哪些产品使用单片机、Linux呢?下面举一些例子:
下面我们用类比和逻辑推导出嵌入式Linux系统的组成,没错,“推导”。
从上图可以知道:
组成:嵌入式Linux系统= bootloader + linux内核 + 根文件系统(里面含有APP)。
bootloader:它的目的是启动内核,去哪等读内核?读到哪里?去Flash等外设读内核,存到内存里去。所以需要有Flash里外设的驱动能力,为了调试方便还会有网络功能。所以,可以认为 booloader = 裸机集合,它就是一个复杂的单片机程序。
Linux内核:Linux内核的最主要目的是去启动APP,APP保存在哪里?保存在“根文件系统”里。“根文件系统”又保存在哪里?在Flash、SD卡等设备里,甚至可能在网络上。所以Linux内核要有这些Flash、SD卡里设备的驱动能力。
不仅如此,Linux内核还有进程调度能力、内存管理等功能。
所以:Linux内核 = 驱动集合 + 进程调度 + 内存管理等。
2.3 要学习bootloader吗
Bootloader有很多种,常用的叫u-boot。
在实际工作中,对于u-boot基本上是修修改改,甚至不改。但是u-boot本身是很复杂的,比如为了便于调试,它支持网络功能;有些内核是保存在FAT32分区里,于是它要能解析FAT32分区,读FAT32分区的文件。
花那么多精力去学习u-boot,但是工作中基本用不到,这对初学者很不友善。
所以,对于初学者,我建议:理解u-boot的作用、会使用u-boot的命令,这就可以了。
如果你的工作就是修改、完善bootloader,那么再去研究它吧。
2.4 要学习Linux内核、要学习驱动程序吗
之前我们说过Linux内核 = 驱动集合 + 进程调度 + 内存管理等,如果要学习Linux内核,从驱动程序入手是一个好办法。
但是人人都要学习Linux内核、人人都要学习Linux驱动吗?显然不是。
作为初学者,懂几个简单的驱动程序,有利于工作交流;理解中断、进程、线程的概念,无论是对驱动开发、应用程序开发,都是很有好处的。
所以对于初学者,建议前期只学习这几个驱动:LED、按键、中断。
LED驱动程序:这是最简单的驱动程序。
按键驱动程序:它也比较简单,从它引入“中断”。
中断:从“中断”它可以引入:休眠-唤醒、进程/线程、POLL机制、异步通知等概念。这些概念无论是对驱动开发,还是对应用开发,都很重要。
所以,对于初学者,我建议必须学习这几个驱动:LED、按键、中断。
入门之后,如果你想从事内核开发、驱动开发,那么可以去钻研几个驱动程序(输入系统、I2C总线、SPI总线等),掌握若干个大型驱动程序后,你对内核的套路就有所了解了,再去研究其他部分(比如进程管理、文件系统)时你会发现套路是如此通用。
摄像头(VL42)、声卡ALSA驱动是Linux中比较复杂的2类驱动,它们是很难的,如果工作与此相关再去研究。
2.5,要学习Linux应用程序吗?先学一些基础技能
要学,即使以后你只想研究内核,一些基本的应用开发编写能力也是需要的:
基本设备的访问,比如LCD、输入设备
进程、线程、进程通信、线程同步与互斥
休眠-唤醒、POLL机制、信号
网络编程
①②③部分的知识,跟驱动有密切的关系,它们是相辅相承的。
掌握了基本驱动开发能力、基本应用开发能力之后,在工作中你就可以跟别人友好沟通了,不至于一脸懵逼。
2.6,应用程序是怎么启动的?要了解一下根文件系统
你辛辛苦苦写出了应用程序,怎么把它放到板子上,让它开机就自动启动?
你写的程序,它依赖于哪些库,这些库放到板子上哪个目录?
怎么做一个可升级的系统?即使升级中途断电了,也要保证程序至少还可以运行老的版本?
这些都需要我们了解一下根文件系统。
先了解一下init进程:它要读取配置文件,根据配置文件启动各个APP。
了解了init进程,你就了解了根文件系统的组成,就可以随心所欲裁剪系统,为你的项目制作出最精简的系统。
第3章 学习方法
3.1 先不要打破砂锅问到底
嵌入式涉及的东西太多太杂了,如果心里没有主线,碰到什么都要去研究个透彻,最终反而忘记自己要学什么了。
嵌入式涉及硬件知识、软件知识,软件里涉及汇编、ARM架构、C语言、Makefile、Shell;又分为bootloader、内核、驱动、基本的APP、GUI。
比如我们会用到Makefile,了解它的基本规则,会用我们提供的Makefile就可以。
不需要深入研究那些make函数,因为在工作中都有现成的Makefile给你使用,不需要自己去编写一套Makefile。何必花上好几天去深入研究它呢?
比如我们会用到bootloader,难道又要花上几个月来深入研究u-boot吗?工作中基本不需要改u-boot,会用那几个命令就可以。
甚至有些学员先去买本shell的书来学习shell命令,何必?我们在视频中用到什么命令,你不懂时再去网络一下这些命令就可以了。
不要脱离初学者的主线:应用基础、驱动基础。有了这2个基础后,你想深入研究某部分时,再去花时间吧。
3.2 思路要清晰,不怕抄代码
视频里的代码,请你一定要自己去写一次、写多次。为什么我现在写驱动那么熟?我2009年在华清远见上课时,
每次上课我都要给学生写一次那些驱动,十几次下来闭着眼睛都知道内核的套路了。
记不住那些函数?我也记不住,我都是去参考同类的驱动程序,这又不是闭卷考试。
但是要理清楚思路,你写这个程序要完成什么功能、怎么实现这些功能?这个要弄清楚。
有了思路后再写代码,不知道怎么写?没关系,看看视频,看看示例,然后关闭视频看看能否自己写出来。
3.3 对自己的方向很了解,我只能带你到这里了
我的专长是操作系统,是快速地带领大家掌握一些项目开发的基础知识。
如果你决定深入研究某方面时,我并不能带你多久。你要去看源码,去看这方面的专业书籍。
比如想深入钻研内核的内存管理时,它有页表映射(你需要阅读ARM架构的手册)、SLAB分配器、vmalloc/malloc实现、mmap实现、缺页中断、父进程子进程之间的页面管理等等,内容非常多。有时候连书籍都没有,你需要直接啃代码。
当你想从事某个行业时,就需要深入研究行业相关的知识。
比如CAN总线,它可以写成一本书:CAN协议、CAN报文、Socket CAN、车身网络拓扑结构,CAN应用报文,CAN网络管理报文,CAN诊断报文。
想做物联网网关,需要深入研究MQTT,MQTT协议相对简单,但是MQTT英文原版协议有130多页,中文版有近100页,是一本小书了。
每个行业都有自己的业务逻辑,在掌握基本的编程能力之一,你需要结合具体的业务去深入学习。
㈥ 学习 arm体系结构与编程 这门课需要什么基础啊
C语言基础,汇编语言基础,到后面需要linux的相关知识,最重要的是你学会看arm的用户手册,因为arm要记得的东西不算多,因为我们是根据使用手册来编程的,建议你买一块arm的板子里面很多学习arm的资料,你也最好买一本相关的书看,个人建议你买2440的开发板和书本,只要熟悉一个类型的开发,其他类型的开发类似的
㈦ ARM嵌入式系统结构与编程的目录
ARM嵌入式系统结构与编程(第2版) 目录第1章绪论1.1嵌入式系统定义1.1.1嵌入式系统发展历程1.1.2嵌入式系统的定义与特点1.2嵌入式操作系统1.2.1嵌入式实时操作系统1.2.2实时操作系统的典型应用1.3嵌入式技术在工程领域的应用1.4嵌入式技术的发展趋势思考与练习题第2章ARM技术与ARM体系结构2.1ARM体系结构版本与内核2.1.1ARM体系结构版本2.1.2ARM内核版本命名规则2.1.3主流ARM处理器内核系列与应用2.2ARM内核模块2.3ARM处理器的工作模式2.4内部寄存器2.4.1通用寄存器及其分布2.4.2程序状态寄存器2.5ARM异常处理2.6存储方式与存储器映射机制2.7ARM流水线技术分析思考与练习题第3章ARM指令集寻址方式3.1ARM指令的编码格式3.2数据处理指令寻址方式3.3Load/Store指令寻址3.3.1地址计算方法3.3.2字、无符号字节寻址3.3.3半字、有符号字节寻址3.4批量Load/Store指令寻址方式3.5协处理器指令寻址方式思考与练习题第4章ARM指令集系统4.1数据处理指令4.1.1基本数据处理指令4.1.2乘法指令4.1.3杂类的数据处理指令4.2ARM分支指令4.3加载/存储指令4.3.1加载/存储字、无符号字节指令4.3.2半字、有符号字节访问指令4.4批量加载/存储指令4.4.1基本批量字数据加载/存储指令4.4.2用户模式下的批量字数据加载/存储指令4.4.3带PSR操作的批量字数据加载指令4.5交换指令4.6程序状态寄存器PSR访问指令4.7协处理器操作指令4.7.1协处理器数据操作指令4.7.2协处理器加载/存储指令4.7.3ARM寄存器与协处理器寄存器数据传输指令4.8异常产生指令思考与练习题第5章Thumb指令5.1Thumb数据处理指令5.1.1寄存器移位指令5.1.2低位寄存器算术运算指令5.1.3ALU操作指令5.1.4带高位寄存器操作的Thumb指令5.1.5带SP/PC的算术运算指令5.2Thumb存储器操作指令5.2.1字节、半字和字的加载/存储指令5.2.2批量加载/存储指令5.3Thumb分支指令5.3.1B分支指令5.3.2带链接的分支指令5.3.3带状态切换的分支指令5.4Thumb软中断指令5.5Thumb指令功能码段分析5.5.1Thumb与ARM实现功能比较5.5.2Thumb与ARM性能比较思考与练习题第6章ARM汇编伪指令与伪操作6.1汇编语言伪指令6.1.1ARM汇编语言伪指令6.1.2Thumb汇编语言伪指令6.2ARM汇编语言伪操作6.3ARM汇编伪操作6.3.1符号定义伪操作6.3.2数据定义伪操作6.3.3汇编代码控制伪操作6.3.4汇编信息报告控制伪操作6.3.5指令集类型标识伪操作6.3.6文件包含伪操作6.3.7其他类型伪操作6.4GNU ARM汇编伪操作6.4.1符号定义伪操作6.4.2数据定义伪操作6.4.3汇编与反汇编代码控制伪操作6.4.4预定义控制伪操作思考与练习题第7章汇编语言程序设计7.1ARM编译环境下汇编语句7.1.1ARM编译环境下汇编语句格式7.1.2ARM编译环境下汇编语句中符号规则7.2GNU环境下汇编语句与编译说明7.2.1GNU环境下ARM汇编语句格式7.2.2GNU环境下ARM汇编程序编译7.3ARM汇编语言程序设计规范7.4ARM汇编语言程序设计实例解析思考与练习题第8章ARM汇编语言与嵌入式C混合编程8.1嵌入式C编程规范8.2嵌入式C程序设计中的位运算8.3嵌入式C程序设计中的几点说明8.3.1volatile限制符8.3.2地址强制转换与多级指针8.3.3预处理的使用8.4嵌入式C程序设计格式8.5过程调用标准ATPCS与AAPCS8.5.1寄存器使用规则8.5.2数据栈使用规则8.5.3参数传递规则8.6ARM汇编语言与嵌入式C混合编程8.6.1内嵌汇编8.6.2ARM汇编语言与嵌入式C程序相互调用思考与练习题第9章S3C44B0/S3C2410/S3C2440硬件结构与关键技术分析9.1处理器简介9.2S3C44B0/S3C2410/S3C2440存储控制器9.2.1S3C44B0存储控制与地址空间9.2.2S3C2410/S3C2440存储控制与地址空间9.2.3S3C44B0/S3C2410/S3C2440存储位宽控制9.2.4S3C44B0/S3C2410/S3C2440存储器接口时序分析9.2.5S3C44B0/S3C2410存储控制寄存器9.2.6SDRAM接口电路设计9.2.7S3C44B0存储器初始化实例9.3S3C2410/S3C2440 NAND Flash控制器9.4S3C44B0/S3C2410/S3C2440时钟电源管理9.4.1S3C44B0/S3C2410/S3C2440时钟管理9.4.2S3C44B0/S3C2410/S3C2440电源管理9.4.3S3C44B0/S3C2410/S3C2440时钟与电源管理专用寄存器9.5S3C44B0/S3C2410/S3C2440通用 I/O端口9.5.1端口控制描述9.5.2端口寄存器9.5.3通用I/O接口设计实例9.6S3C44B0/S3C2410/S3C2440中断机制9.6.1S3C44B0中断控制器9.6.2S3C2410/S3C2440中断控制器9.6.3S3C44B0/S3C2410/S3C2440中断控制特殊功能寄存器9.6.4S3C44B0/S3C2410/S3C2440中断控制器设计实例思考与练习题第10章S3C44B0/S3C2410/S3C2440通信与LCD接口技术10.1S3C44B0/S3C2410/S3C2440 UART10.1.1UART原理10.1.2S3C44B0/S3C2410/S3C2440 UART模块10.1.3S3C44B0/S3C2410/S3C2440 UART操作10.1.4UART中断与波特率的计算10.1.5S3C44B0/S3C2410/S3C2440 UART专用功能寄存器10.1.6S3C44B0/S3C2410 UART设计实例10.2S3C44B0/S3C2410/S3C2440 I2C总线接口10.2.1I2C总线原理10.2.2S3C44B0/S3C2410/S3C2440 I2C总线功能模块10.2.3S3C44B0/S3C2410/S3C2440 I2C总线操作10.2.4S3C44B0/S3C2410/S3C2440 I2C专用功能寄存器10.2.5S3C44B0/S3C2410/S3C2440 I2C总线设计实例10.3S3C44B0/S3C2410/S3C2440 LCD控制器10.3.1LCD简介10.3.2S3C44B0/S3C2410/S3C2440 LCD控制器模块10.3.3S3C44B0/S3C2410/S3C2440 LCD控制器专用功能寄存器10.3.4S3C44B0/S3C2410/S3C2440 LCD控制器设计实例思考与练习题附录AS3C44B0/S3C2410/S3C2440封装与I/O复用信息附录B链接定位与系统引导程序附录CARM嵌入式系统结构课程考核标准试题参考文献
(此目录为2013年7月更新的第2版)
㈧ arm体系结构与编程适合没有学过单片机的初学者么
学arm,其实开始完全不用去看这本书,讲的都是汇编指令啥的,开始没什么用,现在都是C语言和C++来开发arm,都是跑操作系统的,arm工作方向主要分三个,第一就是硬件工程师,做电路板设计的,第二个就是系统工程师,主要是驱动编写,和移植嵌入式操作系统,第三个方向就是应用程序开发,完全不用懂硬件,用C++开发或者C语音等,至于你去看arm体系与结构,我告诉你,看100遍都没什么用,动手写一个点灯的驱动,然后开发一个应用程序,调用你的驱动,把灯点亮了,这个初学最快,一点经验之谈