主题 : 一年多入门嵌入式的感想(高手请过) 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 53
精华: 0
发帖: 26
金钱: 155 两
威望: 63 点
综合积分: 52 分
注册时间: 2008-01-30
最后登录: 2016-10-18
楼主  发表于: 2010-02-17 00:13

 一年多入门嵌入式的感想(高手请过)

不知道为什么忽然觉得LINUX其实对于开发人员其实并不是一个好的选择,说这个话很多人要对我扔鸡蛋,别急说说我的看法:

1,CE固然不好但是开发的环境很好,可以给嵌入式的开发者带来很多便利;

2,CE的开发周期较小,无需其他的插件;

LINUX的优点:

1,开源,便宜;

2,稳定,效率高;

3,支持很多插件,例如GTK,JAVA等。

      从上面看来你会选择LINUX,可是对于高校的创新实现,我的体会如下;

1,LINUX所需很强的知识体系,例如交叉编译,MAKEFILE的编写,文件系统的制作;

2,LINUX对于初学者至少是1年,如果要精通要就是3年以上,如果是学生入手,LINUX的驱动,APP的开发,QT的移植,跟文件系统的制作都需要大量的知识体系,不过很不走运的是这些东西目前还没有什么人愿意体系的讲解他的原理和步骤。UBOOT就是个例子,我想问的是如果你会开发2440的UBOOT,那么对于其他的平台例如XSCALE的UBOOT你是否也能短期内完成开发?

3,LINUX的驱动开发是目前最难掌握的部分,在开发过程中琪头文件的位置和编译的MAKEFILE需要自己寻找和编写,对于一个初学者来说这是不是过于复杂了呢?

4,几乎每一个细节都需要关注。读过为东山书的人可能能作出64M的UBOOT和YAFFS文件系统,但是一旦NAND换成了256的,那么所有的底层都将被改变,这些东西好像对于一个初学者过于的复杂。

5,UI的开发移植过于的繁琐。举个例子,QT的启动需要修改RCS脚本,这个脚本的说明对于初学者时候过于困难呢?

6,QT的开发的是否资源过少?例如你想在QT下编写一个控制COM的程序,发现有点难以下手,因为开源的东西不是很全面,于是你只有在GOOGLE上面查找,结果很难找到合适的参考代码,或者是能用的代码。

      别急,我不是再说LINUX毫无意义,我选择LINUX放弃了CE,或者是CE是个DEMO,产品的制作我一定会用LINUX。我在这里只是建议我的学生们,做嵌入式如果想最快的方式实现自己的概念,可以先用CE做个DEMO,LINUX可以同步积累。啊,当然我还想说明的是,LINUX是个很超前的操作系统,CE比起他来可以说有很多缺点,但是我从一个学生有限的时间和精力来看,LINUX是个很好的学习对象,但是如果你想不要被它过于复杂的知识体系而迷失方向的话,我觉得同学们其实一边积累LINUX的东西一边通过VC去快速实现自己的想法,往往会带来更好的收获。

     无论如何在实践过程中,积累和创意是同样重要的,如果LINUX的IDE开发过程可以做到VC那样,那么也许嵌入式真的就是LINUX的天下了,但是开源意味着无人愿意做这个事情。我想M8开始也想过用LINUX系统,为什么用回CE呢?这个问题恐怕只有魅族的工程师能回答,但是一点就是,LINUX无法提供SDK给其他开发人员,如果采用了LINUX那么现在的M8的软件数量是多少呢?ANDRIOD的系统虽然是LINUX基础,但是中间加入了JAVA虚拟层,开发过程中不再是LINUX的开发,而是JAVA 的开发。说了那么多,我还是给出我自己的体会吧。

     LINUX一定要学,但是不可以着急,急也没有用,可以作为一个最好的学习对象,好好钻研,包括架构,驱动,启动过程,源代码的组成等等都是很好的学习对象。

    CE不要完全排斥,至少VC的开发过程还是比较有用的,这将帮助你快速的实现你的想法,有了阶段的实现,嵌入式的快乐也就享受到了,但是没有必要去研究它的运行过程,你就当作一个嵌入式的电脑开发一个VC就可以,驱动我想任何开发板都会提供BSP或者是SDK,直接使用就好。

    我的经验告诉我,CE就是一个傻瓜开发过程,不用理会底层是什么,例如PXA255的COM程序直接在2440SDK的环境下编译就可以实现移植。

    LINUX是个很好的但是却不是友好的学习对象,了解LINUX玩转LINUX可以了解OS的很多层面,但是学会不只是简单的移植,而是包括补丁,内核代码修改,底层驱动开发,UI的开发等一系列的东西,不仅仅是会了一个2440的移植,如果改用6410呢?是不是也能做出一套满意的系统,包括boot,rootfs,kernel,ui等。

     以上只是我对于自己学期嵌入式的一个感想,一家之言不代表任何立场,如果是高手这篇文章就是垃圾,如果是新手希望帮助你们减少嵌入式的学习难度。
