S3C2410子板LED灯点亮程序

本文介绍了如何在EmbestIED环境下创建并配置ledtestarm工程,以实现S3C2410子板上的LED灯点亮。通过设置下载地址和链接选项确保程序从正确地址开始执行。同时,提到了C语言执行时启动文件的作用,并指出在裸板环境下需要自定义启动文件ctr0.S来调用main函数。最后,给出了C语言点亮LED灯的程序代码。
摘要由CSDN通过智能技术生成
主机环境:WindowsXP+EmbestIED(深圳英蓓特公司提供)
开发板环境:EdukitIII实验箱+s3c2410子板
问题描述:在没有LINUX操作系统的情况下,编写程序点亮实验箱上的LED灯,点亮顺序如下:先把4个LED灯全部熄灭,然后依次点亮4个LED灯,最后把4个LED灯全部点亮,用ARM汇编和C程序两种方式实现
【1.硬件原理】
   110507170746.jpguploading.4e448015.gif转存失败重新上传取消 110507170746.jpg
                                         图1 LED硬件连接图
如图1所示,LED硬件连接图(参考ARM9实验基础教程),4个LED灯分别和GPF4-7连接,首先应该把GPF4-7设置为输出功能,当GPF4-7输出为1时,相应的LED灯熄灭,当GPF4-7输出为0时,相应的LED灯点亮
 
110507170739.jpguploading.4e448015.gif转存失败重新上传取消 110507170739.jpg
 
                                         图2 GPF各寄存器地址
通过查询s3c2410硬件手册(um_s3c2410_manual_r10.pdf),可以知道,GPF各寄存器的地址如图2所示,这里只用到F端口的控制寄存器GPFCON和F端口的数据寄存器GPFDAT,首先应该把GPF4-7设置为输出功能,通过查询GPFCON各位的功能,就可以得知如何设置,见图3(um_s3c2410_manual_r10.pdf)
 
110507170655.jpguploading.4e448015.gif转存失败重新上传取消 110507170655.jpg
 
                                    图3 GPFCON各位含义
由图3,查询GFPCON各位的含义得知,如果要把GFP4-7设置为输出(Output),那么GPFCON的[15:8]=01010101,转换成32位的16进制就是0x00005500。
 
110507170732.jpguploading.4e448015.gif转存失败重新上传取消 110507170732.jpg
                                        图4 GPFDAT各位含义
由图4(um_s3c2410_manual_r10.pdf)可知,如果想让GPF4-7输出0或1,那么就直接把0或1写入GPFDAT[7:4],这样与之相应的LED灯就点亮或熄灭。
 
【2.ARM汇编程序实现】
 
 
@******************************************************************************
@Name: ledtestarm.s
@Desc: led灯全灭,然后依次点亮4个LED灯,最后把4个LED灯全部点亮
@Parameter:
@Return:
@Author: yoyoba(stuyou@126.com)
@Date: 2011-5-7
@Modify: 2011-5-7
@*******************************************************************************

.text
.global _start
_start:
    ldr r0,=0x56000050    @GPFCON地址为0x56000050
    mov r1,#0x00005500    
    str r1,[r0]            @GPFCON写入0x00005500,即GFP4-7设置为输出功能
    
loop:    
    ldr r0,=0x56000054 @GPFDAT地址为0x56000054
    mov r1,#0x000000f0
    str

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值