• 嵌入式Linux系统设计及应用——基于国产龙芯SoC
  • 嵌入式Linux系统设计及应用——基于国产龙芯SoC
  • 嵌入式Linux系统设计及应用——基于国产龙芯SoC
21年品牌 40万+商家 超1.5亿件商品

嵌入式Linux系统设计及应用——基于国产龙芯SoC

33 3.7折 89 九五品

仅1件

北京丰台
认证卖家担保交易快速发货售后保障

作者孙冬梅;石南

出版社清华大学出版社

出版时间2021-02

版次1

装帧其他

货号L5

上书时间2024-05-26

   商品详情   

品相描述:九五品
品相如图,内页干净不缺页
图书标准信息
  • 作者 孙冬梅;石南
  • 出版社 清华大学出版社
  • 出版时间 2021-02
  • 版次 1
  • ISBN 9787302522164
  • 定价 89.00元
  • 装帧 其他
  • 开本 16开
  • 纸张 胶版纸
  • 页数 440页
  • 字数 726千字
【内容简介】
龙芯系列微处理器是中国拥有自主知识产权的中央处理器,中国科学院计算技术研究所从2001 年开始研制龙芯系列处理器,于2010 年正式成立龙芯中科技术有限公司(以下简称龙芯中科),主要产品包括龙芯1 号CPU、龙芯2 号CPU 及龙芯3 号CPU。本书是基于龙芯俱乐部与龙芯中科合作开发的南京龙众创芯电子科技有限公司承制的智龙开发板,围绕龙芯1 号芯片LS1C 进行嵌入式系统开发讲解,也包含龙芯中科的2K 龙芯派、南京龙众创芯电子科技有限公司 的龙芯3A3000 开发者计算机的内容。 本书内容共分3 篇。基础篇包含实验平台和开发环境的搭建。中级篇为Linux 基础应用编程,包含线程、信号、网络等基本操作。高级篇包含开发板硬件编程、驱动程序编写等高级操作。附录主要为嵌入式系统开发常用资料和智龙开发板的电路原理图。本书结合实践案例及应用场景,按照嵌入式系统的开发流程组织内容,使读者能熟练掌握从开发环境搭建到编写完整工程的流程。同时提供内核源码及实例代码,并给出测试结果,方便读者参考。 本书具有广泛的适用性,不仅可用于MIPS 架构的龙芯1 号芯片的嵌入式系统开发,还可用于基于Linux 操作系统的嵌入式系统学习。其中在内核原理、应用程序编写,如虚拟机编译、程序下载、调试、应用开发、内核裁减等方面与同类ARM 架构芯片相比,开发过程是通用的。本书可作为应用型本科、高职高专院校嵌入式系统方面的课程教材,也可作为相关开发人员的自学教材和参考手册。
【作者简介】
        孙冬梅(1975.1-):博士后,副教授,2004年获南京理工大学测试计量技术及仪器专业博士学位;2011.1~2015.12进入南京工业大学“动力工程及工程热物理”博士后流动站,从事研究工作。现任江苏省仪器仪表学会理事,江苏省射频识别技术标准化技术委员会委员。

        2012年主持了江苏省博士后基金“大型风电回转支承多源振动信号故障诊断的数据融合方法研究”;2009年主持江苏省高校自然科学基金项目“基于热导式微流量智能传感器的分析仪器开发研究”。参与了多项国家自然科学基金开发研究,完成了多项科研项目,有丰富的理论及实践经验;近几年来,在国内外核心期刊上发表学术论文50多篇。
【目录】
第1 章 实验平台及背景知识 .......................... 2

1.1 本书使用的开发板及操作系统 ................ 2

1.1.1 龙芯系列芯片 .................................................. 3

1.1.2 龙芯1 号微处理器 .......................................... 4

1.1.3 智龙开发板资源 .............................................. 5

1.1.4 智龙开发板使用的操作系统 .......................... 5

1.1.5 龙芯派一代开发板资源 .................................. 8

1.1.6 龙芯派一代与智龙开发板的差异 ................ 10

1.1.7 龙芯派一代开发板操作与启动盘制作 ........ 11

1.1.8 龙芯派二代开发板操作 ................................ 20

