制作ARM Linux交叉编译环境

MuJoCo与Isaac Sim的无缝对接:利用USD导出功能实现强化学习场景的跨平台迁移 本文详细介绍了如何通过USD导出功能实现MuJoCo与Isaac Sim的无缝对接,助力强化学习场景的跨平台迁移。文章解析了USD格式的核心优势,包括分层合成、物理属性继承和时间轴动画,并提供了从MJCF到USD的完整转换流程及在Isaac Sim中的高级应用技巧,帮助开发者高效迁移和优化强化学习环境。 阅读详情

紫色为更正

一、准备工作
      
       首先需要一台运行Linux操作系统的PC以完成我们的编译工作。
       其次要准备如下一些源文件。
 
       1、源文件准备
         binutils-2.14.tar.gz
         ftp://ftp.gnu.org/gnu/binutils/binutils-2.14.tar.gz
         gcc-core-2.95.3.tar.gz
         ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3/gcc-core-2.95.3.tar.gz
         gcc-g++2.95.3.tar.gz
         ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3/gcc-g++-2.95.3.tar.gz
         glibc-2.2.4.tar.gz
         ftp://ftp.gnu.org/gnu/glibc/glibc-2.2.4.tar.gz
         glibc-linuxthreads-2.2.4.tar.gz
         ftp://ftp.gnu.org/gnu/glibc/glibc-linuxthreads-2.2.4.tar.gz
         linux-2.4.21.tar.gz
         ftp://ftp.kernle.org/pub/linux/kernel/v2.4/linux-2.4.21.tar.gz
         patch-2.4.21-rmk1.gz # linux kernel patch for arm
         ftp://ftp.arm.linux.org.uk/pub/linux/arm/kernel/v2.4/patch-2.4.21-rmk1.gz
 
       binutils-2.14.tar.gz这个压缩包包含有ld,ar,as等一些产生或者处理二进制文件的工具。
    gcc-core-2.95.3.tar.gz这个压缩包是GCC的主体部分,GCC是GNU Compiler Collection的简称,顾名思义,它能够编译很多种高级语言,例如C、C++,Java等,而这个压缩包中含有C编译器,及公共部分,而对其他语言的支持,采用另外的压缩包单独发布。
    gcc-g++2.95.3.tar.gz,这个压缩包就是为使GCC能够编译C++程序而单独发布的。
    glibc-2.2.4.tar.gz,libc是很多用户层应用都要用到的库,kernel和bootloader不需要这个库的支持,这个库主体部分封装在这个压缩包内。
    glibc-linuxthreads-2.2.4.tar.gz,这是Libc用于支持Posix线程而单独发布的一个压缩包。
    linux-2.4.21.tar.gz,这个压缩包就是Linux的内核。
    patch-2.4.21-rmk1.gz,这个压缩包是用来给Linux内核打补丁,以使其可以支持ARM的硬件平台。
 
       2、工作目录搭建
       我们创建如下的目录树结构
       mkdir arm
       mkdir tool-chain
       mkdir build-dir
       mkdir src-dir
       mkdir setup-dir
       mkdir kernel
      
       arm这个目录是我们的最顶层工作目录,我们所有的编译工作都在这里完成。
       tool-chain这个目录是我们交叉编译工具的安装位置,它下面的bin子目录存放我们创建好的编译器,汇编器,连接器,以及编译好的C库也会安装到这个目录之下。
       setup-dir这个目录用来存放我们下载的压缩包。
       src-dir这个目录用于存放binutils,gcc,glibc解压之后的源文件。
       kernel这个目录用来存放内核文件,对内核的配置、编译工作将在这个目录中完成。
       build-dir用来编译src-dir中的源文件,具体就是binutils,gcc,glibc的编译工作将在这个目录下完成。这种源文件目录和编译目录分离的编译方式是GNU所推荐的。
      
       cd ./src-dir
       tar –xvzf ../setup-dir/ binutils-2.14.tar.gz
       tar –xvzf ../setup-dir/ gcc-core-2.95.3.tar.gz
       tar –xvzf ../setup-dir/ glibc-2.2.4.tar.gz
       tar –xvzf ../setup-dir/ glibc-linuxthreads-2.2.4.tar.gz –directory=./glibc-2.2.4   //unsuccess
 
       这样我们在src-dir目录下就形成了3个源文件目录binutils-2.14,gcc-core-2.95,3,glibc-2.2.4,其中分别存放着binutils tools,gcc,glibc的源代码。接下来我们到build-dir中创建3个与这三个源文件目录对应的编译目录。
      
       cd ../build-dir
       mkdir ../build-dir/build-binutils
       mkdir ../build-dir/build-gcc
       mkdir ../build-dir/build-glibc
 
       我们将在这三个目录中完成对binutils tools, gcc, glibc的配置和编译工作。下面还要把内核文件解压到kernel目录下,并打补丁。
 
       cd ../kernel
       tar –xvzf ../setup-dir/ linux-2.4.21.tar.gz
       cd ./linux-2.4.21
       patch –p1 <../../setup-dir/ patch-2.4.21-rmk1 //unsuccess
 
 
