当前位置:  技术问答>linux和unix

高分求助Linux嵌入式系统开发学习计划

    来源: 互联网  发布时间:2016-05-09

    本文导语:  各位大虾好,我想学习Linux嵌入式系统开发,我刚刚大三,因为学校没有这个方向,所以请各位大虾帮我指点学习计划好吗,就是先学什么在学什么,最好从基础说起,以及以后的发展方向,和需要掌握的外语。非常感谢!!...

各位大虾好,我想学习Linux嵌入式系统开发,我刚刚大三,因为学校没有这个方向,所以请各位大虾帮我指点学习计划好吗,就是先学什么在学什么,最好从基础说起,以及以后的发展方向,和需要掌握的外语。非常感谢!!!

|
STEP#1:学习如何使用linux,包括linux下的常用命令,简单的shell,linux的常用配置等;
STEP#2:学习C语言,一定要学习扎实,要掌握如何编译成可执行文件,动态库,静态库,要会用GCC,知道常用编译选项,能看懂并能自己写Makefile等;知道如何交叉编译一个网上的开源项目;
STEP#3:参加实际项目,写一个相对比较大的Application!熟悉多线程,网络,文件IO,管道,信号,互斥等基本编程方法。
STEP#4:学习kernel的基本结构,能简单配置和编译内核;学习写一些简单驱动,熟悉linux内核的驱动模型;把LDD3看完;
STEP#5:研究或者尝试修改内核的一些subsystem,比如I2C, MTD,Serial,USB,FS等;

前面的工作是别人都将环境搭建好了,你在上面做一些工作而已,事实上,一个嵌入式系统,硬件出来之后,你要自己从0开始搭建起来整个运行平台!
STEP#6: 学习BOOTLOADER,一般有现成的,比如uboot,但是根据你的硬件情况一般要做一些修改;比如内存初始化,FLASH初始化,网络初始化, 串口初始化等等;并且要学习如何将bootloader烧写到flash上,让系统加点即能寻址到bootloader开始执行;小批量之前,烧写一般用仿真器(比如BDI之类)!大批量的时候一般可以用专用烧写工具在生产是就烧写好;
STEP#7: 搭建NFS开发环境;方便开发阶段调试,不用频烧写;这需要内核开启NFS支持,另外你要在HOST机器开启NFS server;
STEP#8: 制作自己的root文件系统;一般用busybox来做;根文件系统可以选择:cramfs,jffs2,yaffs等;需要哪个,在内核中一定要编译进去;准备好文件系统之后,就可以用mkfs.xxx工具来将其做成映像。然后就可以通过bootloader来将root文件系统烧写到flash上了。要想烧写的文件能够正常跑起来,首先bootloader传递给内核的参数要正确,另外,内核要对flash做好正确的分区;

NOTES:研究linux kernel当然是一个永不停息的工作:) 

随便写了点,有些凌乱,希望可以抛砖引玉! Good Luck!






|
bshawk 总结的不错了。

我补充一下。

需要理解硬件接口原理,能够看懂板子的原理图,
会用各种仪器(如示波器,万用表,USB分析器,网络数据分析工具等)进行调试。

说的简单一点就是 Bootloader + Kernel(保护drivers) + rootfs

如果没有Linux的背景,那就先熟悉一下Linux,

熟悉了之后,开始先安装别人的提示,把Bootloader烧到Flash上,
Kernel,rootfs的image 通过1) NFS 或者 2) 烧到 Flash上,把板子跑起来,整个过程跑一遍。

然后根据自己的兴趣,对上面三方面有所侧重。

1) Bootloader很重要,板子的bootup全靠它了,还要负责加载Kernel Image
需要了解的知识: ARM core初始化,soc初始化,uart/memory/flash/network初始化。
了解bootloader搬运kernel image并将执行权交给kernel的全过程,
会用ADS或者RVDS进行bootloader的调试

2)Kernel (包含drivers)
kernel的common部分可分为几个大部分: memory managerment,process managerment,
file systems,network。
drivers部分:熟悉Kernel的驱动模型,了解中断,GPIO等资源的注册。

3)关于rootfs,可以自己从头编译,可参考linux from scratch项目。
可以使用ptxdist http://www.pengutronix.de/software/ptxdist/index_en.html
来生成。


其他的编程技巧跟Linux上没两样,如gcc,Makefile,shell,。。。。。
注意不同的是交叉编译的概念。


有条件的话,找个有经验的人带你,入门非常快,少走弯路

关于linux的书籍,请看:
http://blog.chinaunix.net/u/12880/showart_1225366.html
个人推荐你看  9->7->10



good luck





|
0.C语言
1.UNIX环境编程
2.LINUX内核编程
3.LDD
4.国内宋宝华的那本驱动编程
5.深入理解LINUX内核


装个UBUNTU,经常使用
买块板子,建议买2440的,淘宝上有,加上LCD也就1000块左右,2440用的多,文章也多
板子一定要买~~~`,要多实践,如果想学好的话,可以从bootloader开始全自己写,
这样等你毕业后你就牛XXX了!!!

|
搞嵌入式,你得有块板子。。
基本的一些LINUX基本命令
学学相应的底层东西。。。
比如汇编等等、、

|
2楼和4楼都很精辟。尤其是,如果你是学计算机的,不是double E的,一定要好好学学硬件,不然你bootloader,driver都搞不定。

开发环境看你选,ads1.2+linux2.6 还是vxworks,wince。至少都了解 下。

    
 
 

您可能感兴趣的文章:

  • 高分求助,嵌入式LINUX内核移植问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 谁参加过weblogic的证书考试,是否有经验可供参考?高分高分高高分
  • 哪里有JB6下载啊,高分相送,救命
  • 高分求救!我在uclinux上运行应用程序时出现内存分配错误,不知如何解决,解决者高分!!
  • 哪里去找中文的EJB文章?高分悬赏!
  • 有jsp的upload和download 代码么,高分相报!
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 高分寻求jsp代码(网上调查系统,新闻发布系统)就这点分了
  • 高分求购做饼图、线形图的源吗?
  • 关于linu下的中文输入.(高分:300)
  • 一个简单的问题,高分求助!!!
  • 高分求购jbulider6得注册码,企业版本,个人版本都要
  • Linux远程访问的问题,高分求教:)
  • 请问哪儿有Solaris8的光盘映像文件下载???高分相赠!!!
  • 高分求“Ration Rose”&"JBuilder6.0"&"VisualCafe"
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 高分求购:linux和unix命令大全电子文档
  • 急救:关于BLOB数据类型---在线等待,高分相送!
  • 求UNIXWARE7.11的原版下载,高分相赠,在线等待!!!
  • 关于java?高分相送!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3