arm 裸板程序编译过程

发布者:RadiantSoul最新更新时间:2016-06-22 来源: eefocus关键字:arm  裸板程序  编译过程 手机看文章 扫描二维码
随时随地手机看文章
看过编译原理的人都知道我们一句简单的arm-linux-gcc 到达做了哪些工作。他并不是简单的把我们的原文件编译成我们可执行的二进制文件,在这个过程中他其实至少做了两部工作。“编译”和链接“当然这其中包含了很多关于编译原理的至少,由于本人才疏学浅说以也只能够简单的把他说成编译和链接了。如果需要跟深入的理解请查找相关”编译原理的书籍吧“

这里我们先介绍一下常用的GCC命令.

1.arm-linux-gcc -v 查看gcc 版本号

2.arm-linux-nm 查看一个.o文件所需要的库。

3.arm-linux-ld 链接命令

3.arm-linux-gcc 编译命令

4 arm-linux-objdump  -h test 查看符号

                                        -d  反汇编

5 arm-linux-as ls.S  -o ls.o 将汇编原文件编译成.o文件

6 arm-linux-objcopy  -I elf32-littlearm -O binary test test.bin 去掉二进制文件elf头。

现在我们来写一个arm裸板的LED闪灯程序 非常简单的。

源代码 led_test.c

void main()
{
    int i=0;
    volatile long *GPKCON0 = 0x7F008800;
    volatile long *GPKDAT  = 0x7F008808;
    volatile long *GPKPUD  = 0x7F00880C;
    
    *GPKCON0 &= ~(0XFFFF <<16);
    *GPKCON0 |=  (0X1111 <<16);
    while(1){
    *GPKDAT  &=   ~(0XF <<4);
        i=0xfffff;
        while(i--)
        ;
    *GPKDAT  |=   (0XF <<4);
        i=0xfffff;
        while(i--)
        ;
    }
}

每隔大概3秒钟的时间LED闪烁一次。非常简单的一个程序。这里没有使用定时器啊 什么的知识简单的做循环来延时。注意 关于LED  的GPIO相关寄存器地址根据你自己的实际情况来。

编译过程

1 编译

arm-linux-gcc -c -march=armv4 test.c -o test.o

2.链接

arm-linux-ld -Ttext=50008000 test.o -o test //注意这个链接地址不要链接到你arm开发板不能提供的内存地址。

3 去掉elf头信息

arm-linux-objcopy -I elf32-little -O binary test test.bin

这样 我们需要的LED裸板闪灯代码就生成了。

现在我们通过任何你能够使用的工具 把我们生成的 bin文件少些到ram的 0x50008000 这个地址。

然后让在bootloader中执行

bootm 0x50008000 看到你的灯闪木有。

注意 arm-linux-gcc 版本。由于arm-linux-gcc-4.x.x 不支持arm-linux-ld -Ttext 这个参数还是其他的,具体没深入研究。会出错。

只能使用arm-linux-gcc 3.x.x的版本 这一点一定要注意。我今天就是因为这个原因郁闷了半天。如果有谁知道4.x.x版本的具体原因请告诉我并万分感谢

关键字:arm  裸板程序  编译过程 引用地址:arm 裸板程序编译过程

上一篇:ARM裸板调试技术
下一篇:Linux下ARM裸板程序编写

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

IAR推出新版IAR Embedded Workbench for Arm功能安全版,该版本配备经过认证的静态代码分析功能
IAR推出新版IAR Embedded Workbench for Arm功能安全版,该版本配备经过认证的静态代码分析功能 瑞典乌普萨拉,2024年2月20日 – 全球领先的嵌入式系统开发软件解决方案供应商IAR宣布 :推出其旗舰产品IAR Embedded Workbench for Arm功能安全版的最新版本9.50.3。此次发布进一步加强了IAR支持开发人员创建安全、可靠和符合标准的嵌入式应用程序的承诺,涵盖了汽车、医疗设备、工业自动化和消费电子等多个行业。该版本中最重要的新功能是经过认证的C-STAT,这是专为安全关键应用程序设计的静态代码分析工具。 IAR Embedded Workbench for Ar
[嵌入式]
IAR推出新版IAR Embedded Workbench for <font color='red'>Arm</font>功能安全版,该版本配备经过认证的静态代码分析功能
ARM+Linux嵌入式系统的BootLoader设计
由Boot Loader和固化在固件(firmware)中的Boot代码(可选)共同组成一个嵌入式系统的引导加载程序。它的作用和功能就像固化到计算机内主板上的一个ROM芯片程序BIOS(basic input output system)。但是它一般不配置像BIOS那样的固件程序,这是因为要考虑经济方面的原因,因此必须自己完成这方面的工作。Boot Loader可以初始化硬件设备,建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。它的实现严重地依赖于硬件,特别是在嵌入式系统中,即使基于同一个CPU的Boot Loader,对于不同的板子,也有很大的不同。   1 Bo
[工业控制]
<font color='red'>ARM</font>+Linux嵌入式系统的BootLoader设计
Microchip发布业界首款集成强大安全子系统和Arm® TrustZone®技术的单片机
Microchip发布业界首款集成强大安全子系统和Arm® TrustZone®技术的单片机 基于Arm Cortex®-M23的新款单片机搭载安全密钥配置解决方案 安全威胁日益复杂,给物联网(IoT)、消费、工业、医疗和其他市场产品开发带来了挑战。这些产品必须具备强大的嵌入式安全性,同时还要求低功耗以延长电池寿命。Microchip Technology Inc.(美国微芯科技公司)今日宣布推出业界首款在单一封装中集成了安全子系统和Arm® TrustZone®技术的PIC32CM LS60单片机(MCU)。新款单片机集成了Microchip的可信平台(Trust Platform)安全子系统,让使用单个单片机而不
[单片机]
Microchip发布业界首款集成强大安全子系统和<font color='red'>Arm</font>® TrustZone®技术的单片机
ARM未来将迎来最大对手?高通重金投资SiFive
x86和ARM是我们最为熟悉的两大CPU架构,不过在经典指令集方面,开源的RISC-V也逐渐崭露头角。 近几年全球对RISC-V架构的关注都在升温,尤其是中国对它非常看好,“中国RISC-V产业联盟”和“中国开放指令生态系统(RISC-V)联盟”已在去年相继成立。比如,华米公司自研的黄山一号处理器(面向可穿戴产品)就是基于RISC-V打造的。 近日, RISC-V 指令集和开源硬件的领导者SiFive宣布,公司完成了6540万美元(约合人民币4.5亿)的融资。其中,移动芯片市场的巨头高通也参与了SiFive的融资。 RISC的英文全称是Reduced Instruction Set Computer,中文是精简指
[物联网]
<font color='red'>ARM</font>未来将迎来最大对手?高通重金投资SiFive
基于ARM9的智能车载系统设计
引 言     随着社会经济的发展,汽车已成为人们工作、生活中不可缺少的一种交通工具。在当前的汽车产业中,出于对安全性、舒适性、方便性、低公害、低成本的要求,开发了各种各样的电子控制系统。本文设计一种基于ARM9 S3C2410A的智能车载系统,它能够通过GPS全球定位系统和GPRS无线通信技术,实现车辆定位以及车辆与控制中心之间的数据通信,构建CAN总线控制模块用于采集车辆主要部分的工作状态,实时监控汽车的主要技术参数,并通过LCD模块显示车载信息的综合信息。 1 智能车载系统的功能     车载智能导航终端应具有如下功能:     车辆定位 它指通过GPS全球定位系统获取车辆的当前所处位置,包括经度、纬度、运动
[嵌入式]
ARM挑战英特尔服务器芯片霸主地位 软银购并添助力
软件银行(SoftBank)决定大手笔以320亿美元收购英国芯片架构授权大厂ARM,震撼全球科技业界,对此外界分析除了可能牵动全球移动芯片产业布局外,借此收购案也可望有助ARM在获得软银支援下,加速扩大进军至全球数据中心(Data Center)服务器市场。 目前这块市场仍由英特尔(Intel)所盘据,因此未来ARM是否可能对英特尔在数据中心服务器市场形成威胁,将值得观察。据日经新闻(Nikkei)网站报导,虽然当前全球高达95%的智能型手机均搭载基于ARM架构的芯片,不过在服务器芯片市场上ARM市占率却不到1%,由英特尔掌控该市场逾99%市占率。 业界人士指出,但在软银购并后,ARM将可在无需忧心市场投资人
[网络通信]
微软或开发基于Arm的SoC,用于Surface和服务器
  苹果的 M1 芯片可能已经成为许多准备投资,并开始开发自己基于 ARM 芯片的科技公司的动力。 根据最新报告,微软就是其中之一,其定制的芯片将在公司未来的 Surface 系列及其服务器中找到。   微软的许多Surface型号均采用英特尔处理器,只有Surface Laptop 3与AMD芯片一起推出。但是,微软确实转用了与高通公司合作的名为SQ1的基于ARM的芯片,以引入便携式和高端的Surface Pro X。遗憾的是,Surface Pro X上乏善可陈的软件优化意味着它只是另一款价格过高,但表现不佳的产品。   据彭博社报道,微软正在为Surface部门开发单独的芯片,但是目前尚不清楚它的名字,以及该公司将与
[嵌入式]
ARM Linux 交叉编译 工具链 制作攻略
制作之前确保你的机子上有如下几个工具:bison flex build-essential。 build-essential主要是用于提供GCC、GLIBC等必要的编译资源,一般做开发的人员机子上应该都会有的。如果没有,对于UBUNTU用 户:sudo apt-get install build-essential bison flex,其它用户自己看着办,! 1、从http://kegel.com/crosstool处下载crosstool-0.43.tar.gz并解开存于$HOME下。 假如你想要arm9tdmi上的工具链(其它工具链方法相同),进入crosstool-0.43目录,用文本编辑器打开d
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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