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

发布者:古泉痴迷者最新更新时间:2016-06-06 来源: eefocus关键字:Eclipse  开发调试  ARM  裸机程序  GNU 手机看文章 扫描二维码
随时随地手机看文章
        就不对着数据手册说有寄存器了,主要说说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开发调试ARM裸机程序(二)LED_从ARM到GNU
 
          这个不是什么错误,eclipse在说:这句是一个死循环!按照它的意思往下调试就没有意义了。这就相当于while(1);仅此而已。
关键字:Eclipse  开发调试  ARM  裸机程序  GNU 引用地址:Eclipse开发调试ARM裸机程序(二)LED_从ARM到GNU

上一篇:Eclipse开发调试ARM裸机程序(三)C语言LED_LINUX使用DNW
下一篇:Eclipse开发调试ARM裸机程序(六)关于裸机调试i2c记录

推荐阅读最新更新时间:2024-03-16 14:56

arm9之MMU_Init()
#include def.h #include option.h #include 2410addr.h #include 2410lib.h #include 2410slib.h #include mmu.h // 1) Only the section table is used. // 2) The cachable/non-cachable area can be changed by MMT_DEFAULT value. // The section size is 1MB. void MMU_Init(void) { int i,j; //========================== IMPO
[单片机]
主频3GHz ARM处理器2013年将爆发
    台积电和格罗方德半导体股份有限公司(GLOBALFOUNDRIES)正在研发基于 ARM 的 20nm 制程工艺处理器,预计明年可面世。据了解,当前 28nm 处理器的最快主频为 2.3GHz,主频达到 2.3GHz 的处理器有高通 Snapdragon 800 和英伟达的 Tegra 4i 处理器,搭载这两款处理器的设备将于今年 2013 年底或 2014 年初上市。 目前搭载 Snapdragon 800 四核处理器的智能手机有,索尼最新发布的 Xperia Z Ultra 和三星 Galaxy S4 LTE-A,不久的将来还有 LG Optimus G2,均为高端强机的御用处理器,不过,新一代处理器将在性能上远超
[手机便携]
Arm 2022年的全面计算战略都带来了哪些创新?
2019 年,Arm推出了全面计算(Total Compute)战略,采用整体、以解决方案为中心的 SoC 设计方法。通过超越单个 IP 元素来设计和优化系统,以创建用例驱动的解决方案,为下一个十年不同行业的计算创新提供动力。 2021年,伴随着Armv9指令集的诞生,以及Cortex-X2/A710/A510等IP发布,标志着Arm首次进入了全面计算时代,并标志着64位计算时代的全面到来。 时隔一年,Arm在2022年继续更新了全面计算解决方案,并作出了多项重要创新。其中包括全新旗舰产品 Immortalis GPU,实现了基于硬件的光线追踪功能,为手游体验带来了显著增强。此外,旗舰型CPU Cortex-X3的性能也得
[半导体设计/制造]
基于ARM9&Linux的液晶驱动终端设计
   1 引言   液晶驱动终端是将液晶控制器、微控制器等集成在一起.并将液晶控制与图形界面显示等功能通过软件封装在一起.为用户开放操作接口、屏蔽液晶显示器的控制细节,使用户通过熟悉的接口(如RS232接口)发送预定义命令即可控制液晶显示,进行图形界面开发工作。   目前.已有的液晶驱动终端主要采用微控制器与前、后台软件结合的方法进行设计,该类终端只能够显示字模方式的图片.该种类型的终端显示数据存放在自带的NANDFlash中,在人机界面设计过程中对NAND Flash中的数据管理是以扇区为基本操作单元,图片下载需要专用的软件工具完成,增加了界面设计的逻辑复杂性与操作性。这里采用ARM9微控制器与Linux操作系统结合的方
[嵌入式]
第20课 SPI协议详解及裸机程序开发分析
第001节_SPI协议介绍 市面上的开发板很少接有SPI设备,但是SPI协议在工作中经常用到。我们开发了SPI模块,上面有SPI Flash和SPI OLED。OLED就是一块显示器。 我们裸板程序会涉及两部分: 用GPIO模拟SPI 用S3C2440的SPI控制器 我们先介绍下SPI协议,硬件框架如下: SCK:提供时钟 DO:作为数据输出 DI:作为数据输入 CS0/CS1:作为片选 同一时刻只能有一个SPI设备处于工作状态。 假设现在2440传输一个0x56数据给SPI Flash,时序如下: 首先CS0先拉低选中SPI Flash,0x56的二进制就是0b0101 0110,因此在每个SCK时钟周期,D
[单片机]
第20课 SPI协议详解及<font color='red'>裸机</font><font color='red'>程序</font><font color='red'>开发</font>分析
谈谈图ARM嵌入式那些事儿
1 引 言 随着大数据、AI 技术等高新科技的快速发展,嵌入式系统已经广泛应用在科学研究、军事技术、工程设计、商业文化艺术、娱乐业、日常生活等方方面面。嵌入式系统基于计算机技术,以应用需求为中心,可以定制软件和硬件。它适用于对功能、可靠性、成本、体积和功耗有严格要求的专用计算机系统。嵌入式系统是一个复杂的系统,包括硬件与软件两大部分,硬件是以处理器为核心器件,再根据具体的应用需求,选择合适的外围设备,通常核心器件的选型基本决定了整个系统的软硬件架构。软件部分则包括开发环境、驱动程序、操作系统、应用程序等部分。整个嵌入式系统需要软硬件协同配合,共同完成具体的应用功能。 2 嵌入式系统硬件平台开发 嵌入式系统硬件平台一般包括处理器
[单片机]
ARM Linux内核启动流程
操作 ARM Linux内核 主要分为哪几个步骤,下面杭州硕数就为大家讲解一下这个启动的流程。 ARM Linux内核综述   启动分两步,   首先是硬件相关部分,入口是arch/arm/kernel/head.S代码文件中的ENTRY(stext)函数;   然后是硬件无关部分,入口函数是init/main.c代码文件中的start_kernel函数。 ARM Linux内核硬件相关部分   1. 我们平台是arm,自然硬件相关部分代码在arch/arm/里面。   2. 平台相关部分的核心代码自然在arch/arm/kernel/里面。   3. 找入口函数,必须从对应目录的Makefile和链接脚本*.lds入手!    
[单片机]
Ceva 加入 Arm Total Design 加速开发面向基础设施和非地面网络卫星的端到端 5G SoC
Ceva PentaG-RAN与Arm Neoverse计算子系统相结合,降低5G SoC开发成本并缩短上市时间,从而使双方客户受益 帮助智能边缘设备更可靠、更高效地连接、感知和推断数据的全球领先硅产品和软件IP授权许可厂商 Ceva公司宣布加入Arm Total Design ,旨在加速开发基于Arm® Neoverse™计算子系统(CSS)和Ceva PentaG-RAN 5G平台的端到端5G定制SoC,用于包括5G基站、Open RAN设备和5G非地面网络(NTN)卫星在内的无线基础设施。 Neoverse CSS 是经过优化、集成和验证的平台,能够以更低成本和更快上市时间实现定制硅片设计。 它与Ceva
[网络通信]
Ceva 加入 <font color='red'>Arm</font> Total Design  加速<font color='red'>开发</font>面向基础设施和非地面网络卫星的端到端 5G SoC
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved