热搜关键词: matlab人工智能算法嵌入式雷达电机驱动

pdf

嵌入式系统——体系结构、编程与设计 (Raj Kamal, 陈曙晖)

  • 1星
  • 2023-11-26
  • 22.92MB
  • 需要1积分
  • 22次下载
标签: 嵌入式

嵌入式

本书是嵌入式系统的基础教程,主要面向初级系统设计人员。书中详细介绍了嵌入式系统最基本的软件和硬件要素,以及将代码嵌入到系统中的一些软件技术和接口技术。

目录

第1章嵌入式系统简介  1

1.1嵌入式系统  2

1.1.1系统  2

1.1.2嵌入式系统  3

1.1.3嵌入式系统的分类  4

1.1.4嵌入式系统设计者需要具备的技能  5

1.2系统中的处理器  6

1.2.1系统中的处理器  6

1.2.2微处理器  7

1.2.3微控制器  8

1.2.4复杂系统的嵌入式处理器  10

1.2.5数字信号处理器  11

1.2.6嵌入式系统的专用系统处理器  11

1.2.7使用通用处理器的多处理器系统  12

1.3其他硬件单元  13

1.3.1电源和低功耗管理  13

1.3.2时钟振荡电路和时钟单元  15

1.3.3系统需要的各种计时和计数功能的实时时钟和定时器  16

1.3.4复位电路、加电复位和Watchdog定时器复位  16

1.3.5存储器  17

1.3.6输入、输出和I/O端口,IO总线和IO接口  18

1.3.7中断处理器  19

1.3.8DAC(使用PWM)和ADC  19

1.3.9LCD和LED显示  20

1.3.10小键盘/键盘  21

1.3.11脉冲拨号电路、调制解调器和收发器  21

1.3.12GPIB(IEEE488)连接  21

1.3.13嵌入式系统硬件的连接和接口总线及单元  22

1.3.14案例中所需要的硬件单元  22

1.4嵌入系统软件  24

1.4.1产品的最终机器可实现软件  24

1.4.2用机器码编写软件  25

1.4.3用特定于处理器的汇编语言编写软件  26

1.4.4用高级语言编写软件  27

1.4.5使用操作系统的设备驱动程序和设备管理软件  29

1.4.6多任务调度和使用RTOS设备的软件设计  30

1.4.7设计嵌入式系统的软件工具  30

1.4.8示例中需要的软件工具  32

1.4.9软件设计模型  32

1.5示例嵌入式系统  33

1.6嵌入式片上系统(SOC)和内部VLSI电路  35

1.6.1用于便携式电话的SoC示例  35

1.6.2ASIP  36

1.6.3IP核  36

1.6.4嵌入GPP  37

1.6.5具有一个或者多个处理器的FPGA核  37

1.6.6示例SoC中的组成部分--智能卡  38

第2章处理器和存储器组织  45

2.1处理器中的结构单元  46

2.2嵌入式系统的处理器选择  55

2.3存储器设备  58

2.3.1ROM:使用方法、形式和变种  59

2.3.2RAM设备  60

2.4嵌入式系统的存储器选择  61

2.5程序段和块的存储器分配及系统的存储器映射  64

2.5.1各种存储器段中的函数、过程、数据和堆栈  64

2.5.2不同数据结构和数据集合元素的存储器块  66

2.5.3存储器映射  71

2.5.4内部设备和I/O设备在映射中的地址  77

2.6直接存储器访问  79

2.7处理器、存储器和I/O设备的接口  80

第3章设备网络的设备和总线  87

3.1I/O设备  88

3.1.1I/O设备的类型和示例  88

3.1.2串行设备的同步、准同步和异步通信  90

3.1.3内部串行通信设备的示例  93

3.1.4并口设备  95

3.1.5设备端口的复杂接口特性  97

3.2定时器和计数设备  98

3.3互连的多个设备之间通过I2C、CAN和高级I/O总线进行串?型ㄐ?102

3.3.1I2C总线  102

3.3.2CAN总线  103

3.3.3USB总线  105

3.3.4先进的串行高速总线  105

3.4多个互连I/O设备之间通过ISA、PCI、PCI-X和高级总线进行的计算机

或者主机系统并行通信  106

3.4.1ISA总线  106

3.4.2PCI和PCI/X总线  107

3.4.3高级并行高速总线  108

第4章设备驱动程序和中断服务机制  115

4.1设备驱动程序  117

4.1.1不使用ISR的设备服务  117

4.1.2设备驱动程序ISR  118

4.1.3设备驱动程序  120

4.1.4作为设备驱动和网络函数的Linux内幕  121

