ARM Cortex 嵌入式系统开发教程

出版社:西安电子科技大学出版社
出版日期:2012-12
ISBN:9787560629032
作者:黄建华
页数:320页

章节摘录

版权页:   插图:   存放在存储器中的描述符包括以太网帧片段的相关信息,一个片段可以是一个完整的帧或一个极小的数据量。每个描述符都含有一个指针,指向相关的以太网帧数据存储器地址,描述符还含有缓冲区的大小以及如何发送或接收片段的详细设置。状态字则保存了DMA引擎处理该帧后(发送或接收)的结果。有关描述及状态字的定义参见5.2.7小节。 在进行以太网数据通信前,驱动程序必须先初始化好描述符与状态字,然后由DMA引擎根据各个描述的要求处理对应的以太网帧,最后将结果保存在对应的状态字中。用户程序根据描述符与状态字对以太网数据进一步处理。 2.描述符队列与状态字队列概述 由于每个以太网帧需要一个描述符与一个状态字匹配,因此将描述符和状态字都各自维护为循环队列。根据发送和接收方向的不同,在MAC模块中共有4个循环队列:发送描述符队列、发送状态字队列、接收描述符队列和接收状态字队列。其中发送方向的两个队列与接收方向的两个队列的长度必须相同。另外,由于描述符队列与状态字队列都保存在RAM中,为了提高以太网操作性能,建议存放描述与状态的RAM不要与其它模块公用。 根据循环队列的工作特性,队列的队尾(数据入队列端)称为生产者(producer),队列的队头(数据出队列端)称为消费者(consumer)。针对MAC模块发送方向的两个队列,DMA引擎为消费者,即从队列取出描述符进行以太帧发送;驱动程序为生产者,即把以太帧复制到缓冲区,并将描述符入队列。而针对MAC模块接收方向的两个队列,DMA引擎为生产者,即把MAC接收到的以太帧复制到缓冲区,并将描述符入队列;驱动程序为消费者,即从队列取出描述符,根据描述符将以太帧复制到用户空间。 为了方便程序操作循环队列,MAC模块将队头和队尾索引保存在寄存器中。其中DMA引擎硬件维护TxConsumelndex和RxProducelndex队列索引;驱动程序软件维护TxProduceIndex和RxConsumeIndex队列索引。程序通过读取这些索引就可对循环队列进行操作,找到对应的以太帧数据。DMA引擎处理完以太帧后会自动更新索引(包括索引越界检查),以供驱动程序使用;驱动程序处理完以太帧后则需要程序对索引进行更新(包括越界检查),以供DMA引擎使用。 MAC模块的循环队列与队列索引的关系如图5.6所示。

书籍目录

