• 原子嵌入式Linux驱动开发详解
  • 原子嵌入式Linux驱动开发详解
21年品牌 40万+商家 超1.5亿件商品

原子嵌入式Linux驱动开发详解

全新正版 极速发货

110.73 6.6折 169 全新

库存4件

广东广州
认证卖家担保交易快速发货售后保障

作者左忠凯

出版社清华大学出版社

ISBN9787302613824

出版时间2022-08

装帧平装

开本16开

定价169元

货号1202717357

上书时间2024-05-27

大智慧小美丽

已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:全新
商品描述
前言

 

 

 

 


本书主要讲解嵌入式Linux中的驱动开发,也会涉及裸机开发的内容,相信大部分读者和作者经历一样,以前从事过单片机开发的工作,比如51或者STM32等。单片机开发很难接触到更高层次的系统方面的知识,用到的系统都很简单,比如μC/OS、FreeRTOS等,这些操作系统都使用一个Kernel,如果需要网络、文件系统、GUI等就需要开发者自行移植。而移植又是非常痛苦的一件事情,而且移植完成以后的稳定性也无法保证。即使移植成功,后续的开发工作也比较烦琐,因为不同的组件其API操作函数都不同,没有一个统一的标准,使用起来学习成本比较高。这时候一个功能完善的操作系统就显得尤为重要: 具有统一的标准,提供完善的多任务管理、存储管理、设备管理、文件管理和网络等。Linux就是这样一个系统,这样的系统还有很多,比如Windows、macOS、UNIX等。本书讲解Linux,而Linux开发可以分为底层驱动开发和应用开发,本书讲解的是Linux驱动开发,主要面向使用过STM32的开发者。平心而论,如果此前只会51单片机开发,笔者不建议直接上手Linux驱动开发,因为51单片机和Linux驱动开发的差异太大。笔者建议在学习嵌入式Linux驱动开发之前一定要学习STM32这种CortexM内核的MCU,因为STM32这样的MCU其内部资源和可以运行Linux的CPU差不多,如果会STM32,则上手Linux驱动开发就会容易很多。笔者就是此前做了4年STM32开发工作,然后转做Linux驱动开发,整个过程比较顺畅。

 

鉴于当前STM32非常火爆,学习者众多,如何帮助STM32学习者顺利地转入Linux驱动开发有如下几点需要注意。

 

1) 选取合适的CPU

 

理论上来讲,如果ST公司有可以运行的Linux的芯片那再好不过了,因为大家对STM32很熟悉,但是在编写本书时,ST公司尚没有可以运行Linux的CPU。Linux驱动开发入门的CPU一定不能复杂,比如像三星的Exynos 4412、Exynos 4418等,这些CPU性能很强大,带有GPU,支持硬件视频解码,可以运行Android。但是正是它们的性能过于强大,功能过于繁杂,所以不适合Linux驱动开发入门。一款外设和STM32H7这样的MCU相似的CPU就非常适合Linux入门,三星的S3C2440就非常合适,但是S3C2440早已停产了,学了以后工作上又用不到,又得学习其他的CPU,有点浪费时间。笔者花了不少时间终于找到了一款合适的CPU,那就是NXP的I.MX6ULL。I.MX6ULL就是一款可以跑Linux的STM32,外设功能和STM32相似,如果此前学习过STM32,那么会非常容易上手I.MX6ULL。而且I.MX6ULL可以正常出货,这是一款工业级的CPU,是三星S3C2440、S3C6410产品替代的绝佳之选,学习完I.MX6ULL以后,在工作中就可以直接使用了。本书选取正点原子的I.MX6UALPHA开发板,其他厂商的I.MX6ULL开发板也可以参考本书。

 

2) 开发环境讲解

 

STM32的开发都是在Windows系统下进行的,使用MDK或者IAR这样的集成IDE,但是嵌入式Linux驱动开发需要的主机是Linux平台的,也就是必须先在自己的计算机上安装Linux系统。Linux系统发行版有Ubuntu、CentOS、Fdeora、Debian等。本书使用Ubuntu操作系统。本书假设大家此前从来没有接触过Ubuntu操作系统,因此会有详细的Ubuntu操作系统安装、使用教程的讲解,帮助大家熟悉开发环境。

 

 

 

 

 

3) 合理的裸机例程

 

