总有一款合适你--ARM下裸机开发环境大全

发布者:草莓熊猫最新更新时间:2015-04-09 来源: cechina关键字:ARM  裸机  开发环境 手机看文章 扫描二维码
随时随地手机看文章
一.什么是裸机开发

裸机是一种通俗的讲法,就是指ARM设备上没有任何现成的程序来支持你的开发的软件运行。它是相对设备上有在操作系统的情况运行可执行程序而言的。

这两种程序有很大区别。在操作系统环境下,基本上跟桌面程序开发没有太多区别,而裸机程序需要自己初始化硬件环境来运行。因为必须有一小段汇编写的引导代码来初始化,并且直接操作硬件。

裸机程序一般采用少量汇编加C语言来编译(理论上C++可以了,但比较少)主要用来ARM汇编,硬件控制教学。硬件验证和驱动开发。

大型的程序bootloader,实时操作系统uCOS/Nclues严格讲也是裸机程序。

而且ARM的CPU的都有JTAG的在线硬件调试接口,通过JTAG硬件调试器,可以直接运行和单步调试裸机程序

二.裸机开发流程.

编码-->编译-->调试-->下载

1.编码采用文本编辑器或相应IDE均可

2.编译器目前主要是两大类

armcc (ARM出品的编译器)

arm-linux-gcc (GNU ARM-Linux 编译器,在非EABI的编译器还分为arm-elf-gcc和arm-linux-gcc的区别现在基本不分了。)

arm-linux-gcc 编译出来的可执行文件格式是ELF,除了常见的TEXT段,BSS/DATA段外,还有会有一些调试段..而armcc编译出来的格式是AXF。但AXF本质是仍然是ELF格式,只不过加一些特殊的调试段。

3.调试方法

如果用JTAG在线硬件调试的那种单步调试.有两种接口。一种是ARM公司的RDI接口,另外一种硬件调试器虚拟的gdb接口。这个要使用ELF/或AXF格式

但很多程序会用直接让程序输出信息到串口方式进行调试。这种速度比较快,可以理解是广义上的调试。这个阶段要使用BIN格式。

4.下载

下载是指把可执行的BIN文件下载到开发板上的Flash之中。让其完全脱离调试环境完全独立运行。

如果一个空板,即Flash中没有任何程序。这时需要一些特殊下载方式。比用JTAG烧录工具下载到Flash之中。有一些CPU还有一些特殊的下载方式。比如S3C6410支持SD卡启动。可以把下载的文件放在SD卡上,由SD卡里的BOOTLOADER来下载。

还有一些CPU内部带有ROM自行启动一个小程序,然后通过USB下载程序。比如JZ4740。

如果Flash上烧录有bootloader,它往往自带有烧录功能。 可以通过TFTP/USB/串口方式从PC机下载到设备上。

可执行文件格式

Elf

Linux下标准可执行结构.还有一种out是早期的较为简单的可执行文件格式。但是在新版本里out就是ELF格式。

BIN

bin文件是由ELF转化而来,专门用下载到设备。相对于ELF它有两个变化。第一BIN只有基本的text/bss/data段,没有调试信息。第二。因为bin要下载到设备的。里面各段的地址是按相应地址对齐烧录的。因为两段之间很可能补一些空间的0空间。[page]

ELF转换为BIN用arm-linux-objcopy 以下语句把elf_name转换成bin_name。

arm-linux-objcopy -O binary -S elf_name bin_name 

HEX:

HEX主要是把BIN内容转换成相应的ASCII的文本格式,并且每一行都带下载地址。 

HEX文件都是由记录(RECORD)组成的。在HEX文件里面,每一行代表一个记录。记录的基本格式为:

+---------------------------------------------------------------+

| RECORD | RECLEN | LOAD | RECTYPE | INFO or DATA | CHKSUM |

| MARK ':' | | OFFSET | | | |

+---------------------------------------------------------------+

| 1-byte | 1-byte | 2-byte | 1-byte | n-byte | 1-byte |

+---------------------------------------------------------------+

关于HEX/BIN区别,参见

http://blog.ednchina.com/wwh_nuaa/74736/message.aspx

不同产家的HEX格式有细微的差别,比如MOTO的HEX格式称为S-Record格式,Intel格式称为 Intel-HEX ,两者的差别参见

http://blog.chinaunix.net/u1/58640/showart_1864111.html

http://www.upsdn.net/html/2004-12/95.html

多用于可编程器的的离线下载或者单片机程序的下载。ARM开发不常用。