用过的Linux发行版:Arch,Gentoo,Debian,Fedora,RHEL,CentOS,Ubuntu,OpenSUSE,RedFlag,Ylmf,De ..
级别: 骑士
UID: 12662
精华: 0
发帖: 181
金钱: 955 两
威望: 191 点
综合积分: 362 分
注册时间: 2010-01-11
最后登录: 2014-02-14
1楼  发表于: 2010-02-17 01:02
CE之所以简单易学 不是因为它的底层不复杂 是因为他已经屏蔽了楼主所谓的“细节”  让开发人员专注于应用层的设计

而这 就是这个商业产品之所以卖如此高价的原因所在

Linux之所以复杂 是因为它的自由度和可定制度极高 适合各种严酷的环境

要扬Linux之长 避Linux之短 就要学习CE 有一个像aiothome这类的论坛 汇聚各路高手 贡献出各自的成果 让后来者能够站在前辈的肩膀上 看的更远 做出更有价值的程序 子子孙孙无穷尽已

而这 正式我们聚集在这里的目的所在

晚辈拙见 欢迎批评指正

谢谢
业余Linux爱好者。
“独学而无友,则孤陋寡闻”
级别: 新手上路
UID: 8792
精华: 0
发帖: 32
金钱: 185 两
威望: 52 点
综合积分: 64 分
注册时间: 2009-09-06
最后登录: 2011-10-23
2楼  发表于: 2010-02-17 11:23
拜读过了,给了我这个新手一个新的方向,的确对于linux来说,要掌握的无论粗细都太多了,我也是一开始就linux+arm9的 CE那边我根本没碰过,即使我手机是CE的系统
“独学而无友,则孤陋寡闻”
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
3楼  发表于: 2010-02-17 11:40
如果用玩CE的方式来玩嵌入式Linux, 那当然会觉得无比的繁琐复杂。这不是Linux本身的问题,而是玩Linux的方式问题。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
Eddy Lau (Sun Boy)
级别: 圣骑士
UID: 11202
精华: 1
发帖: 364
金钱: 1885 两
威望: 380 点
综合积分: 748 分
注册时间: 2009-11-30
最后登录: 2010-04-12
4楼  发表于: 2010-02-17 12:37
引用楼主lilei于2010-02-17 00:13发表的
LINUX一定要学,但是不可以着急,急也没有用,可以作为一个最好的学习对象,好好钻研,包括架构,驱动,启动过程,源代码的组成等等都是很好的学习对象。
CE不要完全排斥,至少VC的开发过程还是比较有用的,这将帮助你快速的实现你的想法,有了阶段的实现,嵌入式的快乐也就享受到了,但是没有必要去研究它的运行过程,你就当作一个嵌入式的电脑开发一个VC就可以,驱动我想任何开发板都会提供BSP或者是SDK,直接使用就好。

非常同意楼主的见解.

