原创 到底如何上手学ARM?

2008-10-14 16:02 1826 6 6 分类: MCU/ 嵌入式
开始接触ARM是在2006年,那时还在大学,老师给我的毕业设计题目:《ARM嵌入式系统的bootloader编程》,原因是因为俺之前的单片机成绩还算相当不错。然后就开始学习,查资料。。。
有一本书对我的帮助最大:《ARM体系结构与编程》
这本书一直到我工作后才发现在公司里基本上是ARM嵌入式开发工程师人手一本。这在我工作之初给了我很大的信心——俺们大学看的书也不是完全没用啊--!
我的学习过程大致如下:
1.ARM汇编。不用记住汇编指令,只求能看懂,甚至只要能翻书看懂汇编程序即可。重要的是在学习ARM汇编的过程当中了解了ARM体系结构的过程:
CPU的几种模式极其作用,R1-R15的作用,CPSR,SPSR...

2.简单的程序编写以及编译。使用ARM汇编和C编写一些小的代码,一开始可能无从下手,可以去参考别人的代码,看他们是怎么写bootloader的,看他们的C和汇编是怎样混合编程的。还有,编译也是同样重要,一开始,通过书本以及ADS的集成开发环境能编译出简单的目标文件。这里了解了-ro- base,-rw-base,-first,-entry的作用,同时了解了汇编语言中的AREA以及ENTRY的用途。

3.项目需要,发现内存安排不太合理,需要分散加载,而后开始学习分散加载技术。这时才发现ADS12自带的文档是多么的全面——我想知道的里面都有。

4.工作后开始接触上万个文件组成的大项目,这时使用的编译方法已经不再是集成环境了。于是学习了makefile,同时学习了ADS12的编译器的命令行用法。

5.工作中,一边工作一边学习,逐渐深入的了解了分散加载,bootloader,Flash Driver,Makefile等。

6.现在,依然在学习中,我的OS还在构建中,multi-task,POSIX。。。。

我的几点建议:
1.看书《ARM体系结构与编程》,这可以说是ARM圣经也不为过。
2.ADS12的文档。在安装ADS12时选择"FULL"完全安装,然后在安装目录下会找到PDF目录,里面的文档都相当详细。重点推荐:ADS_AssemblerGuide_B.pdf
ADS_CompilerGuide_D.pdf ADS_LinkerGuide_A.pdf三个文档,英文的,慢慢嚼,会有收获的。
3.看书过程中可能遇到不懂的,问!问不到?跳过,看后面的。这样反复看,当一本书被你这样看几遍后你会发现值得你问的东西会越来越少,最后你甚至会发现:这书上居然有错!这时,恭喜你,可以对这本书说:俺懂你了。。。
4.对于分散加载和编译器的命令行格式,还有Makefile,我强烈建议立志于走这条路的兄弟一定要不畏艰难的啃下他们,当你啃下他们之后请再回头看看以前走过的路:一览众山小的感觉就是这样了。
5.加强各个知识点之间的联系。比如分散加载通常和bootloader有关系,也和汇编有关系,还与连接器有关系。如果能做到一个点一个点的联系起来,而后形成一个知识面,那么相信你的进步会非常迅速的。
6.ATPCS,当你不满足于简单的写汇编,简单的写C,当你想自己写一个OS出来的时候,ATPCS就是你需要了解的了。通过他,我们能进行汇编,C,C++的混合编程。呵呵,有了汇编和C还有什么做不到的呢。。。

以上只是我的一点小小建议,如果认为不对,全当一阵风吹过。。。。。。
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条