s3c2440 ARM9 裸机驱动第一篇-GPIO驱动(C)
来源:互联网 发布:java算法书籍推荐 编辑:程序博客网 时间:2024/06/06 07:51
学习嵌入式linux的小白,欢迎交流 QQ:1300046380
此文为对于LED驱动的补充:
废话不说,先上代码。
start.s
.text.global _start_start:ldr r0 ,= 0x53000000 @WATCHDOG ADDmov r1,#0x0strr1,[r0]@r1 的数据写入r0 关看门狗ldrsp,=1024*4@设置栈bl main@跳转到main执行 halt:bhaltled.c
#defineGPFCON(*(volatile unsigned long *)0x56000050)#defineGPFDAT(*(volatile unsigned long *)0x56000054)void delay(unsigned int num);int main(int argv, char *argc){GPFCON&=0x00ff;GPFCON|=0x5500;GPFDAT&=0x0f;while(1){GPFDAT|=0xf0;delay(20);GPFDAT&=0x0f;delay(20);}return 0;}void delay(unsigned int num){unsigned int i,j;for(i=0;i<3000;i++)for(j=0;j<num;j++);}Makefile
CC=arm-linux-gccLD=arm-linux-ldled.bin:led.o start.o$(LD) -Ttext 0x0000000 -g start.o led.o -o led_elfarm-linux-objcopy -O binary -S led_elf led.binarm-linux-objdump -D -m arm led_elf > led.disled.o:led.c$(CC) -c -g -o led.o led.cstart.o:start.s$(CC) -c -g -o start.o start.sclean:rm -f led.bin led_elf led.dis start.o
其中有一个注意的地方,在Makefile中两个.o文件链接为一个led_elf文件时
由于没注意,写为:
$(LD) -Ttext 0x0000000 -g led.o start.o -o led_elf导致无法点亮LED,是因为将led.o文件内容放到了0地址。
阅读全文
0 0
- s3c2440 ARM9 裸机驱动第一篇-GPIO驱动(C)
- s3c2440 ARM9 裸机驱动第一篇-GPIO驱动(汇编)
- s3c2440 ARM9 裸机驱动第二篇—2440系统时钟
- s3c2440 ARM9 裸机驱动第三篇—定时器
- s3c2440的GPIO驱动
- S3C2440裸机实验(7)----LCD驱动
- S3C2440 UART串口驱动(裸机)
- S3C2440裸机驱动--启动代码
- S3C2440裸机驱动--PWM基础
- S3C2440裸机驱动--PWM应用
- S3C2440裸机驱动--MMU基础
- S3C2440之IIC裸机驱动
- s3c2440-gpio-button(keyboard)驱动
- ARM9裸机之GPIO
- arm9+linux s3c2440 触摸屏驱动移植
- S3C2440裸机驱动--2440slib.s
- S3C2440裸机驱动--MMU源码分析
- S3C2440裸机驱动--MMU源码分析
- Hash表c++实现
- Android开发页面去掉顶部标题栏
- 2017.11.3 LeetCode
- C语言入门——数字特征值
- hibernate查询list结果集结果都是一样
- s3c2440 ARM9 裸机驱动第一篇-GPIO驱动(C)
- [2017纪中11-3]机房比教室好多了 博弈+树型DP
- JAVA内存模型
- cipher
- Ubuntu安装Tomcat
- hiERROR: Value '0000-00-00' can not be represented as java.sql.Timestamp
- SQL分组查询
- java 集合遍历Iterator/foreach
- 下载并升级更新pip