zoukankan      html  css  js  c++  java
  • 转载河畔:嵌入式Linux入门之路

    非计算机专业,导师基本做单片机的项目,所以基本靠自学,经过两年实践,证明该学习路线基本可靠 
    所以分亨给对嵌入式Linux感兴趣的学弟学妹 
    要学的东西真的很多,这里仅提供入门之道,分为基础知识和实践两个部分 

    第一部分,专业知识 
    C语言学习 
    《C和指针》 
    《C专家编程》 
    《C陷阱与缺陷》 
    上面三本书,认真看吧,特别是C和指针,可以当教材看,认真做做书后习题,我从这本书中受益菲浅 
    后两本用于提高,比如可以知道: char * const*(*next)() 是个啥东西, i+++j为什么是 (i++)+j之类 
    还有一些常见的面试试如判断一个链表是否有环, 怎么判断一个数是有符号数还是无符号数,书中都有涉及 
    打好C语言基础,不管是以后读源代码,还是写程序,或者应付笔试都是很重要的 

    数据结构与算法 
    《数据结构基础(C语言版)》 
    《算法设计与分析》 王晓东 
    数据结构那本书对我最大的帮助应该在于理解递归吧,这对以后学习动态规化和分治算法都很有帮助 
    当然也熟悉了树,链表,栈,排序算法等 
    个人比较得意的是有一次笔试中出现了字符串匹配算法,自己写了个KMP算法,所以学的时侯认真学,不要总想学这个到底有没有用。 
    嵌入式对算法要求不是很高,理解动态规划和分治即可 

    计算机系统结构 
    《深入理解计算机系统》 
    两个面试问题:程序优化有哪些方法, 一个while循环里有很多if语句,对程序有什么影响,看完这本书,你可以找到答案 
    另外,书中对有符号数无符号数,汇编,程序的链接,caceh,流水线,虚拟存储管理都得介绍得比较详细 
    最后书里有个栈溢出的实验,值得一试 

    Linux编程入门 
    《Unix操作系统设计》 Maurice J.bach著 陈葆珏 等译  
    《Unix/Linux编程实践教程》  Burce Molay著  杨宗源 等译  
    这两本书虽然都比较老了,但是都相当经典 
    一个操作系统理论,一个编程实践,对我帮助最大的是对文件系统的描述及一些相关的系统调用,fifo,信号的编程等等 
    可以说是这本书带我走进了Linux 的大门 
    如果以上两本书找不到,市面上新出了一些Linux编程的书,貌似很多都不错,自己上China-pub上看看 

    Linux 编程进阶 
    《Unix环境高级编程》 
    《Unix 网络编程》 
    过于经典,不多作介绍 

    内核学习 
    《Linux内核设计与实现》 
    《深入理解Linux内核》 第三版
    过于经典,不多作介绍,只强调一点,多读几遍 

    驱动学习 
    《Linux设备驱动程序》 
    《Linux设备驱动开发详解》 
    一本国外的经典,最注重驱动整体框架的分析,同时包括与驱动程序相关的东西,如同步机制,内存管理,中断等等 
    一本国内人的经典,前面一部分对上一本书作了一个总结,后面一部分是具体的外设驱动 

    arm学习 
    《ARM体系结构与编程》 
    《ARM嵌入式系统开发-软件设计与优化》 
    第一本书的ARM指令讲得很好,第二本的中断及内存管理很到位,书中还介绍了一些程序优化的方法 

    另外还有一些书籍,可以根据自己兴趣看看: 
    《C++ Primer》讲得很全,适合当参考书 
    《TCP/IP 详解 (卷一)》个人觉得比《用TCP/IP进行网际互联》更适合程序员读,作者做了很多实验,并且贴出了实验结果,相当直观 
    《程序员的自我修养-链接、装载与库》我从中学到一些位置无关代码还有动态库的装载的知识 
    《编程珠玑》、《编程之美》开拓思维,还有一些常见的算法题,都可以从中找到原型 

    第二部分,实践 
    你可以不参加培训班,但你必须得有开发板,我是自己买的mini2440开发板 
    学习过程如下: 
    1.理解ELF文件格式:代码段,数据段之类,理解链接地址,运行地址(记不太清了),网上有经典的资料,名字好像是《arm学习报告一二三》 
    2.按照 《2410开发完全流程》走一遍,就是把2440当单片机用,里面有SDRAM,MMU,GPIO,NADN Flash, 中断的实验,比较不错 
    3.学习vivi, uboot, 最经典的资料就是《vivi开发笔记》 
       上面提到的资料,网上都可以免费下载,在这里感谢作者们的无私奉献 
    4.终于可以从事内核的移植,驱动的开发了,推荐的教程是韦东山的《嵌入式Linux应用开发完全手册》这本书相当实用,所谓实用,就是你按照它的步骤编译内核,根文件系统,移植Uboot是可以成功的(不要以为这些东西很简单,一些莫名其妙的错误会让你束手无策) 
    5.最后就是不断的编程,看源代码,最好参与些相关的项目 

    以上只是我个人的方法,大家学习习惯可能不一样,情况也不一样,所以仅供参考 
    但所列的书籍都是相当经典的 

    最后,把口语练好,要不,你将错过以下公司:intel,AMD, Marvell 
    成绩能考好点就考好点吧,在找工作时还是很有用的,基本上说找工作成绩不重要的,大部分都是成绩不好的,所以他们体会不到这个的重要性(这么说可能也有些偏激,但基本是实事)

  • 相关阅读:
    加入创业公司有什么利弊
    Find Minimum in Rotated Sorted Array II
    Search in Rotated Sorted Array II
    Search in Rotated Sorted Array
    Find Minimum in Rotated Sorted Array
    Remove Duplicates from Sorted Array
    Spiral Matrix
    Spiral Matrix II
    Symmetric Tree
    Rotate Image
  • 原文地址:https://www.cnblogs.com/AcmenLiang/p/6364314.html
Copyright © 2011-2022 走看看