本人是一位大三的学生,在大二下学期的时候接触了 51单片机,随后开始单片机的学习并逐渐对单片机产生了兴趣,并用单片机做了一些小设计,虽然这些设计没什么技术含量,但是为我迈向 嵌入式的道路奠定了基础。
随后,同学说 51单片机的外设少、性能也弱,拿来学习还行,做项目就显得捉襟见肘了,现在做项目和参加一些比赛多用 STM32,而更有前途的行业是嵌入式。考虑到马上期末考试和嵌入式很难入门,我们就决定先学 STM32,这样以后可以边学 ARM9还有机会参加其他比赛。
一位学长向我们推荐了韦东山老师的教程,我们在网上搜集了相关信息,最终买了JZ2440的开发板。开发板到手后就迫不及待的拆封、复制资料、搭建开发环境……不过兴奋很快就结束了——没想到arm9裸板上点亮一个led竟是如此复杂,而且还要用到自己从未接触过的汇编语言,脑袋直接崩溃,另外后面讲到的C语言点灯程序是对寄存器的位操作,在开始的时候理解起来也很费劲。好在参考了《嵌入式Linux应用开发完全手册》这本书之后减少了我不少疑惑,这本书与韦东山老师的视频配套,同时还对视频上没提到的内容进行了补充,建议基础不好的同学要好好的利用好这本书。
虽然学习裸板程序的困难还是层出不穷但是渐渐的可以感觉到自己起码上道了,不过接着后面来了一道大槛——uboot、内核的分析,这一块占用了我好长时间,还是云里雾里的,最后我把这块搁置一旁,直接学习字符型驱动开发。经过前面对裸板程序的学习,自己的编程能力和阅读代码的能力有了不少提高,字符型的点灯驱动学起来就简单多了。这里还是要告诫大家简单也别手懒,有次我在驱动程序中使用了printf函数导致不能正常输出,又看了一遍视频才知道驱动中的打印函数要用printk才可以。
稍微总结一下自己学arm的一些感受和想法:
1. 学嵌入式不需要高深的 电路知识,能应付原理图就行
2. C语言很重要,直接决定学习进度
3. ARM上的汇编指令掌握几个常用的就行
4. 一定要勤敲代码
|