此外, 小弟觉得每个人的时间与精力都是有限的, 而知识的大海却是无穷无尽,
任何一个范畴的知识, 就算穷一生精力也未必能精通透彻. 因此无须亦无必要把
所有知识都揽在身上, 否则只会自讨没趣.

学习的重点是能否学以致用, 学而不用, 一切只不过是空谈而已.
把所学到的知识, 应用到日常工作或解决日常生活当中的种种问题,
这样, 知识才能显示出它的真正效益.

以上只是小弟的愚见, 请勿见笑.
[ 此帖被eddylau在2010-02-17 12:43重新编辑 ]
為什麼生世間上 此間許多哀與傷 為什麼爭鬥不絕 歡欣不永享 
問為何人存隔膜 顏面無真相 問那天可找得到 理想中的烏托幫 
“独学而无友,则孤陋寡闻”
级别: 新手上路
UID: 8792
精华: 0
发帖: 32
金钱: 185 两
威望: 52 点
综合积分: 64 分
注册时间: 2009-09-06
最后登录: 2011-10-23
5楼  发表于: 2010-02-17 16:54
引用第3楼kasim于2010-02-17 11:40发表的  :
如果用玩CE的方式来玩嵌入式Linux, 那当然会觉得无比的繁琐复杂。这不是Linux本身的问题,而是玩Linux的方式问题。

     那我们该如何去玩linux 才能玩转linux呢?如今我也是遇到了瓶颈,越玩就越觉得linux的博大精深哪。
“独学而无友,则孤陋寡闻”
级别: 新手上路
UID: 53
精华: 0
发帖: 26
金钱: 155 两
威望: 63 点
综合积分: 52 分
注册时间: 2008-01-30
最后登录: 2016-10-18
6楼  发表于: 2010-02-17 17:00
我写这个东西不是突出什么,只是为了让一些以前和我一样迷茫的嵌入式爱好者回过头想想电子设计到底是怎么回事,目的是什么呢?
级别: 新手上路
UID: 14310
精华: 0
发帖: 20
金钱: 110 两
威望: 22 点
综合积分: 40 分
注册时间: 2010-02-06
最后登录: 2010-11-16
7楼  发表于: 2010-02-17 17:11
我不同意楼主的意见,CE我开发过,他的应用程序可用函数库太多了吧,
QT就少很多,CE照样要BSP,U_BOOT,linux要的东西,ce也都要,
难道楼主认为ce下面的bsp很容易开发,
我知道如果没有网络,ce下我连看别人的代码都看不懂,何况是写!
太多的函数调用!
而linux不上网一般还是能看懂它的原代码的!
级别: 新手上路
UID: 53
精华: 0
发帖: 26
金钱: 155 两
威望: 63 点
综合积分: 52 分
注册时间: 2008-01-30
最后登录: 2016-10-18
8楼  发表于: 2010-02-17 17:21

 回 7楼(倚天神剑) 的帖子

欢迎讨论,我只是借机论证下个学期给学生的嵌入式讲什么方面才是合适的。毕竟现在的课程太多。。。。。。。
Eddy Lau (Sun Boy)
级别: 圣骑士
UID: 11202
精华: 1
发帖: 364
金钱: 1885 两
威望: 380 点
综合积分: 748 分
注册时间: 2009-11-30
最后登录: 2010-04-12
9楼  发表于: 2010-02-17 17:42

 Re:回 7楼(倚天神剑) 的帖子

引用第8楼lilei于2010-02-17 17:21发表的 回 7楼(倚天神剑) 的帖子 :
欢迎讨论,我只是借机论证下个学期给学生的嵌入式讲什么方面才是合适的。毕竟现在的课程太多。。。。。。。

现今为人师表也太辛苦了!
為什麼生世間上 此間許多哀與傷 為什麼爭鬥不絕 歡欣不永享 
問為何人存隔膜 顏面無真相 問那天可找得到 理想中的烏托幫