1、嵌入式学习路线嵌入式开发学习路线图-作者:尚观嵌入式研究室UEA0908班 范同学为什么选择学习嵌入式?嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一,同时也是当今IT领域仅存的几个金领职位之一。当前的中国IT人才面临严重的“后继乏人”, 而且这种缺口由于培训缺乏、教育模式等原因造成的,而缺口最大的,就是高级IT人才。如果你从事的IT培训不专业,面对竞争越来越激烈的职场,基本找不到 工作。据专家预测,嵌入式每年人才缺口在30万左右。嵌入式行业平均薪资分布嵌入式职业发展讲解视频视频中主要讲解什么样的人适合从事嵌入式行业、嵌入式行业从业人员需要具备哪些基本素质、嵌入式行业的特点以及嵌入式
2、行业的现状与发展。嵌入式研发方向职业生涯讲解视频(1)嵌入式研发方向职业生涯讲解视频(2)嵌入式研发方向职业生涯讲解视频(3)嵌入式研发方向职业生涯讲解视频(4)嵌入式研发方向职业生涯讲解视频(5)ARM+Linux嵌入式底层内核驱动方向学习总体路线图基础学习-Linux入门目前嵌入式主要开发环境有 Linux、Wince等;Linux因其开源、开发操作便利而被广泛采用。而Linux操作系统也只是一个简单的操作系统,简单的使用对于嵌入式开发人 员来说价值并不很高,真正有价值的是掌握Linux的基本服务和Linux的设计理念、思想,这对于嵌入式开发人员的长期发展是很极其重要的。Linux 系统有
3、很多发行版,RedHat、Ubuntu、Fedora等。作为嵌入式开发人员,我们没有必要把精力放到使用哪个Linux发行版上,而是尽快把 Linux系统尽快安装好。如果打算坚持长期学习,那么建议您把自己的电脑做成双系统,而不要在虚拟机上安装。Ubuntu系统下载地址:A)经典书籍推荐:B)经典学习视频推荐:1、Linux学习建议2、UNIX like系统的特点3、UNIX原则4、系统结构与终端控制台5、RHEL5 Linux安装6、Linux下寻求帮助7、文件相关命令初步8、系统命令初步9、用户及组管理初步10、文件属性11、文件夹属性及umask12、Linux编辑器及VIM初步13、Lin
4、ux查找及压缩14、文本处理及正则表达式15、linux下X图形显示体系16、进程控制17、进程优先级前台后台18、变量快捷键19、bash运算符及启动脚本20、shell脚本及交互121、shell脚本及交互222、shell脚本流程控制23、shell脚本sed&awk24、Linux安装软件基础学习-C语言C语言是嵌入式开发必备的基础知识。在Linux下从事C语言的开发,你会觉得更为顺畅、更为自然,因为C语言是因unix的出现而诞生的,Linux内 核几乎完全是由C语言编写完成的。学习C语言,如果不会用指针,那么就称不上会C语言。做嵌入式开发指针更显得尤为重要,所以做嵌入式开发除了掌握位
5、操 作、限定词等,对指针的掌握是不可或缺的。而且要掌握多级指针、函数指针等等。涉及到指针,那么就会讲到内存分配。在大学中,学习C语言一般的学习很少讲 到内存分配,但是如果期望从事嵌入式开发,那么就必须懂得C语言是怎么做内存分配管理的。指针之外,还要学习模块化编译处理、指针与数组、gcc、 Makefile、GDB、递归、结构体、宏定义使用等。C语言是整栋嵌入式大厦的基础,所以在学习嵌入式时,必须把C语言重视起来,多敲代码,多练。一 名优秀的程序员必定是通过“体力劳动”再转向“脑力劳动的”,这也是为什么我们要有“写不出代码=0”思想的原因所在。如果说C语言相当于文字,那么数据结构就相当于在造句、
6、写文章。代码质量有一部分取决于对数据结构的掌握程度。在数据结构部分我们要把链表、树、排序作 为学习重点。而且我们也可以查看一些比较常见的函数(如strcopy、strcat、printf等)在内核中是如何实现的,以及编写代码模拟堆栈,这 不仅有利于编写代码质量的提高,而且还可以初步了解Linux内核精髓,为今后工作打下坚实的基础。C+、QT在嵌入式开发领域,是用来开发图形界面的,希望从事上层应用开发及图形界面,那么在C+、QT方面需要比较深入的学习。A)经典书籍推荐: B)经典学习视频推荐:1)C语言学习视频入门篇:C语言入门-1、类型运算符表达式C语言入门2、控制流C语言入门3、函数与程序结
7、构C语言入门4、指针与数组C语言入门5、结构体共用体位字段C语言入门6、C_指针2)C语言学习视频提高篇:01、C语言概念、发展历史、特点02、第一个helloworld程序、Linux下执行03、C语言第2个程序第3个程序04、C程序开发过程05、C语言开发常见错误分析06、C语言开发语言和开发工具的关系07、C语言基本数据类型08、常量和变量09、const类型修饰符概念10、const类型修饰符实例11、volatile类型修饰符12、extern,static存储类型说明符13、register存储类型说明符14、auto存储类型说明符15、操作符-算术操作符16、操作符-sizeof
8、操作符17、操作符-关系逻辑操作符18、操作符-位运算操作符19、表达式20、if条件判断结构21、switch条件判断结构22、for循环结构23、while循环结构24、跳转语句25、模块化设计方法26、函数的声明和定义27、函数的调用28、递归函数29、函数返回值30、数组31、字符串32、指针33、函数指针34、动态类型分配35、指针常见错误36、指针与数组37、编译预处理38、结构体基础39、链表40、共用体41、位段42、枚举43、文件44、C编程总结3)C+学习视频1、如何编译C+程序2、如何调试C+程序3、C+预备知识4、C+中的C5、类和对象6、对象的构造和销毁7、函数重载和
9、默认参数8、内敛函数和常量9、名字空间10、拷贝构造函数111、拷贝构造函数212、运算符重载113、运算符重载214、动态对象的创建15、继承和组合116、继承和组合217、多态118、多态219、模板120、模板221、异常122、stl23、stl-containe24、stl-string25、makefile26、Qt27、qtE28、qt-extendC)经典学习案例:1、学员成绩管理系统2、计算器3、电子词典4、文件压缩器基础进阶-Linux应用程序设计Linux的思想源于Unix。Linux继承了Unix的优点,但是没有用UNIX的代码,所有程序都是重新编写的,而且Linux与
10、Unix的源码级兼容。Linux是类Unix操作系统。Linux 不仅符合 POSIX 标准,而且还包括其它 UNIX 标准的多种特性,例如,UNIX 的 System V 接口文档(System V Interface Document,SVID)和伯克利软件发布(Berkeley Software Distribution,BSD)版本。Linux 采用了折衷的策略,包含了 UNIX 几个典型特性当中最实用的一些功能:Linux 采用了 SVR4 的进程间通信(IPC)机制:共享内存、消息队列、信号。Linux 支持 BSD Socket 网络编程接口。许多 Linux 发行版采用 Sys
11、V init 机制,支持运行级别。此阶段的学习是从事嵌入式上层应用开发以及底层开发人员的必修课程。进程、线程、信号、文件锁、socket是这部分内容的重点。要把这些内容学的透彻非要下些苦功夫不可。而且函数是系统提供给我们的,难免要对计算机系统深入理解一番。TCP/IP协议也是要涉及到的。有问题建议用Google搜索及登陆chinaunix论坛。通过这个阶段的学习,我们就可以初步实现一些应用程序的开发了,如做自己的shell命令解析器、简单的聊天软件、视频多播等。A)经典书籍推荐:B)经典学习视频推荐:Linux网络开发-1、ARP攻击原理Linux网络开发-2、ARP攻击实例分析Linux网络
12、开发-3、ARP攻击程序代码分析和socket构造C)经典学习案例:1、串口监听程序 2、图片浏览器 3、MP3播放器 4、聊天程序 5、 ftp程序6、音频广播程序 7、ping的实现 8、DDos攻击程序 9、ARP攻击程序嵌入式入门-ARM体系结构从这部分开始,我们将真正进入嵌入式开发学习阶段。首先我们要知道采用哪种处理器。目前通用嵌入式处理器有ARM、MIPS、PowerPC、X86等。从市场产品占有率上看,ARM处理器远远领先于同类其它处理器,并逐步掠夺传统51单片机和英特尔市场份额。据招聘网站统计,目前用人单位在技术水平上要求开发人员掌握ARM9及以上平台的开发技术。ARM公司在发
13、布ARM11产品后,更改以往的数字标记更新方式,转为发布ARM Cortex。但是Cortex并不是更高端,而是全新系列的处理器,比如Cortex M3,它主要应用于机械加工、工控领域,目的是取代以前的ARM7处理器。在开始学习前,建议有一块自己的开发板,目前ARM9 2440的开发板价格在400-600元之间,ARM11 6410的开发板价格要高一些,最便宜的也要1200元以上。在此,提醒大家尽量不要买mini开发板,虽然mini开发板的价格要便宜些,但是与正常开发板相比,mini板功能是不完善的。嵌入式汇编有别于X86汇编,所以如果以前没有接触过汇编语言,那么没有必要先去学X86汇编再学嵌
14、入式汇编,可以直接学习嵌入式汇编。除了汇编我们还要学习ARM指令集。有了开发板,我们要下载相对应处理器的DataSheet及开发板电路原理图。ARM体系结构的学习我们是不能完全照抄别人代码的,因为我们自己手中的开发板及处理器与别人是不同的,除非所用的代码是根据你手中的开发板来编写的。所以,我们要先去看书、看视频资料理解原理及工作方式等,然后根据自己开发板的电路原理图和DataSheet来编写代码,达到理解外围设备工作原理和操作硬件的目的。B)经典学习视频推荐:1)嵌入式扫盲篇嵌入式漫谈1嵌入式漫谈2嵌入式漫谈3十问嵌入式1-什么是嵌入式,创业十问嵌入式2-嵌入式实例iphone十问嵌入式3-嵌
15、入式前景十问嵌入式4-嵌入式学习十问嵌入式5-ARM概述十问嵌入式6-ARM概述 开发板十问嵌入式7-ARM与单片机十问嵌入式8-汇编语言的作用十问嵌入式9-操作系统的选择十问嵌入式10-编程语言选择2)嵌入式开发概述嵌入式开发入门经典教程-1 嵌入式开发入门经典教程-2嵌入式开发入门经典教程-3嵌入式开发入门经典教程-4嵌入式开发入门经典教程-5嵌入式开发入门经典教程-6嵌入式开发入门经典教程-7嵌入式开发入门经典教程-8嵌入式开发入门经典教程-9嵌入式开发入门经典教程-10嵌入式开发入门经典教程-11嵌入式开发入门经典教程-12嵌入式开发入门经典教程-133)ARM体系结构与Bootloa
16、der开发1、ARM基础概念介绍与开发板使用教程 2、编译器高级应用与裸机代码编写教程3、ARM指令与ARM汇编入门4、ARM汇编高级教程与APCS规范详解5、ARM体系结构详解与异常处理机制6、ARM中断机制详解与Watchdog驱动开发实例7-1、ARM外部中断机制详解与LED驱动开发实例7-2、ARM嵌入式开发之ARM外部中断机制详解与实例8、AMBA总线结构与ARM时钟配置9、时序图详解与NAND FLASH驱动开发实例10-1、内存控器与SDRAM原理详解(上)10-2、内存控器与SDRAM原理详解(下)11、UART串口详解与通信开发实例12、ARM协处理器CP15配置原理13、从
17、零开始写Bootloader开发过程详解C)经典学习案例:1. ARM模拟器开发 2. Watchdog控制程序 3. RTC时钟控制程序4. Uart控制程序 5. LCD控制程序 6. 触摸屏控制程序7. DMA控制程序 8. 音频控制程序 9. 网卡控制程序10. 文件系统制作 11. ARM-Linux移植嵌入式提升-Linux内核、驱动众所周知嵌入式开发包含至少两个级别,一个是嵌入式内核驱动级别,另外一个是嵌入式应用层开发,而薪酬高的、最具价值的无疑是嵌入式内核驱动级别的开发者。真正的嵌入式高手或者企业中的核心开发人员,一定是嵌入式底层的内核驱动开发工程师,这些工程师成长比较缓慢,造
18、成对内核驱动人才的大量需求,所以这些人才是真正企业需要的香饽饽。掌握驱动开发会让自己的核心能力有极大的飞跃,真正实现嵌入式最有价值的就业。由于Linux内核更新速度很快,书籍和视频不可能及时更新,所以我们再看书和视频后,要自己动手下载内核源码包,去看内核中的代码,在这里可以充分检验C语言、数据结构等基础知识的掌握程度。而驱动的编写还是要借助外设硬件电路原理图和芯片手册。内核和驱动的知识是让我们根据不同的硬件,编写对应的驱动、合理剪裁内核、制作文件系统,并移植到硬件开发板上。如果手里有ARM11 6410及以上的开发板,可以试试在裸板上编写驱动并移植Android系统到开发板上吧。B)经典学习案例:1. GPIO驱动 2. RTC时钟驱动 3. WatchDog驱动 4. Udev移植 5. 触摸屏输入设备驱动6. LCD显示设备驱动 7. DMA驱动 8. 音频设备驱动 9. Nand Flash块设备驱动 10. 网络设备驱动
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1