×
单片机 > 单片机程序设计 > 详情

Eclipse开发调试ARM裸机程序(二)LED_从ARM到GNU

发布时间:2020-06-02 发布时间:
|
        就不对着数据手册说有寄存器了,主要说说ARM汇编和GNU汇编的区别,以前用RVDS2.2用的汇编程序都真ARM汇编。到用eclipse用的是编译u-boot或者内核的arm-linux-gcc,这次用的汇编要用GNU汇编,编译时交给arm-linux-gcc来做剩下的工作。
 
        原来的一个RVDS2.2下的汇编LED程序是这样的:
WTCON	EQU 	0x53000000		;看门狗控制寄存器地址
GPBCON	EQU		0x56000010		;GPB控制寄存器
GPBDAT	EQU		0x56000014 		;GPB数据寄存器


		AREA    Init,CODE,READONLY 	;声明代码段
		ENTRY  						;表示程序入口
		CODE32						;声明32位ARM指令
	

START	ldr	 r0,=WTCON			;关掉看门狗
		mov  r1,#0x0
		str	 r1,[r0]
		
		ldr	 r0,=GPBCON			;设置GPB5为输出
		mov  r1,#0x400			
		str	 r1,[r0]
		
		ldr  r0,=GPBDAT			;设置GPB5为低 点亮LED1
		mov  r1,#0
		str  r1,[r0] 			

LOOP 
		 
		b		LOOP
	
		END

        改成GNU汇编是这样的:

 

 

;/
;*实验要求:创建启动代码汇编文件
;*功能描述:初始化一些必须的寄存器
;*日    期:2013-04-07
;*作    者:kangear
;/
.equ	WTCON,	0x53000000	@看门狗控制寄存器地址
.equ	GPBCON,	0x56000010	@GPB控制寄存器
.equ	GPBDAT,	0x56000014 	@GPB数据寄存器


@		AREA    Init,CODE,READONLY 	@声明代码段
@		ENTRY  						@表示程序入口
@		CODE32						@声明32位ARM指令
	
.text
.global _start
_start:
		ldr	 r0,=WTCON			@关掉看门狗
		mov  r1,#0x0
		str	 r1,[r0]
		
		ldr	 r0,=GPBCON			@设置GPB5为输出
		mov  r1,#0x400			
		str	 r1,[r0]
		
		ldr  r0,=GPBDAT			@设置GPB5为低 点亮LED1
		mov  r1,#0
		str  r1,[r0] 			

LOOP:
		 
		b		LOOP
	
		.end

         EQU变成的.equ;    AREA变成了.text;    ";"变成了"@";   裸机都GNU了。东西不多,调试的出现的问题说一下,单步调试到最后一句会出现如下提示:

 

         
 
          这个不是什么错误,eclipse在说:这句是一个死循环!按照它的意思往下调试就没有意义了。这就相当于while(1);仅此而已。
关键字:Eclipse  开发调试  ARM  裸机程序  GNU 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
8051单片机的函数发生器的设计