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

pdf

深度实践嵌入式Linux系统移植

  • 1星
  • 2024-07-27
  • 123.35MB
  • 需要1积分
  • 20次下载
标签: linux

linux

随着物联网时代的到来,市场对各类智能设备的需求也日渐高涨。智能设备的核心技术是集成电路芯片和嵌入操作系统,而嵌入式操作系统更可以称为是智能设备的灵魂。多年来,Linux系统因为其开源免费、安全稳定、社区支持丰富和移植裁剪方便等特点—直备受全球各大设备厂商的青睐,当仁不让地成为众多嵌入式操作系统中最耀眼的明星。在智能手机大行其道的今天,Android系统牢牢占据着80%以上的市场份额,而在Androd系统华丽的外衣之下,依然是Linux系统强有力的支撑。

智能设备的发展并没有止步在智能手机,而是陕速朝着智能可穿戴设备、智能家居和车联网等方向扩张。但要想把Linux系统移植到这些外设丰富并且处理器架构各异的设备中,对于初级工程师而言也并非易事,因为这不仅要求工程师熟悉c、汇编等编程语言,了解基本的硬件操作方法和协议规范,还要求工程师对Linux的内核架构、编译系统、调试方法以及各个子系统的源码结构有所理解。为了让读者能够顺利具备Linux系统移植的能力,本书被设计为一站式学习教程,即:

.涉及Linux系统各个层面的移植,包括启动加载程序、Linux内核、Linux应用程序等;

.提供深入的理论讲解和完整的源码剖析,同事也分析了启动加载程序和Linux内核的编译系统;

.分别提供对使用ARM9/S3C2440和ARM11/S3C6410两款处理器的开发板移植过程的详细实录,以最为人性化的方式让读者理解整个移植过程中代码和系统功能的变迁。

前言

绪论篇

第1章嵌入式系统架构与移植环境搭建2

1.1 嵌入式系统硬件架构2

1.1.1 微处理器3

1.1.2 总线4

1.1.3 存储器5

1.2 嵌入式系统软件架构6

1.3 嵌入式Linux移植环境搭建7

1.3.1 Ubuntu开发平台7

1.3.2 搭建交叉编译环境8

1.3.3 获取内核9

1.3.4 获取启动加载器9

1.3.5 配置必要服务9

1.3.6 PuTTY的安装和配置12

1.4 本章小结12

u-boot移植篇

第2章u-boot工程与编译系统14

2.1 u-boot介绍14

2.1.1 u-boot工程简介15

2.1.2 u-boot源码结构15

2.1.3 u-boot的配置编译16

2.2 u-boot常用命令与测试18

2.2.1 获取帮助18

2.2.2 环境变量相关命令19

2.2.3 网络命令20

2.2.4 Nand  Flash操作命令21

2.2.5 内存/寄存器相关命令22

2.2.6 系统引导命令24

2.3 u-boot编译过程分析25

2.3.1 主机构建环境配置过程25

2.3.2 目标机相关配置过程27

2.3.3 make命令执行过程31

2.4 本章小结40

第3章u-boot启动流程分析41

3.1 u-boot启动第一阶段流程41

3.1.1 设置异常向量42

3.1.2 CPU进入SVC模式43

3.1.3 设置控制寄存器地址43

3.1.4 关闭看门狗43

3.1.5 屏蔽中断43

3.1.6 设置MPLLCON、UPLLCON和CLKDIVN44

3.1.7 关闭MMU和cache45

3.1.8 初始化存储控制器46

3.1.9 复制u-boot第二阶段代码到RAM47

3.1.10 设置栈48

3.1.11 清除BSS段48

3.1.12 跳转到第二阶段代码入口48

3.2 u-boot启动第二阶段代码分析49

3.2.1 gd_t结构体49

3.2.2 bd_t结构体50

3.2.3 init_sequence数组50

3.2.4 start_armboot()顺序分析51

3.2.5 main_loop函数分析52

3.3 本章小结56

第4章ARM9/S3C2440  u-boot移植实战57

4.1 移植准备工作57

4.1.1 开发环境介绍57

4.1.2 删减u-boot文件58

4.1.3 建立My2440配置59

4.1.4 配置和编译u-boot60

4.2 u-boot芯片级移植61

4.2.1 启动代码结构优化61

4.2.2 系统时钟移植65

4.2.3 存储器控制器设置68

