历史上的今天
返回首页

历史上的今天

今天是:2025年02月24日(星期一)

正在发生

2020年02月24日 | Ubuntu下Arm-Linux-GCC交叉编译环境的搭建

2020-02-24 来源:eefocus

1:解压 arm-linux-gcc-3.4.1.tar.bz2
  #tar -jxvf arm-linux-gcc-3.4.1.tar.bz2
  解压过程需要一段时间,解压后的文件形成了 ../temp/usr/local/ 文件夹,进入该文件夹,将arm文件夹拷贝到/usr/local/下
  # cd usr/local/
  #cp -rv arm /usr/local/
  现在交叉编译程序集都在/usr/local/arm/3.4.1/bin下面了


2:修改/etc/profile文件:

# vim /etc/profile

增加路径设置,在末尾添加如下,保存/etc/profile文件:
export PATH=$PATH:/usr/local/arm/3.4.1/bin


3:立即使新的环境变量生效,不用重启电脑:

 对应方法二:# source /etc/profile


4: 检查是否将路径加入到PATH:

   # echo $PATH
  显示的内容中有/usr/local/arm/bin,说明已经将交叉编译器的路径加入PATH。至此,www.linuxidc.com交叉编译环境安装完成。


5.测试是否安装成功
# arm-linux-gcc -v

--------------------------------------------------------------------------------------------------------------------------------------------------------------

今天终于把arm的交叉编译环境搭(Ubuntu)建起来了,其实挺简单的,但是用了不少的时间。网上看了一下,这方面的资料挺多的,可能都是那种比较通用的搭建方法,感觉比较繁琐。而且网上鱼龙混杂,大部分都是拷贝的一份资料。自己根据自己的需要进行了一些精简,这样看起来就简单多了。我用的是at91sam9261的芯片,属于ARM9内核。用的arm-linux-gcc交叉编译环境好像就支持V4 的内核架构,其中包含了ARM7和ARM9。


好了,闲话少须,开始搭建编译环境。

1.下载arm-linux-gcc-3.4.1.tar.bz2到临时的目录下,我放在了:/home/chenbolin/temp/下,chenbolin是我的用户名。
  arm-linux-gcc-3.4.1.tar.bz2 的下载地址如下:http://www.handhelds.org/download/projects/toolchain/arm-linux-gcc-3.4.1.tar.bz2


2.解压 arm-linux-gcc-3.4.1.tar.bz2
  #tar -jxvf arm-linux-gcc-3.4.1.tar.bz2
  解压过程需要一段时间,解压后的文件形成了 ../temp/usr/local/ 文件夹,进入该文件夹,将arm文件夹拷贝到/usr/local/下
  # cd usr/local/
  #cp -rv arm /usr/local/
  现在交叉编译程序集都在/usr/local/arm/3.4.1/bin下面了


3.  修改环境变量,把交叉编译器的路径加入到PATH。  

方法一:修改/etc/bash.bashrc文件
     #vim /etc/bash.bashrc

            在最后加上:

   export PATH=$PATH:/usr/local/arm/3.4.1/bin

    export PATH

    (如果不能编辑,先修改相关文件的权限使用chmod命令。)


方法二:修改/etc/profile文件:
# vim /etc/profile

增加路径设置,在末尾添加如下,保存/etc/profile文件:
export PATH=$PATH:/usr/local/arm/3.4.1/bin
方法三:#export PATH=$PATH:/usr/local/arm/3.4.1/bin
  注:(这只能在当前的终端下才是有效的!)


4. 立即使新的环境变量生效,不用重启电脑:
 对应方法一:#source /root/.bashrc
 对应方法二:# source /etc/profile

5. 检查是否将路径加入到PATH:
   # echo $PATH
  显示的内容中有/usr/local/arm/bin,说明已经将交叉编译器的路径加入PATH。至此,www.linuxidc.com交叉编译环境安装完成。

6.测试是否安装成功
# arm-linux-gcc -v
上面的命令会显示arm-linux-gcc信息和版本,这是我显示的信息:
 Reading specs from /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/specs
 Configured with: /work/crosstool-0.27/build/arm-linux/gcc-3.4.1-glibc-2.3.2/gcc- 3.4.1/configure --target=arm-linux --host=i686-host_pc-linux-gnu

 --prefix=/usr/local/arm/3.4.1 --with-headers=/usr/local/arm/3.4.1/arm

 -linux/include --with-local-prefix=/usr/local/arm/3.4.1/arm-linux --disable

 -nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable- languages=c,c++ --enable-shared --enable-c99 --enable-long-long
 Thread model: posix
 gcc version 3.4.1


7.编译Hello World程序,测试交叉工具链
   写下下面的Hello World程序,保存为 hello.c
#include
int main()
{
printf("Hello World!n");
return 0;
}

   执行下面的命令:
# arm-linux-gcc -o hello hello.c
    源程序有错误的话会有提示,没有任何提示的话,就是通过了,就可以下载到ARM目标板上运行了!


接着可以输入file hello的命令,查看生成的hello文件的类型,要注意的是生成的可执行文件只能在ARM体系下运行,不能在其于X86的PC机上运行。

推荐阅读

史海拾趣

DALLAS公司的发展小趣事

Dallas公司一直将技术研发作为公司发展的核心驱动力。公司投入大量资源用于半导体领域的技术研发,不断探索新的技术方向和产品应用。这种持续的技术研发投入使得Dallas公司能够不断推出具有创新性和竞争力的产品,保持了在市场中的领先地位。

ASM公司的发展小趣事

在集成电路商业化发展的黄金时期,ASM公司凭借其在硅材料领域的深厚积累,不断推出创新产品,满足市场日益增长的需求。公司通过杂志、展会等营销工具,积极推广其产品和服务,逐渐在行业内树立了良好的口碑。同时,ASM公司还不断拓展其业务领域,从最初的半导体材料供应逐渐扩展到更广泛的电子材料和设备领域。

ACL staticide公司的发展小趣事

近年来,随着全球半导体市场的竞争加剧和技术的不断更新换代,ASM公司也面临着巨大的挑战。为了保持竞争优势,公司不断调整其战略和业务结构,加大研发力度,推出更具竞争力的新产品。同时,公司还积极寻求与其他企业的合作与共赢,共同推动半导体产业的发展。

EMI Filter Company公司的发展小趣事

TDK公司,作为全球知名的电子元器件制造商,早在上世纪80年代就开始涉足EMI滤波器领域。当时,随着电子设备的日益普及,电磁干扰问题逐渐凸显。TDK看准市场需求,投入大量资源进行EMI滤波器的研发。初期,他们面临着技术难题和市场接受度的挑战。然而,通过不断的技术创新和产品迭代,TDK的EMI滤波器逐渐在市场上站稳了脚跟。他们的产品在计算机、通信设备等领域得到了广泛应用,有效解决了电磁干扰问题,提升了设备的稳定性和可靠性。

GE (General Electric)公司的发展小趣事
如故障难以排查,可查阅电气原理图电路图,根据电路图逐一检查各元件和线路。
Avel Lindberg公司的发展小趣事
如冷却泵、床头电机等,这些设备通过转换开关或压力开关进行单独或集中控制。

问答坊 | AI 解惑

一位用激情经营人生的本土IC创业者(上)

微软前中国总裁唐骏曾经说过:“人的职业生涯是需要经营的,它和经营一个企业并无二致。”。这话用在天津英诺华微电子技术有限公司总经理褚以人身上再贴切不过。从一名核物理专业的大学生,到如今投身半导体产业的IC设计师,他在不断地经营中把自己 ...…

查看全部问答>

谁用过LCD近进来帮我一下吧!

我现在需要做个电话机!可以显示大头贴的!需要用块彩色的LCD,不知道市场上卖的带驱动的那种LCD是不是可以直接接到ARM处理器的IO口上?一般黑白的LCD也是可以的吧!主要的部分是在软件的编程吧!…

查看全部问答>

精巧实用的震感报警器

精巧实用的震感报警器…

查看全部问答>

usbavrjtag cp210x_driver

本帖最后由 paulhyde 于 2014-9-15 08:57 编辑 usbavrjtag cp210x_driver  …

查看全部问答>

2009年全国大学生电子设计竞赛G题低频功率放大器题解分享

本帖最后由 paulhyde 于 2014-9-15 04:15 编辑 2009年全国大学生电子设计竞赛G题是一个设计功率放大器的题,主要考核学生模拟电子技术的基础技能,要求是一定要用场效应晶体管做末级放大,且电路增益要求很大,如5mV的输入要达到5W(8欧负载)的输 ...…

查看全部问答>

微波简史

  微波的发展是与无线通信的发展是分不开的。1901年马克尼使用800KHz中波信号进行了从英国到北美纽芬兰的世界上第一次横跨大西洋的无线电波的通信试验,开创了人类无线通信的新纪元。无线通信初期,人们使用长波及中波来通信。20世纪20年代初人们 ...…

查看全部问答>

请教大家电路板电源模块旁并联的电容问题

有个问题一直比较疑惑,就是看到很多电路板上的电源模块的电源输入端和输出端都会分别并联一个电解电容外,有的还并联一个或几个没极性的的电容,如独石电容,我想问一下大家,一般这个电解电容的耐压值和大小根据什么选的,或者说,和模块的输入输 ...…

查看全部问答>

WINCE 能实现每秒5000次中断吗?有没有高手做过,请赐教。

Wince5.0 硬件每秒钟5000个脉冲触发X86CUP的7号中断,Wince能完全捕获到每一个中断吗,保证不丢,请做过的兄弟姐妹帮帮忙,提提思路,或者给 一段代码,不胜感激…

查看全部问答>

求助:usrRoot已经执行完,看不到蓝屏的boot界面?

跟踪代码发现usrRoot已经执行完,却始终没有跳转到boot的蓝屏界面,谁能指点一下为什么?谢谢! 我是在workbench下,VxWorks6.6…

查看全部问答>

内存泄露!!

各位大侠,这是我写的打开位图程序,现在发现有严重的内存泄露问题,拜托大家帮忙找找原因?? 是不是应该自己先建块内存,最后再把这块内存删掉??可是具体怎么实现呢?? switch(flag0) { case 1: { pathsave1=app->dao1+_T(\".bmp\") ...…

查看全部问答>