三.裸机开发环境.

常见的裸机开发环境

3.1 ADS开发环境 并口。

1.HOST操作系统: Windows

2.编译器 : armcc

3.IDE : ADS

4.适用CPU :ARM7/ARM9

5.HOST硬件接口:并口JTAG调试板

6.调试软件 :AXD+H-Jtag

特点:硬件调试成本比较低,但是调试和下载速度慢。

3.2 ADS开发环境 USB。

1.HOST操作系统: Windows

2.编译器 : armcc

3.IDE : ADS

4.适用CPU :ARM7/ARM9

5.HOST硬件接口:USB接口的J-Link

6.调试软件 : AXD+J-LinK RDI

3.3 arm-linux-gcc USB。

1.HOST操作系统: Linux

2.编译器 : arm-elf-gcc /arm-linux-gcc

3.IDE : 任何支持GCC的IDE(如Eclipse等)

4.适用CPU :ARM7/ARM9/ARM11

5.HOST硬件接口:USB接口的OpenJtag

6.调试软件 : OpenOCD/gdb

注:有WINDOWS相应版本

3.4 RVDS USB

1.HOST操作系统: Windowsj/Linux

2.编译器 : armcc

3.IDE : RealView/Eclipse

4.适用CPU :ARM全系列

5.HOST硬件接口:USB接口的J-Link

6.调试软件 : J-Link GDB

注:RVDS是RealView Developer Suite的缩写是,ARM开发的ADS的升级版,在Eclipse基础上改进。因此可以在多个操作系统运行。

另外armcc可以直接在Makefile调用,不需要通IDE。这也是很多大型软件编译方法
关键字:ARM  裸机  开发环境 引用地址:总有一款合适你--ARM下裸机开发环境大全

上一篇:ARM920T Clockmodes
下一篇:S3C2440-WDT

推荐阅读最新更新时间:2024-03-16 13:57