4.2.4 在u-boot工程中全面支持CONFIG_S3C2440宏配置69

4.3 u-boot调试方法探索70

4.3.1 通过LED指示运行状态70

4.3.2 在第一阶段的代码中添加打印调试方法72

4.3.3 在内存中加载和运行u-boot78

4.4 Nor  Flash驱动移植78

4.4.1 Nor  Flash的工作模式78

4.4.2 Nor  Flash的存储结构79

4.4.3 Nor  Flash的硬件连接79

4.4.4 Nor  Flash的操作方法80

4.4.5 Nor  Flash驱动分析83

4.4.6 Nor  Flash驱动移植86

4.4.7 Nor  Flash命令测试87

4.4.8 完善u-boot的命令行功能88

4.5 DM9000驱动移植89

4.5.1 DM9000网卡端口访问90

4.5.2 DM9000网卡时序分析90

4.5.3 DM9000网卡驱动分析93

4.5.4 DM9000网卡驱动移植100

4.5.5 网卡驱动测试103

4.5.6 通过TFTP下载程序到内存运行103

4.6 u-boot启动内核105

4.6.1 ARM架构的Linux内核启动105

4.6.2 内核标记列表106

4.6.3 u-boot启动命令分析1—go命令109

4.6.4 u-boot启动命令分析2—bootm命令110

4.6.5 u-boot启动命令的配置与移植115

4.7 Nand  Flash与驱动移植118

4.7.1 Nand  Flash启动原理118

4.7.2 Nand  Flash硬件特性119

4.7.3 Linux  MTD子系统121

4.7.4 Nand  Flash初始化流程分析123

4.7.5 Nand  Flash命令实现分析125

4.7.6 页读取操作详解127

4.7.7 Nor  Flash和Nand  Flash启动自动判断132

4.7.8 Nand  Flash拷贝代码实现132

4.7.9 Nand  Flash板级驱动移植136

4.7.10 Nand  Flash命令测试140

4.8 YAFFS文件系统移植142

4.8.1 YAFFS文件系统142

4.8.2 YAFFS在Nand  Flash上的存储结构142

4.8.3 YAFFS在内存中的组织结构143

4.8.4 在u-boot中添加对烧写YAFFS镜像的支持144

4.8.5 YAFFS文件系统镜像制作150

4.8.6 YAFFS的烧写与测试152

4.9 UBIFS文件系统移植153

4.9.1 UBI层153

4.9.2 UBIFS介绍155

4.9.3 在u-boot中添加对UBIFS的支持156

4.9.4 制作UBIFS文件系统镜像157

4.9.5 UBIFS的烧写与测试158

4.10 SD卡驱动移植162

4.10.1 MMC/SD/SDIO介绍162

4.10.2 SD/MMC协议162

4.10.3 S3C2440  SDI控制器操作166

4.10.4 SD卡驱动分析168

4.10.5 SD卡驱动移植173

4.11 USB驱动移植176

4.11.1 USB概述176

4.11.2 USB系统架构177

4.11.3 USB的通信方法180

4.11.4 USB的描述符184

4.11.5 USB设备请求188

4.11.6 USB设备枚举191

4.11.7 S3C2440  USB设备控制器195

4.11.8 u-boot  USB设备控制器驱动分析196

4.11.9 USB设备驱动移植206

4.11.10 USB驱动移植210

4.11.11 USB功能测试214

4.12 u-boot一键式菜单实现215

4.12.1 一键式菜单需求分析215

4.12.2 一键式菜单测试步骤216

4.12.3 一键式菜单源码分析220

4.13 本章小结224

第5章ARM11/S3C6410  u-boot移植实战225

5.1 移植准备工作225

5.1.1 开发环境225

5.1.2 删减u-boot文件226

5.1.3 建立My6410配置227

5.1.4 配置和编译u-boot228

5.2 u-boot芯片级移植229

5.2.1 修改第一阶段启动代码start.S229

5.2.2 板级底层初始化文件lowlevel_init.S移植233

5.2.3 时钟初始化函数移植239

5.2.4 内存初始化函数实现243

5.2.5 Nand  Flash复制代码实现246

5.2.6 SD卡复制代码实现250

5.2.7 底层调试方法探索254

5.2.8 完善My6410的板级配置258

5.2.9 烧写与测试265

5.3 DM9000驱动移植267

