买了开发板有一段时间了,由于之前没有学习过ARM9,直接学习的ARM11,而在网上ARM11的学习资料有又相对较少。本人经过了一段时间的摸索,于是想把学习过程记录下来,供友人参考指正。
想学ARM之前讨教过一些人,建议向学写裸机程序,不要一上来就抱着内核的书啃。所以本人就开始了裸机开发的历程。在嵌入式系统中分为硬件和软件。软件的作用就是驱动硬件,为设备使用者提供服务。典型的嵌入式软件层次分为:驱动层、OS、应用软件。在简单的嵌入式系统中(如51单片机系统)是不配置OS层。此处所说的系统是指一个完整体系的意思,例如:一个51的单片机加上18B20加数码管显示就构成了一个测温系统。所以在简单的嵌入式系统中程序需要自己初始化硬件环境来运行,成为裸机程序。其实我之前写的51的程序就是裸机程序。裸机的意思是指不带操作系统。裸机程序需要直接操作硬件设备。裸机程序一般采用少量的汇编加C语言来编写的。因为汇编在访问硬件方便更有执行力。所以学习一些汇编还是有必要的。例如PC机上的BIOS就是裸机程序。BOIS=Basic Input/Output System,基本输入输出系统,全称是ROM-BOIS,是只读存储器基本输入/输出系统的简写,它实际是一组被固化到电脑中,为电脑提供最低级最直接的硬件控制的程序,它是连通软件程序和硬件设备之间的枢纽,通俗地说,BOIS是硬件与软件程序之间的一个“转换器”或者说是接口(虽然它本身也只是一个程序),负责解决硬件的即时要求,并按软件对硬件的操作要求具体执行。
基于ARM的嵌入式系统一般都存在OS层,应用程序无需直接操作硬件,学写ARM裸机程序的意义有:裸机程序可以作为嵌入式操作系统的BOIS。为写驱动程序打下基础。进行硬件验证。联系ARM汇编