图书介绍

精通ARM嵌入式Linux系统开发2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

精通ARM嵌入式Linux系统开发
  • 杨水清,张剑,施云飞编著 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121161971
  • 出版时间:2012
  • 标注页数:621页
  • 文件大小:121MB
  • 文件页数:640页
  • 主题词:微处理器,ARM-系统设计;Linux操作系统

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

精通ARM嵌入式Linux系统开发PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 嵌入式系统概述1

1.1嵌入式系统简介1

1.1.1嵌入式系统1

1.1.2嵌入式系统的特点2

1.1.3嵌入式系统的发展趋势2

1.2嵌入式系统中的处理器4

1.2.1微处理器4

1.2.2微控制器4

1.2.3数字信号处理器5

1.2.4嵌入式片上系统5

1.3嵌入式系统中的软件系统5

1.3.1嵌入式系统软件5

1.3.2嵌入式系统软件开发的一般过程6

1.3.3嵌入式应用程序的开发6

1.4本章小结6

第2章 快速体验——目标板7

2.1目标板结构7

2.2 ARM初体验8

2.2.1测试ARM处理器8

2.2.2安装ADS 1.29

2.2.3安装Multi-ICE和配置AXD11

2.2.4 ADS的简单使用13

2.2.5使用Telnet和ftp16

2.3本章小结16

第3章 ARM的内部资源17

3.1 S3C2440微处理器17

3.1.1主要结构17

3.1.2片内资源18

3.1.3体系结构18

3.2 S3C2440存储器映射18

3.2.1 bank0总线宽度18

3.2.2 nWAIT引脚的作用19

3.2.3 nXBREQ/nXBACK引脚操作19

3.3 S3C2440内部资源详解20

3.3.1 Cache高速缓存20

3.3.2时钟和电源管理20

3.3.3中断控制器22

3.3.4脉冲带宽调制定时器(PWM)23

3.3.5实时时钟(RTC)23

3.3.6通用I/O端口24

3.3.7 LCD控制器24

3.3.8 UART控制器25

3.3.9 A/D转换和触摸屏接口25

3.3.10看门狗定时器26

3.3.11 IIC总线接口26

3.3.12 AC’97音频解码器接口27

3.3.13 USB设备控制器27

3.3.14 SD接口27

3.3.15 SPI接口28

3.3.16相机接口28

3.3.17工作电压29

3.4本章小结29

第4章 熟悉ARM处理器30

4.1为什么用ARM30

4.2 ARM公司简介30

4.3 ARM微处理器系列30

4.3.1 ARM7微处理器30

4.3.2 ARM9微处理器31

4.3.3 ARM 10E微处理器31

4.3.4 ARM II微处理器32

4.4 ARM微处理器的结构32

4.4.1体系结构32

4.4.2寄存器结构33

4.4.3指令结构33

4.5 ARM微处理器的选择33

4.5.1内核的选择33

4.5.2工作频率的选择33

4.5.3芯片内存储器的选择33

4.5.4片内外围电路的选择34

4.6 ARM的指令集概述34

4.6.1 ARM微处理器的指令分类和格式34

4.6.2指令的条件域35

4.7 ARM指令的寻址方式36

4.7.1立即寻址36

4.7.2寄存器寻址36

4.7.3寄存器间接寻址36

4.7.4基址变址寻址36

4.7.5多寄存器寻址37

4.7.6相对寻址37

4.7.7堆栈寻址37

4.8 ARM指令集详解38

4.8.1 跳转指令38

4.8.2数据处理指令38

4.8.3乘法指令与乘加指令42

4.8.4程序状态寄存器访问指令44

4.8.5加载/存储指令45

4.8.6批量数据加载/存储指令47

4.8.7数据交换指令47

4.8.8移位指令48

4.8.9协处理器指令49

4.8.10异常产生指令51

4.9本章小结51

第5章 熟悉ADS集成开发环境52

5.1命令行开发工具52

5.1.1 armcc介绍52

5.1.2 armcc用法详解53

5.1.3 armlink介绍54

5.1.4 armlink用法详解54

5.1.5 ARM运行时库54

5.1.6 ADS调试器55

5.1.7实用程序56

5.1.8支持的软件56

5.2使用ADS创建工程56

5.2.1建立一个工程57

5.2.2编译和链接工程60

5.2.3 Target设置选项60

5.2.4 Language Settings61

5.2.5 Linker设置61

5.2.6 ARM fromELF工具63

5.2.7命令行下编译工程64

5.3使用AXD调试代码65

5.3.1打开调试文件65

5.3.2查看存储器内容66

5.3.3设置断点66

5.3.4查看变量值67

5.4本章小结67

第6章ARM的外部电路68

6.1核心板电路68

6.1.1晶振电路68

6.1.2复位电路69

6.1.3启动配置电路69

6.1.4 Flash接口69

6.1.5 SDRAM接口72

6.2底板电路73

6.2.1电源电路73

6.2.2串口电路74

6.2.3 USB接口75

6.2.4以太网接口75

6.2.5 JTAG调试接口76

6.2.6音频接口77

6.2.7 LCD接口77

6.2.8 SD卡接口78

6.3本章小结79

第7章 嵌入式操作系统概述80

7.1操作系统的结构和功能80

7.2进程管理81

7.2.1进程的描述82

7.2.2进程的调度82

7.3存储管理83

7.3.1存储器的体系结构83

7.3.2内存管理的基本概念84

7.3.3连续分配存储管理方式84

7.3.4页式存储管理方式86

7.4文件管理87

7.4.1文件88

7.4.2目录89

7.4.3 EXT2文件系统89

7.5设备管理92

7.5.1设备的分类92

7.5.2数据传输控制方式93

7.5.3中断处理93

7.5.4设备驱动程序94

7.6嵌入式操作系统的特点95

7.6.1嵌入式操作系统的发展95

7.6.2嵌入式操作系统的优势96

7.6.3嵌入式操作系统的分类96

7.7常见的嵌入式操作系统97

7.7.1 VxWorks97

7.7.2 pSOS97

7.7.3 Palm OS98

7.7.4 QNX98

7.7.5 Windows CE99

7.7.6 FC/OS-II100

7.7.7嵌入式Linux100

7.8本章小结101

第8章 快速体验——构建开发环境102

8.1交叉开发环境介绍102

8.2主机与目标板的连接方式103

8.2.1串口通信接口103

8.2.2以太网接口104

8.2.3 USB接口104

8.2.4 JTAG接口105

8.3建立主机开发环境105

8.3.1 Ubuntu 6.06的安装105

8.3.2 Minicom的安装配置107

8.3.3 TFTP服务的安装配置109

8.3.4 NFS的安装配置110

8.3.5建立交叉工具链112

8.4启动目标板系统116

8.4.1 Bootloader和Kemel117

8.4.2根文件系统118

8.5本章小结119

第9章 Linux使用基础120

9.1 Linux的基本概念120

9.1.1文件120

9.1.2目录120

9.1.3分区121

9.1.4挂载122

9.1.5用户系统122

9.1.6用户权限122

9.1.7 shell123

9.1.8环境变量124

9.2 Linux的命令行124

9.2.1执行命令124

9.2.2参数125

9.2.3重定向符号125

9.2.4获取帮助125

9.3 Linux的常用命令127

9.3.1文件管理127

9.3.2内容管理130

9.3.3权限管理131

9.3.4备份压缩132

9.3.5系统设置133

9.3.6进程控制136

9.3.7网络设置138

9.4本章小结139

第10章 Bootloader140

10.1 Bootloader的概念140

10.1.1 Bootloader所支持的嵌入式体系141

10.1.2 Bootloader的安装位置141

10.1.3 Bootloader的启动过程142

10.1.4 Bootloader与主机的通信142

10.1.5 Bootloader的操作模式142

10.2 Bootloader的基本结构143

10.2.1 Bootloader的stage1143

10.2.2 Bootloader的stage2144

10.3 vivi简介149

10.3.1 vivi的体系架构149

10.3.2 vivi启动的第一阶段150

10.3.3 vivi启动的第二阶段154

10.4 vivi的基本命令158

10.4.1 mem命令158

10.4.2 load命令159

10.4.3 part命令159

10.4.4 param命令160

10.4.5 boot命令160

10.4.6 go命令161

10.4.7 bon命令161

10.4.8 reset命令161

10.4.9 help命令161

10.5 U-Boot简介162

10.5.1 U-Boot的特点162

10.5.2 U-Boot的目录结构163

10.5.3 U-Boot的启动过程163

10.5.4 U-Boot的移植165

10.6 U-Boot的基本命令167

10.6.1设置环境变量167

10.6.2数据通信167