5.3.1 DM9000网卡端口访问267

5.3.2 DM9000网卡时序分析268

5.3.3 DM9000网卡驱动移植270

5.3.4 网卡驱动测试274

5.4 u-boot启动内核274

5.4.1 u-boot启动命令的配置与移植275

5.4.2 修改go命令以支持zImage格式镜像的启动277

5.5 Nand  Flash驱动移植278

5.5.1 将u-boot下载到内存中运行278

5.5.2 Nand  Flash驱动移植279

5.5.3 Nand  Flash命令测试289

5.6 YAFFS文件系统移植291

5.6.1 在u-boot中添加对烧写YAFFS镜像的支持291

5.6.2 YAFFS文件系统镜像制作298

5.6.3 YAFFS的烧写与测试299

5.7 UBIFS文件系统移植300

5.7.1 在u-boot中添加对UBIFS的支持300

5.7.2 UBIFS文件系统镜像制作302

5.7.3 UBIFS的烧写与测试303

5.8 SD卡驱动移植307

5.8.1 S3C6410  主机控制器操作307

5.8.2 S3C6410  主机控制器操作序列308

5.8.3 SD卡驱动分析310

5.8.4 SD卡驱动移植317

5.8.5 通过SD卡更新系统319

5.9 USB驱动移植321

5.9.1 S3C6410  USB2.0高速OTG321

5.9.2 u-boot  USB设备控制器驱动分析323

5.9.3 USB设备驱动移植332

5.9.4 USB功能测试335

5.10 本章小结336

Linux内核移植篇

第6章Linux内核工程与编译系统338

6.1Linux内核架构338

6.1.1内核体系结构338

6.1.2内核组件339

6.1.3内核目录结构340

6.2 Linux内核的配置与编译341

6.2.1 配置内核341

6.2.2编译内核344

6.3Linux内核构建系统345

6.3.1内核配置过程345

6.3.2扩展内核代码347

6.3.3内核中的Makefile348

6.3.4内核中的Kconfig349

6.4内核调试技术352

6.4.1调试准备352

6.4.2内核调试配置选项352

6.4.3源码级别的调试接口353

6.4.4使用printk()打印调试信息355

6.4.5使用strace跟踪系统调用357

6.4.6使用OOPS调试系统故障358

6.5本章小结360

第7章Linux内核启动流程分析361

7.1内核镜像生成361

7.2内核启动流程1——汇编部分362

7.2.1内核启动代码入口362

7.2.2深入源码分析363

7.2.3汇编启动代码分析总结378

7.3内核启动流程2—C语言部分378

7.3.1start_kernel()函数379

7.3.2rest_init()函数388

7.3.3 kernel_init()函数390

7.3.4init_post()函数391

7.4内核启动流程3—Busybox的init进程393

7.4.1init进程启动流程393

7.4.2添加初始化活动394

7.4.3执行初始化活动395

7.5本章小结396

第8章Linux移植准备及最小系统构建397

8.1移植准备工作397

8.1.1 开发环境397

8.1.2删减Linux文件398

8.1.3建立My2440配置400

8.1.4 建立My6410配置403

8.1.5编译测试406

8.2 最小系统搭建409

8.2.1 嵌入式根文件系统制作409

8.2.2安装initramfs根文件系统412

8.3本章小结414

第9章Linux网卡驱动移植415

9.1Linux网络子系统415

9.2 核心数据结构416

9.2.1 net_device结构416

9.2.2 sk_buff结构419

9.3 DM9000网卡驱动分析421

9.3.1 board_info结构422

9.3.2 dm9000_probe()函数423

9.3.3 dm9000_open()函数427

9.3.4 dm9000_start_xmit()函数427

9.3.5 数据包接收函数428

9.3.6 数据包发送函数429

9.3.7 中断处理函数431

9.4My2440网卡驱动移植432

9.4.1 添加DM9000的平台设备432

9.4.2 在内核配置添加对DM9000的支持434

9.5 My6410网卡驱动移植434

9.5.1 添加DM9000的平台设备434

9.5.2 在内核配置中添加对网络子系统的支持435

9.5.3 在内核配置添加对DM9000的支持436

9.6安装NFS根文件系统436

9.6.1在内核配置添加对NFS的支持436

9.6.2挂载NFS根文件系统437

9.7 制作基于共享库的根文件系统437

9.8本章小结439

