点亮一个LED
2012-02-10 21:23
661 查看
硬件说明:LED1连到s3c2410的GPM0脚,且低电平时LED1亮。
GPM配置寄存器地址为0x7F008820,且[3:0]位为0001时代表GPM0脚为输出功能。
GPM数据寄存器地址为0x7F008824,且[0]位用于控制GMP0脚输出的电平。
GPM上拉配置寄存器地址为0x7F008828。
代码文件:led.S
连接脚本led.lds
取得lds模板
#arm-none-linux-gnueabi-ld --verbose > led.lds
修改led.lds为 如下内容
OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
"elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(main)
SECTIONS
{
. = 0x50008000 ;
.text :
{
*(.text) ;
}
.align = 4 ;
}
编译代码
运行程序
在u-boot命令状态
运行结果
LED1长亮
GPM配置寄存器地址为0x7F008820,且[3:0]位为0001时代表GPM0脚为输出功能。
GPM数据寄存器地址为0x7F008824,且[0]位用于控制GMP0脚输出的电平。
GPM上拉配置寄存器地址为0x7F008828。
代码文件:led.S
.text .global main main: stmfd sp!, {r0-r12, lr} mov r0, #1 ldr r1, GPMCON str r0, [r1] lightLED1: mov r0, #0 ldr r1, GPMDAT str r0, [r1] b lightLED1 ldmfd sp!, {r0-r12, pc} GPMCON: .word 0x7F008820 GPMDAT: .word 0x7F008824 GPMPUD: .word 0x7F008828
连接脚本led.lds
取得lds模板
#arm-none-linux-gnueabi-ld --verbose > led.lds
修改led.lds为 如下内容
OUTPUT_FORMAT("elf32-littlearm", "elf32-bigarm",
"elf32-littlearm")
OUTPUT_ARCH(arm)
ENTRY(main)
SECTIONS
{
. = 0x50008000 ;
.text :
{
*(.text) ;
}
.align = 4 ;
}
编译代码
#arm-none-linux-gnueabi-as led.S -o led.o #arm-none-linux-gnueabi-ld -T led.lds led.o -o led #arm-none-linux-gnueabi-objcopy -O binary led /tftpboot/led.bin
运行程序
在u-boot命令状态
$tftp 0x50008000 led.bin $go 0x50008000
运行结果
LED1长亮
相关文章推荐
- 第一章 51单片机环境的搭建-1.1 由点亮一个LED引入
- GPIO-点亮一个LED(JZ2440-S3C2440)
- 分享一个香橙派PC2的C语言点亮LED程序
- 在 S5PV210 的 开发板上 点亮 一个 LED 灯
- Arduino应用笔记(二)Matlab控制Arduino点亮一个LED灯
- 如何在qualcomm平台Android点亮一个LED工作流程分析
- jz2440裸板开发之GPIO:点亮一个led灯(1)
- 51单片机基础学习(1)点亮一个LED灯
- (3)51单片机入门案列-一个按键实现点亮LED和开启蜂鸣器
- 点亮一个LED灯
- MSP430F1612 第一个程序,点亮一个LED灯
- 妈蛋,终于在TQ2440上点亮一个led了。。。
- 分享一个香橙派PC2的C语言点亮LED程序
- 点亮一个led
- (第一天)S3C6410点亮一个LED
- ARM嵌入式编程(无操作系统、基于MDK)之最简单的程序:点亮一个LED灯
- 点亮一个LED
- 6种中断点亮一个LED
- A8逻辑篇1.点亮一个LED(S5PV210.A8)
- 第一个程序点亮一个LED灯