二、开始创建
 
1、  确定几个系统变量
cd ../../
export TARGET=arm-linux
export PREFIX=../arm/tool-chain
export TARGET_PREFIX=$PREFIX/$TARGET
export KERNEL_SOURCE_LOCATION=../kernel/linux-2.4.21
export PATH=$PREFIX/bin:$PATH

创建目录
 
       几个系统变量经常要用到,TARGET定义了目标机,PREFIX是工具链的安装目录,KERNEL_SOURCE_LOCATION是内核文件位置。
 
2、  创建binutils
       运行如下命令来创建binutils
       cd ./build-dir/build-binutils
        ../../src-dir/binutils-2.14/configure –target=$TARGET –prefix=$PREFIX
       make
       make install
       这时$PREFIX/bin下创建了一些文件,包括arm-linux-ld,arm-linux-as等。
3、  编译内核
 
       cd ../../kernel/linux-2.4.21

             
       改Makefile文件使
       make ARCH = arm CROSS_COMPILE=arm-linux-

 

        编译linux的内核,进入该目录,命令make menuconfig
 之后,出现下面的错误:
rm -f include/asm-arm/arch include/asm-arm/proc
(cd include/asm-arm; ln -sf arch-mx2ads arch; ln -sf proc-armv proc)
rm -f include/asm
( cd include ; ln -sf asm-arm asm)
make -C scripts/lxdialog all
make[1]: Entering directory `/home/lhs/HHARMMX21/linux-2.4.20/scripts/lxdialog'
/usr/bin/ld: cannot find -lncurses
collect2: ld returned 1 exit status
-e
>> Unable to find the Ncurses libraries.
>>
>> You must have Ncurses installed in order
>> to use 'make menuconfig'

make[1]: *** [ncurses] Error 1
make[1]: Leaving directory `/home/lhs/HHARMMX21/linux-2.4.20/scripts/lxdialog'
make: *** [menuconfig] Error 2

解决方法:

执行命令: sudo apt-get install ncurses-dev 即可!

(ncurses 用于make menuconfig界面显示)

       
       make menuconfig
       在System Types中选择正确的硬件类型
 
       make dep
 
       之后执行如下操作
       mkdir $TARGET_PREFIX/include
       cp -r $KERNEL_SOURCE_LOCATION/include/asm-arm 
                     $TARGET_PREFIX/include/asm

[cp -r kernel/linux-2.4.21/include/asm-arm arm/tool-chain/arm-linux/include/asm]
       cp -r $KERNEL_SOURCE_LOCATION/include/linux
                     $TARGET_PREFIX/include/linux
 [cp -r kernel/linux-2.4.21/include/linux arm/tool-chain/arm-linux/include/linux]
