s3c2440 ARM9 裸机驱动第一篇-GPIO驱动(汇编)
程序员文章站
2024-02-23 21:10:46
...
学习嵌入式linux的小白,欢迎交流 QQ:1300046380
一 开发环境:
1.ubuntu
2.JZ2440开发板
二 硬件部分
JZ2440开发板上将GPF4-7四个引脚外接LED,从电路图可以得知,IO口为低电平时LED灯亮。
查询s3c2440 数据数据手册,GPF引脚寄存器地址如下:
三 软件部分:
led.s
.text
.global _start
_start:
ldr r0 ,= 0x53000000 @WATCHDOG ADD
mov r1 ,#0x0
str r1 ,[r0] @r1 的数据写入r0
ldr r0 ,=0x56000050 @GPFCON
mov r1 ,#0x5500
str r1 ,[r0] @设置GPF4-7为输出
add r0 ,r0,4 @GPFDAT
mov r1 ,#0x0
str r1 ,[r0]
loop:
b loop
MakefileCC=arm-linux-gcc
LD=arm-linux-ld
led.bin:led.o
$(LD) -Ttext 0x0000000 -g led.o -o led_elf
arm-linux-objcopy -O binary -S led_elf led.bin
arm-linux-objdump -D -m arm led_elf > led.dis
led.o:led.s
$(CC) -c -g -o led.o led.s
clean:
rm -f led.bin led_elf led.dis
在虚拟机下输入mak,得到led.bin文件
四 烧录:
我是使用BootLoader烧写nandflash
1.tftp下载led.bin到30000000。
tftp 30000000 led.bin
2.擦除nandflash bootloader分区(韦老师提供的BootLoader中的分区也就是nandflash的前256k内存)
nand erase bootloader
3.写入nandflash
nand write 30000000 bootloader