当前位置:首页 > 工业技术
初入职场之嵌入式Linux开发快速上手
初入职场之嵌入式Linux开发快速上手

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

工业技术

  • 电子书积分:10 积分如何计算积分?
  • 作 者:祁德春编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2010
  • ISBN:9787121120794
  • 页数:242 页
图书介绍:本书介绍了作者初入职场从事嵌入式Linux开发,从不知所措到独立承担项目的过程中所遇到的种种问题,在简要说明原理的同时,还配有完整的实例代码,并对问题进行了详细的分析和解答。
《初入职场之嵌入式Linux开发快速上手》目录

第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 编译bootloader 53

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 echo 80

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_thread 136

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 除数为0 180

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或semaphore 212

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

附录 217

后记 240

参考文献 242

相关图书
作者其它书籍
返回顶部