萌萌哒图书专营店
  • 扫码下单

  • 全新嵌入式Linux系统开发冯新宇 编著9787302482192
  • 正版
    • 作者: 冯新宇 编著著 | 冯新宇 编著编 | 冯新宇 编著译 | 冯新宇 编著绘
    • 出版社: 清华大学出版社
    • 出版时间:2017-11-01
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    店铺装修中

    商家:
    萌萌哒图书专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    萌萌哒图书专营店

  • 商品参数
    • 作者: 冯新宇 编著著| 冯新宇 编著编| 冯新宇 编著译| 冯新宇 编著绘
    • 出版社:清华大学出版社
    • 出版时间:2017-11-01
    • 版次:1
    • 印次:1
    • 字数:621千字
    • 页数:392
    • 开本:16开
    • ISBN:9787302482192
    • 版权提供:清华大学出版社
    • 作者:冯新宇 编著
    • 著:冯新宇 编著
    • 装帧:平装
    • 印次:1
    • 定价:79.00
    • ISBN:9787302482192
    • 出版社:清华大学出版社
    • 开本:16开
    • 印刷时间:暂无
    • 语种:暂无
    • 出版时间:2017-11-01
    • 页数:392
    • 外部编号:1201590855
    • 版次:1
    • 成品尺寸:暂无

    章 Linux概述与系统管理 1
    1.1 嵌入式系统概述  1
    1.1.1 嵌入式系统的发展历史  1
    1.1.2 嵌入式系统的特点  2
    1.1.3 嵌入式系统的体系结构  2
    1.1.4 典型嵌入式系统介绍  3
    1.2 嵌入式Linux基础  4
    1.2.1 Linux发行版本  4
    1.2.2  Linux定制安装  6
    1.3 Linux常用命令  18
    1.3.1 系统管理相关命令  18
    1.3.2 文件管理相关命令  19
    1.3.3 备份压缩相关命令  25
    1.3.4 网络通信相关命令  26
    1.3.5 常用命令  30
    1.4 服务器配置  34
    1.4.1 aba器  34
    1.4.2 NFS服务器  38
    1.4.3 TFTP服务器  40
    习题与练习  42
    第2章 Linux脚本编程  43
    2.1  常用shell命令  43
    2.2  脚本编写基础  44
    2.2.1  特殊字符  44
    2.2.2  变量和参数  46
    2.. 退出和退出状态  48
    . 流程控制  49
    ..1 条件测试  49
    ..2 操作符相关主题  51
    .. 循环控制  53
    ..4 测试与分支  55
    习题与练习  58
    第3章 Linux编程基础  59
    3.1 编辑器介绍  59
    3.1.1 vi介绍  59
    3.1.2 vi的各模式功能键  60
    3.2 程序编译与调试  63
    3.2.1 gcc编译流程  64
    3.2.2 gcc编译选项分析  64
    3.. gdb程序调试  69
    习题与练习  75
    第4章 C语言进阶  76
    4.1 C语言的基本知识  76
    4.2 数据类型  77
    4.2.1 常量和变量  78
    4.2.2 进制  78
    4.. 字符  79
    4.2.4 转义符与字符集  79
    4.2.5 类型转换  79
    4.2.6 输入输出  82
    4.2.7 运算符  83
    4.3 控制语句  86
    4.3.1 分支语句  86
    4.3.2 循环语句  88
    4.4 数组与字符串  97
    4.4.1 数组的定义  97
    4.4.2 数组本质探讨  98
    4.4.3 一维数组和二维数组  99
    4.4.4 字符串  101
    4.5 函数  103
    4.5.1 函数的定义  103
    4.5.2 函数的深度剖析  103
    4.5.3 函数的作用剖析  104
    4.6 指针  108
    4.6.1 指针的本质  108
    4.6.2 连续空间的内存地址  108
    4.6.3 指针变量  109
    4.6.4 指针数组和指针的指针  111
    4.6.5 函数和指针  115
    4.7 预处理指令  119
    4.7.1 宏定义  120
    4.7.2 #include  121
    4.7.3 条件编译  121
    习题与练习  1
    第5章 文件I/O编程  124
    5.1 文件和目录  124
    5.2 目录操作  126
    5.3 文件操作  134
    5.3.1 基本概念  134
    5.3.2 检查文件及确定文件的权限  136
    5.3.3 创建文件  137
    5.3.4 打开文件  138
    5.3.5 关闭文件  139
    5.3.6 删除文件  140
    5.3.7 文件指针移动  142
    5.3.8 常用函数  145
    5.4 设备控制  148
    5.5 Linux时间编程  159
    5.5.1 取得目前的时间  159
    5.5.2 取得目前时间和日期  160
    5.5.3 取得当地目前时间和日期  161
    5.5.4 将时间结构数据转换成经过的秒数  162
    5.5.5 设置目前时间  162
    5.5.6 取得当前时间  163
    5.5.7 将时间和日期以ASCII码格式表示  164
    5.5.8 将时间和日期以字符串格式表示  164
    习题与练习  165
    第6章 进程控制  166
    6.1 进程控制概述  166
    6.1.1 进程的定义  166
    6.1.2 进程控制块  167
    6.1.3 分配进程描述符  168
    6.1.4 进程的创建  168
    6.1.5 进程状态  169
    6.1.6 进程调度  171
    6.1.7 虚拟内存  172
    6.1.8 文件锁  172
    6.2 进程控制编程  173
    6.2.1 创建进程  173
    6.2.2 进程终止  181
    6.. 守护进程  186
    习题与练习  187
    第7章 进程间通信  188
    7.1 进程间通信概述  188
    7.2 管道通信  190
    7.2.1 无名管道  190
    7.2.2 有名管道  192
    7.. 标准流管道  195
    7.3 消息队列  196
    7.3.1 键值  196
    7.3.2 打开/创建消息队列  197
    7.3.3 发送消息  197
    7.3.4 接收消息  198
    7.3.5 消息控制  198
    7.4 信号  201
    7.4.1 信号处理的方式  201
    7.4.2 信号操作指令  201
    7.5 信号量  207
    7.5.1 信号量创建  208
    7.5.2 信号量操作  208
    7.6 内存共享  214
    7.6.1 共享内存创建  214
    7.6.2 共享内存的操作  216
    7.6.3 共享内存段连接到本进程空间  216
    7.6.4 共享内存解除  217
    习题与练习  220
    第8章 多线程技术  221
    8.1 Linux多线程概念  221
    8.2 Linux线程实现  222
    8.2.1 线程创建  222
    8.2.2 线程退出  224
    8.. 线程等待  226
    8.2.4 线程标识获取  228
    8.2.5 线程清除  229
    8.3 线程函数传递及修改线程的属  2
    8.3.1 线程函数传递  2
    8.3.2 绑定属  5
    8.3.3 分离属  
    8.3.4 优先级属  
    8.3.5 线程的互斥  
    8.3.6 线程的同步  241
    8.3.7 信号量  243
    习题与练习  245
    第9章 网络编程  246
    9.1 基本概念  246
    9.1.1 OSI模型  246
    9.1.2 常用命令  247
    9.1.3 网络地址  247
    9.1.4 IP设置项  248
    9.1.5 端口  248
    9.2 TCP/IP协议  249
    9.2.1 整体构架概述  249
    9.2.2 IP协议  250
    9.. ICMP协议  251
    9.2.4 UDP协议  251
    9.2.5 TCP协议  252
    9.2.6 TCP连接的建立  253
    9.3 基本网络函数介绍  253
    9.3.1 建立一个socket通信  253
    9.3.2 对socket定位  254
    9.3.3 等待连接  255
    9.3.4 建立socket连线  255
    9.4 服务器和客户端的信息函数  256
    9.4.1 字节转换函数  256
    9.4.2 IP和域名的转换  257
    9.4.3 字符串的IP和32位的IP转换  259
    9.4.4 服务信息函数  260
    9.5 完整的读写函数  260
    9.5.1  write  260
    9.5.2  read  261
    9.5.3 数据的传递  261
    9.6 用户数据报发送  262
    9.6.1  recvfrom  262
    9.6.2  sendto  262
    9.7 不错套接字函数  263
    9.7.1  recv  263
    9.7.2 send  263
    9.7.3  recvmsg  264
    9.7.4 sendmsg  264
    9.7.5  套接字的关闭  265
    9.8 套接字选项  265
    9.8.1 getsockopt  265
    9.8.2 setsockopt  266
    9.8.3 ioctl  267
    9.9 服务器模型  267
    9.9.1 循环服务器:UDP服务器  267
    9.9.2 循环服务器:TCP服务器  268
    9.9.3 并发服务器:TCP服务器  271
    9.9.4 并发服务器:多路复用I/O  272
    9.9.5 并发服务器:UDP服务器  273
    习题与练习  276
    0章 内核开发基础  277
    10.1 嵌入式开发环境搭建  277
    10.1.1 交叉编译工具链  278
    10.1.2 终端软件  281
    10.2 Linux内核简介  282
    10.2.1 Linux内核  282
    10.2.2 Linux内核源代码  285
    10.3 Linux内核配置与编译  285
    10.3.1 Linux内核配置  286
    10.3.2 编译内核  288
    10.4 Linux内核模块  288
    10.4.1 内核模块简介  288
    10.4.2 内核模块编译与相关命令  289
    10.5 文件系统  289
    10.5.1 文件系统简介  290
    10.5.2 根文件系统  291
    10.5.3 Busybox  293
    10.5.4 Ramdisk文件系统  299
    习题与练习  299
    1章 BootLoader  300
    11.1 BootLoader介绍  300
    11.1.1 BootLoader的安装和启动  300
    11.1.2  BootLoader的操作模式  301
    11.1.3  BootLoader与主机之间的通信方式  301
    11.1.4  常用BootLoader介绍  301
    11.2 U-boot介绍  302
    11.2.1 目录结构  302
    11.2.2 U-boot的主要功能  303
    11.. U-boot的工具  303
    11.3  U-boot工作流程  304
    11.3.1 stage1  305
    11.3.2  stage2  306
    11.4  U-boot编译  308
    习题与练习  309
    2章 Linux驱动开发基础与调试  310
    12.1 设备驱动简介  310
    12.1.1 设备类型分类  311
    12.1.2 内核空间和用户空间  312
    12.1.3 驱动程序层次结构  312
    12.1.4 驱动程序与外界接口  313
    12.2 打印调试  315
    习题与练习  316
    3章 字符设备驱动  317
    13.1 字符设备驱动程序基础  317
    13.1.1 关键数据结构  317
    13.1.2 设备驱动开发的基本函数  319
    13.1.3 设备文件和设备号  324
    13.1.4 加载和卸载驱动程序  325
    13.2 LED设备驱动程序  326
    13.2.1 LED接口电路  326
    13.2.2 LED驱动程序  327
    13..  加载运行LED驱动程序  329
    13.3 按键设备驱动程序  330
    13.3.1 按键模块硬件电路  330
    13.3.2 按键驱动程序  331
    13.3.3 加载运行按键驱动程序  335
    13.4 DS18B20驱动程序设计分析  336
    13.4.1 DS18B20基础知识  336
    13.4.2 DS18B20代码设计  337
    习题与练习  344
    4章 块设备驱动  345
    14.1 块设备驱动程序开发基础  345
    14.1.1 块设备的I/O操作特点  345
    14.1.2 块设备主要数据结构  345
    14.1.3 块设备的操作  353
    14.2 E硬盘设备驱动  359
    14.2.1 E硬盘设备原理  359
    14.2.2 S3C2440与E接口电路  360
    14.. block_device_oraios及成员函数  361
    14.2.4 I/O请求处理  363
    14.2.5 在内核中增加对新系统E设备的支持  369
    习题与练习  372
    5章 网络设备驱动  373
    15.1 网络设备驱动简介  373
    15.1.1 驱动程序体系结构  373
    15.1.2 主要数据结构  374
    15.1.3 基本函数  376
    15.2 CS8900A网卡设备  378
    15.2.1 CS8900A简介  378
    15.2.2 CS8900A网卡接口电路  379
    15.3 CS8900A设备驱动程序  380
    15.3.1 初始化网络设备  380
    15.3.2 打开网络设备  385
    15.3.3 关闭网络设备  386
    15.3.4 中断处理  387
    15.3.5 发送数据  389
    15.3.6 接收数据  391
    习题与练习  392
    参考文献  393

    冯新宇, 黑龙江科技大学副教授,长期从事嵌入式系统项目开发和相关教学工作。曾主持或参与嵌入式相关课题和项目开发20余项;近10年来一直作为指导教师参与全国设计大赛、飞思卡尔设计大赛、黑龙江省设计大赛等工作,所指导的学生多次获得各种赛事重大奖励。代表著作有《ADS2009频电路设计与》、《四旋翼飞行器设计》与《ARM Cortex-M3体系结构与编程》。

        嵌入式系统及其应用是一个庞大的知识体系,笔者在多年的授课过程中,也很难选择一本合适的书作为学生的授课教材。结合课堂讲稿和学生的部分设计内容,以及在学生学习过程中经常遇到的问题,笔者整理成本书——《嵌入式Linux系统开发——基于ARM处理器通用平台》,之所以这么命名,是打破了以前ARM9体系或者ARM11体系的框架。Linux操作系统在ARM9之上的处理器均有较好的兼容,读者稍加修改,代码就能应用,所以命名时就回避了某一款处理器的限定。关于嵌入式有太多的内容可以介绍,本书侧重应用,并结合了当前嵌入式的发展和应用。
        嵌入式系统无疑是当前门、发展前途的IT应用领域之一。嵌入式系统用在某些特定的专用设备上,通常这些设备的硬件资源(如处理器、存储器等)有限,并且对成本很,有时还对实时响应等要求很高。特别是随着消费家电的智能化,嵌入式更显重要。像我们平时常见的手机、PDA、字典、可视电话、数字相机、数字摄像机、机顶盒、高清电视、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车、家电控制系统、医疗仪器、航天航空设备等都是典型的嵌入式系统。
        嵌入式系统是软硬结合的产品,嵌入式开发主要分为两类。
        一类是无线电相关专业,例如工程、通信工程等专业出身的人,他们主要搞硬件设计,有时需要开发一些与硬件关系密切的层软件(例如BootLoader、Board Support Package)、初级的硬件驱动程序等。他们的优势是对硬件原理清楚,不足是他们更擅长定义各种硬件接口,但对复杂的软件系统往往力不从心(例如嵌入式操作系统原理和复杂的应用软件等)。
        另一类是软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。如果我们学软件的人对硬件原理和接口有较好的掌握,也完全可以编写BSP和硬件驱动程序。嵌入式硬件设计完成后,各种功能就全靠软件来实现了。嵌入式设备的增值很大程度上取决于嵌入式软件,设备越智能,系统越复杂,软件的作用越关键,这也是目前的趋势。
        目前,国内外的相关人才都很。一方面,该领域入门门槛较高,不仅要了解较底层的软件(例如操作系统级、驱动程序级软件),对软件专业水平要求较高(嵌入式系统对软件设计的时间和空间效率要求较高),而且必须熟悉硬件的工作原理,所以非专业IT人员很难切入这一领域;另一方面,该领域较新,发展太快,很多软硬件技术出现时间不长或正在出现(例如ARM处理器、嵌入式操作系统、MPEG技术、无线通信协议等),掌握这些新技术的人较少。嵌入式人才,身价自然就高。嵌入式人才稀少的根本原因可能是大多数人无条件接触该领域,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行开发流程的指导。
        与企业计算等应用软件的开发人员不同,嵌入式领域人才的工作强度通常较低,收入却很高。从事企业应用软件的IT人员,这个用户的系统开发完成后,又要去开发下一个用户的系统,并且每个用户的需求和完成时间都必须按客户要求改变,往往疲于奔命,重复劳动。相比而言,开发嵌入式系统的公司,都有自己的产品计划,按自己的节奏行事,所开发的产品通常是通用的,不会因客户的不同而修改。某一型号的产品开发完成后,往往有较长的一段空闲时间(或只是对软件进行一些小修补),有时间进行充电和休整。另外,从事嵌入式软件开发的人员的工作范围相对狭窄,所涉及的专业技术范围比较小(ARM、RTOS、MPEG、802.11等),随着时间的累积,经验也逐渐累积,可“倚老卖老”,寥寥数语的指导就足够让初入道者琢磨半年。如果从事应用软件开发,可能不同的客户的软件开发平台也完全不同,这会使得开发工作也相对更加辛苦。
        嵌入式开发更注重的是练习,嵌入式系统开发设计难的是入门,嵌入式系统开发涉及知识较多,初学者很难从纷杂的知识中速上学习,现在市面上用于嵌入式开发的学习板比比皆是,价格都比较低廉,读者可以买一款相对通用的开发板,按照书中的操作练习,本书将一步一步引导初学者进行嵌入式开发的学习。任何知识的学习都是由浅入深,由感认识到理认识,掌握了前几章的学习,相信读者一定能够掌握嵌入式入门开发的基本要领。
        本书主要由冯新宇编写。此外,本书1~15章由蒋洪波编写。参与编写的还有杨昕宇、刘宇莹、刘琳、史殿发、孟莹等。
        感谢广州碾展公司的技术支持!
        感谢您选择了本书,希望我们的努力对您的工作和学习有所帮,也希望您把对本书的意见和建议反馈给我们。

        作  者
        2017年4月

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购