4.1.5编写系统中的物理设备驱动ISR  122

4.1.6虚拟设备  123

4.2系统中的并口设备驱动程序  124

4.3系统中的串口设备驱动程序  130

4.4内部可编程定时设备的设备驱动程序  134

4.5中断服务(处理)机制  135

4.5.1硬件和软件相关的中断源  135

4.5.2软件错误相关的硬件中断  135

4.5.3软件指令相关的中断源  137

4.5.4内部设备相关的硬件中断  138

4.5.5中断向量  138

4.5.6根据可屏蔽和不可屏蔽的中断分类  138

4.5.7所有可屏蔽中断源的激活(未屏蔽)和禁用(屏蔽)  139

4.5.8中断挂起寄存器或者状态寄存器  139

4.6上下文和上下文切换周期、最终期限和中断延迟  139

4.6.1上下文、延迟和最终期限  139

4.6.2从上下文保存的角度对处理器中断服务机制的分类  143

4.6.3使用DMA通道帮助缩短中断延迟周期  144

4.6.4满足服务最终期限的优先级分配  144

4.6.5硬件优先级的软件覆盖  145

第5章编程概念及C与C++的嵌入式编程  150

5.1用汇编语言和高级语言C进行软件编程  151

5.2C程序中的元素:头文件、源文件以及预处理指令  152

5.2.1用于包含文件的include指令  152

5.2.2源文件  154

5.2.3配置文件  154

5.2.4预处理指令  154

5.3程序元素:宏与函数  154

5.4程序元素:数据类型、数据结构、修饰符、语句、循环和指针  156

5.4.1数据类型  156

5.4.2使用数据结构:队列、堆栈、链表和树  156

5.4.3修饰符  158

5.4.4条件语句、循环语句以及无限循环语句  159

5.4.5指针和NULL指针  161

5.4.6函数调用  163

5.4.7主程序中按照循环顺序进行的多函数调用  164

5.4.8函数指针、函数队列和中断服务例程队列  166

5.5队列  167

5.5.1队列  167

5.5.2实现网络协议的队列  170

5.5.3发生中断时函数的排列  172

5.5.4网络中进行流控制的FIPO队列  174

5.6堆栈  175

5.7链表与有序链表  178

5.7.1链表  178

5.7.2活动设备驱动器(软件时钟)的链表  186

5.7.3就绪链表中的任务链表  187

5.8C++嵌入式编程  189

5.8.1面向对象的编程  189

5.8.2C++的嵌入式编程  189

5.9用Java进行嵌入式编程  191

5.9.1什么时候用Java编程  191

5.9.2Java的缺点  191

5.10C程序编译器与交叉编译器  193

5.11嵌入式C/C++的源代码工程管理工具  194

5.12存储器需求的优化  194

第6章单处理器和多处理器系统软件开发过程中的程序建模概念  201

6.1软件实现之前对软件分析过程的建模  202

6.1.1数据流图在程序分析中的用法  202

6.1.2用于程序分析的控制数据流图的用法  204

6.2用于事件控制或者响应时间受到约束的实时程序的编程模型  205

6.2.1有限状态机模型  205

6.2.2Petri网模型  209

6.3多处理器系统的建模  215

6.3.1多处理器系统中的问题  216

6.3.2模型  217

6.3.3同步数据流图模型  218

6.3.4同构的同步数据流图模型  219

6.3.5无环优先扩展图模型  220

6.3.6定时的Petri网和扩展预测/转换网模型  221

6.3.7多线程图系统模型  222

6.3.8图和Petri网在多处理器系统中的应用  223

第7章嵌入式软件开发过程中的软件工程实践  233

7.1软件的算法复杂度  234

7.2软件开发生命周期及其模型  236

7.2.1软件开发过程中的线性顺序模型(瀑布模型或者生命周期模型)  236

7.2.2RAD模型  237

7.2.3增量模型  237

7.2.4并发模型  238

7.2.5基于组件(面向对象)的软件开发过程模型  238

7.2.6基于第四代工具的软件开发过程模型  238

7.2.7基于面向对象和基于第四代工具的方法  239

7.3软件分析  239

7.4软件设计  241

7.5软件实现  242

7.6软件测试、确认以及调试  243

7.6.1测试、验证以及确认  243

7.6.2调试  246

7.7软件开发过程中的实时程序设计问题  248

7.7.1在需求和规范的分析中存在的问题  248

7.7.2设计和实现中存在的问题  249

7.7.3系统集成中的问题  249

7.7.4测试中的问题  249

7.8软件项目管理  250

7.8.1项目管理  250