4、  创建boot-trap gcc,这个GCC没有glibc库的支持,所以只能用于编译内核,bootloader等,后面创建C库也要用到这个编译器,所以创建它主要是为创建C库做准备,如果只想编译内核和bootloader那么,就可以到此结束。
       cd ../../build-dir/build-gcc
         ../../src_dir/gcc-2.95.3/configure -target=$TARGET  -prefix=arm/tool-chain --with-headers=arm/kernel/linux-2.4.21/include -enable-language=c --disable-threads    

             然后修改src-dir/gcc-2.95.3/gcc/config/arm/t-linux文件,在
              TARGET_LIBGCC2_CFLAGS中添加如下两个定义
              -Dinhibit_libc –D__gthr_posix_h
       make
       make install              //unsuccess
       这时$PREFIX/bin下创建了一些文件,主要创建了arm-linux-gcc。
5、  创建gblic
       cd ../build-glibc
       export CC=arm-linux-gcc
       ../../src-dir/glibc-2.2.4/configure –host=$TARGET –prefix=$TARGET_PREFIX
                            --enable-add-ons
       make
       make install           //unsuccess
 
6、  创建功能健全的GCC,并创建G++
       在成功创建了libc之后,我们就可以创建功能丰富的GCC编译器了,并且可以创建支持编译C++程序的G++。
       cd ../../src-dir
       tar –xvzf ../setup-dir/ gcc-g++2.95.3.tar.gz
       cd ../build-dir/build-gcc
       export CC=gcc
       ../../src-dir/gcc-2.95.3/configure –target=$TARGET –prefix=$PREFIX
              –enable-language=c,c++
      
       然后修改src-dir/gcc-2.95.3/gcc/config/arm/t-linux文件,在
              TARGET_LIBGCC2_CFLAGS中去除如下两个定义
              -Dinhibit-libc –D__gthr_posix_h
 
       make
       make install
 
7,至此我们成功的创建了ARM Linux的交叉编译工具


本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/embeddedheaven/archive/2006/10/10/1328200.aspx

PredFormer实战:用Transformer搞定交通流量预测(附TaxiBJ数据集代码) 本文详细介绍了如何利用PredFormer这一基于Transformer的先进模型进行交通流量预测,特别针对TaxiBJ数据集提供了完整的实战代码和优化策略。PredFormer通过门控Transformer块(GTB)的创新设计,在时空预测任务中展现出显著优势,相比传统方法将MSE降低33.1%,推理速度提升4.4倍。文章还涵盖了模型轻量化、部署优化等实用技巧,为智慧城市建设中的交通预测提供了高效解决方案。 阅读详情

相关推荐

Innovus快捷键大全:从入门到精通的效率提升指南

本文是Innovus快捷键从入门到精通的效率提升指南,旨在帮助芯片后端设计工程师通过掌握核心快捷键,将重复性鼠标操作转化为高效的肌肉记忆,从而显著提升版图设计、编辑和分析的工作流速度。文章系统讲解了视图导航、对象选择编辑、流程管理等关键快捷键组合,并提供了个性化配置与实战策略,助力工程师突破效率瓶颈,实现人机合一的流畅设计体验。

silver的专栏 797

Make ARCH=arm CROSS_COMPILE=arm-linux-gcc menuconfig 分析

在编译LINUX内核时,首先要修改内核源码顶层目录下的makefile文件,将其中ARCH ?= $(SUBARCH)修改为ARCH ?= arm,将CROSS_COMPILE ?= 修改为CROSS_COMPILE ?= arm-linux-gcc,或者不修改,而是将ARCH和CROSS_COMPILE的值通过命令行传入。然后在linux内核源码目录下,执行make menuconf...

weixin_30312557的博客 2595

论文阅读|《强化学习在加工时间可变的机器人流水车间调度中的应用》

《Reinforcement Learning for robotic flow shop scheduling with processing time variations》 International Journal of Production Research/2021 1 摘要 我们解决了一个机器人流水车间调度问题,其中两种零件类型在每组给定的专用机器上进行处理。单个机器人在固定轨道上移动,一次运输一个部件,在给定的时间间隔内,这些部件在机器上的加工时间各不相同。我们使用强化...

太剧烈的快乐与太剧烈的悲哀是有相同之点的——同样地需要远离人群! 2930

