已经做了大半年的嵌入式开发,其实严格上来说也不能叫嵌入式开发,无非就是将现有的程序在各种嵌入式平台上的移植,因为我们采用了c语言,这种绝大多数平台都支持的语言,并且尽可能地少用到系统调用,这样就极大地减少了移植的复杂性,现在基本上移植到一个新平台,感觉1-2周是可以搞定的,因为主要与系统的相关的只剩下文件操作,socket操作,内存操作等简单的一些调用。
回顾这几个月来,接触了linux,ucos,ecos,wince等嵌入式常用的操作系统,当然也有很多在这几个系统上的改造变种,linux还是主流,但是类ucos的这些操作系统以其短小精干在家电领域还是占了很大版图,毕竟他们一直在追求costdown, 他们的小可以将对资源需求减少的极至吧。wince则主要应用在手持设备上,也许因为其方便的界面开发和庞大的windows界面开发人群所致,在开发环境上windows平台真是没话说,就是开发linux上的程序 我们也都离不开windows secure crt, source insight等经典开发工具。
cpu方面也是五花八门,MIPS, ARC,ARM等,不过CPU层跟我们目前的开发关系不大,因为操作系统都帮我们解决了,我们就是拿着他们的交叉编译器编译我们的程序,然后在他们的平台上运行调试,呵呵。下一步,我还是想深入一些CPU和 Linux,对底层多一些了解,让我对计算机能有更深一层的认识,感觉一直浮在表面,第一步先从LFS开始,慢慢熟悉Linux的整个组成部分。
另外我还想说数据结构和算法的重要性,所有的程序,包括操作系统,应用程序等都是建立在这个基础上的,所以学好他是至关重要,是基石,我想结合在对CPU和Linux的学习中慢慢渗透吧。
第一个目标是在接下来的学习中能实现一个对SD卡的磁盘驱动,一直都没做过这种东西,那天跟合作公司的人聊,他们说他们觉得做驱动特简单,他们倒觉得做网络程序的人很了不起,真是别人的老婆都是美的,都觉得别人做的有意思,不过也由于他这句话,燃烧起我继续linux的信心,一步一步,Linux From Scratch.
谨以此文共勉