许多新手在触摸ARM和嵌入式linux都面临着一个为难的地步,那便是不知从哪个部分开端学习。查找材料和收拾材料的进程杂乱且耗时,许多新手并没有耐性进行所以就抛弃了。针对这种状况,小编特意为我们收拾了有关ARM与嵌入式linux的入门中有关裸机编程的主张,我们快来看一看吧。
文中提出的经历是针对Linux体系的,并不面向WinCE。现在做嵌入式的开发者中,做linux研讨的人远比做WinCE的人多,许多厂家供给的材料也是以linux为主。WinCE的开发和Windows下的开发根本相同,学起来简略得多,可是学linux或许运用linux做嵌入式的人便是远比WinCE多。
其实经过和一些设计者进行了解,能够发现许多公司从没考虑运用WinCE,由于本钱高,所以运用linux进行开发。linux现已有了无人能挡的优势。与此相对应的是,越来越多的电子厂商现已开端运用linux开发产品。
学习根本的裸机编程
关于学硬件的人而言,有必要先对硬件的根本运用方法有理性的知道,更有必要深入知道该硬件的操控方法,一开端就学linux体系、学移植那么只会立刻就堕入一个很深的漩涡。比如在刚刚开端学ARM的时分是挑选ARM7,学ARM7的时分仍是保持着学51单片机的思想,运用ADS去编程,第一个试验便是操控led。学过一段时间ARM的人都会笑这样很笨,但实践上有这个进程会好许多,由于不管做多杂乱的体系终究都会落实到这些最底层的硬件操控。因而对这些硬件的操控有了理性的知道就好许多。
学习裸机的编程的一起要好好了解这个硬件的构架、操控原理,这些为了解硬件。所谓的了解硬件便是了解硬件是怎样安排这么多资源的,这些资源又是怎样由cpu、由编程进行操控的。比如说,s3c2410中有AD转换器,有GPIO(通用IO口),还有nandflash操控器,这些东西都有一些寄存器来操控,这些寄存器都有一个地址,那么这些地址是什么意思?又怎样经过寄存器来操控这些外围设备的工作?还有,norflash内部的每一个单元在这个芯片的内存中都有一个相应的地址单元,那么这些地址与刚刚说的寄存器地址又有什么关系?他们是相同的吗?
而与norflash相对应的nandflash内部的贮存单元并不是线性排放的,那么s3c2410怎样将nandflash的地址映射在内存空间进步行运用?或许简略地说应该怎样用nandflash?再有,运用ADS进对ARM9行编程时都需求运用到一个初始化的汇编文件,这个文件终究有什么用?里边的代码是什么意思?不要这个能够吗?诸如此类都是对硬件的了解。了解了这些东西就对硬件有很深的了解了,这对今后更深一步的学习将有很大的协助,假如越过这一步,越往后学越会觉得苍茫,越觉得这写东西莫测高深。由于根基没打好。
经过以上的介绍能够看到,想要顺畅的进行ARM或许嵌入式linux的入门,就需求实打实的一步一步堆集相应的经历。千万不要觉得费事或许繁琐,由于这是学习后续常识的要害根底,假如这部分的常识根底没有打好,那么在后面的学习就会变得十分困难。