7.8.2项目测度  251

7.9软件维护  253

7.10统一建模语言(UML)  255

第8章进程间通信与进程、任务和线程的同步  265

8.1应用程序中的多个进程  266

8.1.1进程  266

8.1.2任务  266

8.1.3线程  268

8.1.4通过函数、ISR和任务的特征进行区分  269

8.2多任务和多例程的数据共享问题  270

8.2.1数据共享问题及其解决方案  270

8.2.2对任务或者任务的临界段使用信号量  271

8.2.3优先级?怪梦侍夂退浪?榭?279

8.3进程间通信  280

8.3.1信号  281

8.3.2信号量标识或者互斥体用作资源键(用于进程的资源加锁和解锁)  281

8.3.3消息队列  282

8.3.4邮箱  284

8.3.5管道  285

8.3.6虚拟(逻辑)套接字  287

8.3.7远程过程调用(RPC)  287

第9章实时操作系统  292

9.1操作系统服务  293

9.1.1目标  293

9.1.2结构  294

9.1.3内核  295

9.1.4进程管理  296

9.1.5存储器管理  297

9.1.6设备管理  298

9.1.7文件系统的组织和实现  300

9.2I/O子系统  302

9.3网络操作系统  302

9.4实时操作系统与嵌入式操作系统  304

9.4.1实时操作系统  304

9.4.2在嵌入式系统中何时需要RTOS  304

9.4.3RTOS的多任务调度管理  306

9.4.4实时系统中通过RTOS进行的多任务调度  308

9.5RTOS环境中的中断例程:RTOS的中断源调用处理  309

9.5.1通过中断源直接调用ISR  310

9.5.2通过中断源以及调度任务的暂时挂起,直接调用RTOS  311

9.5.3通过中断源以及RTOS对任务和ISR的调度,直接调用RTOS  311

9.6RTOS任务调度模型,作为性能测度的中断延迟和任务响应时间  311

9.6.1使用就绪任务循环队列的协作轮转调度  312

9.6.2使用按照优先级约束排序列表的就绪任务的协作调度  313

9.6.3时间分片的循环调度(速率单调的协作调度)  315

9.6.4调度程序控制的抢占式调度模型策略  316

9.6.5抢占式调度程序提供的临界段服务  318

9.6.6任务的固定(静态)实时调度  320

9.6.7调度算法中的优先级分配  320

9.6.8使用概率定时Petri网(随机)和多线程图(MTG)的高级调度算法  321

9.7周期、零散以及非周期任务的调度模型的性能测度  321

9.7.1使用CPU负载作为性能尺度  321

9.7.2零散任务模型  322

9.8为RTOS的标准化和任务内部通信函数采用的IEEE标准POSIX1003.1B  322

9.9抢占式调度程序的基本操作及其在处理器上预期耗费的时间  324

9.10用于进程间、ISR间、OS函数间和任务之间同步及资源管理的15条策略  325

9.11嵌入式LINUX的内部组织:设备驱动程序和嵌入式系统的LINUX内核  326

9.12操作系统的安全问题  329

9.13移动式操作系统  330

第10章实时操作系统编程工具:MicroC/OS-II和VxWorks  334

10.1测试稳定且调试合格的实时操作系统的必要性  335

10.2μC/OS-II  337

10.2.1RTOS系统级函数  338

10.2.2任务服务函数及其使用范例  341

10.2.3时间延迟函数  347

10.2.4函数相关的存储器分配  349

10.2.5信号量相关函数  351

10.2.6邮箱相关函数  363

10.2.7队列相关函数  372

10.3VxWorks  381

10.3.1基本特性  382

10.3.2系统库头文件中的任务管理库  384

10.3.3VxWorks系统函数和系统任务  388

10.3.4进程(任务)间通信函数  391

第11章RTOS编程案例研究  405

11.1使用MUCOSRTOS对巧克力自动售卖机编码  406

11.1.1案例定义、多任务及其函数  406

11.1.2创建任务、函数和IPC  408

11.1.3编码步骤示例  411

11.2使用RTOSVxWorks将应用层字节流发送到TCP/IP网络上  420

11.2.1案例定义、多任务及其函数  421

11.2.2创建任务、函数和IPC  424

11.2.3编码步骤示例  425

11.3汽车自适应巡航控制系统的嵌入式系统  443

11.4智能卡中的嵌入式系统  456

11.4.1嵌入式硬件  457

11.4.2嵌入式软件  458

第12章嵌入式系统中的软硬件协同设计  472

12.1嵌入式系统项目管理  473

