如何学习嵌入式?嵌入式linux学习方法步骤。
精通c语言!
精通c语言!
精通c语言!
精通c语言!
精通c语言!
重要的话只说三遍而已!!
-----分割线可以这么短吗---
如果是大学生,请再学好以下课程
数据结构
计算机原理(包括汇编的)
编译原理
操作系统
先做以上的,别着急!要做好嵌入式工程师请远离浮躁!
如果你严厉的觉得觉得你学的可以了?请考虑以下问题:不参考任何代码的情况下,能自己写链表吗?树的遍历呢?图的最短路径怎么实现?能自己写小型抢占式内核吗?如何用c实现语法分析,词法分析?
ps:以上四门课是嵌入式大神必修课!!!!
----分割---
然后就可以搞块开发板了,只提一点:先搞裸机(请自动把这句话复述三遍)。
linux接触越早越好,命令越熟越好,vim操作越眼花缭乱越好…
接下来,我就要开始装逼了,过敏的请闭眼!!
b!!!
………9月7号更………
批一下评论中破坏队形的这几位先!!
从小到大我妈对我说:真懂事,好孩纸,长大了等夸我的话不超过20句,现在这里竟然有有18个赞 外加 5个不是黑我的3字以上评论。这必须赞一个!
先说单片机吧!!有人说51系列太过时了,但我觉得新手作个入门也未尝不可,可在X宝上买个板子,也可以直接用proteus仿真。请根据自身钱包隆起程度决定。了解下什么是IO、串口通信、中断等,最好用模拟时序的方式用IO引脚写个iic和spi的驱动。在51上不要花太多时间,新手一个月左右吧,(假如我上面说的基础你学的OK的话,视自身学习能力而定)。
然后你可以学习一下mcu或处理器了,
建议是ARM,
建议是ARM,
建议是ARM,
因为你用别的架构会发现X宝上的板子少的可怜,且价格也贵。另外我对ARM也比较了解,万一哪天知乎上看到有关ARM的问题我也可以流畅的装个逼!要是其他架构,只能强行装逼了。
建议先玩裸机,还是和51一样,从点灯开始熟悉。请注意:最好不要一上来就钻到里面把所有的模块都整一遍,因为那样好费时间(这里说的不是浪费),不是不可以,但效果我感觉不一定是最好的。
学裸机编程其实就是学CPU编程思想,因为你后面肯定不只是用一种CPU,怎么控制引脚,怎么配置寄存器可能每款CPU都不一样。要学到的是这种方法,这种原理。啊!!!我不知道怎么表达了,原谅我……保证你以后拿到一款U可以轻松的把它驱动了。而不是说你这一款用的很好,换另一个就无从下手了!
还是像上面所说的,先把cpu本身的资源搞懂!!IO、中断(就单片机编程来说相当重要)、UART、内存寻址方式等等。如果可以,学一下它的汇编。如果汇编你也学了,好!!请基于这个u写个时间片的调度器,不用太复杂,运行个多任务就可以了。(这里重点不是写调度器,而是写它的时候会涉及到各种栈操作,现场的保护与恢复,用到大量汇编,反正会学到好多东西,爱信不信)
然后再根据外围的器件做些实验,这就不说了,你会接触到一个东西:datasheet,如果英国话不好,它不仅会让你头疼,还还会让你蛋疼,好疼!尤其是读韩棒子写的英文文档的时候。这有个小小的建议:如果实在头疼英语,在读之前吃点止痛片可能好点。
然后像什么数模模数,语音,lcd屏,按键,时钟芯片,等根据板子的资源放开整吧!!
单片机这块最后说一句:玩单片机千万别不买开发板!!!!不玩单片机千万别买开发板!!
先这样吧,地铁保安赶人了!linux的以后再更!
------9月17日更----
你们是不是看到两边不一样长很不爽啊!!?
这两天工作略忙,但做事要有始终,不然就像拉屎一样,刚出来一截就强行夹断…好了不说了,所以今天来更linux部分。
首先说本人并不是精通linux的大神,相反在linux领域还有很多东西要学,因为接触她的时间并不长,有很多地方不敢乱讲,没办法,这就是我,一个知之为知之的人(好不要脸的说)。
linux主要说这几点
1:命令
2:系统编程
3:驱动
4:vim
其他还有好多东西:服务器搭建,内核,shell…由于不擅长,小的不敢胡乱造次!!
扯之前先问个问题:列位看官是怎么熟悉windows的?在用win的时候有没有天天去网上问,如何装软件,如何配ip,如何看那些年我们一起下载的女孩?你说你没问,我不信!!!你肯定问过,只不过年代久远而已。你现在熟悉了,翅膀硬了,技术好了,当然,硬盘也大了…你可以很熟练的操作win。但有没有想过如果一开始就用linux你现在会是什么水平?毋庸置疑你现在可以熟练的操作linux。说到这可能有人会说我用win是图形界面,linux也用图形界面能学什么!!
首先,图形界面照样能做很多事情,just like eclips.另外你要用linux可能不接触到命令吗?win下面没有人会说在cmd下装软件,就像linux大部分是yum, aptget, make install一样。久而久之你就熟了。
你说:这话就像放屁,老子真要用了十几年linux了,现在还有心思看你在这儿装逼?!!好,别急先,现在说说怎么搞linux,因为我们都刚接触不久…
小的放那些屁,噢不,说的那些话,无非就是想说:不管什么系统,它都只是一个工具而已,用的时间越长越顺手,越熟练。只不过这个工具并不那么简单。不知道我说明白了没有?学linux一定不要只看书,一定要多用,多用!多用!熟能生巧,就像解你女朋友的内衣一样,一开始两只手解半天,到后面单手熟练解!什吗??你说你女友不穿内衣?!?!怪我咯??!
_____还是短短的分割线____
言归正传
关于命令
当然是知道的越多越好,用的越熟越好,但先万别只为了练命令而练命令:搜linux常用命令,得到一堆结果,对着敲!枯燥!效率低!易忘!有时候还想骂娘!我的建议是从使用中学习,比如你要配samba,你就要安装samba:yum ,aptget或make install,你会学到安装命令及用法,关防火墙,你要学到sudo service iptables stop 如果你有心,你肯定不只想知道这句话是关防火墙,你还想知道每个单词的意思及用法…good boy!!
一套下来,你学到了好多,并心情大好!!
linux可以做很多东西,你从中可以学很多东西!
关于系统编程
不建议直接整APUE,因为如果基础不好很可能有些地方看不懂,打鸡性趣!linux系统编程其实就是函数调用,就是io 进程线程,ipc(进程通信),网络编程,可能还会有UI。下面的话,可能又有人说我放屁了,还好今天没吃地瓜。中国人写这种技术书都是一大抄,但它有一大‘好处’就是讲的不深奥,不知道是否易懂,但够浅显,这正是很多新手需要的:快速了解Linux编程是什么东西,快速知道如何写一个简单的程序,如文件拷贝程序(想想是不是很多时候你整了一大堆理论,却还是写不出程序来,是不是清楚知道函数的功能,却不知道怎么调用,xxx从入门到精通系列正好解决这个问题,它俨然就是带实例的中文man手册,讲解参数,讲返回,然后给个例程…)。可以找一家大书店,去计算机分类中找到这方面的书,可以在书店里看(我当时就是这么干的,以至于我每次去那个书店,导购都嫌弃的瞅我一眼然后走开,我以为是我只看不买的原因,后来我才发现,原来我穿的那条裤子是有拉链的!!可是为什么没人提醒我它开着呢!?),也可以买下来。快速的了解linux编程是何物。然后再看apue 这类书会很好上手。当然你基础够好可以忽略以上内容。
另外,经常试写下系统命令:ls cd cp 等,经常看man
关于驱动
驱动是个很深奥的东西,在下现刚做驱动不久,并没有太多发言权,但由于本人爱装逼的性格,还是想说两句。
学驱动不要只限于驱动框架,一定要知道它每个功能的实现原理,比如你给驱动添加了poll功能,不要只知道这样写就可以实现poll,以后按这个写就可以了,你还要知道它的原理!!就是到内核里看它是怎样一步步调用过来的,中间经历了什么?!
学驱动要多看内核原码!了解内核子系统!不要说你看不懂,一开始谁也看不懂,骗人TM是孙子!
关于vim
还是那句话,操作的越眼花缭乱越好!请自行Google它的配置放法!这里提几个常用插件:ctags, cscope, clang, wm, 还有很多!请自行Google!别用百度!!多用Google你就会知道百度多没逼格!!不要说来看这篇文章的人不知道怎么上Google!会让人把前列腺液笑出来的!!
vim是个神器!功能上完全不输source insight等任何IDE!谁用谁知道!没发现我这里全是 ‘!’ 吗!!
以上内容即是本人自学嵌入式的一些经验,希望对各位有点帮助!
说到这,这篇文章基本完了,以后最多是修修改改,回答下问题。本人不擅组织言语,不太会说话,都是想到什么说什么,如果有些用词让有些人感到胃口不适,你们他妈来打我啊!
-------9月25号更----
硬件部板子回来了,忙着调驱动,一直没上知乎,今天抽拉大便的时间上了下,发现评论区有姑娘说爱上我了!哎!我!去!吓的我尿都甩出了几滴!屎也是 kucha 一声就下来了!!因为这,我男友差点和我分手,他说我便秘,这次怎么这么快,肯定有别的男人了!!哼!!!
所以姑娘,很遗憾,我只能对你说一句:请务必私信我!!嘿嘿嘿…
看到评论中有几个问题
关于单片机的:
1:学嵌入式要不要学单片机
2:学单片机要不要学汇编
3:没有单片机经验是否能学嵌入式
对于前两点我的答案是:要学。为什么?因为艺多不压身,单片机是个很好玩的东西,你可以diy很多你小时想买家长却不给买的东西。另,大多嵌入式大牛都是软硬通吃的,像我项目总监,无论从pcb,驱动,还是上层应用都能给出很多好的建议。并且单片机真!的!不!难!
汇编的重要性一开始就提过了
‘’你可能在学了之后从来没用过,但你在学完汇编和编译原理之后对代码的掌控与应用能力绝对会上几个台阶!‘’
说的好像我很精能编译原理一样,其实不然,我对编译原理只是浮浅的了解,上面的话是我项目总监告诉我们的,我只是拿来装下逼而已!但我肯定会补上这门课的,因为现在知乎上的问题越来越难了,相对的,逼也越来越难装!所以还是要尽量用知识武装自己!!
对于第三点我的答案是:可以学。好像没什好说的,因为你可以先学单片机嘛!!哈哈哈
另外一种问题是推荐教材,这个我真推荐不了,因为虽然我知道很多好书,但很多也没看过,并且我上课的时候也照样用的国内教材,像谭老师的c语言开发,像郭老师的十天学会单片机,像苍老师的……oh no!苍老师是谁?!
所以,看啥书请百度!(注意,我说的是百度,因为百度都可以回答这个问题!!)
补充一句,
我是一个节操无下限的人,感到不适的人可以拉黑我!!举报我!!但不要试图挑战我的底线,不然我又得修改底线!
最后给大家个福利,希望怼各位有用(全是书)!
http://yunpan.cn/cwkxgWfAJha2i 提取码: fa41
查看评论 回复
"如何学习嵌入式?嵌入式linux学习方法步骤。"的相关文章
- 上一篇:linux中rmdir命令使用详解
- 下一篇:Linux实用工具的命令行详解