您现在的位置: 北发图书网 >>图书 >> 计算机原理与基础 >> ARM Cortex-MO全可编程SoC原理及实现-面向处理器.协议.外设.编程和操作系统
热销排行榜
最近浏览的其他商品
    浏览更多同类商品
    ARM Cortex-MO全可编程SoC原理及实现-面向处理器.协议.外设.编程和操作系统
    丛书名: ISBN: 978-7-302-45732-9
    供应商: 清华大学出版社 出版日期: 2017年3月1日
    编著者: 何宾 译者:
    版次: 1 印次: 1
    页数: 语种:
    纸张: 包装: 平装
    开本: 32开 读者对象:
    原价: ¥79.00 折扣价: ¥57.70    立刻节省:¥21.30
    存量: 现在有货,只剩下9本 销量: 4
       
        
    所属分类:
    首页 >> 科学技术 >> 计算机与网络 >> 计算机原理与基础
    分享到:新浪微博    推荐到豆瓣    腾讯微博    白社会    开心网
    编辑推荐
      1. 知识融合 将ARM公司开源的Cortex-M0 IP用于典型嵌入式系统设计,内容涵盖了处理器架构、指令集、汇编语言、协议、接口、C语言、操作系统等方面的知识。
    内容提要

      《ARM Cortex-M0 全可编程SoC原理及实现:面向处理器、协议、外设、编程和操作系统》以ARM公司免费开放的CortexM0 DesignStart处理器 IP核为基础,以CortexM0处理器架构、AMBA规范、外设、汇编语言、C语言、CMSIS、驱动程序开发以及RTX操作系统为主线,详细介绍了通过Xilinx Vivado以及Keil μVision5集成开发环境构建CortexM0全可编程嵌入式系统的硬件和软件设计方法。

      全书共分18章,主要内容包括: 全可编程SoC设计导论、CortexM0 CPU结构、CortexM0指令集、CortexM0低功耗特性、AHBLite总线结构分析、CortexM0汇编语言编程基础、CortexM0 DesignStart架构、Xilinx Artix7 FPGA结构、CortexM0嵌入式系统设计与实现、7段数码管控制器设计与实现、中断系统设计与实现、定时器设计与实现、UART串口控制器设计与实现、VGA控制器设计与实现、DDR3存储器系统设计与实现、CortexM0 C语言编程基础、CMSIS和驱动程序开发、RTX操作系统原理及应用。

      本书可作为讲授ARM CortexM0嵌入式系统课程以及CortexM0可编程SoC系统设计课程的教学参考用书,也可作为学习Xilinx Vivado集成开发环境和Verilog HDL语言的参考用书。




    节选

      第5章AHBLite总线结构分析

      ARM公司提供的高级微控制器总线结构(Advanced Microcontroller Bus Architecture,AMBA)规范是实现ARM处理器和外部设备互连的基础。在基于ARM CortexM0的SoC中,通过AMBA规范中的AHBLite协议,实现ARM CortexM0处理器主设备对多个从设备的无障碍访问。

      根据ARM AMBA规范,本章将详细介绍AMBA规范中的AHBLite协议,内容主要包括总线及分类、ARM AMBA系统总线、AMBA3 AHBLite总线、AHBLite总线结构、AHBLite总线时序,以及硬件实现。

      通过本章的学习,要求读者掌握AHBLite的结构、接口信号和访问时序关系,这些内容是读者可以顺利学习本章后续内容的基础。

      5.1总线及分类

      本节介绍总线的概念及分类。

      5.1.1总线的概念

      传统上,总线是一个通信系统,用于在一个计算机的不同部件之间实现数据传输。硬件和软件两个方面定义了构成总线的要素:

      (1) 从硬件上来说,包括物理实现,如电缆或者连线。例如,使用PCI总线电缆连接一个台式计算机内的部件,如图5.1所示。

      图5.1PCI插槽和连线

      (2) 从软件上来说,包括总线协议,如PCI总线协议。

      5.1.2总线分类

      在计算机系统中,通常将总线分为两类。

      1) 外部总线

      外部总线主要用于连接外部设备,例如,将一台计算机与一台打印机进行连接。

      2) 内部总线

      (1) 内部总线也称为系统总线,用于连接一台计算机的内部部件,例如,将CPU连接到存储器。

      (2) 较少的开销,例如,不需要处理电特性,以及配置检测等。

      (3) 内部总线的工作速度比外部总线要快。

      (4) 在SoC内,将内部总线集成到单个芯片中,因此称它为片上系统总线。

      思考与练习51: 说明计算机系统总线的分类,以及它们的作用。

      5.2ARM AMBA系统总线

      在SoC设计中,高级微控制器总线结构(Advanced Microcontroller Bus Architecture,AMBA)用于片上总线。自从AMBA出现后,其应用领域早已超出了微控制器设备,现在被广泛地应用于各种范围的ASIC和SOC器件,包括用于便携设备的应用处理器。

      AMBA协议是一个开放标准的片上互联规范(除AMBA5以外),用于SoC内功能模块的连接和管理。它便于第一时间开发包含大量控制器和外设的多处理器设计。其发展过程如下:

      1) 1996年,ARM公司推出了AMBA的第一个版本,包括:

      (1) 高级系统总线(Advanced System Bus,ASB);

      (2) 高级外设总线(Advanced Peripheral Bus,APB)。

      2) 第2个版本为AMBA2,ARM增加了AMBA高性能总线(AMBA Highperformance Bus, AHB),它是一个单个时钟沿的协议。AMBA2用于ARM公司的ARM7和ARM9处理器。

      3) 2003年,ARM推出了第三个版本即AMBA3,增加了以下规范:

      (1) 高级可扩展接口(Advanced Extensible Interface,AXI)v1.0/AXI3,它用于实现更高性能的互连。

      (2) 高级跟踪总线(Advanced Trace Bus,ATB)v1.0,它用于CoreSight片上调试和跟踪解决方案。

      此外,还包含下面的协议:

      (1) 高级高性能总线简化(Advanced Highperformance Bus Lite,AHBLite)v1.0。

      (2) 高级外设总线(Advanced Peripheral Bus,APB)v1.0。

      其中:

      (1) AHBLite和APB规范用于ARM的CortexM0、M3和M4。

      (2) AXI规范,用于ARM的CortexA9、A8、R4和R5的处理器。

      4) 2009年,Xilinx同ARM密切合作,共同为基于FPGA的高性能系统和设计定义了AXI4规范。并且在其新一代可编程门阵列芯片上采用了高级可扩展接口AXI4协议。主要包括:

      (1) AXI一致性扩展(AXI Coherency Extensions,ACE)。

      (2) AXI一致性扩展简化(AXI Coherency Extensions Lite,ACELite)。

      (3) 高级可扩展接口4(Advanced eXtensible Interface 4,AXI4)。

      (4) 高级可扩展接口4简化(Advanced eXtensible Interface 4 Lite,AXI4Lite)。

      (5) 高级可扩展接口4流(Advanced eXtensible Interface 4 Stream,AXI4Stream)v1.0。

      (6) 高级跟踪总线(Advanced Trace Bus,ATB)v1.1。

      (7) 高级外设总线(Advanced Peripheral Bus,APB)v2.0。

      其中的ACE规范用于ARM的CortexA7和A15处理器。

      5) 2013年,ARM推出了AMBA5。该协议增加了一致集线器接口(Coherent Hub Interface,CHI)规划,用于ARM CortexA50系列处理器,以高性能、一致性处理“集线器”方式协同工作,这样就能在企业级市场中实现高速可靠的数据传输。

      思考与练习52: 说明ARM AMBA的含义,以及所实现的目的。

      思考与练习53: 说明在ARM CortexM0中所采用的总线规范。

      思考与练习54: 在ARM AMBA中,对于APB、AHB和AXI来说,性能最高的是,性能最低的是。

      5.3AMBA3 AHBLite总线

      AMBA3中的AHB,被称为高性能总线,主要体现在:

      (1) 可以实现高性能的同步设计;

      (2) 支持多个总线主设备;

      (3) 提供高带宽操作。

      而AHBLite是AHB的子集,简化了AHB总线的设计,典型地,只有一个主设备。

      5.3.1AHBLite概述

      在基于AHBLite总线构成的系统中,通过该总线,处理器实现对所有外设的控制,如图5.2所示。在该系统中,所有外设均提供AHBLite接口,用于和主处理器进行连接。对于AHBLite来说,它包含数据总线、控制总线和额外的控制信号,其中:

      (1) 数据总线用于交换数据信息。

      (2) 地址总线用于选择一个外设,或者一个外设中的某个寄存器。

      (3) 控制信号用于同步和识别交易,如: 准备,写/读以及传输模式信号。

      图5.2由AHBLite构成的处理系统

      5.3.2AHBLite总线操作

      图5.3总线操作过程

      处理器访问一个AHBLite外设的操作过程,如图5.3所示。该过程主要包括:

      (1) 通过地址总线,处理器给出所要访问AHBLite外设的地址信息。

      (2) 通过地址译码器,生成选择一个外设或者寄存器的选择信号。同时,处理器提供用于控制所选AHBLite外设的控制信号,如读/写,传输数据的数量等。

      (3) 如果处理器给出的是读取AHBLite外设的控制信号,则等待外设准备好后,读取该外设的数据。

      除了上面介绍的基本操作过程外,AHBLite总线可以实现更多复杂的功能,如传输个数和猝发模式等。

      思考与练习55: 说明在AHBLite中所包含的总线类型,以及这些总线各自的作用。

      思考与练习56: 根据图5.3,详细说明CortexM0处理器和AHBLite外设的信息交互过程。

      5.4AHBLite总线结构

      基于AHBLite总线所构成的计算机系统架构,如图5.4所示。在该系统中,包括以下功能部件:

      图5.4构成AHBLite系统的单元

      (1) 主设备。在本书中,主设备是指CortexM0处理器。此外,在包含直接存储器访问(Direct Memory Access,DMA)控制器的系统中,主设备还包括DMA控制器。

      (2) 地址译码器。主要用于选择CortexM0所要访问的从设备。

      (3) 从设备多路复用器。主要用于从多个从设备中选择所要读取的数据和响应信号。

      (4) 多个从设备。它们都包含AHBLite接口,主设备可以通过该接口访问它们。

      此外,系统还应该包含时钟和复位模块单元。时钟模块用于为整个SoC系统提供时钟源; 复位模块用于为整个SoC系统提供复位信号。通过时钟和复位信号,使得SoC系统内的各个功能部件有序工作。

      5.4.1全局信号

      在AHBLite协议中,提供了两个全局信号,如表5.1所示。在该设计中,HCLK的频率与CortexM0处理器的频率相同。在CortexM0系统中,所有的功能部件都包含该全局信号。在基于ARM CortexM0处理器的SoC系统中,时钟模块和复位模块用于提供全局信号。

      表5.1AHBLite协议中的全局信号

      信号名字和方向描述

      HCLK时钟,源指向所有的部件总线时钟用来驱动所有的总线传输。所有信号的时序均以HCK时钟的上升沿为基准

      HRESETn复位,由控制器指向所有的部件总线复位信号低有效,用于复位系统和总线

      5.4.2AHBLite主设备接口

      AHBLite主设备提供地址和控制信息,用于初始化读和写操作。然后,主设备接收来自从设备的响应信息,包括数据、准备信号和响应信号,如图5.5所示。在该设计中,主设备只有CortexM0处理器,它用于提供访问从设备的AHBLite接口信号。

      图5.5构成AHBLite主设备接口信号

      为了方便对本书后续内容的学习,下面给出AHBLite主设备接口信号的详细信息,如表5.2所示。

      表5.2AHBLite主设备接口信号

      信号方向描述

      HADDR [31∶0]由主设备指向从设备以及译码器32位系统地址总线

      HWDATA [31∶0]由主设备指向从设备写数据总线,用于在写操作周期内将数据从主设备发送到从设备

      HWRITE由主设备指向从设备用于指示传输的方向。当该信号为高时,表示写传输; 当该信号为低时,表示读传输

      HSIZE [2∶0]由主设备指向从设备表示传输的宽度,如字节、半字和字

      HBURST [2∶0]由主设备指向从设备猝发类型,表示传输是单个传输还是猝发的一部分

      HPROT [3∶0]由主设备指向从设备保护控制信号提供了关于总线访问的额外的信息。它被模块使用,用于实现某个级别的保护

      HTRANS [1∶0]由主设备指向从设备表示当前传输的类型,可以是IDLE、BUSY、NONSEQUENTIAL或SEQUENTIAL

      HMASTLOCK由主设备指向从设备当该信号为高时,表示当前传输是某个锁定序列的一部分

      本书所使用的CortexM0处理器IP核,通过组合表5.2中的信号可以得到四种基本的传输类型,如表5.3所示。

      表5.3处理器AHBLite交易类型

      交易访问描述

      HSTRANS[1∶0]=2'b00空闲处理器不希望执行任何交易

      HSTRANS[1∶0]=2'b10

      HPROT[0]=1'b0

      HSIZE[1∶0]=2'b10

      HWRITE=1'b0取指处理器希望执行取指操作。处理器一次从存储器中取出32位的指令,如果有其他要求,则处理器内部缓冲和管理两个16位指令的提取

      HSTRANS[1∶0]=2'b10

      HPROT[0]=1'b1

      HSIZE[1∶0]=2'b00字节处理器希望执行一个由LDRB、LDRBS、STRB指令所产生的8位数据访问操作。加载指令将驱动HWRITE信号为低; 保存指令将驱动HWRITE信号为高

      续表

      交易访问描述

      HSTRANS[1∶0]=2'b10

      HPROT[0]=1'b1

      HSIZE[1∶0]=2'b01半字处理器希望执行一个由LDRH、LDRHS、STRH指令所产生的16位数据访问操作。加载指令将驱动HWRITE信号为低; 保存指令将驱动HWRITE信号为高

      HSTRANS[1∶0]=2'b10

      HPROT[0]=1'b1

      HSIZE[1∶0]=2'b10字

      处理器希望执行一个由LDR、LDM、POP、STR、STM、PUSH指令,或者异常入口的一部分,或者返回所产生的32位数据访问操作。加载指令将驱动HWRITE信号为低; 保存指令将驱动HWRITE信号为高

      本书所使用的CortexM0处理器,总是工作在小端模式,所有的交易总是自然对齐。HRDATA和HWDATA活动字节的通道,以及它们在CortexM0处理器里对应的源/目的寄存器,如表5.4所示。

      表5.4处理器AHBLite读/写数据字节通道

      地 址 阶 段数 据 阶 段

      HSIZE[1∶0]HADDR[1∶0]HxDATA

      [31∶24]HxDATA

      [23∶16]HxDATA

      [15∶8]HxDATA

      [7∶0]

      0000———Rd[7∶0]

      0001——Rd[7∶0]—

      0010—Rd[7∶0]——

      0011Rd[7∶0]———

      0100——Rd[15∶8]Rd[7∶0]

      0110Rd[15∶8]Rd[7∶0]——

      1000Rd[31∶24]Rd[23∶16]Rd[15∶8]Rd[7∶0]

      用于CortexM0处理器的存储器属性由ARMv6M架构决定,其地址空间的使用规则是固定的。从HADDR映射出来的HPROT[3∶2]位含义如表5.5所示。

      表5.5处理器存储器映射属性

      HADDR[31∶0]类型HPROT[3∶2]推荐的用法

      32′hF0000000~

      32′hFFFFFFFFF设备01无

      32′hE0000000~

      32′hEFFFFFFFF保留—映射到处理器内部的外设,如NVIC

      32′hA0000000~

      32′hDFFFFFFFF设备01外设

      32′h80000000~

      32'′h9FFFFFFFF正常(写通过)10片外RAM

      32′h60000000~

      32′h7FFFFFFFF正常(写回和写分配)11片外RAM

      续表

      HADDR[31∶0]类型HPROT[3∶2]推荐的用法

      32′h40000000~

      32′h5FFFFFFFF设备01外设

      32′h20000000~

      32′h3FFFFFFFF正常(写回和写分配)11片上RAM

      32′h00000000~

      32′h1FFFFFFFF正常(写通过)10程序代码

      5.4.3AHBLite从设备接口

      为了响应系统主设备所建立的传输,从设备也需要提供对应的AHBLite接口,如图5.6所示。通过本身所提供的AHBLite接口,从设备与主设备实现数据传输。

      在从设备接口上,有一个HSELx信号,由地址译码器的输出信号HSELx给出,用于在一个时刻选择所要访问的一个从设备。

      图5.6构成AHBLite从设备接口信号

      为了方便本书后续内容的学习,下面给出AHBLite从设备接口信号的详细信息,如表5.6所示。

      表5.6AHBLite从设备接口信号

      信号方向描述

      HRDATA [31∶0]由从设备指向多路选择器在读传输时,读数据总线将所选中从设备的数据发送到从设备多路选择器,然后由从设备多路选择器将数据传给主设备

      HREADYOUT由从设备指向多路选择器当该信号为高时,完成总线上的传输过程; 该信号驱动为低时,扩展一个传输

      HRESP由从设备指向多路选择器传输响应,当通过多路复用器时,为主设备提供额外的传输状态信息。当该信号为低时,表示传输状态为OKAY; 当该位为高时,表示传输状态是ERROR

      5.4.4地址译码器和多路复用器

      基于AHBLite所构建的CortexM0 SoC系统还提供了地址译码器和多路复用器。从结构上来说:

      (1) 地址译码器为一对多设备,由一个主设备指向多个从设备;

      (2) 多路复用器为多对一设备,由多个从设备指向一个主设备。

      注: 在本书中,主设备只有ARM CortexM0处理器。

      1. 地址译码器的功能

      在系统中,地址译码器的输入为地址信号,输出为选择信号,如图5.7所示,它实现的功能主要包括:

      (1) 根据主设备在地址总线上所提供的访问地址空间信息,生成选择一个从设备的选择信号。

      (2) 同时,选择信号也连接到从设备多路选择器,用于从多个从设备中选择所对应的从设备返回信息。

      图5.7地址译码器和从设备多路复用器

      2. 多路复用器的功能

      在系统中,来自不同从设备的响应信号,包括: HRDATA、HREADY和HRESP连接到多路复用器的输入,如图5.7所示。根据地址译码器所生成的选择信号,多路复用器将选择的从设备响应信号送给主设备。

      3. 接口信号

      译码器和多路选择器信号的详细信息,如表5.7所示。

      表5.7译码器和多路选择器信号

      信号方向描述

      HRDATA [31∶0]由多路复用器指向主设备来自多路复用器到主设备的读数据

      HREADY由多路复用器指向主设备和从设备来自多路复用器到主设备的准备信号。当该位为高时,该信号表示到主设备和先前完成传输的所有从设备

      续表

      信号方向描述

      HRESP由多路复用器指向主设备来自多路复用器到主设备的传输响应信号

      HSELx由译码器指向从设备每个AHBLite从设备有自己的从设备选择信号HSELx,该信号表示当前传输所对应的从设备。当一开始就选中该从设备时,它也必须监视HREADY的状态,以确保在响应当前传输前,已经完成前面的总线传输

      思考与练习57: 说明在基于AHBLite所构建的SoC系统中所包含的主要功能部件。

      思考与练习58: 说明在基于AHBLite所构建的SoC系统中地址译码器的功能。

      思考与练习59: 说明在基于AHBLite所构建的SoC系统中多路复用器的功能。

      思考与练习510: 根据图5.7,分析基于AHBLite的架构。

      5.5AHBLite总线时序

      一个AHBLite传输包括两个阶段:

      1) 地址阶段

      只持续一个HCLK周期,除非被前面的总线传输进行了扩展。

      2) 数据阶段

      可能要求几个HCLK周期。使用HREADY信号来控制完成传输所需要的周期数。

      在AHBLite中,引入了流水线传输的机制,包括:

      (1) 当前操作的数据访问可以与下一个操作的地址访问重叠。

      (2) 使能高性能的操作,同时仍然为从设备提供充分的时间,为传输提供响应信息。

      注: 在后续的介绍中,只实现基本的总线操作,即

      (1) HBURST[2∶0]=3'b000,表示没有猝发交易;

      (2) HMASTLOCK=1'b0,表示不产生带锁定的交易;

      (3) HTRANS[1∶0]=2'b00或者2'b10,表示发起的交易为非顺序的传输。

      5.5.1无等待基本读传输

      无等待的基本读传输时序,如图5.8所示,包括:

      ……



    作者介绍
    何宾著名的嵌入式技术和EDA技术专家, 长期从事电子设计自动化方面的教学和科研工 作,与全球多家知名的半导体厂商和EDA工具 厂商大学计划保持紧密合作。目前已经出版嵌 入式和EDA方面的著作30余部,内容涵盖电路 仿真、电路设计、可编程逻辑器件、数字信号 处理、单片机、嵌入式系统、片上可编程系统 等。典型的代表作有< Xilinx FPGA设计权威 指南》《Xilinx FPGA数字设计——从门级到 行为级的双重描述》《Xilinx FPGA数字信号 处理权威指南——从HDL、模型到C的描述》 《Xilinx All Programmable 2ynq-7000嵌入式系 统设计与实现》《模拟与数字系统协同设计权 威指南-Cypress集成开发环境》《STC单片 机原理及应用》《STC单片机C语言程序设计》 《 Altium Designer 13.0电路设计、仿真与验证权 威指南》《Altium Designer 15.0电路仿真、设 计、验证与工艺实现权威指南》。
    目录

    第1章全可编程SoC设计导论

    1.1SoC基础知识

    1.1.1SoC的概念

    1.1.2SoC与MCU及CPU的比较

    1.1.3典型的商用SoC器件

    1.2SoC设计流程

    1.3SoC体系架构

    1.4全可编程SoC技术

    1.4.1基于软核的全可编程SoC

    1.4.2基于硬核的全可编程SoC

    1.5全可编程SoC设计流程

    第2章CortexM0 CPU结构

    2.1ARM处理器类型

    2.2CortexM系列处理器概述

    2.2.1CortexM系列处理器的特点

    2.2.2CortexM系列处理器的性能参数

    2.3CortexM0处理器性能和结构

    2.3.1CortexM0处理器的性能

    2.3.2CortexM0处理器的结构

    2.4CortexM0处理器寄存器组

    2.4.1通用寄存器

    2.4.2堆栈指针

    2.4.3程序计数器

    2.4.4链接寄存器

    2.4.5组合程序状态寄存器

    2.4.6中断屏蔽特殊寄存器

    2.4.7特殊寄存器

    2.5CortexM0存储器空间映射

    2.6CortexM0程序镜像原理及生成方法

    2.7CortexM0的端及分配

    2.8CortexM0处理器异常及处理

    2.8.1异常原理

    2.8.2异常优先级

    2.8.3向量表

    2.8.4异常类型

    第3章CortexM0指令集

    3.1Thumb指令集

    3.2CortexM0汇编语言格式

    3.3寄存器访问指令: MOVE

    3.4存储器访问指令: LOAD

    3.5存储器访问指令: STORE

    3.6多数据访问指令: LDM和STM

    3.7堆栈访问指令: PUSH和POP

    3.8算术运算指令

    3.8.1加法指令

    3.8.2减法指令

    3.8.3乘法指令

    3.8.4比较指令

    3.9逻辑操作指令

    3.10移位操作指令

    3.10.1右移指令

    3.10.2左移指令

    3.11反序操作指令

    3.12扩展操作指令

    3.13程序流控制指令

    3.14存储器屏蔽指令

    3.15异常相关指令

    3.16休眠相关指令

    3.17其他指令

    3.18数据插入和对齐操作

    第4章CortexM0低功耗特性

    4.1低功耗要求

    4.2CortexM0低功耗特性及优势

    4.2.1CortexM0低功耗特性

    4.2.2CortexM0低功耗结构

    4.3CortexM0休眠模式

    4.4唤醒中断控制器

    4.5降低功耗的其他方法

    第5章AHBLite总线结构分析

    5.1总线及分类

    5.1.1总线的概念

    5.1.2总线分类

    5.2ARM AMBA系统总线

    5.3AMBA3 AHBLite总线

    5.3.1AHBLite概述

    5.3.2AHBLite总线操作

    5.4AHBLite总线结构

    5.4.1全局信号

    5.4.2AHBLite主设备接口

    5.4.3AHBLite从设备接口

    5.4.4地址译码器和多路复用器

    5.5AHBLite总线时序

    5.5.1无等待基本读传输

    5.5.2有等待基本读传输

    5.5.3无等待基本写传输

    5.5.4有等待基本写传输

    5.6硬件实现

    第6章CortexM0汇编语言编程基础

    6.1Keil MDK开发套件

    6.1.1下载MDK开发套件

    6.1.2安装MDK开发套件

    6.1.3MDK程序处理流程

    6.2CortexM0汇编语言程序设计

    6.2.1建立新设计工程

    6.2.2工程参数设置

    6.2.3添加汇编文件

    6.2.4汇编语言语法

    6.3.lst文件分析

    6.4.map文件分析

    6.5.hex文件分析

    6.6软件仿真和调试

    6.6.1查看CortexM0寄存器内容

    6.6.2查看CortexM0存储器内容

    6.6.3查看监视窗口的内容

    6.7汇编语言其他常用语法介绍

    6.7.1标识符的命名规则

    6.7.2变量

    6.7.3常数

    6.7.4EQU命令

    6.7.5IMPORT/EXTERN命令

    6.7.6子程序调用

    6.7.7宏定义和使用

    第7章CortexM0 DesignStart架构

    7.1获取CortexM0 DesignStart

    7.2CortexM0 DesignStart顶层符号

    7.2.1中断

    7.2.2状态输出

    7.2.3事件信号

    7.3AHBLite接口

    7.4将CortexM0 DesignStart集成到系统的方法

    第8章XILINX Artix7 FPGA结构

    8.1Artix7器件逻辑资源

    8.2可配置逻辑块

    8.2.1可配置逻辑块概述

    8.2.2查找表

    8.2.3多路复用器

    8.2.4进位逻辑

    8.2.5存储元素

    8.2.6分布式RAM(只有SLICEM)

    8.2.7只读存储器(ROM)

    8.2.8移位寄存器(只有SLICEM)

    8.3时钟资源和时钟管理单元

    8.3.17系列FPGA时钟资源

    8.3.27系列内部时钟结构

    8.3.37系列FPGA时钟管理模块

    8.4块存储器资源

    8.5专用的DSP模块

    8.6输入/输出块

    8.6.1I/O特性概述

    8.6.2Artix7中的I/O列和类型

    8.6.3I/O电气资源

    8.6.4I/O逻辑资源

    8.7XADC模块

    8.8吉比特收发器

    8.9PCIE模块

    8.10配置模块

    8.11互连资源

    第9章CortexM0嵌入式系统设计与实现

    9.1设计目标

    9.2CortexM0 SoC系统的构建

    9.2.1启动Vivado 2016集成开发环境

    9.2.2创建新的设计工程

    9.2.3添加CortexM0处理器源文件

    9.2.4添加系统主时钟IP核

    9.3设计文件修改和分析

    9.3.1AHB总线地址译码器

    9.3.2AHB总线从设备多路复用器

    9.3.3AHB片上存储器外设

    9.3.4AHB LED外设

    9.3.5AHBLITE_SYS顶层文件

    9.4程序代码的编写

    9.4.1建立新设计工程

    9.4.2工程参数设置

    9.4.3添加和编译汇编文件

    9.4.4分析HEX文件与汇编文件的关系

    9.4.5添加HEX文件到当前工程

    9.5RTL详细描述和分析

    9.6仿真原理和行为级仿真

    9.6.1仿真实现的不同功能

    9.6.2Vivado所支持的仿真工具

    9.6.3行为级仿真实现

    9.6.4添加信号并仿真

    9.6.5仿真结果分析

    9.7设计综合和分析

    9.7.1综合过程的关键问题

    9.7.2设计综合选项

    9.7.3Vivado支持的属性

    9.7.4执行设计综合

    9.7.5查看综合报告

    9.8创建实现约束

    9.8.1实现约束的原理

    9.8.2I/O规划器功能

    9.8.3引脚位置约束的实现

    9.9设计实现和分析

    9.9.1实现过程原理

    9.9.2设计实现选项

    9.9.3设计实现

    9.9.4查看布局布线后的结果

    9.9.5查看实现后的报告

    9.9.6功耗分析

    9.9.7静态时序分析

    9.10实现后时序仿真

    9.11生成编程文件

    9.12下载比特流文件到FPGA

    9.13生成并下载外部存储器文件

    第10章7段数码管控制器设计与实现

    10.1设计目标

    10.2打开前面的设计工程

    10.3添加并分析7段数码管控制器源文件

    10.3.1添加7段数码管控制器源文件

    10.3.2分析7段数码管控制器源文件

    10.4修改并分析顶层设计文件

    10.5编写程序代码

    10.5.1建立新设计工程

    10.5.2工程参数设置

    10.5.3添加和编译汇编文件

    10.5.4添加HEX文件到当前工程

    10.6设计综合

    10.7添加约束条件

    10.8设计实现

    10.9下载比特流文件

    10.10系统在线调试原理

    10.11系统在线调试实现

    10.11.1建立新的调试工程

    10.11.2添加调试网络

    10.11.3在线测试分析

    第11章中断系统设计与实现

    11.1设计目标

    11.2中断控制器原理

    11.2.1NVIC特点

    11.2.2NVIC映射

    11.2.3NVIC寄存器

    11.3进入和退出异常句柄的过程

    11.3.1进入中断句柄的过程

    11.3.2退出中断句柄的过程

    11.4打开前面的设计工程

    11.5添加并分析按键消抖模块源文件

    11.5.1添加按键消抖模块源文件

    11.5.2分析按键消抖模块源文件

    11.6修改并分析顶层设计文件

    11.7编写程序代码

    11.7.1建立新设计工程

    11.7.2工程参数设置

    11.7.3软件初始化中断

    11.7.4添加和编译汇编文件

    11.7.5添加HEX文件到当前工程

    11.8设计综合

    11.9添加约束条件

    11.10设计实现

    11.11下载比特流文件

    第12章定时器设计与实现

    12.1设计目标

    12.2打开前面的设计工程

    12.3添加并分析定时器模块源文件

    12.3.1定时器模块设计原理

    12.3.2添加定时器源文件

    12.3.3分析定时器源文件

    12.4修改并分析顶层设计文件

    12.5编写程序代码

    12.5.1建立新设计工程

    12.5.2工程参数设置

    12.5.3添加和编译汇编文件

    12.5.4添加HEX文件到当前工程

    12.6设计综合

    12.7设计实现

    12.8下载比特流文件

    第13章UART串口控制器设计与实现

    13.1设计目标

    13.2串行通信基础

    13.2.1串行和并行通信之间的比较

    13.2.2串行通信的类型

    13.3通用异步收发数据格式和编码

    13.3.1数据格式

    13.3.2字符编码规则

    13.4UART串口控制器的实现原理

    13.4.1UART发送器

    13.4.2UART接收器

    13.4.3发送器/接收器FIFO

    13.5打开前面的设计工程

    13.6添加并分析UART模块源文件

    13.6.1添加UART模块源文件

    13.6.2分析UART模块源文件

    13.7修改并分析顶层设计文件

    13.8编写程序代码

    13.8.1建立新设计工程

    13.8.2工程参数设置

    13.8.3添加和编译汇编文件

    13.8.4添加HEX文件到当前工程

    13.9设计综合

    13.10添加约束条件

    13.11设计实现

    13.12下载比特流文件

    第14章VGA控制器设计与实现

    14.1设计目标

    14.2VGA工作原理

    14.2.1VGA连接器

    14.2.2CRT原理

    14.2.3VGA接口信号

    14.2.4VGA时序

    14.3VGA显示硬件实现原理

    14.3.1VGA图像缓冲区

    14.3.2VGA控制台

    14.3.3VGA控制器存储器空间

    14.4打开前面的设计工程

    14.5添加并分析VGA模块源文件

    14.5.1添加VGA模块源文件

    14.5.2分析VGA模块源文件

    14.6修改其他设计

    14.6.1添加并分析顶层设计文件

    14.6.2修改时钟生成器输出频率

    14.6.3修改波特率时钟

    14.7编写程序代码

    14.7.1建立新设计工程

    14.7.2工程参数设置

    14.7.3添加和编译汇编文件

    14.7.4添加HEX文件到当前工程

    14.8设计综合

    14.9添加约束条件

    14.10设计实现

    14.11下载比特流文件

    第15章DDR3存储器系统设计与实现

    15.1计算机搭载的存储器设备

    15.2存储器类型

    15.2.1易失性存储器

    15.2.2非易失性存储器

    15.3系统设计目标

    15.3.1硬件构建目标

    15.3.2软件编程目标

    15.4DDR3 SDRAM控制器设计原理

    15.4.1DDR3 SDRAM存储器结构

    15.4.2DDR3 SDRAM控制器结构

    15.4.3DDR3 SDRAM的读写访问时序

    15.5DDR3 SDRAM控制器系统设计与实现

    15.5.1打开前面的设计工程

    15.5.2设计DDR3 SDRAM存储器控制器

    15.5.3修改系统设计文件

    15.5.4编写程序代码

    15.5.5设计综合

    15.5.6设计实现

    15.5.7下载比特流文件

    第16章CortexM0 C语言编程基础

    16.1C语言处理流程

    16.2C语言镜像文件内容和存储

    16.2.1C语言镜像文件的内容

    16.2.2C语言镜像文件的存储位置

    16.3启动代码的分析

    16.4C语言中数据的存储空间

    16.5C语言数据类型及实现

    16.5.1C语言支持的数据类型

    16.5.2数据类型修饰符

    16.6C语言编程CortexM0

    16.6.1定义中断向量表

    16.6.2定义堆和堆栈

    16.6.3读写外设寄存器

    16.6.4汇编调用C函数

    16.6.5C语言调用汇编语言

    16.6.6C语言嵌入汇编语言

    16.7C语言驱动的设计和实现

    16.7.1打开前面的设计工程

    16.7.2建立新的软件设计工程

    16.7.3软件工程参数设置

    16.7.4创建并添加汇编文件

    16.7.5创建并添加头文件

    16.7.6创建并添加C文件

    16.7.7添加HEX文件到当前工程

    16.7.8设计综合

    16.7.9设计实现

    16.7.10下载比特流文件

    16.8C语言重定向及实现

    16.8.1打开前面的设计工程

    16.8.2打开前面的软件设计工程

    16.8.3修改启动引导文件

    16.8.4导入并修改retarget.c文件

    16.8.5修改C设计文件

    16.8.6添加HEX文件到当前工程

    16.8.7设计综合

    16.8.8设计实现

    16.8.9下载比特流文件

    第17章CMSIS和驱动程序开发

    17.1引入CMSIS的必要性

    17.2CMSIS的优势

    17.3CMSIS的框架

    17.4使用CMSIS访问不同资源

    17.4.1访问NVIC

    17.4.2访问特殊寄存器

    17.4.3访问特殊指令

    17.4.4访问系统

    17.5软件驱动程序的设计

    17.5.1软件驱动程序的功能

    17.5.2AHB外设驱动设计

    17.6动态图形交互系统设计

    17.6.1动态图形交互硬件平台

    17.6.2触摸屏显示控制方法

    17.6.3触摸屏触摸控制方法

    17.6.4打开前面的设计工程

    17.6.5触摸屏控制器模块的设计实现

    17.6.6修改顶层设计文件

    17.6.7C语言程序的设计和实现

    17.6.8设计综合

    17.6.9添加约束条件

    17.6.10设计实现

    17.6.11下载比特流文件

    第18章RTX操作系统原理及应用

    18.1RTOS的优势

    18.2操作系统的概念

    18.3操作系统支持特性

    18.3.1SysTick定时器

    18.3.2堆栈指针

    18.3.3SVC

    18.3.4PendSV

    18.4RTX内核架构的特点

    18.5RTX的具体实现过程

    18.5.1实现目标

    18.5.2打开前面的工程

    18.5.3修改工程属性设置

    18.5.4修改启动代码

    18.5.5导入RTX_Config.c文件

    18.5.6修改main.c文件

    18.5.7软件调试和测试

    18.6RTX内核功能

    18.6.1定时器滴答中断

    18.6.2系统任务管理器

    18.6.3任务管理

    18.6.4空闲任务

    18.6.5系统资源

    18.6.6任务调度策略

    18.6.7优先级倒置

    18.6.8堆栈管理

    18.6.9用户定时器

    18.6.10中断函数


    豆瓣评论
     
    商品搜索:  书名  作者  供应商  高级搜索
     
    公司简介 | 服务承诺 | 保护隐私权 | 业务合作 | 法律顾问 | 友情链接
    客服专线:010-80808080 客服邮箱:service@beifabook.com
    Copyright © 北发图书网 2007, beifabook.com All Rights Reserved
    京ICP证070509号/京ICP备10016977号/ 京公网安备11011202000189号  出版物经营许可证 新出发京批字第直0979号
    北京北发电子商务股份有限公司 版权所有