欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

s3c2440 ARM9 裸机驱动第一篇-GPIO驱动(汇编)

程序员文章站 2024-02-23 21:10:46
...

学习嵌入式linux的小白,欢迎交流 QQ:1300046380

一 开发环境:

1.ubuntu

2.JZ2440开发板

二 硬件部分

s3c2440 ARM9 裸机驱动第一篇-GPIO驱动(汇编)

s3c2440 ARM9 裸机驱动第一篇-GPIO驱动(汇编)

JZ2440开发板上将GPF4-7四个引脚外接LED,从电路图可以得知,IO口为低电平时LED灯亮。

查询s3c2440 数据数据手册,GPF引脚寄存器地址如下:s3c2440 ARM9 裸机驱动第一篇-GPIO驱动(汇编)

三 软件部分:

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
Makefile

CC=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