学习嵌入式Linux驱动开发建议大家先学习裸机开发(如果学习过STM32,则可以跳过裸机学习),Linux驱动开发非常烦琐。要想进行Linux驱动开发,必须要先移植uboot,然后移植Linux系统和根文件系统到开发平台上。而uboot又是一个超大的裸机综合例程,因此如果没有学习过裸机例程,那么uboot移植会有困难,尤其是要修改uboot代码时。STM32基本都是裸机开发,在集成IDE下编写代码,可以使用ST公司提供的库。但是在Ubuntu下编写I.MX6ULL裸机例程就没有这么方便了,没有MDK和IAR这样的IDE,所有的一切都需要自己搭建,本书提供的视频会有详细的讲解。本书还提供了数十个裸机例程,由浅入深,涵盖了大部分常用的功能,比如I/O输入输出、中断、串口、定时器、DDR、LCD、I2C等。学习完裸机例程以后就对I.MX6ULL这颗CPU非常熟悉了,再去学习Linux驱动开发就很轻松了。

 

4) uboot、Linux和根文件系统移植

 

学习完裸机例程以后就是Linux驱动开发了,但是在进行Linux驱动开发之前要先在使用的开发板平台上移植好uboot、Linux和根文件系统。这是Linux驱动开发的第一个拦路虎,因此本书和相应的视频会着重讲解uboot/Linux和根文件系统的移植。

 

5) 嵌入式Linux驱动开发

 

当我们把uboot、Linux内核和根文件系统都在开发板上移植好以后,就可以开始Linux驱动开发了。Linux驱动有3大类: 字符设备驱动、块设备驱动和网络设备驱动。对于这3大类内容,本书都有详细的讲解,并且配有数十个相应的教学例程,从最简单的点灯到最后的网络设备驱动。

 

本书一共分三篇,每篇对应一个不同的阶段。

 

第一篇: Ubuntu操作系统入门(为节省篇幅,扫描封底“本书资源”二维码获取)

 

本篇主要讲解Ubuntu操作系统的使用,不涉及任何嵌入式方面的知识,全部是在计算机上完成的,只要安装好Ubuntu操作系统即可。

 

第二篇: 裸机开发(第1~26章)

 

从本篇正式开始开发板的学习,本篇通过数十个裸机例程来帮助大家了解I.MX6ULL这颗CPU,为以后的Linux驱动开发做准备。通过本篇,大家可以掌握在Ubuntu下进行ARM开发的方法。

 

第三篇: 系统移植(第27~36章)

 

本篇讲解如何将uboot、Linux和根文件系统移植到我们的开发板上,为后面的Linux驱动开发做准备。

 

通过上面三篇的学习,大家能掌握嵌入式Linux驱动的开发流程,本书旨在引导大家入门Linux驱动开发,更加深入地研究就需要大家在实践中不断地总结经验,并与理论结合,祝愿大家学习顺利。

 


作者2022年8月

 

 

 

 

 

 



 
 
 
 

商品简介

嵌入式 Linux涉及的知识点很多,对初学者的基础要求高,在知识储备的广度和深度上都对学习者提出了很高
的要求。大多数转型嵌入式 Linux开发的朋友都是以前从事单片机开发工作的工程师,因此如何从单片机开发工
程师转型为嵌入式 Linux开发工程师,这个过程非常重要。
单片机 工 程 师 大 多 数 都 是 在 Windows环 境 下 工 作,使 用 集 成 IDE 编 写 并 编 译 代 码,然 后 在 IDE 上 通 过
DownLoad按钮一键下载代码到单片机中。至于集成IDE是怎么组织源文件,又是怎么编译的并不清楚。
本书就以单片机工程最熟悉的“裸机”开发为例,讲解如何在 Ubuntu下搭建开发环境,如何使用 VScode编写程
序,如何使用 make工具编译源码。通过这些操作,大家就可以对集成式IDE与开源开发环境有很清晰的认识。当
掌握了开发方式以后,剩下的就是通过大量的裸机案例来加深对I.MX6ULL 这颗芯片的认识,了解各个外设的应
用,为后面学习嵌入式Linux驱动开发打下坚实的基础。本书后半部分详细讲解了如何移植uboot、Linux内核、根文件
系统,最终在开发板上搭建出一个基础的嵌入式 Linux系统,后续的嵌入式 Linux驱动开发就在这个小系统上进行。
本书可作为广大从事嵌入式开发、MCU 开发、物联网应用开发等工程技术人员的学习和参考用书,也可作为高
等院校计算机、电子、自动化等专业嵌入式系统、微机接口、物联网、单片机等课程的教材。



作者简介

