Quote:
引用第0楼wangfan于2007-12-16 14:02发表的 问下蝈蝈gate :
嵌入式自学,好学吗?
个人浅见:
学习的途径很多,推荐linux
学什么都是一个循序渐进的一个过程,我觉得蝈蝈首先应该具有C语言,操作系统,数据结构,数字逻辑等基础,推荐用Linux平台,Linux一个可以作为开发平台,还有可以做为嵌入式操作系统移植,且开源,其他如ucos,uclinux等都是由Linux改写,(vxworks不太一样,它不分系统态和用户态,现在貌似也开源了),都有相通的地方,蝈蝈可以研究其源代码,学习驱动,应用程序的开发,掌握驱动框架,了解一些Linux系统常用的数据结构,常用的一些函数。
清楚两个概念:
1,开发平台:可以选择linux,当然也可以用其它的。
2,嵌入式操作系统:用于移植到目标板的操作系统,也可以选择用linux,或者是其他的,ucos,uclinux等(如果使用vxworks要付费,学校教研室科研当然不用,其开发有一个IDE平台)。
linux下编程,需掌握:常用命令的使用(基础),makefile文件的阅读,编写,make 工具的使用,简单bsh的编写(题外:有时间学学perl,python),相关的还有:config.in文件的修改,Makefile的修改等。
推荐使用redhat 9.0版本(2.4.X),目前嵌入式领域也有使用2.6 内核的,但2.4还是主流
如果蝈蝈要学移植
1,要掌握的是bootloader的修改及移植,常用的是uboot,还有其他如:vivi,redboot,等(付费的有:ppcboot,mipsboot,68kboot等),bootloader两个stage,stage 1 是汇编代码写的,直接操作目标板各寄存器,关闭看gate狗,初始化时钟寄存器,并为stage2做必要的环境准备(如创建c代码运行的堆空间)这里就要求掌握汇编,数字逻辑,能够参照处理器文档,存储器文档,对bootloader做一些修改,以使之能正常工作。stage2是C语言写的,主要功能是: copy系统镜像到ram,并传递参数给内核镜像。
2,busy box(嵌入式中用于替代linux下常用工具的一个工具包)的修改,编译及移植。
3,嵌入式常用文件系统的创建。常用文件系统:ramdisk ,JFFS2,cramfs,YAFFS等。
4,前面步骤完成了嵌入式最小系统移植,还要做的就是一些驱动的编写,参考模板程序修改,然后就是应用程序的开发了。(交叉编译,使用针对目标板的gcc工具链,比如如果是arm的处理器,工具链用arm-linux-gcc,网上有现成的下载,下好安装就是了)。
5,常用工具的使用:arm developer suit / tftp /putty /arm代理 /sscomv20(串口调试程序)/
如果使用Linux,推荐vmware虚拟机,可以设置跟xp共享,也可以开通samba服务,目的是:xp系统下用ultraedit,editplus等编辑工具方便程序的编写,然后可以直接在Linux下编译程序及调试。
花了半个小时就写了这些,我也只知道这些了。。。