[ARM裸机程序][1]ARM裸机程序开发环境搭建

发布者:温柔阳光最新更新时间:2022-04-22 来源: eefocus关键字:ARM  裸机程序  开发环境 手机看文章 扫描二维码
随时随地手机看文章

[1]环境搭建

安装交叉编译工具链(arm-linux-gcc4.4.3)

详见Bolg。


交叉编译基础

arm-linux-gcc常用命令

1.查看头文件和库文件的搜索路径:


arm-linux-gcc -print-libgcc-file-name


2.arm-linux-gcc常用命令


arm-linux-gcc -g -c led.S

//-c为仅汇编操作 -g添加调试信息

arm-linux-ld -Tled.lds -o led.elf led.o

//执行链接操作

arm-linux-readelf -a led.elf

//查看elf文件头信息

arm-linux-objdump -D -S led.elf

//执行反汇编操作

arm-linux-objcopy -O binary led.elf led.bin

//转换为二进制文件


Makefile基础知识

基本结构

target(目标) : prerequisites(依赖)

    command(命令)


变量的使用

- 定义:obj=func1.o func2.o

- 使用:$(obj)


特殊变量

- $^ :代表所有依赖文件

- $@ :代表目标

- $< :代表第一个依赖文件


通用规则(实例)

%.o : %.c

    arm-linux-gcc -o %@ -g -c %^


链接器脚本

SECTIONS {

        . = 0x30008000;

        . = ALGN(4);

        .text :

        {

            start.o(.text)

            *(.text)

        }

        . = ALGN(4);

        .data :

        {

            *(.data)

        }

        bss_start=.

        . = ALGN(4);

        .bss :

        {

            *(.bss)

        }


}


设置起始链接地址

. = 0x30008000;


设置4字节对齐

. = ALGN(4);


变量的使用

bss_start=.


代码段首文件

start.o(.text)

*(.text)


eclipse集成开发环境

- arm-linux-gcc

- arm-linux-gdb

- JLink_Linux

- eclipse


注意:环境变量配置在/etc/profile中。


关键字:ARM  裸机程序  开发环境 引用地址:[ARM裸机程序][1]ARM裸机程序开发环境搭建

上一篇:[ARM裸机程序][8]ARM处理器启动流程(S3C2440)
下一篇:[ARM裸机程序][2]TQ2440、ADS1.2、JLINK建立集成开发环境

推荐阅读最新更新时间:2024-11-18 19:42

IARSystems率先支持集成AI技术的Arm Cortex-M55内核
IARSystems率先支持集成AI技术的Arm Cortex-M55内核 IAREmbedded Workbench现已支持最新的Arm Cortex-M55 系列处理器,为其提供强大的工具支持,助力嵌入式应用领域持续创新 瑞典乌普萨拉,2021 年 11 月 —— 全球领先的嵌入式开发软件工具和服务供应商IAR Systems®宣布,其最新版本的IAR Embedded Workbenchfor Arm®增加了对Arm Cortex®-M55处理器的支持。此外,9.20版工具链还新增了对多家半导体厂商的最新微控制器( MCU)的支持。 Arm的Arm Cortex-M55处理器是一款支持 AI 技术的C
[嵌入式]
IARSystems率先支持集成AI技术的<font color='red'>Arm</font> Cortex-M55内核
ARM为什么功耗很低?
ARM的功耗低的原因说到头就是乱序执行能力不如X86。换句话说,就是用户在使用电脑的时候,他的操作是随机的,无法预测的,造成了指令也无法预测。X86为了增强对这种情况下的处理能力,加强了乱序指令的执行还增强了单核的多线程能力。这样做的缺点就是,无法很有效的关闭和恢复处理器子模块,因为一旦关闭,恢复起来就很慢。为了保持高性能,就不得不让大部分的模块都保持开启,并且时钟也保持高速切换。直接后果就是耗电高。而ARM的RISC指令优化强在确定次序的执行,并且依靠多核而不是单核多线程来执行,这样容易保持子模块和时钟信号的关闭,显然就更省电。此外,在操作系统 级别,个人电脑上通常会开很多线程。而移动平台通常只保持必要的线程。这样使得耗电差距进一
[单片机]
ARM汇编:伪指令DATA和EQU的区别
1、EQU 指令 定义:用于将一个数值或寄存器名赋给一个指定的符号名。 格式: 符号名 EQU 表达式 符号名 EQU 寄存器名 注意:表达式必须是一个简单再定位表达式。用 EQU 指令赋值以后的字符名,可以用作数据地址、代码地址、位地址或者直接当做一个立即数使用。 比如: s equ bx+simov cx, 那么上面两句代码相当于如下指令:mov cx, 2、DATA 指令 定义:用于将一个内部 RAM 的地址赋给指定的符号名。 格式: (1)表达式功能:符号名 DATA 表达式 注意:数值表达式的值在 0-255 之间,表达式必须是一个简单再定位表达式。 比如: TEM DATA 50HTEM 即是一个地址 (2)数
[单片机]
HJtag 在ADS环境下怎样设置才能用HJtag调试 arm
H-JTAG 1。首先请正确安装H-JTAG最新版本。 2。然后请将H-JTAG目录下的HJTAG.DLL文件拷贝到ads的bin目录下 3。在ADS中选择调试动态链接库选中H-JTAG 4。运行H-JTAGServer,选中AUTO FLASH选项 5。如果hjtag能够正常识别芯片的话,应该就可以正常使用了! 答 3: re过几天发布个新版本,支持LPC2210和LPC2220上的外部FLASH下载调试。 :-) 答 4: re请参考主题为“EasyARM2200用H-JTAG调试代理时的问题!”的贴子。 答 5: 在ADS环境下不能用HJtag下载程序到EaseARM2200板里运行在ADS环境下用HJtag调试EaseAR
[单片机]
OK6410A 开发板 (八) 83 linux-5.11 OK6410A arm-gdb+JLinkGDBServer+Jlink+JTAG接口 调试 u-boot
之前在 https://blog.csdn.net/u011011827/article/details/118713517 中可以看到 可以调试裸机. 可见我加载了bin文件到0x50000000,这是外部sdram的空间 所以加载之前,必须要初始化,而这个初始化动作,u-boot帮忙给做了(我的板子烧好了u-boot) 在调试裸机前u-boot已经跑到cmdline了 当然你调试bin文件大小小于8KB的裸机程序时,可以将其加载到sram中,这样就不用初始化sdram了. 自己手动加载u-boot 到内存 u-boot 也是一个裸机程序,这个程序和 led.bin 不同 u-boot.bin 要大,但是两个的调试方
[单片机]
基于ARM-Linux的SQLite嵌入式数据库的研究
引言 随着嵌入式系统的广泛应用和用户对数据处理和管理需求的不断提高,各种智能设备和数据库技术的紧密结合已经得到了各方面的重视。不久的将来嵌入式数据库将无处不在。纵观目前国际、国内嵌入式数据库的应用情况,目前基于嵌入式数据库应用的市场已经进入加速发展的阶段。 1 嵌入式数据库 1.1 嵌入式数据库的设计 嵌入式数据库系统是指支持某种特定计算模式或移动计算的数据库管理系统,它通常与操作系统和具体应用集成在一起,运行在智能型嵌入式设备或移动设备上。嵌入式数据库的使用是采用程序驱动,即由程序调用相应的API来实现数据的存取。具有体积小巧、快速高效、稳定可靠、可移植性等特点,非常适用于嵌入式环境下的数据管理.。 嵌入式数据库的主要
[单片机]
基于<font color='red'>ARM</font>-Linux的SQLite嵌入式数据库的研究
ARM矩阵键盘设计及其linux驱动实现
在嵌入式系统开发中,经常通过键盘来实现人机交互。本文介绍了一种直接利用ARM的I/O口扩展矩阵键盘的方法。同时以TQ2440开发板为例,对硬件电路连接和相应的linux驱动设计方法都作了详细说明。 1.引言 ARM微处理器已广泛应用于工业控制、消费类电子产品、通信系统等领域。矩阵键盘是一种常用的键盘形式,它将按键设计成M行N列,这样共需M+N根信号线,却可驱动M×N个按键,大大节约了I/O资源。本文介绍了一种利用TQ2440开发板的GPIO口扩展5×4矩阵键盘的方法,并将所有按键重新布局成手持终端的键盘形式,方便操作。 2.硬件设计 本设计扩展5行4列的矩阵键盘,如图1所示。其中行线ROW1-ROW5连接S3C24
[单片机]
<font color='red'>ARM</font>矩阵键盘设计及其linux驱动实现
AT91系列ARM硬件设计笔记
 电源问题   1.VDDCORE和VDDIO引脚电源   A)VDDCORE和VDDIO引脚电源必须连接到使用退耦电容的干净的直流电源上;退耦电容应尽可能的接近微控制器的VDD和GND引脚;退耦电容典型值是33nF到100nF。   B)除保证复位的延时时间大于两个电源的上升时间外,对电源的时序上没有特殊的要求。   C) 值得注意的是在VDDCORE一直给微控制器供电保存内部RAM和寄存器内容时VDDIO供电不能停止,如果这样的话他不是破坏性的,带能导致内部外围设备的输入进入一个不确定的状态。此外,除电流连续状态下的阻性负载外,VDDIO的电流消耗依赖于连接到EBI的I/O线和PIO线切换时的负载电容。这就是说,当CP