10.6.3存储器操作168

10.6.4系统引导168

10.6.5其他169

10.7本章小结169

第11章 Linux内核移植170

11.1 Linux内核结构170

11.2 Linux源码结构171

11.2.1 arch目录172

11.2.2 drivers目录172

11.2.3 fs目录173

11.2.4其他目录174

11.3内核编译175

11.3.1编译准备175

11.3.2设置Flash分区176

11.3.3配置内核178

11.4内核配置选项180

11.4.1常规设置180

11.4.2模块和块设备层182

11.4.3 CPU类型183

11.4.4电源管理185

11.4.5总线和网络187

11.4.6驱动188

11.4.7文件系统195

11.4.8其他198

11.5下载内核200

11.6内核调试201

11.6.1内核调试步骤201

11.6.2常见内核问题202

11.7本章小结203

第12章 嵌入式Linux文件系统204

12.1嵌入式文件系统基础204

12.1.1 NOR型Flash存储器204

12.1.2 NAND型Flash存储器205

12.1.3 MTD简介206

12.1.4日志型文件系统207

12.1.5 BusyBox208

12.2 CramFS文件系统210

12.2.1 CramFS文件系统的特性210

12.2.2 CramFS文件系统映像文件的结构211

12.2.3 CramFS文件系统的工作原理212

12.2.4 CramFS文件系统的初始化过程213

12.2.5 CramFS文件系统的制作213

12.2.6 CramFS文件系统的挂载流程216

12.3 YAFFS文件系统217

12.3.1 YAFFS文件系统的数据存储方式217

12.3.2 YAFFS文件系统的工作原理218

12.3.3 YAFFS文件系统对MTD的依赖性220

12.3.4 YAFFS文件系统驱动的安装流程222

12.3.5 YAFFS文件系统的制作222

12.4 JFFS文件系统224

12.4.1 JFFS1文件系统简介224

12.4.2 JFFS2文件系统简介226

12.4.3 JFFS3文件系统简介228

12.4.4 JFFS2文件系统的工作原理228

12.4.5 JFFS2文件系统的制作231

12.5基于RAM的文件系统231

12.5.1 Ramdisk文件系统231

12.5.2 RamFS/TmpFS文件系统232

12.6嵌入式文件系统的设计233

12.6.1文件系统格式选择的基本策略234

12.6.2混合型文件系统格式的设计方法234

12.7本章小结235

第13章 嵌入式Linux C语言开发工具236

13.1编辑器VIM236

13.1.1 VIM的编辑模式236

13.1.2 VIM的进入与退出238

13.1.3光标的移动239

13.1.4删除和恢复239

13.1.5复制和粘贴240

13.1.6查找和替换240

13.1.7网络资源241

13.2编译器GCC242

13.2.1 GCC的编译流程242

13.2.2 GCC的常用编译选项245

13.2.3实例分析248

13.3调试器GDB250

13.3.1 GDB使用概述250

13.3.2 GDB的使用流程251

13.3.3 GdbServer远程调试253

13.4工程管理Make255

13.4.1 Makefile文件介绍255

13.4.2 Makefile的规则256

13.4.3 Makefile的变量258

13.4.4 make命令的使用260

13.4.5使用自动工具生成Makefile261

13.5集成开发环境Eclipse263

13.5.1 Eclipse的安装263

13.5.2 Eclipse的界面简介264

13.5.3创建Hello项目265

13.5.4调试Hello项目267

13.5.5使用CVS进行版本管理267

13.6本章小结271

第14章 快速体验——嵌入式C语言开发流程272

14.1命令行下的开发流程272

14.1.1编写代码272

14.1.2编译程序274

14.1.3运行程序275

14.1.4交叉编译275

14.1.5编写Makefile276

14.2基于Eclipse的开发流程277

14.2.1下载和安装Eclipse277

14.2.2新建工程278

14.2.3编写代码279

14.2.4编译工程280

14.2.5运行程序281

14.3本章小结281

第15章 嵌入式Linux C语言基础282

15.1 C语言概述282

15.1.1 C语言的特点282

15.1.2 C语言程序的总体结构282

15.1.3 C语言的语句283

15.1.4 C语言的关键字284

15.1.5 C语言程序设计步骤284

15.2数据类型284

15.2.1基本数据类型284

15.2.2常量与变量285

15.2.3整型数据、实型数据285

15.2.4字符型数据286

