嵌入式系统发展的这么快,很多人都开始投身都这一行业中来,有些人选择培训来学习,而有些人选择自学,对于选择培训的人来说,一般培训机构是会很清楚的来讲解嵌入式linux学习方法步骤的,但是对于一些自学的人来说,是有一定的难度的,但也不需要烦恼,在这里手把手教你怎么去学。
在学习嵌入式linux时,你先了解一下自己有哪些基础,一般学习嵌入式linux,你必须要
1、精通c语言、数据结构 、计算机原理(包括汇编的)、编译原理 、操作系统
刚开始没有基础的话,就需要先做上面我说的这些,你可以在网上找书或者去书店买书,主攻书籍:the c programming language、数据结构。
你学习完上面这些以后,那你就需要检测一下自己了,看看都掌握了没有,你可以去找一些题,比如链表?树的遍历?图的最短路径怎么实现?能自己写小型抢占式内核吗?如何用c实现语法分析,词法分析? 这些来测试一下自己的掌握程度。
2、接下来我们需要用到开发板了,刚开始学的时候要先学裸机的,linux接触越早越好,命令越熟越好,vim操作越眼花缭乱越好…,在这一阶段你就是需要了解IO、串口通信、中断等,最好用模拟时序的方式用IO引脚写个iic和spi的驱动,在这里不要花费太长的时间,规定自己一个月完成,这是最好的。
3、然后你可以学习一下mcu或处理器了,建议是ARM,因为你用别的架构会发现板子少的可怜,且价格也贵。建议先玩裸机,还是和51一样,从点灯开始熟悉。请注意:最好不要一上来就钻到里面把所有的模块都整一遍,因为那样好费时间(这里说的不是浪费),不是不可以,但效果我感觉不一定是最好的。学裸机编程其实就是学CPU编程思想,因为你后面肯定不只是用一种CPU,怎么控制引脚,怎么配置寄存器可能每款CPU都不一样。要学到的是这种方法,这种原理。还是像上面所说的,先把cpu本身的资源搞懂!!IO、中断(就单片机编程来说相当重要)、UART、内存寻址方式等等。如果可以,学一下它的汇编。如果汇编你也学了,好!!请基于这个cpu写个时间片的调度器,不用太复杂,运行个多任务就可以了。(这里重点不是写调度器,而是写它的时候会涉及到各种栈操作,现场的保护与恢复,用到大量汇编)然后再根据外围的器件做些实验,这就不说了,你会接触到一个东西:datasheet,如果英国话不好,它会让你头疼。
4、上面这些都掌握好了以后,那就是数模模数,语音,lcd屏,按键,时钟芯片,等根据板子的资源放开学,记住一点就是要理论与实践相结合的来,不然你会越学越迷茫的。
这些都是嵌入式linux自学需要学习的知识点,你要好好掌握好上面的这些点,那么你就可以更深层的学习了:
1:掌握至少50个以上的常用命令。
2:系统编程
3:就是驱动的学习了,学习添加外设,安装设备驱动程序(比如网卡)
4:掌握vi,gcc,gdb等常用编辑器,编译器,调试器
5:vim
6:熟悉Linux文件系统和目录结构
7:理解shell别名、管道、I/O重定向、输入和输出以及shell脚本编程
还有很多,都是需要你学的,这些都是一环套一环的,你可以慢慢来,记住学linux一定不要只看书,一定要多用,多用!多用!熟能生巧。
关于掌握至少50个以上的常用命令
当然是知道的越多越好,用的越熟越好,但别只为了练命令而练命令:搜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汇编指令等
勤于实践:
要增加自己Linux 的技能,只有通过实践来实现了。所以,赶快找一部计算机,赶快安装一个 Linux 发行版本,然后进入精彩的Linux世界。相信对于你自己的 Linux 能力必然大有斩获。
其实,一般学习嵌入式linux,我建议你可以去培训一下,培训会比自学又好,因为培训会根据企业的需求来教会你,而自学的话,一般很难去跟随企业的需求,不能满足企业的需求,这样的话,自学完也会很迷茫的,这都是看你个人的想法了。
智能机器人软件开发好学吗?大学生可以学吗?
针对学员的基础情况,我们分为基础班和就业班两种班型分开学习。如果学员没有基础或者基础较差可以选择智能机器人软件开发基础班培训,一方面补充相关基础知识,以便顺利进入到智能机器人软件开发就业班的学习,另外还能检验一下自己是否适合从事智能机器人软件开发工作;如果学员有一定的基础知识,我们会进行就业班入学测试,如果通过测试可直接进入智能机器人软件开发就业班进行学习。
Q:我适合学智能机器人软件开发吗?
A:智能机器人软件开发是一个新兴的学科,处于发展初期,需要热爱计算机,热爱机器人行业,不浮躁,有认真学习态度的同学来学,如果您只是想学个技术快速就业,那建议学其他学科
Q:我数学基础差,影响学习效果吗?
A:因课程需要学习人工智能和机器视觉的内容,需要使用大量高等数学的知识,课程要求学员热爱学习,能沉得下去。所以课程对学历有一定要求,要求学员必须是理工科,本科及以上学历,授课讲师会手把手教你所有用到的高等数学的知识,从向量、矩阵的运算到微分求导等知识。
Q:学完课程,我能顺利找到工作吗?
A:智能机器人软件开发课程,是我们与国内知名机器人企业库柏特联手打造的高端课程,每项技能知识点的设计都源自企业的真实需求。认真学完所有课程后,学员可以满足企业的用人需求,也有机会直接进入库柏特工作。机器人培训选择传智播客
|
|