花了570RMB买了一个mini2440开发板,却一直没有怎么用。原因一个是对嵌入式开发不熟,一个是时间不知道都用到何处去了,总是忙,但想想却是没做什么。今天终于将它那出来玩玩,也感受一下嵌入式开发相关的知识,呵呵!!
经过半天的努力,终于将ADS1.2配置好了,可以编译生成在mini2440上运行的程序了,下面是具体配置方法:
1.
打开ADS1.2,新建一个空项目。
2.
打开调试设置窗口(Edit->DebugRel Settings或者Alt + F7):
3.
选择Target->Target Settings,设置Post-linker为“ARM fromELF”。
4.
选择Language Settings->ARM Assembler,将“Architecture or Processor”改为“ARM920T”。
5.
选择Language Settings->ARM C Compiler,将将“Architecture or Processor”改为“ARM920T”。
6.
选择Linker->ARM Linker,选择”Linktype为Simple”,将”Simple image”的”RO Base”改为0x30000000。
现在你可以直接编写汇编程序来操作mini2440了。下面给出我写的一段汇编,作用是驱动4个LED灯闪亮。
GPBCON EQU 0x56000010 ;定义GPIO的GPB控制寄存器
GPBDAT EQU 0x56000014 ;定义GPIO的GPB数据寄存器
LED1 EQU 1 << (5 * 2) ;定义LED1控制端口
LED2 EQU 1 << (6 * 2) ;定义LED2控制端口
LED3 EQU 1 << (7 * 2) ;定义LED3控制端口
LED4 EQU 1 << (8 * 2) ;定义LED4控制端口
LEDS EQU LED1 | LED2 | LED3 | LED4
CODE32
AREA Init,CODE,READONLY
ENTRY
ldr r0, =0x53000000 ;关闭WATCHDOG,禁止CPU重启
mov r1, #0x0
str r1, [r0]
ldr sp, =1024 * 4 ;设置堆栈
ldr r0, =GPBCON ;此三条指令设置GPB的5,6,7,8(对应LED1,LED2,LED3,LED4)为输出
mov r1, #LEDS
str r1, [r0]
ldr r0, =GPBDAT ;此三条指令写GPB数据寄存器,0xffffffff表示全部设置为高电平,即关闭4个LED灯
mov r1, #0xffffffff
str r1, [r0]
mov r3, #0 ;LED灯状态指示寄存器。1表示熄灭,0表示亮
next
mov r2, #0x01200000 ;此三条指令实现延时
delay
subs r2, r2, #1
bne delay ;
cmp r3, #1 ;当前LED是否是亮着的?
beq led_on ;如果LED当前是熄灭状态,则跳转到led_on,点亮LED
mov r1, #0xffffffff ;此两条指令是熄灭LED
str r1, [r0]
mov r3, #1 ;设置LED的状态为熄灭
b next ;进入下一次循环
led_on
mov r1, #0x00000000 ;三条指令是点亮LED
str r1, [r0]
mov r3, #0 ;设置LED的状态为点亮
b next ;进入下一次循环
END
|
7. 使用usb将编译好的二进制文件下载到内存(选择起始地址为0x30000000)里就可以运行了
阅读(3294) | 评论(3) | 转发(0) |