15.3运算符287

15.3.1算术运算符287

15.3.2关系和逻辑运算符287

15.3.3位操作符288

15.3.4?操作符288

15.3.5表达式的优先级288

15.4表达式289

15.4.1类型转换289

15.4.2构成符cast和可读性289

15.5流程控制289

15.5.1格式输入/输出289

15.5.2顺序程序设计292

15.5.3选择结构设计293

15.5.4循环结构设计294

15.6函数296

15.6.1概述296

15.6.2函数定义的一般形式297

15.6.3函数的参数和函数的值297

15.6.4函数的调用298

15.6.5局部变量和全局变量299

15.7数组与指针300

15.7.1数组300

15.7.2指针的基本概念302

15.7.3指针与数组304

15.7.4指针与字符串306

15.7.5指针与函数307

15.7.6指针其他用法308

15.7.7动态内存管理308

15.8复杂数据结构309

15.8.1结构体定义309

15.8.2结构体使用310

15.8.3链表312

15.8.4枚举类型313

15.8.5共用体类型313

15.9本章小结313

第16章 嵌入式Linux C语言标准库314

16.1 Glibc简介314

16.2字符测试和数据转换函数316

16.2.1字符测试函数316

16.2.2数据转换函数317

16.3基本I/O函数318

16.3.1 open()函数319

16.3.2 close()函数320

16.3.3 read()函数和write()函数320

16.3.4其他函数321

16.4标准I/O函数322

16.4.1 fopen()函数322

16.4.2 fclose()函数323

16.4.3 fread()函数和fwrite()函数324

16.4.4 printf()函数和scanf()函数325

16.4.5其他函数326

16.5内存配置及字符串处理函数326

16.5.1内存分配函数327

16.5.2 memXXX函数327

16.5.3 strXXX函数330

16.5.4释放内存的函数331

16.5.5动态内存分配的实例332

16.6日期时间函数334

16.6.1时间的定义334

16.6.2日历时间334

16.6.3时钟计时单元336

16.6.4格式化日期和时间337

16.6.5自定义时间格式337

16.7其他函数339

16.7.1错误处理函数339

16.7.2系统日志函数342

16.7.3环境管理函数344

16.8本章小结345

第17章 嵌入式Linux的多任务编程346

17.1什么是多任务346

17.1.1对话级多任务346

17.1.2进程级多任务347

17.1.3线程级多任务347

17.1.4多任务处理的特点348

17.2进程349

17.2.1进程的概念350

17.2.2进程的数据结构351

17.2.3进程的创建353

17.2.4文件描述符共享355

17.2.5 vfork()函数357

17.2.6 exec()函数族357

17.2.7执行新程序359

17.2.8进程的终止361

17.2.9进程的退出状态363

17.2.10 Zombie进程365

17.3线程366

17.3.1线程的概念366

17.3.2线程的创建367

17.3.3线程的终止368

17.3.4线程的基本属性370

17.3.5线程属性的修改371

17.3.6线程的扩展属性374

17.4线程池377

17.4.1线程池的工作原理377

17.4.2线程池的实现378

17.4.3工作状态的记录383

17.4.4线程池的测试386

17.5本章小结387

第18章 多任务间通信和同步388

18.1信号388

18.1.1信号的概念388

18.1.2信号的产生390

18.1.3 kill()函数和raise()函数390

18.1.4 alarm()函数和pause()函数391

18.1.5 about()函数392

18.1.6信号的处理392

18.1.7 signal()函数392

18.1.8 sigaction()函数393

18.1.9信号集395

18.1.10 sigprocmask()函数396

18.1.11 sigpending()函数396

18.1.12 sigsuspend()函数396

18.2管道397

18.2.1管道的相关概念398

18.2.2管道的创建398

18.2.3多进程中的管道通信399

18.2.4管道的应用实例401

18.2.5 FIFO的相关概念402

18.2.6 FIFO的创建403

18.2.7 FIFO的读写规则404

18.2.8 FIFO的应用实例405

18.3共享内存407

18.3.1系统调用mmap()408

18.3.2系统调用munmap()408

18.3.3系统调用msync()409

18.3.4 mmap()的应用实例409

18.4 System V共享内存411

18.4.1系统调用shmget()411

18.4.2系统调用shmat()412

18.4.3系统调用shmdt()412

18.4.4 System V共享内存的应用实例412

18.5消息队列413