第1章嵌入式系统概述1 1.1嵌入式系统简介1 1.1.1嵌入式系统的定义1 1.1.2嵌入式系统的组成2 1.1.3嵌入式系统的特点3 1.2嵌入式处理器3 1.2.1嵌入式处理器的分类4 1.2.2LPC1700系列6 1.3嵌入式操作系统11 1.3.1操作系统的概念11 1.3.2嵌入式Linux12 1.3.3C/OS—Ⅱ12 1.3.4WindowsCE12 1.3.5VxWorks13 习题13 第2章ARMCortex—M3体系结构14 2.1ARMCortex—M3编程模型14 2.1.1ARMCortex—M3处理器的编程模型14 2.1.2Cortex—M3处理器的工作状态和工作模式16 2.2ARMCortex—M3寄存器组织17 2.2.1通用寄存器18 2.2.2程序状态寄存器19 2.2.3控制寄存器20 2.2.4中断屏蔽寄存器21 2.3ARMCortex—M3存储器21 2.3.1Cortex—M3存储器格式21 2.3.2Cortex—M3存储器映射22 2.3.3存储器访问属性24 2.3.4位带(bit—band)操作25 2.4ARMCortex—M3异常处理27 2.4.1异常类型27 2.4.2异常优先级29 2.4.3向量表29 2.5NVIC与中断控制31 2.5.1NVIC概述31 2.5.2中断配置基础31 2.5.3中断的使能与禁止31 2.5.4中断的挂起与解挂32 2.5.5中断建立全过程33 2.5.6中断/异常的响应序列33 2.5.7异常返回34 2.5.8SysTick定时器34 习题37 第3章LPC1700系列处理器38 3.1LPC1700系列处理器简介38 3.1.1LPC1700系列处理器特性38 3.1.2LPC1700系列处理器结构40 3.2处理器引脚配置42 3.2.1引脚配置42 3.2.2引脚连接模块52 3.2.3引脚连接模块的使用举例54 3.3存储器管理55 3.4时钟和功率控制58 3.4.1晶体振荡器58 3.4.2PLL0锁相环60 3.4.3时钟分频65 3.4.4功率控制68 3.4.5外部时钟输出引脚72 3.5系统控制模块74 3.5.1复位74 3.5.2掉电检测75 3.5.3外部中断76 3.5.4系统控制和状态标志79 3.6LPC1700系统例程79 3.6.1CMSIS的系统启动代码79 3.6.2外部中断例程88 3.6.3SysTick定时器例程89 习题91 第4章LPC1700系列处理器基本接口技术92 4.1GPIO接口92 4.1.1特性92 4.1.2应用场合93 4.1.3引脚描述93 4.1.4寄存器描述93 4.1.5使用注意事项103 4.1.6应用举例104 4.2定时器106 4.2.1特性106 4.2.2应用场合107 4.2.3定时器结构107 4.2.4引脚功能描述108 4.2.5寄存器功能描述108 4.2.6应用举例114 4.2.7重复中断定时器(RIT)概述117 4.2.8RIT寄存器描述117 4.2.9RIT操作119 4.3看门狗119 4.3.1功能描述119 4.3.2看门狗结构120 4.3.3寄存器功能描述120 4.3.4操作举例123 4.4UART串口通信124 4.4.1概述124 4.4.2UART结构125 4.4.3寄存器功能描述126 4.4.4基本操作134 4.4.5应用举例135 4.5ADC/DAC137 4.5.1LPC1700DAC特性137 4.5.2DAC引脚描述137 4.5.3DAC寄存器描述137 4.5.4DAC基本操作139 4.5.5LPC1700ADC特性139 4.5.6ADC引脚描述139 4.5.7ADC寄存器描述140 4.5.8ADC基本操作144 4.5.9应用举例144 4.6实时时钟145 4.6.1功能描述145 4.6.2结构及引脚146 4.6.3寄存器功能描述147 4.6.4RTC使用注意事项154 4.6.5应用举例154 4.7其它接口156 4.7.1GPDMA控制器156 4.7.2PWM接口164 4.7.3QEI接口169 习题172 第5章LPC1700系列处理器通信接口技术173 5.1I2C总线接口173 5.1.1I2C接口特性173 5.1.2I2C总线引脚及应用173 5.1.3I2C总线基本原理174 5.1.4I2C操作模式175 5.1.5I2C接口寄存器描述176 5.1.6应用举例186 5.2以太网接口190 5.2.1以太网接口概述190 5.2.2以太网接口特性190 5.2.3以太网接口结构及引脚描述191 5.2.4以太网接口操作概述192 5.2.5帧描述符与状态字194 5.2.6以太网帧操作举例201 5.2.7寄存器描述204 5.2.8以太网接口驱动程序举例223 5.3SPI接口与串口闪存232 5.3.1SPI接口概述232 5.3.2SPI接口引脚232 5.3.3SPI接口寄存器描述233 5.3.4SPI接口结构框图237 5.3.5SPI接口操作238 5.3.6串口闪存操作举例239 5.4CAN总线接口245 5.4.1CAN总线接口概述245 5.4.2CAN模块内存映射表247 5.4.3CAN控制器寄存器描述247 5.4.4CAN控制器操作249 5.5USB接口250 5.5.1USB总线概述250 5.5.2USB设备接口结构描述251 5.5.3固定的端点配置252 5.5.4USB设备接口操作概述253 5.5.5USB设备接口寄存器描述254 5.5.6USB设备控制器的初始化255 5.5.7串行接口引擎命令描述256 5.6I2S接口258 5.6.1I2S接口概述258 5.6.2引脚描述259 5.6.3I2S接口寄存器描述260 习题261 第6章嵌入式实时操作系统262 6.1嵌入式实时操作系统基础262 6.1.1嵌入式实时操作系统简介262 6.1.2嵌入式实时操作系统基本概念263 6.2μC/OS—Ⅱ内核原理267 6.2.1μC/OS—Ⅱ任务管理269 6.2.2μC/OS—Ⅱ的API函数280 6.2.3μC/OS—Ⅱ的文件结构和移植294 6.3基于μC/OS—Ⅱ的嵌入式系统程序设计实例308 习题319 参考文献320

编辑推荐

《高等学校电子信息学科"十二五"规划教材:ARM Cortex嵌入式系统开发教程》以当前流行的ARMCortex—M3内核和业界著名的NXP公司出品的LPCI700系列最新处理器作为讲授对象。与《高等学校电子信息学科"十二五"规划教材:ARM Cortex嵌入式系统开发教程》配套的还有一套自行开发的、基于LPCI700系列处理器的实验平台,包括实验设备、相关软件和相应实验指导书,可以将理论教学与实践教学有机地结合起来,切实提高学生的实际动手能力,为培养、训练学生开展科研、产品研发的能力,乃至日后走上工作岗位打下较坚实的基础。

作者简介

《ARM Cortex嵌入式系统开发教程(高等学校电子信息学科十二五规划教材)》编著者黄建华等。
《ARM Cortex嵌入式系统开发教程(高等学校电子信息学科十二五规划教材)》是嵌入式系统微控制器教材,基于ARM Cortex-M3核的芯片LPC1700讲述了嵌入式系统基本概念以及Cortex体系结构和嵌入式系统开发设计方法。全书共6章,主要内容包括嵌入式系统概述、ARM Cortex-M3体系结构、LPC1700系列处理器、LPC1700系列处理器基本接口技术、LPC1700系列处理器通信接口技术以及嵌入式实时操作系统。
本书可作为高等院校电子信息类、计算机类、自动控制类和机械电子类等专业高年级本科生、研究生的教材,也可作为嵌入式系统设计工程师的参考书。


 ARM Cortex 嵌入式系统开发教程下载



发布书评

 
 


 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024