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
***************************************
汇编编程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
相关文章推荐
- Excel录入程序问题总结-操作Excel数据库、汉字转拼音问题、VS2005中文输入法全角问题
- 关于写程序时「对数据库操作」的一些总结。
- COBOL程序之DB2数据库操作总结
- Excel_常规表操作总结_亲自跑过程序可用
- 2016年12月23日学习总结----双向循环链表操作程序(头插、尾插、中间插入、删除)
- arm驱动程序——按键程序6_互斥1—原子操作(韦东山的视频总结及针对linux-2.6.30)
- DSP学习总结——GPIO口操作
- 总结Oracle+JDBC 增删改查操作(及程序演示)
- STL vector 一些常用的操作总结 以及 程序运行对应的结果
- Memcached总结四:用ava程序连接memcached进行操作
- J2me MIDlet操作手机功能性用法总结(如调用其他程序或者调用其他MIDlet)
- 嵌入式Linux系统中对GPIO操作的方法总结
- TI CC2530基础实验(GPIO通用I/O中断操作——一个中断处理程序处理一个端口的多个中断)
- 2016年12月21日学习总结----单向循环链表操作程序(头插,尾插,中间插入,删除,逆序)
- IT第二十天 - 面向对象编程思想、抽象类、异常处理、程序操作日志记录、本周总结 ★★★
- c语言第二周总结-程序存储区划分/动态申请内存/内存操作函数
- COBOL程序之DB2数据库操作总结——By Neil
- arm驱动程序——按键程序6_互斥1—原子操作(韦东山的视频总结及针对linux-2.6.30)
- GPIO输出操作—使用固件库点亮LED--- 调试总结
- tcc893x基于Linux内核的普通GPIO操作总结