精华内容
下载资源
问答
  • 周立功 嵌入式Linux开发教程 上下册 pdf高清版,带书签。
  • 本书全面介绍了嵌入式linux系统开发过程中,从底层系统支持到上层gui应用的方方面面,内容涵盖linux操作系统的安装及相关工具的使用、配置,嵌入式编程所需要的基础知识(交叉编译工具的选项设置、makefile语法、arm...
  • 嵌入式Linux系统移植讲述了嵌入式Linux开发环境、开发工具的使用、嵌入式Linux系统移植及驱动程序开发等。嵌入式Linux的应用开发部分讲述了文件编程、进程控制、进程间通信、多线程技术、网络应用及基于Qt的图形界面...
  • 本书一共分四篇,每篇对应一...通过上面四篇的学习,大家基本掌握了嵌入式 Linux 驱动的开发流程,本书旨在引导大家 入门 Linux 驱动开发,更加深入的研究就需要大家自行查阅其他更加专业的书籍了,祝愿大家 学习顺利
  • 如何学习嵌入式Linux_韦东山

    万次阅读 多人点赞 2020-05-13 16:30:07
    在学习Linux时,对很多概念比较陌生,导致不知道学什么,也不知道了之后有什么用。所以我趁着五一假期,编写此文。 从事嵌入式Linux培训12年来,我们写过很多《关于如何学习linux》的文章,这是最新的,本文将不断...

    在线课堂:https://www.100ask.net/index(课程观看)
    论  坛:http://bbs.100ask.net/(学术答疑)
    开 发 板:https://100ask.taobao.com/ (淘宝)
         https://weidongshan.tmall.com/(天猫)
    交流群一:QQ群:869222007(鸿蒙开发/Linux/嵌入式/驱动/资料下载)
    交流群二:QQ群:536785813(单片机-嵌入式)
    公 众 号:百问科技


    版本日期作者说明
    V12020韦东山适用于嵌入式Linux初学者

    我在100ASK_IMX6ULL售后群里,发现很多初学者只有单片机基础,甚至没有单片机基础。在学习Linux时,对很多概念比较陌生,导致不知道学什么,也不知道学了之后有什么用。

    从事嵌入式Linux培训12年来,我们写过很多《关于如何学习linux》的文章,这是最新的,本文将不断更新。

    第1章 单片机和Linux的区别

    1.1 有哪些产品使用单片机或Linux

    • 所有的电子产品,所用技术都可以认为要么是单片机,要么是Linux;GUI方面主要是QT/Android,它们都是运行于Linux之上的。
    • 也许你不服!不是还有ucos、vxwork、wince、IOS吗?下面这个图是关于操作系统的占比,是2016年的,我没找到更新的图,但是很有参考意义:
    • 我们说的单片机不使用操作系统,在上图中没有体现出来。但是使用单片机设备肯定远远超过Linux。很多人也是先学习单片机,从单片机进入电子工程师行业
    • 日常生活中,有哪些产品使用单片机、Linux呢?下面举一些例子:
      在这里插入图片描述在这里插入图片描述在这里插入图片描述
    • 我们设计一个产品时,是使用单片机还是Linux,取决于成本:硬件成本、软件成本、维护成本、升级成本。而不应该根据个人偏好来选择:我喜欢单片机,所以就排斥使用Linux;我喜欢Linux,就排斥使用单片机。为了有更多的选择,我们需要既懂单片机,又懂Linux。

    1.2 在硬件操作上单片机和Linux是类似的

    • 以点灯为例,
      无论是单片机还是Linux,我们要做的事情都一样:
    1. 看原理图,确定引脚是哪一个,确定它输出什么电平才可以
    2. 看芯片手册,确定要怎么操作寄存器
    3. 写程序

    但是,怎么编写程序,单片机和Linux有很大不同。

    1.3 在单片机中点灯、使用LCD

    • 使用单片机开发程序时,我们一上来就写一个main函数,下面是一些简化的代码:
      在这里插入图片描述
    • LED程序里面的init_led、led_on、led_off函数是你一个人写的,爱取什么名就取什么名,爱怎么写就怎么写。
    • LCD程序里的函数也是你写的,完全是自由发挥。
    • 很多单片机项目不是很复杂,2、3个人从上到下统统搞定,里面的函数大多时间是直接去读写寄存器。
    • 很多单片机项目严重依赖于硬件,换一个芯片后怎么办?重写一套代码呗。
    • 在单片机程序里,没有应用程序、驱动程序的概念,很可能一个人包揽了硬件设计、模块调试(或称之为驱动)、功能开发(或称之为应用)的全部活。

    1.4 在Linux中点灯、使用LCD

    • 在Linux中,不允许应用开发人员直接去操作硬件,比如你想点个灯,不好意思,你无法直接访问寄存器;你需要通过驱动程序来访问寄存器。
    • 为什么?有几大原因:
    1. Linux系统中运行着众多程序,必须保证质量差的程序无法破坏系统
      假设你写的程序比较烂,那我不能让你去随便访问寄存器,把系统搞崩溃了怎么办?你本意是去点灯,但是你看错了寄存器,你把电源关了怎么办?

      所以这些操作硬件的活,还是交给信得过的人来做吧:交给驱动工程师,他既懂硬件又懂软件。

    2. 保证程序的可移植性
      编写应用程序时,大家都使用统一的函数,以后换一个芯片时,应用程序不用变;只需要根据这个接口提供驱动程序就可以了。

    3. 团队协作
      使用Linux系统的项目一般比较大,术业有专攻,一个人不太可能从上到下都全部掌握。比如做人脸识别项目,有擅长做图像处理的,他可不管你要用多少种摄像头,有图像给他就可以。而多种摄像头的硬件操作方法各有不同,这些交给驱动程序工程师。

    • 所以,在Linux中应用程序和驱动程序是分开的。

    • 以LED、LCD程序为例,简化的代码如下:
      在这里插入图片描述

    • 也许你已经大概猜出来了,应用程序怎么调用驱动程序?通过标准的接口:

    1. open
      打开驱动程序。
    2. read/write
      读、写数据。
    3. ioctl
      传入各种参数,获得各种参数。
    4. mmap
      内存映射,比如映射之后,应用程序可以直接读写LCD的显存。
    • 你看!从这些接口里,我们根本看不到寄存器的操作。底层的程序驱动会根据这些调用,去设置寄存器、操作硬件。
    • 所以,我高大上的应用工程师,干嘛苦哈哈地去看原理图、看在片手册、读写寄存器,搞不好还要去调试硬件BUG。这些脏活、累活就交给驱动工程师吧。客户的需求千变万化,我996时间都不够用了。
    • 我上懂软件、下懂硬件的驱动工程师,肯定不能把这么重要的活交给你去做了,把我的系统搞崩溃了怎么办。
    • 开玩笑、开玩笑、开玩笑的,有应用工程师、驱动工程师的优劣之分,大家都是为了做出产品。现在有一个趋势,一个任务从上到下你都需要懂,这就是所谓的全栈工程师。
    • 还是以LED为例,应用程序和驱动程序的协作如下图所示:
    • 在Linux中,“一切皆文件”,要访问某个硬件,也是要打开文件、读写文件。应用程序要根据标准的文件接口:open/read/write/ioctl/mmap等来访问驱动程序。
    • 既然如此,怎么写驱动程序呢?最简单的方法就是:APP要调用open来打开驱动程序,那驱动‘程序里就提供一个xxx_open函数来初始化硬件;APP要调用write来写数据,驱动程序里就提供一个xxx_write函数来接收数据并操作硬件。
    • 用xxx_open、xxx_write来构成一个驱动程序,这就是驱动框架。
    • 怎么实现这些xxx_open、xxx_write函数?我们要做的事情跟单片机是类似的,一样要去看电路图、看芯片手册,然后在这些函数里读写寄存器:这称为硬件操作
    • 所以,Linux驱动程序= 驱动框架 + 硬件操作。
    • 有单片机基础的人,对硬件操作比较熟悉了,把重点放在驱动框架上就可以。
    • 高能预警:驱动框架可不简单,对于LED来说是简单,但是还有更复杂的驱动程序,它要考虑“通用”,这很要命。

    第2章 嵌入式Linux快速入门

    • 这几天在群里跟学员聊天,有一位学员的学习方法很好:先观其广,再究其深。有时候要“不求甚解”,很多时候保持疑问先学下去,这些疑问就自然解决了。
    • 比如课程中涉及汇编知识,如果你要彻底弄清楚,你需要去学习《ARM架构与编程》;当你学完这本书,你的同学搞不好已经可以上手工作了。

    2.1 短期的目标是什么

    • 我们先把学习目标定下来:快速了解嵌入式Linux开发的流程,知道要学什么,具备跟从业者交流的能力。

    2.2 一个嵌入式Linux系统的组成

    在这里插入图片描述
    在这里插入图片描述

    • 下面我们用类比和逻辑推导出嵌入式Linux系统的组成,没错,“推导”。
      从上图可以知道:
    1. 组成
      嵌入式Linux系统
      = bootloader + linux内核 + 根文件系统(里面含有APP)。

    2. bootloader
      它的目的是启动内核,去哪等读内核?读到哪里?去Flash等外设读内核,存到内存里去。所以需要有Flash里外设的驱动能力,为了调试方便还会有网络功能。

      所以,可以认为 booloader = 裸机集合,它就是一个复杂的单片机程序。

    3. Linux内核
      Linux内核的最主要目的是去启动APP,APP保存在哪里?保存在“根文件系统”里。“根文件系统”又保存在哪里?在Flash、SD卡等设备里,甚至可能在网络上。所以Linux内核要有这些Flash、SD卡里设备的驱动能力。

    • 不仅如此,Linux内核还有进程调度能力、内存管理等功能。
    • 所以:Linux内核 = 驱动集合 + 进程调度 + 内存管理等。

    2.3 要学习bootloader吗

    • Bootloader有很多种,常用的叫作u-boot。
    • 在实际工作中,对于u-boot基本上是修修改改,甚至不改。但是u-boot本身是很复杂的,比如为了便于调试,它支持网络功能;有些内核是保存在FAT32分区里,于是它要能解析FAT32分区,读FAT32分区的文件。
    • 花那么多精力去学习u-boot,但是工作中基本用不到,这对初学者很不友善。
    • 所以,对于初学者,我建议:理解u-boot的作用、会使用u-boot的命令,这就可以了
    • 如果你的工作就是修改、完善bootloader,那么再去研究它吧。

    2.4 要学习Linux内核、要学习驱动程序吗

    • 之前我们说过Linux内核 = 驱动集合 + 进程调度 + 内存管理等,如果要学习Linux内核,从驱动程序入手是一个好办法。
    • 但是人人都要学习Linux内核、人人都要学习Linux驱动吗?显然不是。
    • 作为初学者,懂几个简单的驱动程序,有利于工作交流;理解中断、进程、线程的概念,无论是对驱动开发、应用程序开发,都是很有好处的。
    • 所以对于初学者,建议前期只学习这几个驱动:LED、按键、中断。
    1. LED驱动程序
      这是最简单的驱动程序。

    2. 按键驱动程序
      它也比较简单,从它引入“中断”

    3. 中断
      从“中断”它可以引入:休眠-唤醒、进程/线程、POLL机制、异步通知等概念。这些概念无论是对驱动开发,还是对应用开发,都很重要。

    • 所以,对于初学者,我建议必须学习这几个驱动:LED、按键、中断。
    • 入门之后,如果你想从事内核开发、驱动开发,那么可以去钻研几个驱动程序(输入系统、I2C总线、SPI总线等),掌握若干个大型驱动程序后,你对内核的套路就有所了解了,再去研究其他部分(比如进程管理、文件系统)时你会发现套路是如此通用。
    • 摄像头(VL42)、声卡ALSA驱动是Linux中比较复杂的2类驱动,它们是很难的,如果工作与此相关再去研究。

    2.5,要学习Linux应用程序吗?先学一些基础技能

    • 要学,即使以后你只想研究内核,一些基本的应用开发编写能力也是需要的:
    1. 基本设备的访问,比如LCD、输入设备
    2. 进程、线程、进程通信、线程同步与互斥
    3. 休眠-唤醒、POLL机制、信号
    4. 网络编程
    • ①②③部分的知识,跟驱动有密切的关系,它们是相辅相承的。
    • 掌握了基本驱动开发能力、基本应用开发能力之后,在工作中你就可以跟别人友好沟通了,不至于一脸懵逼。

    2.6,应用程序是怎么启动的?要了解一下根文件系统

    • 你辛辛苦苦写出了应用程序,怎么把它放到板子上,让它开机就自动启动?
    • 你写的程序,它依赖于哪些库,这些库放到板子上哪个目录?
    • 怎么做一个可升级的系统?即使升级中途断电了,也要保证程序至少还可以运行老的版本?
    • 这些都需要我们了解一下根文件系统。
    • 先了解一下init进程:它要读取配置文件,根据配置文件启动各个APP。
    • 了解了init进程,你就了解了根文件系统的组成,就可以随心所欲裁剪系统,为你的项目制作出最精简的系统。

    第3章 学习方法

    3.1,先不要打破砂锅问到底

    • 嵌入式涉及的东西太多太杂了,如果心里没有主线,碰到什么都要去研究个透彻,最终反而忘记自己要学什么了。
    • 嵌入式涉及硬件知识、软件知识,软件里涉及汇编、ARM架构、C语言、Makefile、Shell;又分为bootloader、内核、驱动、基本的APP、GUI。
    • 比如我们会用到Makefile,了解它的基本规则,会用我们提供的Makefile就可以。
    • 不需要深入研究那些make函数,因为在工作中都有现成的Makefile给你使用,不需要自己去编写一套Makefile。何必花上好几天去深入研究它呢?
    • 比如我们会用到bootloader,难道又要花上几个月来深入研究u-boot吗?工作中基本不需要改u-boot,会用那几个命令就可以。
    • 甚至有些学员先去买本shell的书来学习shell命令,何必?我们在视频中用到什么命令,你不懂时再去百度一下这些命令就可以了。
    • 不要脱离初学者的主线:应用基础、驱动基础。有了这2个基础后,你想深入研究某部分时,再去花时间吧。

    3.2,思路要清晰,不怕抄代码

    • 视频里的代码,请你一定要自己去写一次、写多次。为什么我现在写驱动那么熟?我2009年在华清远见上课时,
    • 每次上课我都要给学生写一次那些驱动,十几次下来闭着眼睛都知道内核的套路了。
    • 记不住那些函数?我也记不住,我都是去参考同类的驱动程序,这又不是闭卷考试。
    • 但是要理清楚思路,你写这个程序要完成什么功能、怎么实现这些功能?这个要弄清楚。
    • 有了思路后再写代码,不知道怎么写?没关系,看看视频,看看示例,然后关闭视频看看能否自己写出来。

    3.3,对自己的方向很了解,我只能带你到这里了

    • 我的专长是操作系统,是快速地带领大家掌握一些项目开发的基础知识。
    • 如果你决定深入研究某方面时,我并不能带你多久。你要去看源码,去看这方面的专业书籍。
    • 比如想深入钻研内核的内存管理时,它有页表映射(你需要阅读ARM架构的手册)、SLAB分配器、vmalloc/malloc实现、mmap实现、缺页中断、父进程子进程之间的页面管理等等,内容非常多。有时候连书籍都没有,你需要直接啃代码。
    • 当你想从事某个行业时,就需要深入研究行业相关的知识。
    • 比如CAN总线,它可以写成一本书:CAN协议、CAN报文、Socket CAN、车身网络拓扑结构,CAN应用报文,CAN网络管理报文,CAN诊断报文。
    • 想做物联网网关,需要深入研究MQTT,MQTT协议相对简单,但是MQTT英文原版协议有130多页,中文版有近100页,是一本小书了。
    • 每个行业都有自己的业务逻辑,在掌握基本的编程能力之一,你需要结合具体的业务去深入学习。
    展开全文
  • 详细介绍了嵌入式开发所需要的linux下的开发环境。希望对初学者有帮助。对于想步入嵌入式行业的初学者,最关心的是怎么入门,哪些知识是核心,哪些需要,哪些不需要。 我们先从普通PC机程序开发嵌入式程序开发...
  • 嵌入式Linux应用开发完全手册_韦东山全系列视频文档全集V2.8 最新的教程,学习linux编程的利器!!!
  • Linux嵌入式开发必读推荐书籍

    千次阅读 2019-10-04 12:35:05
    Linux嵌入式开发必读推荐书籍 本帖最后由 JIM.BO 于 2011-1-11 15:44 编辑 linux必读.高手必经之路.ppt C/C++语言基础1 《The C Programming Language, 2nd Edition》 【美】Brian W. Kernighan David M. ...

    Linux嵌入式开发必读推荐书籍

     

    本帖最后由 JIM.BO 于 2011-1-11 15:44 编辑

    linux必读.高手必经之路.ppt

    C/C++语言基础
    1 《The C Programming Language, 2nd Edition》 【美】Brian W. Kernighan David M. Rithie(K & R)著

    2 《C Primer Plus,5th Edition》【美】Stephen Prata著

    3  C++Primer Plus(第五版)中文版
    作者: [美]普拉塔(Prata,S.) 著,孙建春,韦强 译  出 版 社: 人民邮电出版社

    4 C++ Primer中文版(第4版)(一本久负盛名的C++经典教程)
    作者: (美)Stanley B. Lippman Barbara E. Moo Josée LaJoie 著,李师贤 等译  人民邮电出版社


    2 硬件基础

    1《ARM体系结构与编程》清华大学出版社 杜春雷著


    2 ARM嵌入式系统基础教..."ARM嵌入式系统基础教程(第2版)
    作者:周立功 主编
    出版时间:2008年09月


    3 Linux基础1

    1《Linux与Unix Shell 编程指南》
    译者: 徐焱 作者: (美)坦思利

    2 《UNIX环境高级编程》(第2版),史蒂文斯著
    W.Richard Stevens,备受赞誉的技术作家,生前著有多种经典的传世之作,包括《UNIX网络编程》(两卷本)、《TCP/IP详解》(三卷本)和本书第1版。
    本书被誉为UNIX编程“圣经”, 内容权威,概念清晰,阐述精辟,对于所有层次UNIX程序员都是一本不可或缺的参考书。

    3《UNIX Network Programming》W.Richard Stevens,备受赞誉的技术作家,生前著有多种经典的传世之作,包括《UNIX网络编程》(两卷本)、《TCP/IP详解》(三卷本)和本书第1版。

    4 UNIX编程艺术
    作  者: (美)理曼德(Raymond,E.S.) 著,姜宏,何源,蔡晓俊 译 出 版 社: 电子工业出版社

    5 《深入理解 Linux 内核》(第三版) ,博韦等著

    6 Linux 内核完全剖析——基于0.12内核
    作者:赵炯 编著   出版社:机械工业出版社   出版时间:2009年01月

    7 Linux内核源代码情..."7 Linux内核源代码情景分析
    [作者] 毛德操 胡希明 浙江大学出版社

    8 操作系统设计与实现(第三版)
    作  者: (美)塔嫩鲍姆 等著,陈渝,谌卫军 译

    9 嵌入式实时操作系统μC\OS-Ⅱ(第2版)--作者:[美]Jean J.Labrosse/著;译者:邵贝贝 等

    10 构建嵌入式LINUX系统
    作  者: (美)雅默 著,韩存兵,龚波 改编 出 版 社: 中国电力出版社

    11《嵌入式 Linux 应用开发完全手册》,韦东山著

    Linux必读推荐书籍(高手必经之路)
    注意事项: 请不要写JAVA, C#, ORACLE, MySQL, UML以及项目管理等与嵌入式方向关系不大的读书报告。

     


     嵌入式书籍推荐 

       Linux基础 
       1、《Linux与Unix Shell 编程指南》 
       C语言基础 
       1、《C Primer Plus,5th Edition》【美】Stephen Prata着 
       2、《The C Programming Language, 2nd Edition》【美】Brian W. Kernighan David M. Rithie(K & R)着 
       3、《Advanced Programming in the UNIX Environment,2nd Edition》(APUE) 
       4、《嵌入式Linux应用程序开发详解》 
       Linux内核 
       1、《深入理解Linux内核》(第三版) 
       2、《Linux内核源代码情景分析》毛德操 胡希明著 
       研发方向 
       1、《UNIX Network Programming》(UNP) 
       2、《TCP/IP详解》 
       3、《Linux内核编程》 
       4、《Linux设备驱动开发》(LDD)  
       5、《Linux高级程序设计》 杨宗德著
       硬件基础 
       1、《ARM体系结构与编程》杜春雷着 
       2、S3C2410 Datasheet 
       英语基础 
       1、《计算机与通信专业英语》 
       系统教程 
       1、《嵌入式系统――体系结构、编程与设计》 
       2、《嵌入式系统――采用公开源代码和StrongARM/Xscale处理器》毛德操 胡希明着 
       3、《Building Embedded Linux Systems》   
       4、《嵌入式ARM系统原理与实例开发》 杨宗德著
       理论基础 
       1、《算法导论》 
       2、《数据结构(C语言版)》 
       3、《计算机组织与体系结构?性能分析》 
       4、《深入理解计算机系统》【美】Randal E. Bryant David O''Hallaron着 
       5、《操作系统:精髓与设计原理》 
       6、《编译原理》 
       7、《数据通信与计算机网络》 

       8、《数据压缩原理与应用》

     

    转载于:https://www.cnblogs.com/xxsh673076773/archive/2012/11/26/2788711.html

    展开全文
  • 以及嵌入式Linux的I/O与文件系统的开发、进程控制开发、进程间通信开发、网络应用开发、基于中断的开发、设备驱动程序的开发以及嵌入式图形界面的开发等,并且还安排了丰富的实验内容与课后实践,使读者能够边...
  • 嵌入式Linux软硬件开发详解 基于S5PV210处理器,嵌入式linux新书经典。个人学习LINUX嵌入式开发的参考资料
  • ARM嵌入式Linux系统开发详解(第2版) 弓雷等编著 矢量文字原版pdf 可复制文字。 本书是获得了大量读者好评的“Linux 典藏大系”中的《ARM 嵌入式 Linux 系统开发详解》的第 2 版。本书由浅入深,全面、系统地介绍了...
  • 嵌入式Linux驱动开发

    2021-06-13 19:41:35
    说到Linux驱动,尤其是嵌入式Linux驱动,大家可能会望而却步,因为入门太难!很多上或课程基本是这样的:一上来给我们...从最简单的入手,一步一步,手把手的编写代码,一步步引领你进入嵌入式Linux驱动开发的大门。
  • 嵌入式linux系统开发实训指导 指导教师 吕祖成 丁度树 设计题目嵌入式系统的移植与调试 1 实训的目的 嵌入式linux系统开发实训通过把理论教学与实践教学紧密的结合在一起 将所掌握的理论知识应用于实践中来从而...
  • 第5章 嵌入式Linux开发环境的搭建 5.1 嵌入式开发环境的搭建 5.1.1 嵌入式交叉编译环境的搭建 5.1.2 超级终端和minicom配置及使用 5.1.3 下载映像到开发板 5.1.4 编译嵌入式Linux内核 5.1.5 Linux内核源码目录结构 ...
  • 嵌入式Linux开发学习有哪些好的书籍?接下来本文为大家介绍嵌入式Linux开发学习不同阶段的精品书籍
  • 有些人以为搞嵌入式就是随便找本书看看,在电脑上编几个程序就完事。非也,其实嵌入式的门槛是比较高的。
  • 精通ARM嵌入式Linux系统开发《精通arm嵌入式linux系统开发(含cd...中通过大量的例程来讲解知识要点,并提供了大量极有参考价值的开发案例,读者可以通过这些例程和开发案例对嵌入式linux开发有一个系统的学习和提高。
  • 根据本书的指导,可以自己动手构建嵌入式Linux 开发环境和嵌入式Linux 系统。这对于深刻理解和掌握嵌入式Linux 开发是非常重要的。嵌入式的开发与具体的硬件环境紧密相关,本书的内容以常见的ARM 9 S3C2410平台为例...
  • 先按照韦东山老师的思路,下来,建议一个基本的框架,然后根据嵌入式Linux应用开发的基础学习,进行一两个项目的简单开发,然后深入下去就是下面的学习路线。 韦东山老师的入门线路:入门以后可以按需求学习调试...

    嵌入式Linux应用开发学习路线–自用

    嵌入式应用开发路线:

    对于有简单的ST32基础和AD基础的人比较合适

    个人理解:

    先按照韦东山老师的思路,学下来,建议一个基本的框架,然后根据嵌入式Linux应用开发的基础学习,进行一两个项目的简单开发,然后深入下去学习,进行技术积累,进一步提高。

    韦东山老师的入门线路:入门以后可以按需求学习调试专题。
    在这里插入图片描述

    嵌入式Linux应用学习路线:

    如果想要搞好(深入有一定的技术壁垒),下面的是必须的。
    特点:学习周期长,技术提升快。 
    
    第一阶段:C语言+数据结构

    数据结构和算法视频

    第二阶段:Linux基础,包括系统编程和网络编程

    下面这个视频可以作为第一步提升用,后面,深入开发,得看书本,比如<Unix系统编程>,<Unix网络编程>

    系统编程和网络编程

    第三阶段:基于Arm架构的应用开发+行业内相关的知识(比如Qt,C++)

    拥有了上面的基础,如果是想做通信相关的,那么TCP/IP协议是必须懂的。

    其他路线:

    还算可以根据嵌入式应用开发的路线的入门,也就是韦东山老师的视频入门,然后网上找到比较合适的资料,进行学习,驱动开发和U-Boot学习都是很难的,学习时间也是很长,而且市场需求也比应用开发少,但工资更高。

    这样学习的好处:

    难易适中,不会入门既入土,反馈时间相对较短,更能集中注意力。

    其中这个学习路线最大的优势的就是能够使人持续学习,因为学习是长跑,这样更能耐下心来学,且难易适中,反馈时间短,成就感获得时间短。

    这样的学习就不会显地很难很难很难很难很难,这也和玩游戏的时候不同段位水平,匹配到的敌人不一样。青铜打青铜,如果是青铜打王者,那就可以ALT+F4退出游戏了。

    PS:

    大学生想要搞出作品,就做一个全栈工程师,但是重点放在软件的这部分,其他的比如U-Boot,驱动这些,能够移植就好了,能够配置一下应用层工具就了事,能用就成,毕竟搞硬件的话,花钱且费时间,市场需求也没有软件大,开发起来也比较困难。况且内核和驱动学习的时间是很长的,而且很难,况且还有一些比赛要参加,也要体验生活本身,时间真的不太允许。

    展开全文
  • 韦东山版嵌入式Linux开发 本书全面介绍了嵌入式 Linux 系统开发过程中,从底层系统支持到上层 GUI 应用的方方面面,内容涵 盖 Linux 操作系统的安装及相关工具的使用、配置,嵌入式编程所需要的基础知识(交叉编译...
  • 嵌入式Linux的灵活性,为嵌入式计算而设计的高效、节能的处理器的可用性,以及新处理器的低成本,使许多工业公司在嵌入式处理器的基础上开发新的产品成为可能。现在的工程师虽然可以强大的工具开...

    嵌入式Linux的灵活性,为嵌入式计算而设计的高效、节能的处理器的可用性,以及新处理器的低成本,使许多工业公司在嵌入式处理器的基础上开发新的产品成为可能。现在的工程师虽然可以用强大的工具开发以前无法想象的应用程序,但是他们不一定十分了解Linux提供的丰富特性。

    今天为大家介绍《嵌入式Linux设备驱动程序开发指南(原书第2版)》,本书将告诉你如何为设备树嵌入式Linux系统开发设备驱动程序。你将学会如何编写不同类型的Linux驱动程序,以及如何使用适当的API(应用程序接口)实现与内核和用户态的交互。本书内容以实用为主,但也提供重要的理论基础知识。

    本书编写了近30个驱动程序,并将其移植到三种不同的处理器上。你可以选择NXPi.MX7D、MicrochipSAMA5D2和BroadcomBCM2837三种处理器来开发和测试这些驱动程序,本书的实验部分详细介绍了这些驱动程序的实现。在你开始阅读之前,建议你使用一个开发板,这个开发板需要有一些GPIO,以及至少一个SPI和I2C控制器。本书详细介绍了用于开发驱动程序的不同评估板的硬件配置,其中用于实现驱动程序的单板包括著名的Raspberry Pi 3 Model B。

    你将学习如何开发驱动程序,从最简单的不与任何外部硬件交互的驱动程序,到管理不同类型设备(如加速度计、DAC、ADC、RGB LED、多显LED控制器、I/O扩展器、按钮和USB HID设备)的驱动程序。你还将学习如何开发DMA驱动程序、管理中断的驱动程序,以及读/写处理器内部寄存器用以控制外部设备的驱动程序。为了简化这些驱动程序的开发,本书将使用不同种类的开发框架:杂项框架、LED框架、UIO框架、输入框架和IIO工业框架。本书第2版已经支持到内核v4.9的LTS版本。

     

    本书亮点

    从0到1的嵌入式Linux驱动开发指南,由Linux系统构建开始,理解驱动模型,逐步深入学习驱动程序开发

    理论结合实践,通过近30个驱动开发实例和代码,详述主流ARM微处理器开发板上Linux子系统驱动程序开发,可下载书中实例代码。

    读者对象

    本书适合嵌入式系统开发者、Linux应用开发者,以及想要学习Linux处理嵌入式平台底层硬件的学生和爱好者阅读参考。

    编辑推荐

    本书基于三种主流开发板(包括Raspberry Pi 3 Model B)编写了近30个驱动程序的实验,帮助读者学习和掌握在嵌入式Linux系统中开发驱动程序的技巧和方法,这些驱动程序支持NXP i.MX7D、Microchip SAMA5D2和BroadcomBCM2837微处理器。

    本书作者在嵌入式系统方面有超过15年的丰富工程实践经验,他通过技术研讨会、实践讲习班和本书的方式,将他在嵌入式Linux与Linux设备驱动程序开发的技巧和方法传播和分享。本书中文版译者也是相关领域的专家和爱好者,通过他们的专业翻译,也让读者原汁原味地理解和体会该书的精华。

    本书配套的开发工具和实验代码都可以从网上获得,或者通过书中作者提供的访问链接下载,方便读者阅读实践。

    作者简介

    Alberto Liberty是Arrow Electronics的现场应用工程师,在嵌入式系统方面有超过15年的经验。在过去的几年里,他一直在Arrow公司支持高端处理器和FPGA产品。Alberto也是Linux爱好者,在过去的几年里,他举办了多场关于嵌入式Linux与Linux设备驱动程序的技术研讨会和实践讲习班。Alberto的专业技能还包括多媒体芯片(SoC)和嵌入式实时操作系统(RTOS)。他目前居住在西班牙马德里,他最大的爱好是和女儿一起在马德里市中心散步,他还喜欢阅读电影杂志和观看科幻电影。

    主要译者简介

    谢宝友,目前就职于阿里集团基础系统稳定性团队,曾任中兴嵌入式实时操作系统技术总工。在Linux系统方面有深度积累和贡献,包括DIM-SUM自研操作系统发起者和创始人、Linux ZTE架构维护者。曾获得第四届中国工业大奖、中兴通讯2010年度金银奖、阿里集团2019年度安全生产之星金奖、2018年和2019年阿里集团“双11”卓越贡献奖。出版多部技术专著,包括自己撰写的《自研操作系统:DIM-SUM设计与实现》和翻译了《深入理解并行编程》。

     

    李唯杰,目前就职于阿里集团高性能网络团队,参与阿里云数据中心网络稳定性和网络性能提升。长期从事底层软件的开发,熟悉操作系统、驱动开发和网络系统,曾就职于华北计算机系统工程研究所,华为技术有限公司。

     

    文洋,目前就职于阿里集团基础系统稳定性团队,参与关键生产应用的稳定性建设,保障数以万计的线上生产服务器的稳定性。在内核、systemd和设备驱动领域有丰富的实践经验,曾就职于华为技术有限公司、中兴通讯股份有限公司。

     

    专家推荐

    本书由谢宝友及其他6位Linux爱好者一起合作,对原书进行认真、专业地翻译,出版其中文版。该书通过近三十个驱动程序实例,让你学会编写不同类型微处理器的嵌入式Linux设备驱动程序。从最简单的不与任何外部硬件交互的驱动程序开始,到管理不同类型设备的驱动程序,读者将学会使用不同种类的的开发框架。

                                                ——陈莉君西安邮电大学

    非常欣慰地看到谢宝友老师联合数位Linux一线开发者翻译了一本嵌入式Linux设备驱动方面的专业参考书。写书和译书的过程都异常艰辛,坚持下来需要很强的毅力,本书译者群体的付出是巨大的。本书与其他同类相关书籍相比,更加接近当前嵌入式Linux设备驱动开发的工程实践,非常适合一线开发者阅读。

    ——宋宝华知名Linux开发者、海思高级顾问

    学习Linux驱动程序的设计是熟悉和理解Linux内核的最佳途径。本书从零开始,以常见的iMX7D、SAMA5D2和BCM2837微处理器为核心的开发平台,通过三十多个有趣的实验,让读者快速了解和熟悉嵌入式Linux驱动开发的常用技术框架和技巧。通过学与练的方式,相信读者会很快入门并且应用到实际工作中。

                                                 —— 笨叔《奔跑吧Linux内核》作者

     

    点击链接了解详情并购买 

     


    扫码关注【华章计算机】视频号

    每天来听华章哥讲书

    更多精彩回顾

    书讯 | 7月书讯(下)| 读书开启下半年

    书讯 | 7月书讯(上)| 读书开启下半年

    资讯 | 《数据安全法》表决通过!最新解读来了

    书单 | 8本书助你零基础转行数据分析岗

    干货 | 当机器学习遇上隐私保护,聊聊联邦学习和分布式机器学习

    收藏 | 终于有人把卷积神经网络(CNN)讲明白了

    上新 | 【新书速递】打通数据科学三要素——数据科学实战性手册

    赠书 | 【第62期】学会数据分析,抢占职场风口机遇

    点击阅读全文购买

    展开全文
  • 另外,作者根据自己反复阅读 Linux 2.6 内核源代码和 Linux 内核参考的笔记与心得,很大篇幅深入剖析了 Linux 内核的组成结构以及各组件的实现原理,在阐述理论的同时对内核源代码进行详细注释,这样既加深了对 ...
  • 学习掌握嵌入式 Linux开发与移植 。各种学习文章与培训班,充斥书店 街头。笔者也上了路,经历漫长的摸索,终于一日开窍,但的确糟蹋了很多金钱与时间。 作为穷人,现写下自己的感受,供好学寒士参考。
  • 嵌入式Linux新手学习必看书籍

    千次阅读 2017-03-23 16:49:44
    很多的嵌入式Linux新手,对自己的学习过程十分迷茫,不知道从何学习?学习过程中需要看哪些相关书籍?之前的写的一篇关于嵌入式开发如何入门,如何深入?的文章希望对你有所帮助,接下来就为嵌入式Linux新手们推荐一些...
  • 嵌入式Linux开发实用教程》

    千次阅读 2019-01-08 08:05:41
    嵌入式Linux开发实用教程》 基本信息 作者: 朱兆祺 李强 袁晋蓉  出版社:人民邮电出版社 ISBN:9787115334831 上架时间:2014-2-13 出版日期:2014 年4月 开本:16开 页码:258 版次:1-1 所属分类...
  • 以及嵌入式Linux的I/O与文件系统的开发、进程控制开发、进程间通信开发、网络应用开发、基于中断的开发、设备驱动程序的开发以及嵌入式图形界面的开发等,并且还安排了丰富的实验内容与课后实践,使读者能够边...
  • 学习linux的详细教程,过的都知道,一步一步的知识点,适合出现初学者,感兴趣学习的,一起交流学习,我也是初学者。
  • Linux嵌入式学习过程(转载)

    万次阅读 多人点赞 2018-07-09 14:04:41
     ---循序渐进学习嵌入式开发技术最近经常有用人单位给 我打来电话,问我这有没有嵌入式Linux方面的开发人员,他们说他们单位急需要懂得在嵌入式linux环境下的软件开发人员,我回答说,现在每年毕业的 大学生那么多...
  • 欢迎各位嵌入式linux爱好者前来下载,这里有Linux驱动开发和应用开发的两本书籍和Linux内核架构的
  • 嵌入式linux应用开发完全手册 第2版面市

    千次阅读 多人点赞 2020-11-16 19:07:18
    嵌入式linux应用开发完全手册>>,虽然有些内容过时了,但丝毫不影响它的销量。 10多年来陆陆续续有太多人希望我们对这本书进行更新,刚好最近正在录升级版嵌入式视频,全新的学习方式,适配多款主流开发板,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 22,692
精华内容 9,076
关键字:

学嵌入式linux开发用什么书

linux 订阅