第10章Linux混杂设备驱动440

10.1 My2440  RTC驱动移植440

10.2My6410  RTC驱动移植441

10.2.1修改RTC驱动rtc-s3c.c441

10.2.2完善对6410  RTC驱动的平台支持445

10.2.3 在机器配置文件中添加RTC设备448

10.2.4 在内核中配置RTC448

10.3 RTC驱动测试449

10.4为My2440添加ADC和按键驱动451

10.4.1按键驱动分析451

10.4.2 在内核中添加ADC和按键驱动454

10.5 为My6410添加ADC驱动457

10.6 本章小结458

第11章Linux  I2C驱动移植459

11.1 I2C协议概述459

11.1.1 I2C总线物理拓扑结构459

11.1.2 I2C通信协议460

11.2Linux  I2C子系统框架461

11.3 I2C驱动中的数据结构及操作462

11.3.1 i2c_adapter结构462

11.3.2 i2c_algorithm结构464

11.3.3 i2c_msg结构464

11.3.4i2c_driver结构465

11.3.5 i2c_client结构467

11.4I2C适配器的设备接口468

11.4.1 i2cdev_open()函数471

11.4.2 i2cdev_  read()函数471

11.4.3 i2cdev_ioctl()函数472

11.5 S3C2440(6410)  I2C适配器驱动的实现473

11.5.1 S3C2440  I2C  platform总线匹配474

11.5.2 S3C2440  I2C总线驱动描述结构474

11.5.3 probe方法的实现476

11.5.4 S3C2440  I2C总线通信方法477

11.6 S3C2440(6410)  I2C适配器驱动移植480

11.6.1 添加  I2C平台设备480

11.6.2 在内核配置中支持I2C驱动481

11.6.3编写I2C总线驱动测试程序482

11.7S3C2440(6410)  I2C设备驱动的实现484

11.7.1 At24系列I2C  EEPROM设备驱动的实现484

11.7.2传统只读EEPROM设备驱动的实现486

11.8 I2C  EEPROM设备驱动移植489

11.9本章小结490

第12章Linux  SPI驱动移植491

12.1SPI协议概述491

12.1.1 SPI总线物理拓扑结构491

12.1.2 时钟极性和时钟相位492

12.1.3 SPI的优缺点493

12.2 Linux  SPI子系统493

12.3 SPI驱动中的数据结构及操作494

12.3.1 spi_master结构494

12.3.2 spi_driver结构495

12.3.3 spi_device结构496

12.3.4 spi_message结构497

12.3.5spi_bitbang结构498

12.4SPI控制器的设备接口500

12.5 S3C2440  SPI控制器驱动的实现503

12.5.1 S3C2440  SPI  platform总线匹配503

12.5.2 S3C2440  SPI控制器驱动描述结构504

12.5.3 probe方法的实现504

12.5.4 S3C2440  SPI总线通信方法505

12.6S3C6410  SPI控制器驱动的实现507

12.6.1 S3C6410  SPI控制器驱动描述结构507

12.6.2 probe方法的实现507

12.6.3 S3C6410  SPI总线通信方法509

12.7S3C2440  SPI  控制器驱动移植510

12.7.1在机器配置文件中添加对SPI的支持510

12.7.2 扩展Kconfig512

12.7.3在内核配置中支持SPI驱动513

12.7.4SPI驱动测试513

12.8S3C6410  SPI  控制器驱动移植513

12.8.1 添加6410的SPI驱动514

12.8.2 添加SPI平台设备514

12.8.3添加6410  DMA平台代码516

12.8.4 添加SPI、DMA相关的时钟资源518

12.8.5在机器配置文件中添加对SPI的支持519

12.8.6 SPI驱动测试521

12.9 S3C2440(S3C6410)  SPI协议驱动移植521

12.9.1 AT25系列SPI  EEPROM协议驱动的实现521

12.9.2SPI  EEPROM设备驱动移植523

12.10 本章小结524

第13章Nand  Flash驱动移植525

13.1 Linux  MTD子系统525

13.2 MTD子系统中的数据结构及操作526

13.2.1 mtd_info结构526

13.2.2mtd_notifier结构528

13.2.3 mtd_part/mtd_partitions结构528

13.3 MTD块设备实现分析530

13.4 Nand  Flash驱动的实现534

13.4.1 Nand  Flash  platform总线匹配534

13.4.2 S3C2440  Nand  Flash控制器驱动描述结构534

13.4.3 probe方法的实现536

13.4.4 S3C2440  Nand  Flash读写方法分析537

13.5S3C2440  Nand  Flash控制器驱动移植538

13.5.1 在机器配置文件中添加对Nand  Flash的支持538

13.5.2 完善S3C2440的Nand  Flash驱动540

13.5.3 在内核配置中支持  Nand  Flash驱动541

13.6S3C6410  Nand  Flash控制器驱动移植541

13.6.1添加6410  Nand  Flash驱动541

13.6.2添加Nand  Flash平台设备542

13.6.3在机器配置文件中添加对Nand  Flash的支持544

13.6.4 其他修改545

13.7 YAFFS2文件系统移植547

13.7.1将YAFFS2文件系统移植到Linux内核548

13.7.2 利用mtd-utils烧写YAFFS2文件系统镜像548

13.8 在内核中配置对UBIFS的支持550

13.9 本章小结550

第14章SD/MMC卡驱动移植551

14.1Linux  MMC子系统551

14.2 MMC子系统中的数据结构及操作552

14.2.1 mmc_host结构552

14.2.2 mmc_card结构554

14.2.3mmc_driver结构555

14.2.4 mmc_request结构556

14.3卡探测过程分析558

14.4 S3C2440  SD/MMC主控制器驱动的实现561

14.4.1 SD/MMC主控制器驱动platform总线匹配561

14.4.2 S3C2440  SD/MMC主控制器驱动描述结构561

14.4.3 probe方法的实现563

14.4.4 S3C2440  SD/MMC主控制器请求处理分析565

14.5S3C6410  高速MMC控制器驱动的实现568

14.5.1 SDHCI驱动框架569

14.5.2SDHCI主机卡探测过程569

14.5.3S3C6410  HSMMC控制器驱动570

14.5.4 S3C6410  HSMMC控制器请求处理572

14.6S3C2440  SD/MMC主机控制器驱动移植572

14.6.1 在机器配置文件中添加对SD/MMC主控制器的支持572

14.6.2 在内核配置中添加对SD/MMC主控制器驱动的支持573

14.6.3在内核配置中添加对中文字符集和FAT文件系统的支持574

14.6.4在文件系统中添加对热插拔事件处理的支持574

14.6.5SD/MMC主控制器驱动测试575

14.7 S3C6410  HSMMC控制器驱动移植576

14.7.1 添加6410  Nand  Flash驱动576

14.7.2在机器配置文件中添加对HSMMC的支持577

14.7.3 修改内核SDHCI驱动578

14.8本章小结579

第15章LCD驱动移植580

15.1LCD硬件原理580

15.1.1 LCD的硬件构成580

15.1.2TFT屏显示时序581

15.2 Linux帧缓冲子系统582

15.3 帧缓冲子系统中的数据结构及操作583

15.3.1 fb_info结构583

15.3.2fb_var_screeninfo结构和fb_fix_screeninfo结构587

15.3.3fb_cmap结构589

15.4 帧缓冲字符设备接口590

15.5Linux显示启动Logo594

15.6S3C2440帧缓冲驱动的实现596

15.6.1S3C2440  LCD控制器硬件描述596

15.6.2 驱动platform总线匹配597

15.6.3 S3C2440  帧缓冲驱动描述结构598

15.6.4 probe方法实现599

15.7S3C6410  帧缓冲驱动的实现601

15.8 S3C2440  帧缓冲驱动移植601

15.8.1 在板级初始化文件中添加对帧缓冲的支持601

15.8.2修改Makefile和Kconfig605

15.8.3 在内核配置中添加对帧缓冲驱动的支持607

15.8.4 帧缓冲驱动测试608

15.9 S3C6410  帧缓冲驱动移植608

15.9.1 添加6410  帧缓冲驱动608

15.9.2 在机器配置文件中添加对帧  缓冲的支持609

15.9.3 帧缓冲驱动测试611

15.10 本章小结611

第16章触摸屏驱动移植612

16.1 Linux输入子系统612

16.2 输入子系统中的数据结构及操作613

16.2.1 input_dev结构613

16.2.2 input_handler结构616

16.2.3 input_handle结构617

16.3 输入子系统核心层的实现618

16.4 通用事件处理驱动622

16.5 输入事件报告流程626

16.6 S3C2440(6410)触摸屏驱动的分析629

16.6.1 模块初始化函数的实现629

16.6.2 中断处理与事件上报630

16.7 S3C2440触摸屏驱动移植与测试632

16.7.1 S3C2440触屏驱动移植632

16.7.2 S3C2440触屏驱动测试633

16.8 S3C6410触摸屏驱动移植与测试634

16.8.1 添加6410的触摸屏驱动634

16.8.2添加触屏平台设备635

16.8.3 在机器配置文件中添加对触屏的支持636

16.9 本章小结637

第17章声卡驱动移植638

17.1 ALSA体系架构638

17.1.1 ALSA设备文件639

17.1.2 驱动代码的文件结构640

17.2 声卡描述结构snd_card640

17.3 PCM功能子层644

17.3.1 PCM的概念644

17.3.2 PCM设备描述结构snd_pcm645

17.3.3 PCM流与PCM子流646

17.3.4 PCM功能子层逻辑关系小结651

17.3.5 PCM设备文件的建立652

17.3.6 PCM设备文件的访问654

17.4 声卡控制项655

17.4.1 控制项创建655

17.4.2 控制项回调函数657

17.4.3 Control设备建立658

17.5 ASoC声卡驱动架构659

17.6 ASoC架构中的Machine驱动662

17.6.1 创建ASoC声卡平台设备662

17.6.2 ASoC声卡的平台驱动665

17.7ASoC架构中的Codec驱动666

17.7.1 Codec的DAI和PCM的配置666

17.7.2 Codec的控制IO669

17.7.3 混音器和其他音频控制项671

17.7.4 Codec设备与ASoC声卡注册673

17.8 ASoC架构中的Platform驱动676

17.8.1CPU  DAI驱动676

17.8.2 音频DMA驱动677

17.8.3 创建音频DMA缓冲区678

17.8.4 音频DMA的PCM操作681

17.9 S3C2440+UDA1341声卡驱动配置与测试683

17.9.1 在机器配置文件中添加对声卡的支持683

17.9.2 在内核配置中支持声卡驱动684

17.9.3 应用层alsa-lib移植685

17.9.4 编写ALSA应用程序686

17.9.5 播放和录音测试690

17.10S3C6410+WM9714声卡驱动移植691

17.10.1添加6410声卡驱动691

17.10.2在内核配置中支持声卡驱动692

17.10.3 alsa-utils工具集移植692

17.11 本章小结693

第18章USB驱动移植694

18.1USB子系统架构694

18.2USB驱动中的描述符结构695

18.3USB主机驱动695

18.3.1主机控制器驱动695

18.3.2OHCI主机控制器驱动698

18.4S3C2440/S3C6410  USB主机驱动的实现700

18.5USB设备驱动701

18.5.1USB设备驱动描述结构702

18.5.2USB请求块URB703

18.5.3URB的处理流程705

18.5.4 usb_bulk_msg()和usb_control_msg()708

18.5.5探测和断开函数709

18.6USB骨架程序710

18.7USB设备驱动实例718

18.7.1DNW驱动的实现718

18.7.2USB键盘驱动的实现720

18.8本章小结728

应用程序移植篇

第19章嵌入式Qt移植730

19.1Qt开发环境搭建与使用  730

19.1.1Qt  SDK的下载与安装730

19.1.2第一个Qt程序732

19.1.3利用Qt  Creator建立一个工程733

19.2Qt的功能模块与裁剪735

19.2.1Qt模块的构成735

19.2.2图形用户界面736

19.2.3信号与槽  736

19.2.4布局管理737

19.2.5主视窗737

19.3嵌入式Qt移植与测试737

19.3.1触屏库tslib移植737

19.3.2Qt库移植739

19.3.3嵌入式Qt程序测试741

19.3.4嵌入式Qt工程配置与测试743

19.4本章小结751

第20章嵌入式多媒体程序移植752

20.1音频播放程序madplay的移植752

20.1.1在Ubuntu中安装madplay752

20.1.2 在Ubuntu中测试madplay753

20.1.3将madplay移植到开发板753

20.1.4在开发板中测试madplay755

20.2视频播放程序MPlayer的移植755

20.2.1在Ubuntu中安装MPlayer755

20.2.2在Ubuntu中测试MPlayer756

20.2.3将MPlayer移植到开发板756

20.2.4在开发板中测试MPlayer758