18.5.1系统调用msgget()413

18.5.2系统调用msgsnd()414

18.5.3系统调用msgrcv()414

18.5.4系统调用msgctl()415

18.5.5消息队列的应用实例415

18.6 System V信号量417

18.6.1系统调用semget()417

18.6.2系统调用semop()418

18.6.3系统调用semctl()419

18.6.4 System V信号量的应用实例419

18.7 POSIX信号量421

18.7.1系统调用sem_init()422

18.7.2系统调用sem_wait()422

18.7.3系统调用sem_post()422

18.7.4系统调用sem_destory()422

18.7.5 POSIX信号量的应用实例422

18.8互斥锁424

18.8.1系统调用pthread_mutex_init()424

18.8.2系统调用pthread_mutex_lock()424

18.8.3系统调用pthread_mutex_trylock()424

18.8.4系统调用pthread_mutex_unlock()425

18.8.5系统调用pthread_mutex_destory()425

18.8.6互斥锁的应用实例425

18.9条件变量427

18.9.1系统调用pthread_cond_init()428

18.9.2系统调用pthread_cond_wait()428

18.9.3系统调用pthread_cond_timedwait()428

18.9.4系统调用pthread_cond_signal()428

18.9.5系统调用pthread_cond_broadsignal()428

18.9.6系统调用pthread-cond_destroy()428

18.9.7条件变量的应用实例429

18.10本章小结430

第19章 设备驱动开发基础431

19.1 Linux设备管理和驱动概述431

19.1.1 Linux设备的分类431

19.1.2设备驱动程序的作用431

19.1.3访问设备的实现432

19.1.4 Linux设备控制方式432

19.2 Linux设备驱动开发流程434

19.2.1构造和运行模块434

19.2.2字符设备驱动编写435

19.2.3字符设备驱动实例437

19.2.4并发控制440

19.2.5 阻塞与非阻塞445

19.2.6 select和poll449

19.2.7中断处理451

19.2.8内存与I/O操作452

19.3块设备驱动编写456

19.3.1块设备的I/O操作特点457

19.3.2 block device——operations结构体457

19.3.3 gendisk结构体457

19.3.4 request结构体459

19.3.5 request操作函数462

19.3.6 bio结构体464

19.3.7注册与注销466

19.3.8加载与卸载466

19.3.9打开与释放468

19.3.10 ioctl()函数468

19.3.11 I/O请求处理469

19.4本章小结472

第20章 嵌入式Linux的网络编程473

20.1 TCP/IP协议473

20.2 TCP协议474

20.2.1 TCP连接建立的过程474

20.2.2 TCP连接的标识474

20.2.3关闭TCP连接475

20.3 UDP协议475

20.4 socket简介475

20.4.1 socket的定义476

20.4.2 socket的类型476

20.5 TCP Server程序设计476

20.5.1 TCP的通信过程476

20.5.2 TCP Server程序477

20.5.3网络地址的表示478

20.5.4建立socket479

20.5.5绑定本地地址479

20.5.6字节顺序转换480

20.5.7 IP地址转换481

20.5.8 listen()函数481

20.5.9等待连接482

20.5.10数据通信483

20.5.11关闭套接字484

20.6 TCP Client程序设计485

20.6.1 DNS操作486

20.6.2连接服务器487

20.6.3测试实例488

20.7 UDP通信的程序设计489

20.7.1 UDP的通信过程489

20.7.2 UDP通信服务器端490

20.7.3 UDP通信客户端491

20.8多线程文件服务器493

20.8.1文件服务器主程序493

20.8.2动态分配监听端口495

20.8.3多线程服务器的实现495

20.8.4大数据量的读写函数496

20.8.5客户端测试例程499

20.8.6编译和测试501

20.9 Proxy源代码分析501

20.9.1主函数main()502

20.9.2参数处理函数parse_args()503

20.9.3守护进程函数daemonize()505

20.9.4代理服务函数do_proxy()507

20.9.5错误信息函数errorout()510

20.10本章小结510

第21章 MiniGUI图形界面设计511

21.1 MiniGUI概述511

21.1.1 MiniGUI的特点511

21.1.2 MiniGUI v1.3.3软件包512

21.1.3 MiniGUI运行模式512

21.2 MiniGUI的安装和使用514

21.2.1安装MiniGUI库514

21.2.2安装MiniGUI的资源515

21.2.3配置MiniGUI515

