分类: LINUX
2009-03-22 14:52:09
前一次试验了配置ADS1.2,不过那个源文件只有一个,并且是使用汇编编写的。本次讲的是如何配置ADS1.2,并且编写简单的汇编来初始化C语言运行的环境,最后调用C语言程序。
关于ADS1.2的配置,基本配置和上一次说的一样,最不过在第六步(配置ARM Linker)就不是上次讲的那麽简单了,因为程序现在是采用多个文件:一个汇编文件,负责为调用C程序设置环境(主要是栈);另一个是使用C语言编写的程序。我们知道在多文件编译的时候,要指定程序的入口,所以本次配置ARM Linker如下:
打开DebugRel Settings(ALT + F7),选择”ARM Linker”, 选择”Linktype为Simple”,将”Simple image”的”RO Base”改为0x30000000。设置“Equvalent Command Line”为:
-info totals -entry 0x30000000 -ro-base 0x30000000 -first Init.o(Init)
说明:Init.o为Init.S编译生成的目标文件,(Init)为Init.S中的Init域(AREA Init,CODE,READONLY)。
设置好之后,我们就可以分别编写程序了。在次给出我写的程序:
Init.S
|
main.c
|
chinaunix网友2009-08-27 12:34:28
while (1) { if (flag) { GPBDAT = 0xffffffff; flag = 0; } else { GPBDAT = 0x00000000; flag = 1; } delay(120); } 这里为什么要设个判断标记?? 直接这样不就行了?? while (1) { GPBDAT = 0xffffffff; delay(120); GPBDAT = 0x00000000; delay(120); }