交叉编译环境搭建

环境搭建1、串口连接2、配置交叉编译器1、查看当前系统是否支持arm-linux-gcc2、在/usr/local创建一个文件夹为arm3、将arm-linux-gcc-4.3.2.bz2解压到/usr/local/arm目录下4、进入到 /usr/local/arm5、将上面得到的目录添加到环境变量PATH中6、重启.bashrc脚本7、ubuntu搭建nfs服务器8、ubuntu挂载到开发板上 将Cortex-AXX 开发板正确连接电脑 查看是否正确连接,并记住端口 右击此电脑 —>属性—>

兰天禄的博客 8538

【愚公系列】《AIGC辅助软件开发》041-如何使用 AI技术提升工作效率:AI辅助软件架构师实践

在数字化转型的浪潮中,软件架构师作为技术团队的核心,承载着系统设计与架构优化的重要责任。然而,随着项目复杂度的增加和技术环境的变化,架构师面临着前所未有的挑战。幸运的是,人工智能(AI)技术的迅猛发展为这一行业带来了新的机遇,帮助架构师提升工作效率、优化决策过程,并改善团队协作。本文将深入探讨AI如何辅助软件架构师的实际工作,具体分析AI在需求分析、架构设计、代码生成、测试和优化等环节的应用。

愚公智库 15万+

详解Σ-Δ型ADC拓扑结构的基本原理

现在,总环路滤波器的H(f)具有更大的滚降,Mod 2型的噪声传递函数具有40 dB/十倍频程的上升速率。同样,当正弦波输入为负满量程时,+1和–1之间的转换会减少,输出以–1为主。噪声传递函数是一个高通滤波器函数,提供噪声整形,在DC附近的较低频率,对量化噪声有很强的抑制。H(f)是环路滤波器的函数,定义噪声和信号的传递函数。Σ-Δ型ADC的噪底由热噪声决定,而不受量化噪声的限制。量化噪声为量化器的输入与输出之差。图5. Mod 1 Σ-Δ环路的线性模型(b),包括方程、滤波器、信号和噪声传递函数图。

qq_43416206的博客 1810

搭建交叉编译环境

4.1、搭建交叉编译环境4.1.1、概述交叉编译,就是用运行在一种计算机环境中的编译程序,去编译出在另外一种环境下运行的代码。具有这种能力的编译器就叫交叉编译器。换而言之,就是在一个平台上生成另一个平台上的可执行代码。这里所指的平台实际上包含了软/硬件两个方面的概念:操作系统(Operating System)和体系结构(Architecture)。同样是Linux系统,在不同体系结构的硬件平...

jandroid 265

速腾RS-LiDAR-16激光雷达ROS环境搭建与点云可视化实战指南

本文提供速腾RS-LiDAR-16激光雷达在ROS环境下的完整搭建与可视化实战指南。从硬件连接、网络配置、驱动安装编译,到核心参数详解与Rviz点云可视化,手把手解决IP设置、坐标系对齐等常见问题,帮助开发者快速实现激光雷达三维点云数据的采集与显示。

weixin_29271263的博客 369

【一、交叉编译环境搭建】

介绍arm交叉编译环境的搭建

anmo_moan的博客 4270

执行HDevelop项目

这一节,我们讲述的是如何用HDevEngine加载和执行一个HDevelop项目。代码部分来源于示例程序exec_program(源文件exec_program.cpp),检测塑料零件边界上的毛刺。1.Step 1:初始化首先,我们包含HALCON/C++和HDevEngine头文件以及命名空间。注意到在这个示例程序中,HDevEngine头文件已经包含在my_hdevoperatorimpl中,所

Z's Palace 2994

lammps构建高熵合金模型+结构优化初步筛选能量最小的结构

lammps构建高熵合金模型+结构优化初步筛选能量最小的结构

qq_45834835的博客 2604

linux交叉编译环境作用,一步一步的制作arm-linux交叉编译环境

