图书介绍

初入职场之嵌入式Linux开发快速上手2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

初入职场之嵌入式Linux开发快速上手
  • 祁德春编著 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121120794
  • 出版时间:2010
  • 标注页数:242页
  • 文件大小:131MB
  • 文件页数:253页
  • 主题词:Linux操作系统-程序设计

PDF下载


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

下载说明

初入职场之嵌入式Linux开发快速上手PDF格式电子书版下载

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

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

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

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

图书目录

第1章 嵌入式Linux基础1

1.1 嵌入式Linux概述1

1.2 嵌入式Linux的特点2

1.3 嵌入式Linux的应用范围2

1.4 嵌入式Linux的开发模式3

1.5 嵌入式Linux发展面临的挑战4

1.6 嵌入式Linux的发展前景5

1.7 嵌入式Linux应用程序开发必备技能6

第2章 搭建Linux开发服务器8

2.1 Fedora概述8

2.2 VMware Workstation概述9

2.3 Fedora 5的安装10

2.4 配置Linux服务器31

2.4.1 怎样开通常用网络服务31

2.4.2 ping不通Linux主机怎么办31

2.4.3 由telnet连不上Linux主机怎么办32

2.4.4 怎样让root用户telnet到主机32

2.4.5 怎样配置Samba服务器——创建登录用户32

2.4.6 怎样配置Samba服务器33

2.4.7 登录主机提示找不到网络路径怎么办33

2.4.8 登录主机提示指定的网络名不再可用怎么办33

2.4.9 tftp下载主机文件超时怎么办33

2.4.10 NFS配置——开启服务并添加共享文件夹34

2.4.11 NFS配置——共享目录不能被挂载怎么办34

2.4.12 怎样修改File Browser风格——显示地址栏34

2.4.13 怎样修改Linux主机的屏幕分辨率34

2.4.14 怎样修改Linux主机的网络接入方式34

2.4.15 Fedora 5安装完毕以后不能添加/删除软件怎么办35

2.4.16 Fedora 5不能在SCSI虚拟硬盘上安装怎么办36

第3章 常用Linux命令介绍37

3.1 常用命令介绍37

3.1.1 文件管理命令37

3.1.2 备份压缩39

3.1.3 磁盘管理和维护39

3.1.4 系统管理和维护41

3.1.5 文档搜索和查找44

3.1.6 网络相关命令44

3.2 常见问题探讨45

3.2.1 cp和scp复制丢失符号链接怎么办45

3.2.2 fgrep搜索时感觉很慢怎么办46

3.2.3 烧写NAND Flash后文件系统校验出错怎么办46

3.2.4 怎样在开发板上查看内核版本和硬件平台46

3.2.5 怎样查看/设置/删除默认网关46

3.2.6 设置默认网关显示网络不可达怎么办46

3.2.7 怎样通过命令设置DNS地址46

3.2.8 busybox命令date设置时间出错怎么办47

3.2.9 busybox命令udhcpc不能设置IP地址怎么办47

3.2.10 busybox命令telnetd让其他主机连接失败怎么办47

3.2.11 怎样在开发板上格式化U盘并创建文件系统47

3.2.12 怎样在开发板上挂载U盘48

第4章 搭建嵌入式Linux开发环境49

4.1 搭建嵌入式开发环境49

4.1.1 搭建交叉编译环境49

4.1.2 编译内核53

4.1.3 编译标准函数库53

4.1.4 编译bootloader53

4.1.5 开发编译应用程序53

4.1.6 在Linux上开启tftp、nfs、ssh、telnet等服务54

4.1.7 使用超级终端远程登录54

4.1.8 构建嵌入式Linux根文件系统54

4.1.9 制作根文件系统镜像55

4.2 常见问题探讨55

4.2.1 了解Windows编程55

4.2.2 不会写驱动和U-boot怎么办56

4.2.3 不会写makefile怎么办56

4.2.4 SecureCRT特别配置57

4.2.5 Linux内核配置时M不能修改怎么办57

4.2.6 开发板上/proc中没有scsi文件夹怎么办58

4.2.7 开发板上/proc/bus/usb中没有设备信息怎么办58

4.2.8 开发板上/sys为空怎么办59

4.2.9 开发板启动时找不到init进程的原因59

4.2.10 怎样进行只读文件系统调试59

4.2.11 采用NFS调试时出现RPC错误的原因60

4.2.12 烧写jffs2镜像之后重启很慢的原因60

4.2.13 无法找到“libstdc++.so.6”怎么办60

4.2.14 不能执行二进制文件怎么办61

4.2.15 errno是否线程安全61

4.2.16 注意bootloader传给内核的启动参数61

4.2.17 怎样在内核drivers目录下添加模块61

4.2.18 怎样实时监测USB等hotplug设备63

第5章 如何移植开源代码68

5.1 交叉编译开源代码69

5.1.1 下载开源代码69

5.1.2 在host上运行程序69

5.1.3 交叉编译70

5.2 在开发板上运行72

5.3 开源代码向工程中移植74

5.4 常见问题探讨77

5.4.1 版本的选择77

5.4.2 执行configure脚本失败时怎么办77

5.4.3 链接以两个下画线开头的函数显示未定义怎么办77

5.4.4 某些源文件不能编译时的解决办法77

