2440开发板实验1

实验一:LED_ON
led_on.s只有7条指令,它只是简单地点亮发光二极管LED1,本实验的目的时让您对开发流程有几个基本概念。
实验步骤:
A.进入LED_ON目录,执行make命令生成可执行文件led_on。
B.把PC的USB通过USB转串口和开发板的串口链接起来,上电。
C.启动UBOOT之后,通过tftp    0x30000000    led_on下载程序到SDRAM中
D.使用go    0x30000000命令跳转到led_on处执行,可以看到程序结果
程序源代码led_on.s
.text
.global    _start
_start:
    LDR    RO,=0x56000010    @R0为GPBCON寄存器,此寄存器用于选择端口B各引脚                 

                              @的功能
    MOV    R1,#0x00004000
    STR    R1,[R0]        @设置GPB7为输出口
    LDR    R0,=0x56000014    @R0为GPBDAT寄存器,用于读写端口B的各引脚的数据
    MOV    R1,#0X00000000    @此值改为0x00000080可以让LED1熄灭
    STR    R1,[R0]        @GPB7输出0,LED1点亮
MAIN_LOOP:
    B    MAIN_LOOP
对于程序中使用的寄存器GPBCON,GPBDAT,我稍作描述,具体寄存器的操作可以看实验三:I/OPORTS。GPBCON用于选择PORTB的11根引脚的功能:输出,输入还是其他特殊功能。每根引脚用2位来设置:00表示输入,01表示输出,10表示特殊功能,11保留不用。LED1-3的引脚时GPB7-GPB10,使用GPBCON中位【12:13】,【13:14],[15:16],[17:18]来进行设置。GPBDAT用来读/写引脚:GPB0对应位0,GPB1对应位1,以此类推。当引脚设为输出时,写入0或1可以时相应引脚输出低电平或高电平。
Makefile文件的内容:
led_on:led_on.s
    arm-none-linux-gnueabi-gcc -g -c -o led_on.o led_on.s
    arm-none-linux-gnueabi-ld -Ttext 0x30004000 -g led_on.o -o led_on_tmp.o
    arm-none-linux-objcopy -O binary -S led_on_tmp.o led_on
clean:
    rm -f led_on
    rm -f led_on.o
    rm -f led_on_tmp.o

posted @ 2010-12-06 10:56  赤子之心  阅读(258)  评论(0编辑  收藏  举报