[Embedded] [FL2440] ADS实验一: 汇编语言编程1 (找到GPBCON和GPBDAT的地址)

来源:互联网 发布:php和java的区别 编辑:程序博客网 时间:2024/05/22 07:57

PS: 这个问题在FL2440的BBS上已经有零碎的解答(!急!!急!!μC/OSⅡ下跑马灯程序该如何编写?4个LED的地址呢?),我写在这里目的是为了整理自己所学,并当作笔记方便以后查找。绝没有重复劳动的意思,另外我没有确定飞凌公司对源代码的授权,如果需要我撤消源代码,请在回复里知会一声或发邮件到 (dooit.lee@gmail.com)


在做第一个ADS实验时, 发现仅仅看板上的《开发使用手册》是不够的,当你进行ARM汇编编程时,你需要找到板上部件的相关控制寄存器和数据存储器,拿FL2440板来说,当你想做点亮LED的ADS汇编程序时,你需要知道FL2440板上LED的control register和data register的地址,那么你要去那里查找呢?


在《开发板使用手册》上只找到相应的LED对应的管脚是GPB,则你可能需要找到GPBCON(控制寄存器)和GPBDAT(数据寄存器)的地址。一般来说,每个板上的光盘的资料都有一个hardware的目录,里面的内容包括有对应的开发板的硬件设计图,相应的硬件地址。在FL2440里,GPBCON和GPBDAT可以在hardware文件夹里的关于2440芯片的文档查看到(FL2440: FL2440\Hardware\芯片DATASHEET\um_s3c2440a_rev10.pdf),对于其他开发板我想也可以在相应的目录找到相关的资料。


找到了相关部件的控制寄存器和数据寄存器后,ARM的汇编编程实际上也就和以前学的80386和单片机编程差不多了,只是汇编语言有所不同而已。


这里是FL2440的点亮LED的ADS汇编程序的代码,里面有一些我个人的笔记痕迹

; by Dooit.Lee@gmail.com; Description: Light up LED; Refer to: www.witech.com.cn;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;公司名称:保定飞凌嵌入式技术有限公司;描    述:LED点亮;版    权:保定飞凌嵌入式技术有限公司;网    址:www.witech.com.cn;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AREA SAMPLE,CODE,READONLYENTRYSTART; refer to: FL2440\Hardware\芯片DATASHEET\um_s3c2440a_rev10.pdf P65/595LDR R3,=0x56000010 ; 把GPB的控制寄存器保存在R3中;LDR R4,=0x555555;LDR R4,=0x511400; only set LED0-LED3 as ouputSTR R4,[R3]; 初始化GPB口的控制寄存器,  ; 使LED0-LED3对应的管脚为输出LDR R1, =0x56000014; GPB的DAT寄存器地址;MOV R2,#0x00000; light up led 0-4MOV R2,#0x00040; shutdown LED{2} (GPB{8})STR R2,[R1]; 点亮LED0-LED3BSTART; 跳回去START,一个死循环END



原创粉丝点击