关于embedded linux的使用、开发、学习的一点自已的体会

很多初学embedded linux的兄弟姐妹对现在网上的各种各样的教程都弄糊涂了,特别是在ARM9一片火热的时候,出了一大批2410/2440的核心板,功能功板,所带的号称最全、特全的说明,其实是对大家的一种误导。

我用debian已经有相当长一段时间了,以前主要是编写linux下的上位机程序,用embedded linux不久,但有一点体会希望与大家分享。

一、什么板子好?

一句话,适合自己的就是好的,不在于硬件的高低,而在于你想做什么,以前我用linux都是用的X86体系PC104,因为我的工作需要用它,现在我用BBB,因为我的另一项任务现在需要用它。

不是广告,现在觉得BBB是个不错的东西,硬件不是最好,软件不是最丰富,但适合我目前的任务,至少生态圈在慢慢形成。

说这些是希望表达我的一个核心意思:一是,用一个东西,要用它产生价值;二是,技术是通的,硬件载体是由需求决定的。

二、embedded linux 与linux

最直白的解释就是embedded linux就是linux,没有什么不一样,只是承载的载体不一样,面向的群体不一样,linux上的知识在embedded linux上通用的。

三、学习embedded linux学习什么?

还是需求牵引。

你如果是仅做embedded linux上的应用程序开,不涉及firmware,对你来说什么linux都是一样的。因为你的重点是在于编程语言的学习和开发工具的应用、产品功能的实现(或者说编码),当然要做到很优秀另外说(技巧或能力是需要天份+积累+付出),c/c++/java都是通的,甚至对于你来说linux/windows/unix都无所谓。

如果你是做firmware或者通俗的说,偏底层和硬件多一点,我反而认为你需要的更多是电子学知识和OS的知识。

四、embedded linux怎么学?

如果你是做应用程序开发,你的学习应该是linux操作、开发环境使用、SDK或驱动程序的使用。当然,你需要了解一点你的开发平台的基本知识。

如果你是做固件开发,你的学习历程应该是linux操作、开发环境的使用、linux OS(内核是重要的),uboot(当然还有其它类似功能的东西vivi等)等,最最重要的,你要啃datasheet。

五、为什么说以前ARM9的所谓的说明、教程是误导

第一,那些教程其实是他产品功能的介绍,没有一点技术层次的东西。

第二,如果你是初学者,他们所谓的内核编译、vivi的编译之流,对你来说就是扯淡,没有任何用。因为,除非是你做固件的!

第三,所谓的开发教程实际是基于他们移植的过程描述,没有一点实际的意义,对你的应用学习没有帮助。

第四,他们的教程是基于特定硬件的,而嵌入式是一个领域,是一门普适的知识,他们教程仅是用于填鸭的!

当然,这些教程有好处,就是开发环境如何建立描述的很清楚,这是唯一的好处。

六、我的一点建议(欢迎拍砖

1、搞清楚你要学什么。

2、搞清楚几个基本概念。

3、熟悉linux操作再做别的。

你可能感兴趣的:(关于embedded linux的使用、开发、学习的一点自已的体会)