搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
文献来源:
出版时间 :
初入职场之嵌入式Linux开发快速上手
0.00    
图书来源: 浙江图书馆(由图书馆配书)
  • 配送范围:
    全国(除港澳台地区)
  • ISBN:
    9787121120794
  • 作      者:
    祁德春编著
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2010
收藏
内容介绍
    《初入职场之嵌入式Linux开发快速上手》介绍了作者初入职场从事嵌入式Linux开发,从不知所措到独立承担项目的过程中所遇到的种种问题,在简要说明原理的同时,还配有完整的实例代码,并对问题进行了详细的分析和解答。书中第一部分简要介绍嵌入式Linux开发基础,重点是第二部分,剖析了常见shell编程、socket编程、多线程编程及同步、多线程通信中的问题,以及常见死机问题等。<br>    《初入职场之嵌入式Linux开发快速上手》立足于实际研发,适合于初入职场的软件开发人员,准备从事嵌入式Linux开发的人员,以及计算机、电子相关专业的学生阅读。
展开
目录
第1章  嵌入式Linux基础  1<br>  1.1  什么是嵌入式Linux  1<br>  1.2  嵌入式Linux的特点  2<br>  1.3  嵌入式Linux的应用范围  2<br>  1.4  嵌入式Linux的开发模式  3<br>  1.5  嵌入式Linux发展面临的挑战  4<br>  1.6  嵌入式Linux的发展前景  5<br>  1.7  嵌入式Linux应用程序开发必备技能  6<br>第2章  搭建Linux开发服务器  8<br>  2.1  Fedora概述  8<br>  2.2  VMware workstation概述  9<br>  2.3  Fedora5的安装  10<br>  2.4  配置linux服务器  31<br>    2.4.1  怎样开通常用网络服务  31<br>    2.4.2  ping不通Linux主机怎么办  31<br>    2.4.3  由telnet连不上Linux主机怎么办  32<br>    2.4.4  怎样让root用户telnet到主机  32<br>    2.4.5  怎样配置Samba服务器——创建登录用户  32<br>    2.4.6  怎样配置Samba服务器  33<br>    2.4.7  登录主机提示找不到网络路径怎么办  33<br>    2.4.8  登录主机提示指定的网络名不再可用怎么办  33<br>    2.4.9  tftp下载主机文件超时怎么办  33<br>    2.4.10  NFS配置——开启服务并添加共享文件夹  34<br>    2.4.11  NFS配置——共享目录不能被挂载怎么办  34<br>    2.4.12  怎样修改File Browser风格——显示地址栏  34<br>    2.4.13  怎样修改Linux主机的屏幕分辨率  34<br>    2.4.14  怎样修改Linux主机的网络接入方式  34<br>    2.4.15  Fedora 5安装完毕以后不能添加/删除软件怎么办  35<br>    2.4.16  Fedora 5不能在SCSI虚拟硬盘上安装怎么办  36<br>第3章  常用Linux命令介绍  37<br>  3.1  常用命令介绍  37<br>    3.1.1  文件管理命令  37<br>    3.1.2  备份压缩  39<br>    3.1.3  磁盘管理和维护  39<br>    3.1.4  系统管理和维护  41<br>    3.1.5  文档搜索和查找  44<br>    3.1.6  网络相关  44<br>  3.2  常见问题探讨  45<br>    3.2.1  cp和scp拷贝丢失符号链接怎么办  45<br>    3.2.2  fgrep搜索时感觉很慢怎么办  46<br>    3.2.3  烧写NAND Flash后文件系统校验出错怎么办  46<br>    3.2.4  怎样在开发板上查看内核版本和硬件平台  46<br>    3.2.5  怎样查看/设置/删除默认网关  46<br>    3.2.6  设置默认网关显示网络不可达怎么办  46<br>    3.2.7  怎样通过命令设置DNS地址  46<br>    3.2.8  busybox命令date设置时间出错怎么办  47<br>    3.2.9  busybox命令udhcpc不能设置IP地址怎么办  47<br>    3.2.10  busybox命令telnetd让其他主机连接失败怎么办  47<br>    3.2.11  怎样在开发板上格式化U盘并创建文件系统  47<br>    3.2.12  怎样在开发板上挂载U盘  48<br>第4章  搭建嵌入式Linux开发环境  49<br>  4.1  搭建嵌入式开发环境  49<br>    4.1.1  搭建交叉编译环境  49<br>    4.1.2  编译内核  53<br>    4.1.3  编译标准函数库  53<br>    4.1.4  编译bootloader  53<br>    4.1.5  开发编译应用程序  53<br>    4.1.6  在Linux上开启tftp、nfs、ssh、telnet等服务  54<br>    4.1.7  使用超级终端远程登录  54<br>    4.1.8  构建嵌入式Linux根文件系统  54<br>    4.1.9  制作根文件系统镜像  55<br>  4.2  常见问题探讨  55<br>    4.2.1  了解Windows编程  55<br>    4.2.2  不会写驱动和u-boot怎么办  56<br>    4.2.3  不会写makefile怎么办  56<br>    4.2.4  SecureCRT特别配置  57<br>    4.2.5  Linux内核配置时M不能修改怎么办  57<br>    4.2.6  开发板上/proc中没有scsi文件夹怎么办  58<br>    4.2.7  开发板上/proc/bus/usb中没有设备信息怎么办  58<br>    4.2.8  开发板上/sys为空怎么办  59<br>    4.2.9  开发板启动时找不到init进程的原因  59<br>    4.2.10  怎样进行只读文件系统调试  59<br>    4.2.11  采用NFS调试时出现RPC错误的原因  60<br>    4.2.12  烧写jffs2镜像之后重启很慢的原因  60<br>    4.2.13  无法找到"libstdc++.so.6"怎么办  60<br>    4.2.14  不能执行二进制文件怎么办  60<br>    4.2.15  errno是否线程安全  61<br>    4.2.16  注意bootloader传给内核的启动参数  61<br>    4.2.17  怎样在内核drivers目录下添加模块  61<br>    4.2.18  怎样实时监测USB等hotplug设备  63<br>第5章  如何移植开源代码  68<br>  5.1  交叉编译开源代码  69<br>    5.1.1  下载开源代码  69<br>    5.1.2  在host上运行程序  69<br>    5.1.3  交叉编译  70<br>  5.2  在开发板上运行  72<br>  5.3  开源代码向工程中移植  74<br>  5.4  常见问题探讨  77<br>    5.4.1  版本的选择  77<br>    5.4.2  执行configure脚本失败时怎么办  77<br>    5.4.3  链接以两个下划线开头的函数显示未定义怎么办  77<br>    5.4.4  某些源文件不能编译时的解决办法  77<br>    5.4.5  交叉编译的文件在开发板上的放置位置  77<br>    5.4.6  在程序中调用交叉编译的程序  78<br>    5.4.7  移植的程序运行时写文件失败的原因  78<br>    5.4.8  源码移植时的注意事项  78<br>第6章  简单shell编程  79<br>  6.1  什么是shell  79<br>  6.2  &命令  79<br>  6.3  shell输入与输出——echo和管道(|)  80<br>    6.3.1  echo  80<br>    6.3.2  管道(|)  80<br>  6.4  正则表达式  80<br>  6.5  shell变量——本地变量、环境变量、位置变量参数  81<br>    6.5.1  本地变量  81<br>    6.5.2  环境变量  84<br>    6.5.3  位置变量参数  85<br>  6.6  引号的使用——双引号、单引号、 反引号、反斜线  86<br>    6.6.1  双引号  86<br>    6.6.2  单引号  87<br>    6.6.3  反引号  87<br>    6.6.4  反斜线  87<br>  6.7  条件测试  88<br>    6.7.1  文件状态测试  88<br>    6.7.2  逻辑操作符  88<br>    6.7.3  字符串测试  89<br>    6.7.4  数值测试  89<br>  6.8  shell的流控制结构——流控制和循环  90<br>    6.8.1  流控制  90<br>    6.8.2  循环  92<br>  6.9  使用shell函数  95<br>  6.10  shell编程实践  96<br>  6.11  常见问题  96<br>第7章  socket编程  98<br>  7.1  常用函数介绍  98<br>  7.2  编程实例  103<br>    7.2.1  使用select实现超时连接  103<br>    7.2.2  非阻塞数据收发操作  106<br>    7.2.3  简单服务器  108<br>    7.2.4  加入组播  110<br>    7.2.5  组播服务器  112<br>  7.3  常见问题探讨  114<br>    7.3.1  怎样实现内核级PPP拨号程序  114<br>    7.3.2  PPPOE拨号一直不成功怎么办  115<br>    7.3.3  PPPOE拨号成功获取IP地址但不能上网怎么办  115<br>    7.3.4  给ppp0设置了默认网关仍不能上网怎么办  115<br>    7.3.5  通过system函数启动PPPOE拨号死机怎么办  116<br>    7.3.6  非法关机导致pppoe下次连接失败怎么办  116<br>    7.3.7  PPPOE拨号上网是否要加包过滤  116<br>    7.3.8  IP地址设置成功后仍ping不通同网段内其他主机怎么办  116<br>    7.3.9  错误SIOCADDRT: Network is unreachable的原因分析  117<br>    7.3.10  修改socket接收缓冲区大小的方法  117<br>    7.3.11  修改内核中IGMP支持版本的方法  118<br>    7.3.12  错误Too many open files in system的原因分析  118<br>    7.3.13  接收HTTP或RTSP应答数据时的注意事项  118<br>    7.3.14  注意select设置超时的方式  120<br>    7.3.15  域名解析花费时间长的解决办法  121<br>    7.3.16  非阻塞socket无限等待的解决办法  123<br>    7.3.17  用setsockopt+SO_SNDTIMEO实现连接超时  123<br>    7.3.18  调用setsockopt时出现错误No such device的解决办法124<br>    7.3.19  断电重启以后连接服务器失败的解决办法  124<br>第8章  多线程编程  125<br>  8.1  线程管理函数  125<br>  8.2  线程属性操作函数  127<br>  8.3  实例讲解  130<br>    8.3.1  创建线程并查看其属性  130<br>    8.3.2  pthread_exit的错误用法  134<br>    8.3.3  自封装函数create_thread  136<br>  8.4  多线程同步  142<br>    8.4.1  互斥锁(mutex)常用函数介绍  142<br>    8.4.2互斥锁的两种初始化方式及应用  144<br>    8.4.3  信号量(semaphore)常用函数介绍  148<br>    8.4.4  二值信号量应用——互斥锁  149<br>    8.4.5  多值信号量应用——停车场问题  152<br>  8.5  多线程通信  155<br>    8.5.1  通过全局变量通信  155<br>    8.5.2  系统V消息队列  155<br>    8.5.3  POSIX消息队列  163<br>    8.5.4  自封装消息队列  170<br>  8.6  常见问题探讨  173<br>    8.6.1  使用多线程的好处  173<br>    8.6.2  程序运行到pthread相关函数时阻塞怎么办  174<br>    8.6.3  线程被取消后用ps还能看到其PID怎么办  174<br>    8.6.4  在嵌入式Linux上是否使用实时优先级  175<br>    8.6.5  嵌入式Linux线程分离属性的设置  175<br>    8.6.6  用kill系统调用终止线程的隐患  175<br>    8.6.7  用pthread_kill终止线程  175<br>第9章  常见死机问题探讨  179<br>  9.1  常见死机及原因分析  179<br>    9.1.1  打印函数输出格式或者参数顺序不对  179<br>    9.1.2  除数为0  181<br>    9.1.3  应用程序链接不匹配的库文件或驱动  181<br>    9.1.4  操作未初始化的指针  182<br>    9.1.5  操作空指针  183<br>    9.1.6  系统内存耗尽  187<br>    9.1.7  重复释放同一块内存  188<br>    9.1.8  free释放栈内存  190<br>    9.1.9  malloc/new返回的地址被修改  193<br>    9.1.10  内存越界  196<br>    9.1.11  分配过大的栈内存  197<br>    9.1.12  分配过大的静态内存  198<br>    9.1.13  递归调用导致栈内存不够  199<br>    9.1.14  操作“野指针”  200<br>    9.1.15  未调用模块的初始化函数  204<br>    9.1.16  混用名称和功能相近的函数  204<br>    9.1.17  平台问题  205<br>    9.1.18  平台编译规则引起的死机  205<br>    9.1.19  程序编译不完全  207<br>  9.2  死机调试  207<br>    9.2.1  gdb远程调试  208<br>    9.2.2  抓取死机core文件  208<br>  9.3  死循环  209<br>    9.3.1  无符号数和0比较作为循环条件  209<br>    9.3.2  循环退出条件不当  209<br>    9.3.3  链表操作不当  211<br>  9.4  关键任务死锁或阻塞  212<br>    9.4.1  关键任务调用阻塞函数  212<br>    9.4.2  嵌套调用mutex或semaphore  213<br>    9.4.3  操作消息队列时无限等待  215<br>附录  218<br>后记  241
展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

请选择您读者所在的图书馆

选择图书馆
浙江图书馆
点击获取验证码
登录
没有读者证?在线办证