1.2 全龙芯的交叉编译平台 .......................... 24

1.2.1 在龙芯3A3000 主机Loongnix 系统中

搭建龙芯1C 开发环境 ................................. 24

1.2.2 中标麒麟操作系统 ........................................ 27

1.2.3 深度操作系统 ................................................ 28

1.2.4 普华操作系统 ................................................ 29

1.3 安装Ubuntu/Fedora 及其他程序 ............ 31

1.4 虚拟机常用目录 ...................................... 31

1.5 Windows 下需要安装的其他软件 .......... 32

1.6 一点常识 .................................................. 34

1.7 本书使用的网络资源 .............................. 35

第2 章 虚拟机安装Linux 操作系统 ............. 37

2.1 下载VMware Player 并安装 ................... 37

2.2 下载Ubuntu 桌面系统 ............................ 37

2.3 安装Ubuntu ............................................. 37

2.4 进入终端的方法 ...................................... 39

2.5 建立root 用户并自动登录 ...................... 39

2.6 安装VMware Tools ................................. 40

2.7 安装必要的软件 ...................................... 42

2.8 查看相关版本和信息 .............................. 43

2.9 虚拟机Linux 系统中TFTP 服务搭建.... 44

第3 章 安装工具链、编译内核、

制作文件系统 ................................... 47

3.1 安装交叉编译工具gcc-4.3-ls232 ........... 47

3.2 编译和烧写 PMON ................................. 48

3.3 编译和烧写内核 ...................................... 49

3.4 制作根文件系统 ...................................... 51

3.4.1 配置和编译BusyBox .................................... 51

3.4.2 创建文件系统目录 ........................................ 53

3.4.3 创建系统配置文件 ........................................ 53

3.4.4 复制库文件 .................................................... 56

3.5 制作根文件系统镜像 .............................. 58

3.5.1 安装镜像文件制作工具 ................................ 58

3.5.2 制作根文件系统镜像文件 ............................ 60

3.5.3 烧写根文件系统 ............................................ 61

第4 章 使用buildroot 构建根文件系统 ......... 62

4.1 获取buildroot........................................... 62

4.2 系统构建 .................................................. 62

4.3 烧写根文件系统镜像 .............................. 63

4.4 根文件系统软件包的定制 ...................... 63

4.5 buildroot 构建交叉编译工具链 ............... 67

第5 章 简单应用编程Hello World ............... 69

5.1 智龙开发板上运行程序 .......................... 69

5.2 友善之臂开发板mini2440 上

运行程序 .................................................. 70

5.3 ARM 架构应用程序的移植 .................... 71

第6 章 简单驱动程序编写 ............................ 74

6.1 驱动的原理及编写流程 .......................... 74

6.2 驱动模块的加载与卸载 .......................... 75

6.3 最简单的Linux 驱动 ............................... 75

6.4 驱动的编译和执行 .................................. 76

6.5 内核配置驱动 .......................................... 80

6.6 LED 子系统剖析 ..................................... 82

6.7 led_trigger 接口分析 ................................ 89

中级篇应用

第7 章 Linux 应用编程 ................................ 93

7.1 Linux 应用编程的基础知识 .................... 93

7.2 文件I/O 编程 ........................................... 93

7.3 进程和线程 .............................................. 96

7.4 多进程操作 .............................................. 97

7.5 进程间的通信 .......................................... 99

7.5.1 管道 ............................................................... 99

7.5.2 消息队列 .......................................................105

7.5.3 共享内存 .......................................................107

7.6 多线程操作 ............................................ 109

7.6.1 线程控制 .......................................................109

7.6.2 线程属性 .......................................................111

7.6.3 互斥锁...........................................................113

7.6.4 信号量...........................................................117

7.7 网络编程 ................................................ 119

7.7.1 网络编程基础概念 .......................................119

7.7.2 网络编程实例 ...............................................122

7.7.3 网络编程小结 ...............................................132

7.8 OpenVPN 使用 ....................................... 132

7.8.1 OpenVPN 简介 .............................................132

7.8.2 OpenVPN 在智龙上的移植 ........................133

7.8.3 生成证书和私钥 ...........................................133