一步一步的制作arm-linux交叉编译环境yanqin | 2009-04-16 20:40:17 阅读:1102 发布文章一步一步的制作 arm-linux 交叉编译环境%A Gavin LiSunday, Jan 27, 2004%A%A -----------------------------...

weixin_33856202的博客 295

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

linux arm 交叉编译环境,一步一步的制作arm-linux交叉编译环境

《一步一步的制作arm-linux交叉编译环境》由会员分享,可在线阅读,更多相关《一步一步的制作arm-linux交叉编译环境(5页珍藏版)》请在人人文库网上搜索。1、亠步一步的制作arm-linux 交叉编译环我们使用以下版本的文件为例子建立 arm-li nux 交叉编译环境:bi nutils-2.11.gzgcc-2.95.3.gzglibc-2.2.3.gzglibc-li nu xth...

weixin_26804345的博客 380

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

一步一步制作ARM-Linux交叉编译环境

- 我们使用以下版本的文件为例子建立arm-linux 交叉编译环境: binutils-2.11.gz gcc-2.95.3.gz glibc-2.2.3.gz glibc-linuxthreads-2.2.3.tar.gz linux-2.4.5.gz patch-2.4.5-rmk7.gz # linux kernel patch 我们的工作路径是: ~ -- +-----

1102

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

自己制作arm-linux交叉编译环境(一)

<br />自己制作arm-linux交叉编译环境(一)-scratch篇 收藏 <br />       交叉编译是指在一台电脑上来编译另一种结构的电脑上的代码,编译生成的程序不是运行在本机上的,而是另一种结构的机子上(^_^,快晕了...),打个比方吧,比如我的系统是x86结构的,如果我需要编译一个arm结构的程序,那编译器等就都要重新弄过了,这个编译过程就叫做 交叉编译,在嵌入式开发中就必须要交叉编译,在开发主机x386上开发arm目标机上可以运行的代码<br />     在<<嵌入式linux系统

babyfans的专栏 1779

一步一步的制作 arm-linux 交叉编译环境

链接地址:http://www.unixresources.net/linux/clf/embedded/archive/00/00/43/75/437505.html 我们使用以下版本的文件为例子建立 arm-linux 交叉编译环境: 编译环境 redhat 7.2

路在脚下 493

在linux下使用crosstool制作自己的arm交叉编译环境

在linux下使用crosstool制作自己的arm交叉编译环境crosstool是个不错的软件,能够很方便的编译自己的交叉编译环境。目前最新版本crosstool-0.43 在地址 http://kegel.com/crosstool/crosstool-0.43.tar.gz 可以下载。首先获取工具包,解压后进入其目录wget http://kegel.com/crosst

wonsoft的专栏 2389

一步步制作 Arm-Linux交叉编译环境

        我们使用以下版本的文件为例子建立 arm-linux 交叉编译环境: 编译环境 redhat 7.2 或 8.0 binutils-2.14.tar.gz ftp://ftp.gnu.org/gnu/binutils/binutils-2.14.tar.gz gcc-core-2.95.3.tar.gz ftp://ftp.gnu.org/gnu/gcc/gcc-2

makethyme的专栏 1999

一步一步的制作arm-linux 交叉编译环境

我们使用以下版本的文件为例子建立arm-linux 交叉编译环境: binutils-2.11.gz gcc-2.95.3.gz glibc-2.2.3.gz glibc-linuxthreads-2.2.3.tar.gz linux-2.4.5.gz patch-2.4.5-rmk7.gz         # linux kernel patch 我们的工作路径是: ~ -- +------- 

learndkid的专栏 1380

一步一步的制作arm-linux交叉编译环境

http://write.blog.youkuaiyun.com/postedit 我们使用以下版本的文件为例子建立arm-linux 交叉编译环境: binutils-2.11.gz gcc-2.95.3.gz glibc-2.2.3.gz glibc-linuxthreads-2.2.3.tar.gz linux-2.4.5.gz pa

蜗牛之路 514
上一篇: NORflash和NANDflash区别
下一篇: 交叉编译环境的创建
vcvbve
博客等级 码龄17年 5粉丝 7原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值