mini2440第一课《汇编点亮LED》

原创 2015年07月07日 21:43:04
.text

.global _start

_start:

          LDR     R0,=0X56000010    @R0设为GPBCON寄存器。此寄存器用于选择端口B各引脚的功能是输入、输出、还是其他

          MOV     R1,#0X00000400    

          STR     R1,[R0]           @设置GPB为输出口。位[10:9]=0b01

          LDR    R0,=0X56000014     @R0设为GPBDAT寄存器,此寄存器用于读写端口B各引脚的数据

          MOV    R1,#0X00000000     @此值改为0x00000020可让LED1熄灭

          STR    R1,[R0]            @GPB5输出0,LED1点亮

MAIN_LOOP:

             B MAIN_LOOP         

上面是点亮LED的汇编代码。命名为led.S。

相应的Makefile文件内容如下:

led.bin:led.S
	arm-linux-gcc -g -c -o led.o led.S
	arm-linux-ld -Ttext 0x30000000 -g led.o -o led_elf
	arm-linux-objcopy -O binary -S led_elf led.bin
clean:
	rm -f led.bin led_elf *.o

对程序的说明如下:

一、为什么没有关闭看门狗?

答:我们是讲裸机程序下载到NAND FLASH里。NAND里面是有U-BOOT的。也就是说是U-BOOT引导执行的裸机程序,所以我们不必再关闭看门狗了,U-BOOT里已经关闭看门狗了。所以当我们从NAND启动,打开电源后,会发现大约会有1到2S延时后灯才会亮,这是由于U-BOOT启动的原因。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

mini2440学习笔记 之01 配置ADS1.2编译调试程序(在sram中点亮LED)

1.打开 CodeWarrior     开始->所有程序->ARM Developer Suite v1.2->CodeWarrior for ARM Developer Suite 2.新...

一起学mini2440裸机开发(一)--第一个led灯点亮

开发板:mini2440, NandFlash:K9F2G08U0B 256M大小,CPU:S3C2440A  。     开发环境:MDK4.11     仿真器:Jlink v8     这是我用...

Mkefile文件编写及点亮两个led的mini2440裸机程序

Makefile的语法规则:                 target: ....:prerequisites.....              ...

[2014.3.17]mini2440裸机跑马灯/按键点亮LED的C程序

【led.c】 #define GPGCON (int*)0x56000060 #define GPGDAT (int*)0x56000064 #define GPGUP (int*)0x560000...

汇编+C点亮led-以替代uboot的方式执行

main.c #include "led.h" static void delay() { unsigned int i = 0; for(i = 0; i 50000; i...

TQ2440 ADS 1.2 汇编点亮4个LED

该程序在ADS1.2上编译通过。 ADS上的相关设置如下:   启动DNW后,先设置一下: LED1~LED4对应着 GPB5~GPB8,GPB的端口配置寄存器GPBC...

1.点亮一盏LED(ARM汇编实现)

1.点亮一盏LED   1.1步骤:   1.1.1查看原理图 结果:GPB5输出低电平时,LED1亮 即nLED1 GPB5 = 0ON GBP5 = 1OFF   ...

裸机程序二:GPIO点亮led灯 汇编

开发板:  JZ2440 V3 + EasyOpenJTAG 参考资料:《CPU三星S3C2440A芯片手册.pdf》                   《JZ2440_V3电路图.pdf》 ...

TQ2440系列一 ADS 1.2 汇编点亮4个LED

源代码如下: AREA LED_ON,CODE,READONLY ENTRY CODE32 START LDR R0,=0x56000010         MOV R1,#0x0001540...

汇编+C点亮led-用uboot的go命令运行

main.c#include "led.h"static void delay() { unsigned int i = 0; for(i = 0; i < 0xffffff; i++)...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)