arm9-s3c2440裸板程序之led

刚开始学arm9,自己买的TQ2440的开发板,倒腾了好久,总算会控制LED灯了大笑(偶的真正意义上的第一个能正常在arm上运行的程序)

虽然在大神看来很简单,但一个菜鸟自己学的话,还是不太容易入门。往往一个很小的问题就可能困惑很久发火

所以,我觉得有必要把这个简单而又意义重大的程序记录下来。一来勉励自己,算是学习arm的起步吧;二来也可以给同样初学arm的孩子一个参考。

;开发板上,4个LED分别连在GPB5,GPB6,GPB7,GPB8上,对应低电平LED被点亮 
 
 AREA LED_ON,CODE,READONLY          ;声明代码段LED_ON
 ENTRY                              ;标志程序入口
 CODE32                             ;声明32位ARM指令 
 
START 
      LDR R0,=0x56000010            ;GPBCON寄存器的地址为0x56000010
      MOV R1,#0x00015400            ;此3句作用就在于将GPBCON地址给R0
	  STR R1,[R0]                   ;并且赋值为0x00015400(将GPB5,GPB6,GPB7,GPB8选为输出端口)
	  
	  LDR R0,=0x56000014	        ;将GPBDAT寄存器地址0x56000014给R0
   	
LEDLOOP
   	  MOV R1,#0x00000070	        ;给GPBDAT赋值0x00000070(GPB7,GPB8上的LED亮)
	  STR R1,[R0]
	  BL DELAY                      ;跳到延时子程序进行延时
	  
	  MOV R1,#0x00000000            ;给GPBDAT赋值0x00000000(4个LED全亮)
	  STR R1,[R0]
	  BL DELAY                      ;调到延时子程序进行延时
	  
	  B LEDLOOP                     ;一直循环,结果为:2个LED一直亮,2个LED不停闪烁

DELAY
	  LDR R3,=0xbffff               ;延时子程序
DELAY1
	  SUB R3,R3,#1
	  CMP R3,#0x0
	  BNE DELAY1
	  MOV PC,LR	
	
MAIN_LOOP
      B MAIN_LOOP
      
      END                           ;程序结束

开发环境为ADS1.2,将此汇编程序加入工程,编译得到.bin文件,然后用DNW软件将其下载到板子上,就可以看见LED灯的闪烁了!是不是好有成就感 得意

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值