您的位置:首页 > 其它

JZs3c2440裸板程序GPIO操作总结

2014-11-27 17:14 169 查看
分别用汇编,汇编+C两种方式

***************************************
汇编编程led_on.s
****************************************
.text
.global _start
_start:
ldr ro,=0x*** //要操作的寄存器地址GPFCON
mov r1,#0x*** //要修改的寄存器值
str r1,[r0]

ldr ro,=0x*** //要操作的寄存器地址GPFDATE
mov r1,#0x*** //要修改的寄存器值
str r1,[r0]

main_loop:
b main_loop

***********************
makefile

led_on:led_on.s
arm_linux_gcc -g -c led_on.s -o led_on.o.
arm_linux_ld -Ttext 0x00000000 -g led_on.o -o led_on_elf
arm_inux_objcopy -o binary -S led_on.bin led_on_elf
clean:
rm -f led_on_elf led_on.bin *.o

******************************************
汇编和c混合编码crto.s led_on_c.c
******************************************
.text
.global _start
_start:
ldr ro,=0x53000000 //禁止看门狗
mov r1,#0x0
str r1,[r0]

ldr sp,=1024*4 //设置堆栈
bl main
main_loop:
b main_loop

*************************
#define GPFCON *** //需要操作的寄存器地址
#define GPFDAT ***

int main()
{

GPFCON=0x00000;
GPFDAT=0x10000;

return 0;
}
************************
makefile
led_on_c.bin : crt0.S led_on_c.c
arm-linux-gcc -g -c -o crt0.o crt0.S
arm-linux-gcc -g -c -o led_on_c.o led_on_c.c

arm-linux-ld -Ttext 0x0000000 -g crt0.o led_on_c.o -o led_on_c_elf

arm-linux-objcopy -O binary -S led_on_c_elf led_on_c.bin

arm-linux-objdump -D -m arm led_on_c_elf > led_on_c.dis
clean:

rm -f led_on_c.dis led_on_c.bin led_on_c_elf *.o
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