初入职场之嵌入式Linux开发快速上手PDF电子书下载
- 电子书积分:10 积分如何计算积分?
- 作 者:祁德春编著
- 出 版 社:北京:电子工业出版社
- 出版年份:2010
- ISBN:9787121120794
- 页数:242 页
第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
- 《物联网与嵌入式技术及其在农业上的应用》马德新 2019
- 《职场新人生存指南》考薇著 2019
- 《每天3分钟速学职场英语》张守双主编 2019
- 《女性如何在职场绽放》盛珺著 2019
- 《手机创意摄影攻略一学就上手》谢美华 2019
- 《高情商职场情绪课》赵了了著 2019
- 《从0到1 JavaScript 快速上手 微视频版》莫振杰 2019
- 《工作的本质 初入职场的你应该懂得的工作基本规则》(日)江口克彦著 2020
- 《STM32嵌入式技术应用开发全案例实践=CASES PRACTICE OF STM32 EMBEDDED TECHNOLOGY APPLICATION AND DEVELOPMENT》苏李果 2020
- 《嵌入式系统接口面向物联网与CPS设计=EMBEDDED SYSTEM INTERFACING DESIGN FOR THE INTERNET-OF-THINGS(IOT) AND CY》(美)玛里琳·沃尔夫著 2020
- 《市政工程基础》杨岚编著 2009
- 《家畜百宝 猪、牛、羊、鸡的综合利用》山西省商业厅组织技术处编著 1959
- 《《道德经》200句》崇贤书院编著 2018
- 《高级英语阅读与听说教程》刘秀梅编著 2019
- 《计算机网络与通信基础》谢雨飞,田启川编著 2019
- 《看图自学吉他弹唱教程》陈飞编著 2019
- 《法语词汇认知联想记忆法》刘莲编著 2020
- 《培智学校义务教育实验教科书教师教学用书 生活适应 二年级 上》人民教育出版社,课程教材研究所,特殊教育课程教材研究中心编著 2019
- 《国家社科基金项目申报规范 技巧与案例 第3版 2020》文传浩,夏宇编著 2019
- 《流体力学》张扬军,彭杰,诸葛伟林编著 2019
- 《电子测量与仪器》人力资源和社会保障部教材办公室组织编写 2009
- 《少儿电子琴入门教程 双色图解版》灌木文化 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《通信电子电路原理及仿真设计》叶建芳 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《电子应用技术项目教程 第3版》王彰云 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017