左忠凯,14年参加工作以来一直从事于嵌入式教育,以第一作者身份著有《FreeRTOS源码详解与应用开发》,参与编写了正点原子大量的手把手教你STM32系列书籍,比如《精通STM32F4库函数版》、《STM32F7原理与应用》等。同时录制了大量的STM32相关教学视频,广受好评。18年开始负责公司Linux教育平台的研发,编写了1800多页的Linux驱动开发教程,录制了200多讲Linux开发视频,负责的I.MX6ULL开发板自从发布至今,销量一直处于淘宝第一,Linux驱动开发相关视频在各大平台的点击量超过30万次。



目录
第一篇  Ubuntu操作系统入门
第二篇  裸机开发
  第1章  开发环境搭建
    1.1  Ubuntu和Windows文件互传
    1.2  Ubuntu下NFS和SSH服务开启
      1.2.1  NFS服务开启
      1.2.2  SSH服务开启Ubuntu
    1.3  交叉编译工具链安装
      1.3.1  交叉编译器安装
      1.3.2  安装相关库
      1.3.3  交叉编译器验证
    1.4  Visual Studio Code软件的安装和使用
      1.4.1  Visual Studio Code软件的安装
      1.4.2  Visual Studio Code插件的安装
      1.4.3  Visual Studio Code新建工程
    1.5  CH340串口驱动安装
    1.6  MobaXterm软件安装和使用
      1.6.1  MobaXterm软件安装
      1.6.2  MobaXterm软件使用
  第2章  Cortex-A7 MPCore架构
    2.1  Cortex-A7 MPCore简介
    2.2  Cortex-A处理器运行模型
    2.3  Cortex-A寄存器组
      2.3.1  通用寄存器
      2.3.2  程序状态寄存器
  第3章  ARM汇编基础
    3.1  GNU汇编语法
    3.2  Cortex-A7常用汇编指令
      3.2.1  处理器内部数据传输指令
      3.2.2  存储器访问指令
      3.2.3  压栈和出栈指令
      3.2.4  跳转指令
      3.2.5  算术运算指令
      3.2.6  逻辑运算指令
  第4章  汇编LED灯实验
    4.1  I.MX6U GPIO详解
      4.1.1  STM32 GPIO回顾
      4.1.2  I.MX6ULL I/O命名
      4.1.3  I.MX6ULL I/O复用
      4.1.4  I.MX6ULL I/O配置
      4.1.5  I.MX6ULL GPIO配置
      4.1.6  I.MX6ULL GPIO时钟使能
    4.2  硬件原理分析
    4.3  实验程序编写
    4.4  编译、下载和验证
      4.4.1  编译代码
      4.4.2  创建Makefile文件
      4.4.3  代码烧写
      4.4.4  代码验证
  第5章  I.MX6U启动方式详解

内容摘要
 嵌入式Linux涉及的知识点很多,对初学者的基础要
求高,在知识储备的广度和深度上都对学习者提出了很高的要求。大多数转型嵌入式Linux开发的朋友都是以前从事单片机开发工作的工程师,因此如何从单片机开
发工程师转型为嵌入式Linux开发工程师,这个过程非常重要。
单片机工程师大多数都是在Windows环境下工作,使用集成IDE编写并编译代码,然后在IDE上通过DownLoad按钮一键下载代码到单片机中。至于集成IDE是怎么组织源文件,又是怎么编译的并不清楚。
本书就以单片机工程最
熟悉的“裸机”开发为例,讲解如何在Ubuntu下搭建开
发环境,如何使用VScode编写程序,如何使用make工具编译源码。通过这些操作,大家就可以对集成式IDE与开源开发环境有很清晰的认识。当掌握了开发方式以后,剩下的就是通过大量的裸机案例来加深对I.MX6ULL这颗芯片的认识,了解各个外设的应用,为后面学习嵌人式Linux驱动开发打下坚实的基础。本书后半部分详细讲解了如何移植uboot、Linux内核、根文件系统,最终在开发板上搭建出一个基础的嵌入式Linux系统,后续的嵌入式Linux驱动开发就在这个小系统上进行。
本书可作为广大从事嵌人式开发、MCU开发、物联网应用开发等工程技术人员的学习和参考用书,也可作为高等院校计算机、电子、
自动化等专业嵌入式系统、
微机接口、物联网、单片机等课程的教材。

主编推荐

全面解析基于ARM内核的嵌入式Linux驱动开发,帮助单片机开发者顺利过渡到嵌入式Linux驱动开发。


【内容简介】

   相关推荐   

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP