陈老师你好:
我是个外校的大三计算机系学生,经常也关注你们Linux兴趣小组的讨论组,有时候也和你们学校的学生交流一下。自从大三上学期利用省吃俭用的钱买了块arm9的开发板和一些教材,开始了开发板的自学。学习过程主要书围绕着那本教材来的,也就是按照教材编写的顺序来学习,那本教材还好,每章节都有些实际的例子,我也通过修改例子的代码来使例子在自己的开发板上运行。这样一路学着,慢慢也把u-boot移植,linux移植,根文件系统的构建等看了一遍,也动手把它们在开发板上移植了。现在那本教材也就只剩下最后几章关于GUI的移植呀,简单开发呀之类的。
感觉一本教材几乎看了一遍,但感觉自己没掌握些什么,但又感觉自己掌握了些东西。接下去该怎么学下去真成了一个问题了。以前和高年级的学生交流时,他们给我的意见是把精力最好放在应用上,毕竟移植呀这些东西很多都千篇一律,而且很多别人都已经做的很好了,没太大必要再重做。就像u-boot一样,买回来的开发板自带了一个功能强大的bootloader,没必要再花很多时间去自己移植u-boot。这一点我也有些体会,那u-boot搞起来还真头疼,不过在学习u-boot还是有收获的。而如果应用是相对较重要的话,那应该如何去学习呢?或者从哪里可以学到呢?我感觉本科阶段能接触到的嵌入式的应用真的还是比较少的,所以很想去学,但无从下手。希望能得到老师的一些指导,谢谢。
祝:身体健康
------------------------------------------------------------------------
我的回信:
看了你的学习过程,觉得你是个有毅力的人,坚持一本书完整看完,并把上面的实验一一做出来,这样下来,对很多东西有了直观的认识。下一步,该学学理论的东西了,因为,那些实验是别人做出来的,照着做一遍,属于临摹,你还不知其所以然,于是,就有似乎学了一些东西,但又没有真正理解的困惑,因为缺乏深究和探索。
高年级的同学告诉你,“把精力最好放在应用上,毕竟移植呀这些东西很多都千篇一律,而且很多别人都已经做的很好了,没太大必要再重做”。说到这里,让我想起了那个耳熟能详的故事“达芬奇画蛋”,重读一下这个故事,看看你有什么新的启发。
一般嵌入式开发的书,因为篇幅所限,对问题不去深究。于是,再次重复一下尼采的那四句诗:
在你立足处深挖下去,
就会有泉水涌出!
别管蒙昧者们叫嚷:
“下边永远是地狱!”
嵌入式相关知识如一片茂密的树林,那么,你的立足之处何在?很多时候,我们更喜欢环顾四周,觉得墙外边的风景更秀丽,而实际上,回头看看你曾经熟悉的东西,比如,bootloader,你是否深入分析过,也许,你摸了摸bootloader的大门,或者从门缝中向里窥视了一下,但就从这里着手(参看http://www.ibm.com/developerworks/cn/linux/l-btloader/),可以牵引出一系列相关问题。如此深入下去,你触手可摸的是那些源代码和本源。