本帖最后由 jj809323 于 2014-5-21 18:21 编辑 我主要想实现的是四个LED灯闪烁,用c和汇编混合编程! 这是汇编代码:#启动代码 .globl _start _start: #设置CPU,将外设地址告诉CPU ldr r0, =0x70000000 orr r0, r0, #0x13 mcr p15,0,r0,c15,c2,4 #关看门狗 ldr r0, =0x7E004000 mov r1, #0 str r1, [r0] #设置栈 ldr sp, =0xc002000 #调用c函数 bl main halt: b halt 这是c程序代码: int delay(); int main() { volatile unsigned long * gpkcon0 = (volatile unsigned long *)0x7F008800; volatile unsigned long * gpkdat = (volatile unsigned long *)0x7F008808; * gpkcon0 = 0x11110000; while(1) { * gpkdat = 0; delay(); * gpkdat = 0xf0; } return 0; } int delay() { volatile unsigned long i = 0x10000; while (i--); return 0; } 这是makefile: led.bin: start.o main.o arm-linux-ld -Ttext 0x50000000 -o led.elf $^ arm-linux-objcopy -O binary led.elf led.bin arm-linux-objdump -D led.elf > led_elf.dis %.o : %.S arm-linux-gcc -o $@ $< -c %.o : %.c arm-linux-gcc -o $@ $< -c clean: rm *.o *.elf *.bin *.dis -rf 我的开发板四个LED灯接的是GPK 4,5,6,7,可是实验就过就是4个灯同时亮了就不熄灭了,我宿主机是fedora 14,交叉编译器是arm-linux-gcc 4.5.1 |
[技术| 编程·课件·Linux] 请教嵌入式的学长一个关于S3C6410的裸板程序
jj809323
· 发布于 2014-05-21 18:07
· 1379 次阅读
转载文章时务必注明原作者及原始链接,并注明「发表于 软院网 RuanYuan.Net 」,并不得对作品进行修改。
wangzi19933 发表于 2014-5-21 19:30 他不知道啊,他搞硬件的啊 |
jj809323 发表于 2014-5-21 19:42 嗯,不加延时的话下一条指令就跳到LED打开了,熄灭时间太短根本看不到 |
jj809323 发表于 2014-5-21 19:42 解决了,谢谢啊,能加你扣扣啊,一起学习啊! 我的扣扣:1164700447 |
不懂帮顶 |
阎魔あい 发表于 2014-5-22 22:06 啥意思?是我的问题太水了吗? |