ARM CEO:没有绝对安全 芯片漏洞可能再次发生
在承认现代智能手机芯片存在重大安全漏洞后,ARM公司的负责人又发布更多令人沮丧的消息。 ARM公司首席执行官Simon Segars在近日接受采访时表示:“现实情况是,可能还有其他一些东西,比如多年来一直被认为是安全的。”“如果一个人的思维被扭曲到思考安全威胁的程度,他可能会找到其他方法来利用那些原本被认为是完全安全的系统。” 今年1月初,有消息称,最新发现的大多数现代处理器的漏洞可能会让你的电脑或手机容易受到攻击。英特尔、ARM等芯片采用的芯片设计技术可以让黑客从设备的内存中获取私人数据。这一问题影响了处理器的运行长达20多年,黑客可以在应用中获取密码、加密密钥或敏感信息。 漏洞中尤其具有毁灭性的,被称为“幽灵”(Spectre
[半导体设计/制造]
arm-linux-gcc 裸机程序开发(二)
NANDFLASH启动与标准库问题 把u-boot的start.S移植到我的程序上,这样程序可以用supervivi的D功能下载到内存中运行了,但是还不够。因为程序在内存里,如果掉电程序就没有了,所以我们得将程序固化在flash里面。这里我们要固化在NandFlash里,这就要求程序可以能够NandFlash启动。这里我参考了mini2440的nandlfash读写程序nand.c,里面有一个函数CopyProgramFromNand就是将Nandflash里的程序复制到内存里。在这之前我一直用u-boot默认的下载地址0x33f80000,这个是为了u-boot引导内核方便而定的,因为内核要下载到前面的内存中,既然我的程序没
[单片机]
ARM linux的中断处理过程
一、前言 本文主要以ARM体系结构下的中断处理为例,讲述整个中断处理过程中的硬件行为和软件动作。具体整个处理过程分成三个步骤来描述: 1、第二章描述了中断处理的准备过程 2、第三章描述了当发生中的时候,ARM硬件的行为 3、第四章描述了ARM的中断进入过程 4、第五章描述了ARM的中断退出过程 本文涉及的代码来自3.14内核。另外,本文注意描述ARM指令集的内容,有些source code为了简短一些,删除了THUMB相关的代码,除此之外,有些debug相关的内容也会删除。 二、中断处理的准备过程 1、中断模式的stack准备 ARM处理器有多种process mode,例如user mode(用户空间的AP所处
[单片机]
<font color='red'>ARM</font> linux的中断处理过程
负债也要疯狂收购ARM:孙正义的又一次豪赌
       新浪科技 郑峻发自美国硅谷   对于孙正义来说,疯狂从来都是一个褒义词。这位自称孙子后人的日本企业家,在商场上的运筹帷幄令人惊叹。在过去的25年时间里,孙正义用一笔笔令人惊叹的交易,从白手起家打造了一个全球性科技帝国。310亿美元收购英国移动芯片巨头ARM,是他疯狂投资史上的又一个大手笔,但毫无疑问也不是最后一笔。   每两三年爆发一次   “我总是有一些大的想法,每两到三年就会爆发一次”,孙正义如是说。虽然已经年近六十,但他身上那种冒险的基因却从未改变。   的确,每隔几年,孙正义总会以一笔天价收购震惊业界。上个月孙正义先后抛售部分阿里股份和出售游戏开发商SuperCell,总计套现近186亿美元,
[手机便携]
基于ARM处理器的MVB 2类设备研究
  1引 言   列车需要传输大量的设备控制和旅客服务信息,随着这些信息的数量和种类不断地增长,迫切需要一种大容量,高速度的信息传输系统。为此,国际电工委员会(IEC)制定了一项用于规范车载设备数据通信的标准——IEC61375(列车通信网标准),即TCN标准,该标准于1999年6月成为国际标准。目前国际上主要的TCN产品供应商是德国西门子和瑞士Duagon公司,国内的株洲电力机车研究所和大连北车集团电力牵引研究所等单位进行了大量的TCN相关研究工作并取得了丰硕的科研成果。   TCN标准推荐在机车上层使用绞线式列车总线WTB,在下层使用多功能车辆总线MVB。MVB总线和机车中的各种电气设备相连,这些设备按性能可以分为5类,
[单片机]
基于<font color='red'>ARM</font>处理器的MVB 2类设备研究
ARM杨宇欣:不认为Intel在手机领域有威胁
众所周知,在智能手机领域,ARM架构的处理器可以说一统江湖。但未来,Intel也有可能通过MID的发展从而进军手机领域。未来手机处理芯片将会如何发展?ARM将如何应对?EEWORLD就此采访了ARM移动计算亚太区业务经理杨宇欣,其表示,目前Intel在智能手机领域对ARM不会产生威胁。 EEWORLD:请谈一下您理解的目前智能手机处理芯片市场情况? 杨宇欣(以下简称杨): ARM在智能手机市场的占有99%的市场份额,基本上所有的智能手机所使用的应用处理器都是基于ARM架构的。 EEWORLD:您认为目前手机处理芯片所面临的挑战都有哪些? 杨: 现在手机处理芯片的供应商非常多,ARM作为
[EEWORLD独家]
基于ARM的可定制MCU可承担FPGA的工作
  如今的产品生命周期可能短至六个月,因此在这种情况下要想取得定制ASIC的低成本、低功耗和高性能优势几乎是不可能的。定制ASIC的设计周期通常要一年左右,这通常要比终端产品的生命周期还要长。另外,标准单元ASIC还具有NRE费用(非重复工程成本),对于基本的0.13微米设计,该成本约为30万美元,而对于具有复杂IP内容的90nm设计将超过100万美元。因而当每年的批量小于10万片时,从经济角度看就不具有可行性。   为此人们研发出了平台化或结构化ASIC,它们具有预设计的IP块和可编程的ASIC门,可显著降低成本并缩短设计周期。这种方案将设计周期从一年甚至更长的时间缩短到几个月,还将NRE成本降低到大约15万美元,不过与门阵列
[嵌入式]
基于<font color='red'>ARM</font>的可定制MCU可承担FPGA的工作
基于ARM的给煤机控制系统的设计
摘 要:本文介绍了给煤机控制系统的基本结构以及控制系统的硬/软件设计,并详细分析了实时多任务操作系统mC/OS-II在Samsung公司32位ARM控制器S3C44B0x上的移植。 关键词:给煤机控制系统;S3C44B0x;mC/OS-II 引言 本文设计的给煤机控制系统主要用于火力发电厂的磨煤制粉系统中,它与磨煤机设备配合,承担向系统定量均匀供煤的任务,是火力发电厂重要的辅助设备。这种系统同样可以应用于冶金、化工等部门的散状物料的计量输送系统,对于节约能源和提高经济效益及保证安全方面有重大意义。 图1 自跟踪电源电路 图2 4"20mA电流产生电路 控制系统硬件的设计 该控制系统主
[应用]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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