ARM处理器裸机开发实战:机制而非策略

ARM处理器裸机开发实战:机制而非策略
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2012-01
版次: 1
ISBN: 9787121153037
定价: 56.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 369页
字数: 614千字
正文语种: 简体中文
  • 《ARM处理器裸机开发实战:机制而非策略》面向立志于进行ARM嵌入式开发的初学者以及从单片机向ARM处理器转型的工程师,按照理论实践相结合的思想,介绍了ARM嵌入式开发过程中的基础理论,并给出了具体的实例。全书共分为4篇,包括ARM汇编语言、ARMC语言、ARM处理器各功能模块开发等内容。
    《ARM处理器裸机开发实战:机制而非策略》针对ARM处理器裸机开发过程中的重点、难点问题,既有基础知识的讲述,又有相关配套实验,使读者能容易、快速、全面地掌握ARM处理器裸机开发。 第1篇基础篇
    第1章ARM处理器简介
    1.1处理器工作模式
    1.2寄存器介绍
    1.2.1堆栈指针寄存器R13和链接寄存器R14
    1.2.2程序计数器R15
    1.2.3程序状态寄存器
    1.3工作状态
    1.4数据长度
    1.5存储系统
    1.5.1ARM地址空间
    1.5.2ARM存储器的格式
    1.6天嵌TQ2440开发板硬件资源概述
    1.7本章小结
    1.8扩展阅读之CISC处理器和RISC处理器简介

    第2章ADS集成开发环境及程序下载具体流程
    2.1ADS1.2集成开发环境简介
    2.1.1CodeWarriorforARM
    2.1.2AXD调试器的启动
    2.2工程的编辑与修改
    2.2.1建立一个新工程
    2.2.2建立一个源文件
    2.2.3添加源文件到工程
    2.2.4编译与链接工程
    2.2.5打开已有的工程
    2.3工程的调试
    2.3.1装载映像文件
    2.3.2调试工具条的使用
    2.4H-JTAG的安装与调试
    2.4.1H-JTAG的安装
    2.4.2H-JTAG的设置
    2.5使用U-Boot下载裸机程序
    2.6本章小结

    第3章ARM指令集及汇编语言基础
    3.1ARM指令集介绍
    3.1.1ARM指令集
    3.1.2ARM寻址方式
    3.1.3ARM伪操作和伪指令介绍
    3.2ARM汇编基础知识
    3.3ARM汇编程序的基本结构
    3.3.1编写汇编程序基本的格式规范
    3.3.2程序入口和程序结束
    3.3.3段
    3.3.4标号(标志符)
    3.3.5外部标号
    3.3.6文件包含
    3.4用AXD调试ARM汇编程序实验
    3.4.1建立工程并添加源文件
    3.4.2工程的设置
    3.4.3编译源文件
    3.4.4启动AXD调试器
    3.4.5手把手调试汇编程序
    3.5常用汇编语言程序子模块实例分析
    3.5.1特殊功能寄存器的访问
    3.5.2内存数据复制
    3.5.3批量加载与存储
    3.5.4堆栈操作
    3.5.5实现查表功能
    3.6本章小结
    3.7扩展阅读之内存和I/O地址、前序寻址和后序寻址

    第4章ARMC语言基础
    4.1数据类型基础
    4.1.1用typedef和#define定义类型
    4.1.2用signed和unsigned修饰数据类型
    4.1.3volatile和强制类型转换
    4.2深入理解位运算符和位运算
    4.2.1按位与运算符(&)
    4.2.2按位或运算符(|)
    4.2.3按位取反运算符(~)
    4.2.4左移和右移运算符(<<)、(>>)
    4.2.5位运算应用实例分析
    4.3控制结构
    4.3.1选择结构
    4.3.2循环结构
    4.4防止文件重复包含技巧
    4.5ARM编译器对C语言的扩展
    4.5.1__irq声明中断处理函数
    4.5.2__swi声明软中断
    4.5.3__asm内嵌汇编
    4.5.4__inline定义内联函数
    4.6本章小结
    4.7扩展阅读之高速缓存基础知识

    第5章ARM汇编语言和C语言混合编程基础
    5.1一个混合编程实例的实现
    5.2APCS规则概述
    5.2.1寄存器的使用
    5.2.2参数传递
    5.2.3函数的返回值
    5.3本章小结

    第6章GPIO编程实验
    6.1GPIO概述
    6.1.1GPIO引脚介绍
    6.1.2GPIO特性分析
    6.1.3GPIO相关寄存器
    6.1.4GPIO应用实例
    6.2基础实验:第一个裸机程序——流水灯
    6.2.1硬件电路分析
    6.2.2建立工程并添加启动代码
    6.2.3添加源文件
    6.2.4编辑源文件
    6.2.5工程设置、编译、链接
    6.2.6下载程序到开发板运行
    6.2.7由点亮LED引发的思考
    6.2.8再议点亮LED实验
    6.2.9将点亮一个LED扩展到流水灯
    6.3GPIO扩展实验
    6.3.1按键实验
    6.3.2蜂鸣器实验
    6.4本章小结
    6.5扩展阅读之模块化编程、NANDFLASH和NORFLASH概述

    第2篇提高篇
    第7章启动代码分析
    7.1从开发板硬件讲起
    7.1.1TQ2440核心板芯片功能介绍
    7.1.2从NANDFLASH和NORFLASH启动流程分析
    7.2启动代码详解
    7.3启动代码主要功能模块分析
    7.3.1建立中断向量表
    7.3.2初始化各个模式的堆栈
    7.3.3初始化系统硬件
    7.3.4初始化应用程序的执行环境并跳转到主程序执行
    7.3.5跳转到C语言主程序执行
    7.4本章小结
    7.5本章附录——完整版启动代码

    第8章系统时钟和定时器
    8.1S3C2440时钟系统概述
    8.1.1系统时钟初始化
    8.1.2FCLK、HCLK和PCLK与Fin的关系
    8.2定时器原理与应用
    8.2.1定时器原理
    8.2.2定时器相关的寄存器
    8.2.3定时器基础实验代码详解及测试
    8.2.4定时器扩展实验之PWM实验
    8.3本章小结

    第9章存储器控制器
    9.1S3C2440地址空间
    9.2操作实例:SDRAM实例分析
    9.2.1SDRAM工作原理
    9.2.2SDRAM接口电路设计
    9.2.3SDRAM初始化过程详解
    9.2.4回顾启动代码中的SDRAM初始化
    9.3本章小结

    第10章通用异步收发器(UART)
    10.1UART概述
    10.2S3C2440处理器UART工作原理
    10.3引脚描述及相关寄存器
    10.4UART基础实验
    10.4.1硬件电路分析
    10.4.2程序设计及代码详解
    10.4.3实例测试
    10.4.4UART基础实验分析
    10.5UART高级实验——可变参数函数在UART中的应用
    10.5.1程序设计及代码详解
    10.5.2实例测试
    10.6本章小结

    第11章中断控制系统
    11.1S3C2440中断系统概述
    11.1.1深入理解CPU的工作模式
    11.1.2中断控制器
    11.2外部中断实验
    11.2.1硬件电路分析
    11.2.2程序分析
    11.2.3中断执行流程详解
    11.2.4中断处理流程引发的思考
    11.2.5实例测试
    11.2.6为什么进入不了中断
    11.3定时器中断实验
    11.3.1程序代码分析
    11.3.2实例测试
    11.4串口中断原理及实验
    11.4.1如何正确使用中断
    11.4.2程序代码分析
    11.4.3实例测试
    11.5ARM中断之高级应用:软中断原理及实验
    11.5.1程序代码分析
    11.5.2实例测试
    11.5.3软中断所用到的启动代码
    11.6本章小结

    第12章NANDFLASH原理与实验
    12.1FLASH概述
    12.1.1NANDFLASH的基本结构
    12.1.2NANDFLASH接口电路
    12.1.3如何访问NANDFLASH
    12.1.4S3C2440NANDFLASH控制器
    12.1.5使用宏代替简单的函数
    12.2NANDFLASH基础实验
    12.2.1NANDFLASH基本操作函数分析
    12.2.2NANDFLASH基础实验之页读写
    12.2.3页读写实例测试
    12.2.4NANDFLASH基础实验之读ID
    12.2.5读ID实例测试
    12.3NANDFLASH高级实验
    12.3.1随机读、写实验代码详解
    12.3.2随机读、写实例测试
    12.4回顾启动代码中的NANDFLASH读取函数
    12.5本章小结

    第13章LCD控制器原理与实验
    13.1LCD和LCD控制器工作原理
    13.1.1LCD概述
    13.1.2LCD接口信号
    13.1.3LCD显示原理
    13.1.4LCD操作时序详解
    13.1.5S3C2440LCD控制器
    13.1.6LCD控制寄存器初始化
    13.2LCD基础实验
    13.2.1硬件电路分析
    13.2.2程序代码分析
    13.2.3实例测试
    13.3LCD基础实验之单像素显示
    13.3.1程序代码分析
    13.3.2实例测试
    13.4LCD基础实验之图片显示
    13.4.1如何将图片转换为C语言数组
    13.4.2程序代码分析
    13.4.3实例测试
    13.5LCD高级实验之汉字显示
    13.5.1两种常见的汉字编码
    13.5.2LCD汉字显示原理
    13.5.3程序代码分析
    13.5.4实例测试
    13.5.5LCD显示高级技巧——可变参函数Lcd_Printf的实现
    13.5.6可变参函数Lcd_Printf测试
    13.5.7汉字区位码的思考
    13.5.8实例测试
    13.6本章小结

    第14章ADC原理与实验
    14.1ADC原理
    14.1.1ADC相关寄存器
    14.1.2ADC初始化
    14.2ADC实验
    14.2.1ADC实验代码详解
    14.2.2ADC实验测试
    14.3本章小结

    第3篇典型项目分析
    第15章综合实战
    15.1实战1:数据采集系统实现
    15.1.1功能描述
    15.1.2模块划分
    15.1.3代码实现
    15.1.4实例测试
    15.1.5实验总结
    15.2实战2:串口控制实验
    15.2.1功能描述
    15.2.2模块划分
    15.2.3代码实现
    15.2.4实例测试
    15.2.5实验总结
    15.3实战3:制作电子相册
    15.3.1功能描述
    15.3.2模块划分
    15.3.3代码实现
    15.3.4实例测试
    15.3.5实验总结

    第4篇理论知识扩展
    第16章嵌入式系统电源设计和Linux内核开发基础
    16.1直流稳压电源分类
    16.1.1普通线性稳压器工作原理
    16.1.2低压差线性稳压器工作原理
    16.1.3电容式开关电源的工作原理
    16.1.4电感式开关电源的工作原理
    16.1.5嵌入式系统设计中的电源芯片选型
    16.1.6设计实例分析
    16.2Linux内核基础实验
    16.2.1实验一:修改调度算法实验
    16.2.2实验二:添加内核模块实验
    参考文献
  • 内容简介:
    《ARM处理器裸机开发实战:机制而非策略》面向立志于进行ARM嵌入式开发的初学者以及从单片机向ARM处理器转型的工程师,按照理论实践相结合的思想,介绍了ARM嵌入式开发过程中的基础理论,并给出了具体的实例。全书共分为4篇,包括ARM汇编语言、ARMC语言、ARM处理器各功能模块开发等内容。
    《ARM处理器裸机开发实战:机制而非策略》针对ARM处理器裸机开发过程中的重点、难点问题,既有基础知识的讲述,又有相关配套实验,使读者能容易、快速、全面地掌握ARM处理器裸机开发。
  • 目录:
    第1篇基础篇
    第1章ARM处理器简介
    1.1处理器工作模式
    1.2寄存器介绍
    1.2.1堆栈指针寄存器R13和链接寄存器R14
    1.2.2程序计数器R15
    1.2.3程序状态寄存器
    1.3工作状态
    1.4数据长度
    1.5存储系统
    1.5.1ARM地址空间
    1.5.2ARM存储器的格式
    1.6天嵌TQ2440开发板硬件资源概述
    1.7本章小结
    1.8扩展阅读之CISC处理器和RISC处理器简介

    第2章ADS集成开发环境及程序下载具体流程
    2.1ADS1.2集成开发环境简介
    2.1.1CodeWarriorforARM
    2.1.2AXD调试器的启动
    2.2工程的编辑与修改
    2.2.1建立一个新工程
    2.2.2建立一个源文件
    2.2.3添加源文件到工程
    2.2.4编译与链接工程
    2.2.5打开已有的工程
    2.3工程的调试
    2.3.1装载映像文件
    2.3.2调试工具条的使用
    2.4H-JTAG的安装与调试
    2.4.1H-JTAG的安装
    2.4.2H-JTAG的设置
    2.5使用U-Boot下载裸机程序
    2.6本章小结

    第3章ARM指令集及汇编语言基础
    3.1ARM指令集介绍
    3.1.1ARM指令集
    3.1.2ARM寻址方式
    3.1.3ARM伪操作和伪指令介绍
    3.2ARM汇编基础知识
    3.3ARM汇编程序的基本结构
    3.3.1编写汇编程序基本的格式规范
    3.3.2程序入口和程序结束
    3.3.3段
    3.3.4标号(标志符)
    3.3.5外部标号
    3.3.6文件包含
    3.4用AXD调试ARM汇编程序实验
    3.4.1建立工程并添加源文件
    3.4.2工程的设置
    3.4.3编译源文件
    3.4.4启动AXD调试器
    3.4.5手把手调试汇编程序
    3.5常用汇编语言程序子模块实例分析
    3.5.1特殊功能寄存器的访问
    3.5.2内存数据复制
    3.5.3批量加载与存储
    3.5.4堆栈操作
    3.5.5实现查表功能
    3.6本章小结
    3.7扩展阅读之内存和I/O地址、前序寻址和后序寻址

    第4章ARMC语言基础
    4.1数据类型基础
    4.1.1用typedef和#define定义类型
    4.1.2用signed和unsigned修饰数据类型
    4.1.3volatile和强制类型转换
    4.2深入理解位运算符和位运算
    4.2.1按位与运算符(&)
    4.2.2按位或运算符(|)
    4.2.3按位取反运算符(~)
    4.2.4左移和右移运算符(<<)、(>>)
    4.2.5位运算应用实例分析
    4.3控制结构
    4.3.1选择结构
    4.3.2循环结构
    4.4防止文件重复包含技巧
    4.5ARM编译器对C语言的扩展
    4.5.1__irq声明中断处理函数
    4.5.2__swi声明软中断
    4.5.3__asm内嵌汇编
    4.5.4__inline定义内联函数
    4.6本章小结
    4.7扩展阅读之高速缓存基础知识

    第5章ARM汇编语言和C语言混合编程基础
    5.1一个混合编程实例的实现
    5.2APCS规则概述
    5.2.1寄存器的使用
    5.2.2参数传递
    5.2.3函数的返回值
    5.3本章小结

    第6章GPIO编程实验
    6.1GPIO概述
    6.1.1GPIO引脚介绍
    6.1.2GPIO特性分析
    6.1.3GPIO相关寄存器
    6.1.4GPIO应用实例
    6.2基础实验:第一个裸机程序——流水灯
    6.2.1硬件电路分析
    6.2.2建立工程并添加启动代码
    6.2.3添加源文件
    6.2.4编辑源文件
    6.2.5工程设置、编译、链接
    6.2.6下载程序到开发板运行
    6.2.7由点亮LED引发的思考
    6.2.8再议点亮LED实验
    6.2.9将点亮一个LED扩展到流水灯
    6.3GPIO扩展实验
    6.3.1按键实验
    6.3.2蜂鸣器实验
    6.4本章小结
    6.5扩展阅读之模块化编程、NANDFLASH和NORFLASH概述

    第2篇提高篇
    第7章启动代码分析
    7.1从开发板硬件讲起
    7.1.1TQ2440核心板芯片功能介绍
    7.1.2从NANDFLASH和NORFLASH启动流程分析
    7.2启动代码详解
    7.3启动代码主要功能模块分析
    7.3.1建立中断向量表
    7.3.2初始化各个模式的堆栈
    7.3.3初始化系统硬件
    7.3.4初始化应用程序的执行环境并跳转到主程序执行
    7.3.5跳转到C语言主程序执行
    7.4本章小结
    7.5本章附录——完整版启动代码

    第8章系统时钟和定时器
    8.1S3C2440时钟系统概述
    8.1.1系统时钟初始化
    8.1.2FCLK、HCLK和PCLK与Fin的关系
    8.2定时器原理与应用
    8.2.1定时器原理
    8.2.2定时器相关的寄存器
    8.2.3定时器基础实验代码详解及测试
    8.2.4定时器扩展实验之PWM实验
    8.3本章小结

    第9章存储器控制器
    9.1S3C2440地址空间
    9.2操作实例:SDRAM实例分析
    9.2.1SDRAM工作原理
    9.2.2SDRAM接口电路设计
    9.2.3SDRAM初始化过程详解
    9.2.4回顾启动代码中的SDRAM初始化
    9.3本章小结

    第10章通用异步收发器(UART)
    10.1UART概述
    10.2S3C2440处理器UART工作原理
    10.3引脚描述及相关寄存器
    10.4UART基础实验
    10.4.1硬件电路分析
    10.4.2程序设计及代码详解
    10.4.3实例测试
    10.4.4UART基础实验分析
    10.5UART高级实验——可变参数函数在UART中的应用
    10.5.1程序设计及代码详解
    10.5.2实例测试
    10.6本章小结

    第11章中断控制系统
    11.1S3C2440中断系统概述
    11.1.1深入理解CPU的工作模式
    11.1.2中断控制器
    11.2外部中断实验
    11.2.1硬件电路分析
    11.2.2程序分析
    11.2.3中断执行流程详解
    11.2.4中断处理流程引发的思考
    11.2.5实例测试
    11.2.6为什么进入不了中断
    11.3定时器中断实验
    11.3.1程序代码分析
    11.3.2实例测试
    11.4串口中断原理及实验
    11.4.1如何正确使用中断
    11.4.2程序代码分析
    11.4.3实例测试
    11.5ARM中断之高级应用:软中断原理及实验
    11.5.1程序代码分析
    11.5.2实例测试
    11.5.3软中断所用到的启动代码
    11.6本章小结

    第12章NANDFLASH原理与实验
    12.1FLASH概述
    12.1.1NANDFLASH的基本结构
    12.1.2NANDFLASH接口电路
    12.1.3如何访问NANDFLASH
    12.1.4S3C2440NANDFLASH控制器
    12.1.5使用宏代替简单的函数
    12.2NANDFLASH基础实验
    12.2.1NANDFLASH基本操作函数分析
    12.2.2NANDFLASH基础实验之页读写
    12.2.3页读写实例测试
    12.2.4NANDFLASH基础实验之读ID
    12.2.5读ID实例测试
    12.3NANDFLASH高级实验
    12.3.1随机读、写实验代码详解
    12.3.2随机读、写实例测试
    12.4回顾启动代码中的NANDFLASH读取函数
    12.5本章小结

    第13章LCD控制器原理与实验
    13.1LCD和LCD控制器工作原理
    13.1.1LCD概述
    13.1.2LCD接口信号
    13.1.3LCD显示原理
    13.1.4LCD操作时序详解
    13.1.5S3C2440LCD控制器
    13.1.6LCD控制寄存器初始化
    13.2LCD基础实验
    13.2.1硬件电路分析
    13.2.2程序代码分析
    13.2.3实例测试
    13.3LCD基础实验之单像素显示
    13.3.1程序代码分析
    13.3.2实例测试
    13.4LCD基础实验之图片显示
    13.4.1如何将图片转换为C语言数组
    13.4.2程序代码分析
    13.4.3实例测试
    13.5LCD高级实验之汉字显示
    13.5.1两种常见的汉字编码
    13.5.2LCD汉字显示原理
    13.5.3程序代码分析
    13.5.4实例测试
    13.5.5LCD显示高级技巧——可变参函数Lcd_Printf的实现
    13.5.6可变参函数Lcd_Printf测试
    13.5.7汉字区位码的思考
    13.5.8实例测试
    13.6本章小结

    第14章ADC原理与实验
    14.1ADC原理
    14.1.1ADC相关寄存器
    14.1.2ADC初始化
    14.2ADC实验
    14.2.1ADC实验代码详解
    14.2.2ADC实验测试
    14.3本章小结

    第3篇典型项目分析
    第15章综合实战
    15.1实战1:数据采集系统实现
    15.1.1功能描述
    15.1.2模块划分
    15.1.3代码实现
    15.1.4实例测试
    15.1.5实验总结
    15.2实战2:串口控制实验
    15.2.1功能描述
    15.2.2模块划分
    15.2.3代码实现
    15.2.4实例测试
    15.2.5实验总结
    15.3实战3:制作电子相册
    15.3.1功能描述
    15.3.2模块划分
    15.3.3代码实现
    15.3.4实例测试
    15.3.5实验总结

    第4篇理论知识扩展
    第16章嵌入式系统电源设计和Linux内核开发基础
    16.1直流稳压电源分类
    16.1.1普通线性稳压器工作原理
    16.1.2低压差线性稳压器工作原理
    16.1.3电容式开关电源的工作原理
    16.1.4电感式开关电源的工作原理
    16.1.5嵌入式系统设计中的电源芯片选型
    16.1.6设计实例分析
    16.2Linux内核基础实验
    16.2.1实验一:修改调度算法实验
    16.2.2实验二:添加内核模块实验
    参考文献
查看详情