20.3利用Qt开发视频播放器758

20.3.1MPlayer的SLAVE模式759

20.3.2示例播放器MyPlayer的实现759

20.4本章小结760

第21章嵌入式数据库移植761

21.1SQLite数据库的使用761

21.1.1使用命令行操作SQLite761

21.1.2使用C语言操作SQLite763

21.1.3在Qt中操作SQLite765

21.1.4在QTableView中显示数据库内容767

21.2SQLite数据库的移植770

21.2.1将SQLite移植到开发板770

21.2.2在开发板中测试SQLite771

21.3本章小结773

第22章嵌入式Web服务器移植774

22.1Boa的使用与HTML页面测试774

22.2CGI程序测试779

22.2.1CGI的概念和原理779

22.2.2编写CGI脚本测试779

22.2.3CGIC库的基本使用780

22.3通过网页控制设备782

22.4通过网页监控设备785

22.5网页视频监控788

22.6将Web服务器移植到开发板791

22.6.1将Boa移植到开发板791

22.6.2将CGIC移植到开发板792

22.6.3将mjpg-streamer移植到开发板792

22.6.4在开发板上搭建Web服务站点793

22.7本章小结793

第23章嵌入式JVM移植794

23.1phoneME虚拟机移植794

23.1.1获取源代码795

23.1.2编译和安装795

23.1.3测试步骤796

23.2JamVM虚拟机移植798

23.2.1GNU  Classpath移植798

23.2.2JamVM移植799

23.2.3JamVM测试799

23.3在JamVM上运行Jetty服务器800

23.3.1Jetty服务器启动800

23.3.2在Jetty服务器中部署Web应用801

23.3.3Servlet和JSP页面测试803

23.4本章小结805

展开预览

猜您喜欢

评论

登录/注册

意见反馈

求资源

回顶部

推荐内容

热门活动

热门器件

随便看看

  • 真心请教
    AT91PS_AICpAic;//* Load System pAic Base addresspAic = AT91C_BASE_AIC;请问这段什么意思?AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1 << AT91C_ID_PIOA )请问这段什么意思?1 << AT91C_ID_PIOA ???AT91F_AIC_ConfigureIt (
  • oemaddrtab_cfg.inc修改后编译错误
    现在修改oemaddtab_cfg.inc后出现编译错误错误 115 error A0092: no immediate rotate operand can be created: -1068 D:\WINCE600\PLATFORM\SMDK6410\SRC\OAL\OALLIB\startup.s 555错误 116 BLDDEMO: There were errors building N
  • 更丰富的后视镜功能!
    [align=left][color=#000]随着高级驾驶辅助系统(ADAS)在各类不同功能水平汽车上继续得到越来越广泛的应用,TI也持续为其提供可扩展解决方案。CMS(摄像监测系统)便是一种新兴的ADAS应用,其将后视镜和两侧后视镜都替换成摄像机和监视器。相比如今典型的机械镜,该等电子系统具有多重优势:[/color][/align][list][*]空气阻力更低,提升汽油里程[*]改善能见度
  • 2407怎么就进不去中断呢?是不是中断向量入口什么的有问题?
    [color=#222222][backcolor=rgb(238, 238, 238)][font=sans-serif][size=14.399999618530273px]我都要疯了!SVPWM 软件法,弄了一周了,下溢中断进不去,我换了文件(vectors.asm)到最后什么中断都进不去了(我是说int2中的比较、周期、上溢、下溢中断),这是怎么回事?!求帮助。。。。[/size][/fo
  • LED发光字制作中的常见问题解决方法
    [hide]LED发光字具有白天美观,夜晚亮丽,省电节能,经久耐用的诸多优点,又能够满足节能、环保的城市美化标准,以燎原之势迅速走红。但是,光源应用于广告行业(发光字)制作,也出现了很多不尽人意的问题。  一、常见问题  1、使用寿命短:正规厂商生产的的理论使用寿命一般为80000个小时左右。而现在很多的发光字没用够一年就开始频繁更换模组,给客户和广告制作商都带来了很多麻烦和经济损失。  2、颜色
  • MIT S测试、和仿真
  • 问一个简单的问题:关于如何获取键盘值
  • FPGA高手经验谈DOC文档
  • 如何实现网络远程控制两轮平衡车???
  • AD滴泪在Gerber文件中有残留

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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