21.2.4编译应用程序例子516

21.2.5交叉编译MiniGUI库516

21.2.6交叉编译例程517

21.2.7 QVFB图形引擎518

21.2.8 FrameBuffer图形引擎519

21.3利用Eclipse编写MiniGUI程序520

21.3.1建立vacs工程520

21.3.2配置编译选项521

21.3.3配置外部工具QVFB522

21.3.4运行vacs523

21.3.5调试vacs523

21.4 MiniGUI的编程基础524

21.4.1头文件525

21.4.2程序入口525

21.4.3创建和显示主窗口526

21.4.4进入消息循环526

21.4.5窗口过程函数528

21.4.6屏幕输出528

21.4.7程序的退出528

21.5消息循环和窗口过程529

21.5.1消息处理函数529

21.5.2重要的消息530

21.5.3窗口及窗口过程530

21.6对话框和控件编程531

21.6.1控件的概念531

21.6.2预定义控件532

21.6.3自定义控件534

21.6.4控件子类化535

21.6.5对话框和对话框模板536

21.6.6模态和非模态对话框538

21.7图形设备接口539

21.7.1图形设备上下文539

21.7.2矩形操作和区域操作540

21.7.3像素值和调色板542

21.7.4位图操作函数543

21.7.5字体和文本输出544

21.7.6绘制图形546

21.8其他功能547

21.8.1读写配置文件547

21.8.2定点数运算548

21.9 MiniQQ界面设计549

21.9.1登录窗口551

21.9.2好友列表窗口554

21.9.3聊天窗口557

21.9.4其他559

21.10本章小结560

第22章 CAN总线驱动设计561

22.1 CAN总线介绍561

22.2 SJA1000介绍561

22.2.1 SJA 1000的特性561

22.2.2 SJA1000内部原理562

22.2.3 SJA1000引脚说明563

22.3 SJA1000寄存器介绍564

22.3.1控制寄存器CR564

22.3.2命令寄存器CMR565

22.3.3状态寄存器SR566

22.3.4中断寄存器IR567

22.3.5发送缓冲器568

22.3.6接收缓冲器568

22.3.7验收滤波器569

22.4 SJA1000与 S3C2440连接569

22.5 SJA1000的驱动程序571

22.5.1驱动程序源代码571

22.5.2测试的操作方法579

22.6本章小结580

第23章 SD卡驱动设计581

23.1 SD卡概述及协议581

23.1.1 SD卡概述581

23.1.2 SD卡协议582

23.2 SD卡驱动设计583

23.2.1块设备驱动设计583

23.2.2 SD卡驱动程序分析584

23.2.3 SD卡驱动程序设计586

23.3本章小结588

第24章 网络驱动设计589

24.1 Linux网络设备概述589

24.2 DM9000芯片介绍590

24.3重要的数据结构591

24.3.1通用部分591

24.3.2硬件相关部分591

24.3.3物理层相关数据592

24.3.4网络层协议相关部分592

24.3.5服务处理部分593

24.4网络设备初始化593

24.5激活和关闭网络设备595

24.6中断控制的实现596

24.7发送过程的实现598

24.8接收过程的实现599

24.8.1 sk buff结构599

24.8.2接收函数的实现601

24.9其他接口函数602

24.10本章小结602

第25章 综合案例——嵌入式B超603

25.1系统终端的结构设计603

25.1.1总体结构603

25.1.2显示控制芯片选型604

25.2系统终端的软件设计604

25.2.1 U-Boot605

25.2.2嵌入式Linux移植605

25.2.3 MiniGUI移植606

25.3 FPGA与ARM接口设计608

25.3.1硬件连接608

25.3.2 FPGA驱动程序设计608

25.4显示芯片的连接与控制610

25.4.1选择SM501的原因610

25.4.2 SM501驱动程序设计610

25.5超声动态图像的实时显示612

25.5.1图像动态显示612

25.5.2坐标转换和灰度插值612

25.6图形界面的结构614

25.6.1需求分析614

25.6.2总体结构614

25.6.3网络通信615

25.6.4多线程编程616

25.7操作界面设计616

25.7.1区域分配617

25.7.2键盘响应617

25.7.3控件设计618

25.8测量模块设计619

25.8.1椭圆的画法619

25.8.2椭圆测量周长和面积620

25.8.3轨迹法测量面积621

25.9本章小结621

热门推荐