12.2系统开发过程中嵌入式系统设计和协同设计问题  474

12.2.1嵌入式系统开发过程的目标  474

12.2.2行动计划  474

12.2.3完整的规范和系统需求  475

12.2.4原理设计  476

12.2.5软硬件布局设计  477

12.2.6详细设计  478

12.2.7实现工具  478

12.2.8测试  479

12.3嵌入式系统开发阶段中的设计周期  479

12.4目标系统或其仿真器和内置电路仿真器(ICE)  480

12.4.1使用目标系统  480

12.4.2仿真器和ICE  481

12.4.3用于将最终代码下载到ROM中的设备编程器  483

12.5嵌入式系统开发中的软件工具  483

12.5.1代码生成工具(汇编器、编译器、加载器和链接器)  483

12.5.2模拟器  484

12.5.3嵌入式系统的原型开发、测试和调试工具  486

12.5.4集成开发环境  487

12.5.5存储器、处理器敏感程序和设备驱动程序  489

12.5.6动态链接库  489

12.6示波器和逻辑分析仪在系统硬件测试中的使用  490

12.6.1逻辑探测器或者LED测试  490

12.6.2示波器  490

12.6.3逻辑分析仪  491

12.6.4位率测量仪  491

12.6.5用于ROM调试的系统监控代码  492

12.7嵌入式系统设计中的问题  492

12.7.1选择合适的平台  492

12.7.2嵌入式系统处理器的选择  493

12.7.3需要考虑的因素和必需的特性  494

12.7.4软硬件权衡  495

12.7.5性能建模  495

12.7.6性能加速器  496

12.7.7嵌入式系统中OS的移植问题  496

附录ACISC和RISC处理器体系结构和指令集示例  504

A.1CISC和RISC处理器的指令及其处理  504

A.1.1指令和数据的格式  504

A.1.2寻址模式  505

A.1.3指令集  506

A.1.4CISC和RISC体系结构  507

A.2指令集示例--ARM7  508

A.3ARM处理器的汇编语言程序示例  510

附录B嵌入式系统高性能处理器  511

B.1ARM处理器示例  511

B.2高性能处理器示例  514

B.3加速器  515

附录C嵌入式系统8/16/32位微处理器及其体系结构概述  517

C.1Intel、Motorola和PIC系列微控制器的体系结构概述  517

C.2Motorola系列CISC和RISC的新一代微控制器  519

附录D嵌入式数字信号处理器  522

D.1数字信号处理器的体系结构  522

D.2DSP处理器和传统处理器的比较  524

D.3定点运算和浮点运算的比较  525

D.4嵌入式系统的DSP  525

D.4.1TMS320C2000TM平台  526

D.4.2TMS320C5000TM平台  526

D.4.3TMS320C6000TM平台  526

D.4.4DSP的TMS320C24x和C28X代产品  527

D.4.5TMS320C54x和TMS320C55x代DSP  528

D.4.6TMS320C62x、64x和C67x代DSP  529

D.4.7RISC环境下的OMAP5910嵌入式处理器DSP  530

D.4.8基于SoC的解决方案TexasDSPTMS320DM310  530

附录E嵌入式系统应用的新型处理器  532

附录F串行和并行总线  537

F.1新的串行总线标准(USB2.0,IEEE1394)  537

F.2新的并行总线标准(CompactPCI、PCI-X)  537

附录G嵌入式系统中的设备  539

G.1各种形式的ROM设备  539

G.2ROM设备编程器  540

G.2.1二进制映像  540

G.2.2MotorolaS-Record格式  540

G.2.3IntelHex-File格式  541

G.2.4设备编程器的编程方法  542

G.3RAM设备  544

G.3.1静态和动态RAM  544

G.3.2EDORAM  544

G.3.3SDRAM  545

G.3.4RDRAM  545

G.3.5参数化的分布式RAM  545

G.3.6参数化的块RAM  545

G.4微控制器中的并口  545

G.5串行通信设备  546

G.5.1Motorola68HC11中的SPI和SCI  546

G.5.2微控制器中的串行通信设备  547

G.6微处理器中的定时器  548

G.7各种处理器系列中的中断源及其控制  550

G.880x86处理器的中断  552

G.968HC11中的中断  552

G.9.1中断服务  552

G.9.2中断源  553

附录H嵌入式系统体系结构、编程和设计中的重要内容  554

H.1推荐使用的教学大纲  554

H.2CDAC嵌入式系统课程教学大纲涉及的内容  556

展开预览

猜您喜欢

评论

登录/注册

意见反馈

求资源

回顶部

推荐内容

热门活动

热门器件

随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
×