[工业控制]

推荐帖子

今天突然遇到个有点意思的电路问题,有兴趣的来答一下
问题是:为什么电磁炉不能用铝锅?网上有很多答案,结果鱼目混珠,正确答案很少。欢迎大家讨论。今天突然遇到个有点意思的电路问题,有兴趣的来答一下很少的正确答案是什么?现在的电磁炉是专门设计为使用铁磁性锅的。铜、铝是逆磁性。如果想加热铜铝,也可以专门设计个加热装置。注意金属的铁磁性和非铁磁性的区别。主要涉及铁磁性问题,现在已经有可以用在电磁炉上的铝锅了(确切来说,是铝合金锅)。
highland 综合技术交流
DS18B20头文件!绝对好使!M16 8M 的!
来源:http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=657257&bbs_page_no=1&bbs_id=9999终于调通了!哈哈:我也拿出来跟大家分享一下!里面的内容什么都不用该,就该一下前面宏定义就可以了!只需调用gettemp();就可以了!出口参数wmh是显示的高位,wml使显示的低位,然后调用你的显示程序就可以了! /***********************************************
fish001 单片机
s3c2410平台如何扩展内存?
原来是64M的,现在想加到128M,请问如何实现?s3c2410平台如何扩展内存?1.原理图+PCB2.UT+BSP配置3.OK需要根据硬件看下具体修改的方法,一般都会涉及到config.bib,OEMAddressTable,还有一些与地址相关的文件,保持一致就行,但是前提需要你了解下ce的内存机制,这个有助于你真正了解ce,另外,需要你重烧eboot,因为你将会根据硬件修改一下sdram的初始化部分。hopethishelps。第一部:到PB的安装目录的%_W
dzghl163 嵌入式系统
绝对好资料---由LCD12864初探嵌入式菜单设计(基于AVR单片机)
由LCD12864初探嵌入式菜单设计这篇文章非常详细地介绍了如何从单片机入手在LCD12864液晶上开发嵌入式菜单,文章从位操作开始,依次介绍了作图原理,人机交互学,物质基础等等知识,不但有技术知识的详细讲解,更有详细的程序代码,是难得的好资料,值得大家学习和珍藏。https://download.eeworld.com.cn/download/tiankai001/4818绝对好资料---由LCD12864初探嵌入式菜单设计(基于AVR单片机)看
tiankai001 下载中心专版
STM32H7S78-DK测评(四)——RTC测试
STM32的RTC指的是实时时钟(Real-TimeClock),它是一种用于计时和日期记录的硬件模块。在STM32微控制器中,RTC模块是由一个32位的计数器和一组用于保存日期和时间的寄存器组成的。由于RTC具有较高的精度和稳定性,从而能保持准确的日期和时间信息,因此它常用于需要精确定时和实时数据处理的应用场景。本来以为RTC实现挺简单的,没想到这里还有那么多坑,主要是CubeMX代码生成存在一些问题。在CubeMX中配置选择STM32H7S78-DK模板配置RT
FuShenxiao stm32/stm8
新手提问:我的机器是wince5,arm926ej的内核,用evc时候选择哪个CPU类型?
我看列表里面ARM相关的只有ARM4/ARM4I/ARM4T,请问该如何选择?多谢新手提问:我的机器是wince5,arm926ej的内核,用evc时候选择哪个CPU类型?应该是arm4i。在不清楚的时候可以全部都选上。好象EVC4.0sp4就只有V4I这一选项了,应该选V4I就行~好像build不成功,提示如下:“fatalerrorLNK1112:modulemachinetype\'ARM\'conflictswithtargetmachinetyp
dlj0521 WindowsCE
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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