7.8.4 服务器端启动VPN 服务 .............................135

7.8.5 客户端连接VPN 服务器 .............................136

7.8.6 在虚拟机中测试连接 ...................................137

7.8.7 在普华桌面操作系统中测试连接 .............. 138

7.9 应用编程总结 ........................................ 140

第8 章 开发板硬件接口编程 ...................... 141

8.1 点亮一个LED 灯 .................................. 141

8.1.1 LED 的操作接口 ......................................... 141

8.1.2 LED 控制 .................................................... 142

8.1.3 在程序中操作LED 灯 ................................ 142

8.2 GPIO 硬件编程 ...................................... 143

8.2.1 GPIO 和sysfs 操作接口 .............................. 144

8.2.2 GPIO 基本操作 ............................................ 145

8.2.3 在C 程序中操作GPIO ............................... 146

8.3 按键应用层编程 .................................... 148

8.3.1 按键操作接口 .............................................. 148

8.3.2 在程序中操作按键 ...................................... 151

8.4 U 盘和SD 卡 ......................................... 152

8.4.1 U 盘 .............................................................. 152

8.4.2 SD 卡 ............................................................ 153

8.5 RTC 时钟 ............................................... 154

8.6 串口读写 ................................................ 155

8.6.1 串口硬件说明 .............................................. 155

8.6.2 用minicom 操作串口 .................................. 156

8.6.3 用接口操作串口 .......................................... 157

8.6.4 在程序中操作串口 ...................................... 158

高级篇驱动

第9 章 NFS 文件系统搭建 ........................ 163

9.1 在虚拟机端安装NFS ............................ 163

9.2 配置虚拟机NFS .................................... 164

9.3 配置开发板NFS .................................... 165

9.4 使用NFS ................................................ 166

9.4.1 在开发板上挂载NFS 服务 ......................... 166

9.4.2 建立网络文件系统 .......................................166

第10 章 配置Eclipse 编程 ........................ 168

10.1 用Eclipse 开发应用程序 .................... 168

10.2 用Eclipse 开发内核模块 .................... 170

第11 章 一个简单的字符设备驱动 ............. 175

11.1 主设备号和次设备号 .......................... 175

11.1.1 设备编号的表达 .........................................176

11.1.2 分配和释放设备编号 .................................176

11.2 重要的数据结构 .................................. 178

11.3 字符设备的注册 .................................. 181

11.4 具体实例 .............................................. 182

11.4.1 file_operations 结构体设计 ........................185

11.4.2 模块初始化、模块卸载函数实现 .............186

11.4.3 读写函数的实现 .........................................187

11.4.4 驱动程序编译 .............................................187

11.4.5 驱动程序编译和加载 .................................188

11.4.6 驱动程序测试 .............................................188

11.5 一些有用的资料 .................................. 189

11.6 修改为模块注销自动删除设备节点 .. 190

第12 章 misc 杂项设备驱动 ...................... 191

12.1 misc 使用的结构体和函数 .................. 191

12.2 misc 设备的优点 .................................. 193

12.3 内核源码 .............................................. 193

12.4 具体实例 .............................................. 195

第13 章 PWM控制输出 ............................ 199

13.1 利用 LED_PWM ................................. 199

13.2 自己编写驱动文件 .............................. 205

第14 章 I2C 总线和设备驱动 .................... 214

14.1 I2C 总线概述 ....................................... 214

14.2 Linux I2C 设备驱动 ............................. 214

14.2.1 I2C adapter ..................................................215

14.2.2 I2C 子系统驱动模块的API .......................220

14.2.3 I2C client 的注册 ........................................220

14.2.4 I2C driver ....................................................224

14.2.5 I2C adapter 的注册 .....................................225

14.2.6 I2C tools 的使用 .........................................228

14.2.7 内核模块分析 ............................................ 231

14.3 实例分析at24cxx ................................. 232

14.4 实例分析DS3231 ................................ 234

第15 章 SPI 总线和设备驱动 ..................... 236

15.1 SPI 总线概述 ....................................... 236

15.1.1 硬件结构 .................................................... 236

15.1.2 工作时序 .................................................... 237

15.2 Linux SPI 设备驱动软件架构 ............. 238

15.3 SPI 通用接口层 ................................... 238

15.3.1 SPI 总线和类 ............................................. 238

15.3.2 spi_master 结构 .......................................... 239

15.3.3 spi_device 结构 .......................................... 240

15.3.4 spi_driver 结构 ........................................... 241

15.3.5 spi_message 和spi_transfer 结构 .............. 242

15.4 SPI 控制器驱动 ................................... 244

15.4.1 定义控制器设备 ........................................ 244

15.4.2 注册SPI 控制器的platform_driver .......... 246

15.4.3 注册spi_master .......................................... 246

15.5 SPI 数据传输 ....................................... 249

15.6 实例分析:驱动编写之SPI

设备静态注册spidev.c ........................ 250

15.7 实例分析:驱动编写之SPI

设备动态注册spike.c .......................... 253

15.8 编写测试程序 ...................................... 260

第16 章 CAN 总线和设备驱动 ................... 266

16.1 智龙开发板硬件CAN 接口 ................ 266

16.2 Socket CAN .......................................... 268

16.3 测试工具 .............................................. 269

16.4 Socket CAN 在智龙上的测试:

使用工具iproute2 ................................. 269

16.5 Socket CAN 在智龙上的测试:

使用工具canutils .................................. 273

16.6 编写CAN 的socket 收发

测试程序canapp ................................... 277

16.6.1 程序设计说明 ............................................ 277

16.6.2 程序发送示例 ............................................ 280

16.6.3 程序接收示例 ............................................ 281

16.6.4 发送和接收测试 .........................................282

第17 章 嵌入式GUI 编程 .......................... 284

17.1 使用外部LCD 控制器的

LCD 编程 ............................................ 284

17.1.1 硬件接口 .....................................................284

17.1.2 GPIO 口操作函数 ......................................284

17.1.3 LCD 操作 ....................................................293

17.1.4 编写Makefile .............................................294

17.1.5 代码及运行结果 .........................................295

17.2 基于Qt 使用内部LCD 控制器的

GUI 编程 ............................................... 302

17.2.1 关于Qt ........................................................302

17.2.2 Qt 的移植过程 ............................................303

17.2.3 配置buildroot .............................................304

17.2.4 下载并运行例程 .........................................306

17.2.5 搭建Qt 环境及编写应用程序 ...................308

17.2.6 PMON 及内核源码的修改 ........................313

17.2.7 支持键盘输入和串口、LCD 同时输出 ....314

第18 章 ADC 驱动及应用 .......................... 315

18.1 配置ADC 驱动 .................................... 315

18.2 硬件管脚分配 ...................................... 316

18.3 应用测试 .............................................. 316

18.4 应用层编程 .......................................... 316

第19 章 内核访问外设I/O 资源 ................. 319

19.1 MIPS 的内存映射 ................................ 319

19.2 动态映射方式 ...................................... 320

19.3 静态映射方式 ...................................... 326

19.4 mmap 内存映射 ................................... 328

19.4.1 mmap 系统调用 ..........................................328

19.4.2 系统调用mmap 用于共享内存的

两种方式 .....................................................329

19.4.3 mmap 进行内存映射的原理 ......................329

19.4.4 内存映射的步骤 .........................................333

19.5 mmap 编程示例 ................................... 333

第20 章 PMON 源码编译、烧写、

启动及裸机编程 ........................... 335

20.1 PMON 源码分析 .................................. 335

20.2 PMON 烧写 .......................................... 336

20.2.1 采用编程器更新PMON 到SPI Flash ....... 336

20.2.2 网络更新PMON 到SPI Flash .................. 336

20.2.3 网络更新PMON 到NAND Flash ............. 337

20.3 NAND Flash 存储器分区 .................... 337

20.4 内核启动过程 ...................................... 338

20.4.1 内核从NAND Flash 中加载 ..................... 338

20.4.2 内核从SD Card 中加载 ............................ 339

20.4.3 内核从tftp 中加载 ..................................... 340

20.4.4 设置PMON 的IP 地址 ............................. 340

20.5 PMON 的内置命令 .............................. 341

20.6 PMON 龙芯官方参考 .......................... 342

20.7 PMON 裸机编程 .................................. 342

第21 章 在Windows 环境下搭建龙芯1C

开发环境及龙芯1C 库 ................ 344

21.1 交叉编译工具链的下载和安装 .......... 344

21.2 MinGW 的下载和安装 ........................ 345

21.3 编译 ...................................................... 347

21.4 调试和运行 .......................................... 348

21.5 运行点灯程序 ...................................... 349

21.6 龙芯1C 库............................................ 350

第22 章 智龙开发板应用及其他龙芯开

发板 ............................................. 351

22.1 智龙开发板应用例程 .......................... 351

22.1.1 WiFi 小车应用 ........................................... 351

22.1.2 北斗导航应用 ............................................ 351

22.1.3 龙印3D 打印机 ......................................... 352

22.1.4 LCD 扩展板 ............................................... 353

22.1.5 其他应用开发例程 .................................... 353

22.2 龙芯机器人控制器 .............................. 354

22.2.1 硬件结构 .................................................... 354

22.2.2 烧录内核与根文件系统 ............................ 354

22.2.3 机器人控制器的PWM 输出操作 ............. 356

22.2.4 机器人控制器的应用 ................................ 357

22.3 智龙开发板在高校和社区中的

推广应用 .............................................. 357

22.3.1 高校应用 .................................................... 357

22.3.2 龙芯CPU 高校开源计划 ........................... 358

22.3.3 “龙芯杯”全国大学生计算机系统

能力培养大赛 ...........................................359

22.3.4 龙芯俱乐部开源社区 .................................359

22.3.5 基于龙芯平台的嵌入式系统设计竞赛等

高校比赛活动 .............................................360

第23 章 Linux 内核的配置和编译 .............. 362

23.1 安装图形化配置工具Ncurses ............. 362

23.2 运行图形化配置界面 .......................... 362

23.3 编译、烧写Linux 内核 ....................... 363

23.4 开发板各模块驱动源码 ...................... 363

23.5 配置内核各模块驱动 .......................... 364

23.5.1 配置网卡驱动 .............................................364

23.5.2 配置NFS 支持 ...........................................367

23.5.3 配置串口驱动 .............................................369

23.5.4 配置LCD 驱动 ...........................................370

23.5.5 配置按键驱动 .............................................372

23.5.6 配置SD 卡驱动 ..........................................374

23.5.7 配置U 盘驱动 ............................................375

23.5.8 配置USB 鼠标和键盘驱动 .......................377

23.5.9 配置USB OTG 驱动 ..................................380

23.5.10 配置音频驱动 ...........................................381

23.5.11 配置RTC 驱动 .........................................382

23.5.12 配置PWM 驱动 .......................................384

23.5.13 配置LED 驱动 .........................................386

23.5.14 配置红外驱动 ...........................................387

23.5.15 配置CAN 总线驱动 ................................388

23.5.16 配置SPI 控制器驱动 ...............................390

23.5.17 配置I2C 控制器驱动 ...............................391

23.5.18 配置ADC 驱动 ........................................392

23.5.19 配置GPIO 驱动 .......................................393

23.5.20 配置看门狗驱动 ...................................... 394

参考文献 ..................................................... 396

附录1 常用Linux 命令 .............................. 397

附录2 VIM 图例及常用操作 ....................... 410

附录3 BusyBox 的下载及配置 ................... 411

附录4 PMON 常用命令 ............................. 412

附录5 创建与驱动程序对应的设备节点 ..... 415

附录6 Linux 文件结构 ............................... 416

附录7 git 命令 ........................................... 418

附录8 在PMON 中使用命令devcp 进行

坏块处理和支持yaffs2 烧写 ........... 420

附录9 智龙开发板V2 电路原理图 ............. 421

附录10 智龙开发板V3 电路原理图 ........... 422

附录11 LCD 扩展板(外部控制器)

原理图.......................................... 423

附录12 LCD 扩展板(内部控制器)

原理图 ........................................... 424

附录13 机器人控制器电路原理图 .............. 425

附录14 第一届全国大学生嵌入式芯片设计

与应用竞赛龙芯平台获奖名单及

作品 ............................................... 426
点击展开 点击收起

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

品相如图,内页干净不缺页
此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP