当前位置:首页 > 嵌入式培训 > IT培训问题库 > 怎么学习嵌入式?嵌入式linux学习方法及步骤

怎么学习嵌入式?嵌入式linux学习方法及步骤 时间:2018-05-09      来源:未知

怎么学习嵌入式:如果是大学生,请再学好以下课程

1、精通c语言、数据结构 、计算机原理(包括汇编的)、编译原理 、操作系统

先做以上的,别着急!要做好嵌入式工程师请远离浮躁!虽科目众多,不一定全学,可根据需要选修。主攻书籍:the c programming language、数据结构。

如果你严厉的觉得觉得你学的可以了,请考虑以下问题:不参考任何代码的情况下,能自己写链表吗?树的遍历呢?图的最短路径怎么实现?能自己写小型抢占式内核吗?如何用c实现语法分析,词法分析?

ps:以上四门课是嵌入式大神必修课!

2、然后就可以搞块开发板了,只提一点:先搞裸机(请自动把这句话复述三遍)。linux接触越早越好,命令越熟越好,vim操作越眼花缭乱越好…

先搞裸机可以考虑51系列也未尝不可,可买个板子,也可以直接用proteus仿真。了解下什么是IO、串口通信、中断等,最好用模拟时序的方式用IO引脚写个iic和spi的驱动。在51上不要花太多时间,新手一个月左右吧,(假如我上面说的基础你学的OK的话,视自身学习能力而定)。

3、然后你可以学习一下mcu或处理器了,建议是ARM,因为你用别的架构会发现板子少的可怜,且价格也贵。建议先玩裸机,还是和51一样,从点灯开始熟悉。请注意:最好不要一上来就钻到里面把所有的模块都整一遍,因为那样好费时间(这里说的不是浪费),不是不可以,但效果我感觉不一定是最好的。学裸机编程其实就是学CPU编程思想,因为你后面肯定不只是用一种CPU,怎么控制引脚,怎么配置寄存器可能每款CPU都不一样。要学到的是这种方法,这种原理。还是像上面所说的,先把cpu本身的资源搞懂!!IO、中断(就单片机编程来说相当重要)、UART、内存寻址方式等等。如果可以,学一下它的汇编。如果汇编你也学了,好!!请基于这个cpu写个时间片的调度器,不用太复杂,运行个多任务就可以了。(这里重点不是写调度器,而是写它的时候会涉及到各种栈操作,现场的保护与恢复,用到大量汇编)然后再根据外围的器件做些实验,这就不说了,你会接触到一个东西:datasheet,如果英国话不好,它会让你头疼。

4、 然后像什么数模模数,语音,lcd屏,按键,时钟芯片,等根据板子的资源放开整吧!!单片机这块最后说一句:玩单片机千万别不买开发板!!!!不玩单片机千万别买开发板!!

嵌入式linux方法步骤:

1:命令

2:系统编程

3:驱动

4:vim

其他还有好多东西:服务器搭建,内核,shell…。想想自己怎样熟悉windows的?在用win的时候有没有天天去网上问,如何装软件,如何配ip,你肯定问过,有人会说我用win是图形界面,linux也用图形界面能学什么!!首先,图形界面照样能做很多事情,just like eclips.另外你要用linux可能不接触到命令吗?win下面没有人会说在cmd下装软件,就像linux大部分是yum, aptget, make install一样。久而久之你就熟了。不管什么系统,它都只是一个工具而已,用的时间越长越顺手,越熟练。只不过这个工具并不那么简单。学linux一定不要只看书,一定要多用,多用!多用!熟能生巧。

关于命令

当然是知道的越多越好,用的越熟越好,但别只为了练命令而练命令:搜linux常用命令,得到一堆结果,对着敲!枯燥!效率低!易忘!我的建议是从使用中学习,比如你要配samba,你就要安装samba:yum ,aptget或make install,你会学到安装命令及用法,关防火墙,你要学到sudo service iptables stop 如果你有心,你肯定不只想知道这句话是关防火墙,你还想知道每个单词的意思及用法linux可以做很多东西,你从中可以学很多东西!主攻书籍:linux内核完全剖析、unix环境高级编程、深入理解linux内核、情景分析和源代。

关于系统编程

不建议直接整APUE,因为如果基础不好很可能有些地方看不懂, linux系统编程其实就是函数调用,就是io 进程线程,ipc(进程通信),网络编程,可能还会有UI。快速了解Linux编程是什么东西,快速知道如何写一个简单的程序,如文件拷贝程序(想想是不是很多时候你整了一大堆理论,却还是写不出程序来,是不是清楚知道函数的功能,却不知道怎么调用,xxx从入门到精通系列正好解决这个问题,它俨然就是带实例的中文man手册,讲解参数,讲返回,然后给个例程…)。可以找一家大书店,去计算机分类中找到这方面的书,可以在书店里看,也可以买下来。快速的了解linux编程是何物。然后再看apue 这类书会很好上手。另外,经常试写下系统命令:ls cd cp 等,经常看man。

关于驱动

驱动是个很深奥的东西,学驱动不要只限于驱动框架,一定要知道它每个功能的实现原理,比如你给驱动添加了poll功能,不要只知道这样写就可以实现poll,以后按这个写就可以了,你还要知道它的原理!!就是到内核里看它是怎样一步步调用过来的,中间经历了什么?!

学驱动要多看内核原码!了解内核子系统!不要说你看不懂,一开始谁也看不懂。必须有块开发板(arm9及以上),有条件可参加培训(进步快,能认识些朋友)。主攻书籍:毛德操的《嵌入式系统》及其他arm9手册与arm汇编指令等

关于vim

还是那句话,操作的越眼花缭乱越好!请自行Google它的配置放法!这里提几个常用插件:ctags, cscope, clang, wm, 还有很多!请自行Google!别用百度!! vim是个神器!功能上完全不输source insight等任何IDE!

最后对于学习c,理由是c不只是一种语言,一种工具,它还是一种艺术,一种文化,一种哲学理念、但不是拿来炫耀得东西。对于linux内核,学习编程,读一些优秀代码也是有必要的。

上一篇:嵌入式的坑在哪?大白话分析现状

下一篇:如何评价搞嵌入式底层的看不起嵌入式上层应用开发?

热点文章推荐
华清学员就业榜单
高薪学员经验分享
热点新闻推荐
前台专线:010-82525158 企业培训洽谈专线:010-82525379 院校合作洽谈专线:010-82525379 Copyright © 2004-2022 北京华清远见科技集团有限公司 版权所有 ,京ICP备16055225号-5京公海网安备11010802025203号

回到顶部