5.4.5 交叉编译的文件在开发板上的放置位置77

5.4.6 在程序中调用交叉编译的程序78

5.4.7 移植的程序运行时写文件失败的原因78

5.4.8 源码移植时的注意事项78

第6章 简单shell编程79

6.1 shell概述79

6.2 &命令79

6.3 shell输入与输出——echo和管道(|)80

6.3.1 echo80

6.3.2 管道(|)80

6.4 正则表达式80

6.5 shell变量——本地变量、环境变量、位置变量参数81

6.5.1 本地变量81

6.5.2 环境变量84

6.5.3 位置变量参数85

6.6 引号的使用——双引号、单引号、反引号、反斜线86

6.6.1 双引号86

6.6.2 单引号87

6.6.3 反引号87

6.6.4 反斜线87

6.7 条件测试88

6.7.1 文件状态测试88

6.7.2 逻辑操作符88

6.7.3 字符串测试89

6.7.4 数值测试89

6.8 shell的流控制结构——流控制和循环90

6.8.1 流控制90

6.8.2 循环92

6.9 使用shell函数95

6.10 shell编程实践96

6.11 常见问题96

第7章 socket编程98

7.1 常用函数介绍98

7.2 编程实例103

7.2.1 使用select实现超时链接103

7.2.2 非阻塞数据收发操作106

7.2.3 简单服务器108

7.2.4 加入组播110

7.2.5 组播服务器112

7.3 常见问题探讨114

7.3.1 怎样实现内核级PPP拨号程序114

7.3.2 PPPOE拨号一直不成功怎么办115

7.3.3 PPPOE拨号成功获取IP地址但不能上网怎么办115

7.3.4 给ppp0设置了默认网关仍不能上网怎么办115

7.3.5 通过system函数启动PPPOE拨号死机怎么办116

7.3.6 非法关机导致PPPOE下次连接失败怎么办116

7.3.7 PPPOE拨号上网是否要加包过滤116

7.3.8 IP地址设置成功后仍ping不通同网段内其他主机怎么办116

7.3.9 错误SIOCADDRT:Network is unreachable的原因分析117

7.3.10 修改socket接收缓冲区大小的方法117

7.3.11 修改内核中IGMP支持版本的方法118

7.3.12 错误Too many open files in system的原因分析118

7.3.13 接收HTTP或RTSP应答数据时的注意事项118

7.3.14 注意select设置超时的方式120

7.3.15 域名解析花费时间长的解决办法121

7.3.16 非阻塞socket无限等待的解决办法123

7.3.17 用setsockopt+SO_SNDTIMEO实现链接超时123

7.3.18 调用setsockopt时出现错误No such device的解决办法124

7.3.19 断电重启以后连接服务器失败的解决办法124

第8章 多线程编程125

8.1 线程管理函数125

8.2 线程属性操作函数127

8.3 实例讲解130

8.3.1 创建线程并查看其属性130

8.3.2 pthread_exit的错误用法134

8.3.3 自封装函数create_thread136

8.4 多线程同步142

8.4.1 互斥锁(mutex)常用函数介绍142

8.4.2 互斥锁的两种初始化方式及应用144

8.4.3 信号量(semaphore)常用函数介绍148

8.4.4 二值信号量应用——互斥锁149

8.4.5 多值信号量应用——停车场问题152

8.5 多线程通信155

8.5.1 通过全局变量通信155

8.5.2 系统V消息队列155

8.5.3 POSIX消息队列162

8.5.4 自封装消息队列170

8.6 常见问题探讨173

8.6.1 使用多线程的好处173

8.6.2 程序运行到pthread相关函数时阻塞怎么办174

8.6.3 线程被取消后用ps还能看到其PID怎么办174

8.6.4 在嵌入式Linux上是否使用实时优先级175

8.6.5 嵌入式Linux线程分离属性的设置175

8.6.6 用kill系统调用终止线程的隐患175

8.6.7 用pthread_kill终止线程175

第9章 常见死机问题探讨178

9.1 常见死机及原因分析178

9.1.1 打印函数输出格式或者参数顺序不对178

9.1.2 除数为0180

9.1.3 应用程序链接不匹配的库文件或驱动180

9.1.4 操作未初始化的指针181

9.1.5 操作空指针182

9.1.6 系统内存耗尽186

9.1.7 重复释放同一块内存187

9.1.8 free释放栈内存189

9.1.9 malloc/new返回的地址被修改192

9.1.10 内存越界195

9.1.11 分配过大的栈内存196

9.1.12 分配过大的静态内存197

9.1.13 递归调用导致栈内存不够198

9.1.14 操作“野指针”199

9.1.15 未调用模块的初始化函数202

9.1.16 混用名称和功能相近的函数203

9.1.17 平台问题203

9.1.18 平台编译规则引起的死机204

9.1.19 程序编译不完全206

9.2 死机调试206

9.2.1 gdb远程调试207

9.2.2 抓取死机core文件207

9.3 死循环207

9.3.1 无符号数和0比较作为循环条件208

9.3.2 循环退出条件不当208

9.3.3 链表操作不当210

9.4 关键任务死锁或阻塞211

9.4.1 关键任务调用阻塞函数211

9.4.2 嵌套调用mutex或semaphore212

9.4.3 操作消息队列时无限等待214

附录217

后记240

参考文献242

热门推荐