4412裸机程序按键控制led灯
2015-05-15 20:07
399 查看
4412裸机程序按键控制led灯
在ubuntu中写的
c语言代码:
汇编代码:
makefile:
在ubuntu中写的
c语言代码:
#define GPX2CON (*(volatile unsigned long *) 0x11000c40) #define GPX2DAT (*(volatile unsigned long *) 0x11000c44) #define GPL2CON (*(volatile unsigned long *) 0x11000100) #define GPL2DAT (*(volatile unsigned long *) 0x11000104) #define GPK1CON (*(volatile unsigned long *) 0x11000060) #define GPK1DAT(*(volatile unsigned long *) 0x11000064) void delay(int r0) { volatile int count = r0; while(count--) ; } void main() { GPX2CON = 0x00000003; GPL2CON = 0x00000001; GPK1CON = 0x00000010; while(1) { if((GPX2DAT & 0x01) == 1) { GPL2DAT = 1; GPK1DAT = 0x2; } if((GPX2DAT & 0x01) == 0) { GPL2DAT = 0; GPK1DAT = 0; } } }
汇编代码:
.global _start _start: //disable watch dog ldr r0, =0x10060000 mov r1, #0 str r1, [r0] //turn on icache mrc p15, 0, r0, c1, c0, 0 //bic r0, r0, #0x00002300 /* clear bits 13, 9:8 (--V- --RS) */ //bic r0, r0, #0x00000087 /* clear bits 7, 2:0 (B--- -CAM) */ //orr r0, r0, #0x00000002 /* set bit 2 (A) Align */ //orr r0, r0, #0x00001000 /* set bit 12 (I) I-Cache */ #ifdef CONFIG_SYS_ICACHE_OFF // clear bit 12 (I) I-cache bic r0, r0, #0x00001000 #else // set bit 12 (I) I-cache orr r0, r0, #0x00001000 #endif mcr p15, 0, r0, c1, c0, 0 //mcr p15, 0, r0, c7, c5, 0 @ invalidate icache //set stack ldr sp, =0x02050000 bl main halt: b halt
makefile:
key.bin: start.o key.o arm-none-linux-gnueabi-ld -Ttext 0x0 -o key.elf $^ arm-none-linux-gnueabi-objcopy -O binary key.elf key.bin arm-none-linux-gnueabi-objdump -D key.elf > key_elf.dis %.o : %.S arm-none-linux-gnueabi-gcc -o $@ $< -c -nostdlib %.o : %.c arm-none-linux-gnueabi-gcc -o $@ $< -c -nostdlib clean: rm *.o *.elf *.bin *.dis -f
相关文章推荐
- 4412裸机程序之按键控制LED
- Tiny6410按键轮询方式控制LED的SD卡启动裸机程序
- ARM裸机程序开发——按键控制LED灯
- mini2440(2) LED灯裸机硬件控制程序
- mini2440裸机试炼之--按键控制蜂鸣器和LED
- 基于mini2440的按键中断控制LED(裸机代码)
- mini2440 LED灯裸机硬件控制程序
- mini2440(4) 我的第一个ARM汇编程序---LED灯裸机硬件控制程序
- ARM裸机程序开发10(LED控制程序)
- tq2440裸机程序. 按键控制LED灯.
- 关于mini2440的一个裸机程序——LED与按键中断
- ARM裸机——FS2410按键控制LED灯(查询方式)
- 4412驱动-fifth_fasyn 控制led 蜂鸣器 按键
- 从ARM裸机看驱动之按键中断方式控制LED(二)
- 关于mini2440的一个裸机程序——LED与按键中断
- 实现4个按键控制8个LED灯1个数码管程序
- ARM开发板mini2440的按键控制LED小程序
- Mini 2440 LED、按键和蜂鸣器裸机测试程序(C语言)
- 【嵌入式】——arm裸机开发 step by step 之 按键控制 LED 和 蜂鸣器
- 4412裸机程序之点亮LED