用crosstool-ng建立arm-linux 4.3.2 交叉工具链

安装制作交叉编译器的工具:crosstool-ng(含解决configure: error: could not find bash >= 3.1的全网最详细方法) 一、安装crosstool-ng的步骤 1.下载(不建议下最新版,因为一旦出现了问题,在全网搜寻不到好的解决办法…) 我尝试了最新版crosstool-ng-1.23.0后的辛酸建议,建议下载crosstool-1.18.0(已经成功安装) .bz2: linux下常见的压缩文件格式,7-zip工具可解压得到crosstool-ng-1.18.0.tar,将其拷贝到VMware的ubuntu20.04LTS中(VMware Tools, 我的VMware版本号16.0.0)。我选择的目录:~/CS/ex 阅读详情
 
crosstool-ng是新的用来建立交叉工具链的工具,它是crosstool的替换者.
使用crosstool最多只能编译gcc 4.1.1 glibc 2.x的版本.
而crosstool-ng一直保持着更新,现在最新能够建立 gcc 4.3.2版本 glibc 2.9版本...
在使用低于4.1.1的版本编译2.6.29 kernel时,会出现
include/linux/compiler-gcc4.h:7:3: error: #error Your version of gcc miscompiles the __weak directive
include/linux/compiler-gcc4.h:7 :如下
/* GCC 4.1.[01] miscompiles __weak */
#if __GNUC_MINOR__ == 1 && __GNUC_PATCHLEVEL__ <= 1
# error Your version of gcc miscompiles the __weak directive
#endif
所以使用crosstool-ng建立一个新的工具链(gcc 4.3.2 glibc 2.9),以支持对最新kernel编绎.

测试环境:
Debian Linux 2.6.18-6-686
Ubuntu Linux 2.6.28-14     (Ubuntu 9.0.4)
1.crosstool-ng的安装
cd /tmp
mkdir crosstool-ng
wget http://ymorin.is-a-geek.org/download/crosstool-ng/crosstool-ng-1.4.1.tar.bz2
tar jxvf crosstool-ng-1.4.1.tar.bz2
cd /tmp/crosstool-ng-1.4.1
./configure --prefix=/opt/crosstool-ng
make
make install
echo "PATH=$PATH:/opt/crosstool-ng/bin" >> ~/.bashrc
source ~/.bashrc
ct-ng help
          ## ^ ^ 安装成功
2.安装必要工具包
#安装java开发包
sudo apt-get install gcj
#安装cvs
sudo apt-get install cvs
#切换mawk
sudo apt-get install gawk
cd /usr/bin
sudo mv mawk mawk.bak
sudo ln -s gawk mawk

Ubuntu 9.0.4 请先安装下 termcap 库   参考本文 错误与解决 4.. .
3.crosstool-ng使用范例
   本范例记录了使用crosstool-ng编绎arm-unknown-linux-gnueabi工具链的过程
cd /tmp/crosstool-ng
mkdir build_toolchain
cp /opt/crosstool-ng/lib/ct-ng-1.4.1/samples/arm-unknown-linux-gnueabi/crosstool.config .config
mkdir ~/src
vi .config
修改工具链安装路径
    CT_PREFIX_DIR="/opt/arm/4.3.2/${CT_TARGET}"
ct-ng build.4(用太多线程,很耗系统资源)
4.为工具链增加新链接
  
cd /opt/arm/4.3.2/arm-unknown-linux-gnueabi/bin
./autoln.sh
autoln.sh是一个脚本,用来自动链接arm-unknown-linux-gnueabi的工具...
文件名:autoln.sh 拷到要自动建立链接的文件夹使用。
#!/bin/bash

#
# main
#
if [ $# -lt 1 ] ; then
echo "default path: ./"
BIN_PATH=./
else
BIN_PATH=$1
fi
if [ ! -d $1 ] ; then
echo "path error"
exit
fi
cd $BIN_PATH
SRC=`ls | awk '{print $1}'`

for i in $SRC ; do
if [ "$i" != "autoln.sh" ] ; then
      #echo $i
      TARGET=`echo $i | sed 's/arm-unknown-linux-gnueabi/arm-linux/g' `
      echo $TARGET
      ln -s $i $TARGET
fi
done
  
错误与解决
1.[ERROR] Missing: 'i486-linux-gnu-gcj' or 'i486-linux-gnu-gcj' or 'gcj' : either needed!
   解决:sudo apt-get install gcj
2.
[ERROR]     Build failed in step 'Retrieving needed toolchain components' tarballs'
[ERROR]     Error happened in '/opt/crosstool-ng/lib/ct-ng-1.4.1/scripts/functions' in function 'CT_DoExecLog' (line unknown, sorry)
[ERROR]           called from '/opt/crosstool-ng/lib/ct-ng-1.4.1/scripts/functions' at line # 471 in function 'CT_GetCVS'
[ERROR]           called from '/opt/crosstool-ng/lib/ct-ng-1.4.1/scripts/build/libc/glibc.sh' at line # 31 in function 'do_libc_get'
[ERROR]           called from '/opt/crosstool-ng/lib/ct-ng-1.4.1/scripts/crosstool-NG.sh' at line # 449 in function 'main'
[ERROR]     Look at '/home/star/x-tools/arm-unknown-linux-gnueabi/build.log' for more info on this error.
[ERROR] (elapsed: 33:29.56)
[33:30] / make[1]: *** [build] 错误 127
make: *** [build.4] 错误 2
解决: sudo apt-get install cvs
3.
[INFO ] Installing C library headers
[EXTRA]     Configuring C library
[EXTRA]     Installing C library headers
[ERROR]     make[3]: *** [/home/star/x-tools/arm-unknown-linux-gnueabi/arm-unknown-linux-gnueabi//sys-root/usr/include/gnu/lib-names.h] Error 1
[ERROR]     make[2]: *** [install-headers] Error 2
[ERROR]     Build failed in step 'Installing C library headers'
[ERROR]     Error happened in '/opt/crosstool-ng/lib/ct-ng-1.4.1/scripts/functions' in function 'CT_DoExecLog' (line unknown, sorry)
[ERROR]           called from '/opt/crosstool-ng/lib/ct-ng-1.4.1/scripts/build/libc/glibc.sh' at line # 185 in function 'do_libc_headers'
[ERROR]           called from '/opt/crosstool-ng/lib/ct-ng-1.4.1/scripts/crosstool-NG.sh' at line # 494 in function 'main'
[ERROR]     Look at '/home/star/x-tools/arm-unknown-linux-gnueabi/build.log' for more info on this error.
[ERROR] (elapsed: 36:41.91)
[36:42] / make[1]: *** [build] 错误 2
make: *** [build.4] 错误 2
解决:查看build.log
[ALL ]     /usr/bin/install: cannot stat `/tmp/crosstool-ng/targets/arm-unknown-linux-gnueabi/build/build-libc-headers/gnu/li
b-names.h': No such file or directory
但在这之前也发生了一个error,但crosstool-ng并没有报错
[ALL ]     mawk: scripts/gen-sorted.awk: line 19: regular expression compile failed (bad class -- [], [^] or [)
[ALL ]     /[^
[ALL ]     mawk: scripts/gen-sorted.awk: line 19: syntax error at or near ]
[ALL ]     mawk: scripts/gen-sorted.awk: line 19: runaway regular expression /, "", subd ...
OK,在gen-sorted.awk第19行,出错,这是一个简单的错误,缺少了转义符
查找一个看有没有类似的  
  
   cd /tmp/crosstool-ng/targets/src/glibc-cvs-2.9/scripts 
 sed '//^///p' gen-sorted.awk -n
 输出的则是存在语法错误的语句
 可以直接用
 sed -i 's//^////^/////g' gen-sorted.awk
   这种方法是不完善的,后面的还是会出现错误。
 网上搜了下,需要用/usr/bin/gawk 替换/usr/bin/mawk,即
   sudo apt-get install gawk
   cd /usr/bin
   sudo mv mawk mawk.bak
   sudo ln -s gawk mawk
3.
[INFO ] =================================================================
[INFO ] Installing C library
[EXTRA]     Configuring C library
[WARN ]     Removing "-pipe" for use with glibc>=2.6
[EXTRA]     Building C library
[ERROR]     make[4]: *** [/tmp/crosstool-ng/targets/arm-unknown-linux-gnueabi/build/build-libc/elf/ld.so] Error 2
[ERROR]     make[3]: *** [elf/subdir_lib] Error 2
[ERROR]     make[2]: *** [all] Error 2
[ERROR]     Build failed in step 'Installing C library'
[ERROR]     Error happened in '/opt/crosstool-ng/lib/ct-ng-1.4.1/scripts/functions' in function 'CT_DoExecLog' (line unknown, sorry)
[ERROR]           called from '/opt/crosstool-ng/lib/ct-ng-1.4.1/scripts/build/libc/glibc.sh' at line # 504 in function 'do_libc'
[ERROR]           called from '/opt/crosstool-ng/lib/ct-ng-1.4.1/scripts/crosstool-NG.sh' at line # 494 in function 'main'
[ERROR]     Look at '/home/star/x-tools/arm-unknown-linux-gnueabi/build.log' for more info on this error.
[ERROR] (elapsed: 32:05.76)
[32:06] / make[1]: *** [build] 错误 2
make: *** [build.4] 错误 2
解决:
   sudo apt-get install gawk
   cd /usr/bin
   sudo mv mawk mawk.bak
   sudo ln -s gawk mawk
4.
49567 [ERROR]    configure: error: no termcap library found
49568 [ERROR]    make[3]: *** [configure-gdb] Error 1
49569 [ALL ]    make[3]: Leaving directory `/opt/build_toolchain/targets/arm-unknown-linux-gnueabi/build/build-gdb-cross'
49570 [ERROR]    make[2]: *** [all] Error 2
49571 [ALL ]    make[2]: Leaving directory `/opt/build_toolchain/targets/arm-unknown-linux-gnueabi/build/build-gdb-cross'
49572 [ERROR]    Build failed in step 'Installing cross-gdb'
49573 [ERROR]    Error happened in '/usr/lib/ct-ng-1.4.1/scripts/functions' in function 'CT_DoExecLog' (line unknown, sorry)
49574 [ERROR]          called from '/usr/lib/ct-ng-1.4.1/scripts/build/debug/300-gdb.sh' at line # 126 in function 'do_debug      _gdb_build'
49575 [ERROR]          called from '/usr/lib/ct-ng-1.4.1/scripts/build/debug.sh' at line # 35 in function 'do_debug'
49576 [ERROR]          called from '/usr/lib/ct-ng-1.4.1/scripts/crosstool-NG.sh' at line # 494 in function 'main'
49577 [ERROR]    Look at '/opt/arm/4.3.2/arm-unknown-linux-gnueabi/build.log' for more info on this error.
49578 [ERROR] (elapsed: 72:30.97)

解决 :
      这个问题我只在ubuntu 9.0.4中遇到过...缺少了termcap 库,但我在源里又没有搜到termcap相关的库(似乎是被其它库替换了,termcap这东西的确很古老)
      cd /tmp
      wget ftp://ftp.gnu.org/gnu/termcap/termcap-1.3.1.tar.gz
      tar zxvf
termcap-1.3.1.tar.gz
      cd termcap-1.3.1
      ./configure --prefix=/usr
      make
      make install
      (又需要从头编译工具链了 …… )

参考资料
1.crosstool-ng WIKI

 

 原文地址 http://hi.baidu.com/caicry

编译工具链制作神器 - crosstool-ng From: Linux hole 深呼吸,深呼吸 - XXXXHello,大家好。 最近一直忙着调试Bug,一直无果。很让人伤心,多模块糅合,Ps. 驱动 用户态 硬件全方位定位,搞的人很累。所以一直没有写点东西; 以前我一直以为要写东西就必须写的高大上的东东,后来才发现,高大上的东东搞起来除了很费力以外,反而可能让人觉得你不也是COPY过来的吗?你不是也是TS过来的吗? 拽什么拽啦。。鉴于此 阅读详情

相关推荐

建立arm-linux交叉工具链 crosstool-ng

建立arm-linux交叉工具链 crosstool-ng 测试环境:ubuntu 10.4,10.10,11.4,11.10均无压力。 最近被这个arm-linux交叉编译器搞了5天,都快被崩溃了。终于成功了,好开心,于是再做一遍,没问题,在这里记录以下流程: 1

6033

使用crosstool-ng制作交叉编译工具链

一、安装crosstool-ng 1、获取crosstool-ng 从官网(http://crosstool-ng.org/)下载crosstool-ng,注意要下载官网打包好的版本,如果直接从github下载源码,源码版本主目录没有configure文件,无法配置和编译。 2、编译crosstool-ng 解压进入crosstool-ng目录,执行./configure,m...

草根工厂——技术虐我千百遍,我依然待你如初恋 1万+

通达信源码-金牛暴起

趋势1:=3*SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1)-2*SMA(SMA((CLOSE-LLV(LOW,27))/(HHV(HIGH,27)-LLV(LOW,27))*100,5,1),3,1) AND SJTJ,DOTLINE,COLORGRAY;谷:=(((DD-LLV(DD,21))/(HHV(DD,21)-LLV(DD,21)))*(4))*(25);{0,25指高度};

qq_57222058的博客 3525

【嵌入式移植】2、使用Crosstool-NG制作交叉编译工具链

在/crosstool-ng路径下新建src、crosstool-build、x-tools文件夹,并将/crosstool-ng-1.26.0/samples/aarch64-rpi3-linux-gnu/crosstool.config文件复制到/crosstool-ng路径下,重命名为.config,后续将在/crosstool-ng路径下进行制作,即${CT_TOP_DIR}=~/arm/crosstool-ng。在~/arm/crosstool-ng路径下执行ct-ng build命令。

TTZZWWW 4337

【2025最新】Multisim 14.3超详细安装步骤 【附安装包+永久+汉化】|Multisim 14.3

嗨,小伙伴们!是不是一直在找可靠的multisim下载安装教程?今天就给大家带来超详细的2025年Multisim 14.3安装全攻略!这款电路仿真神器绝对是学电子、做电路设计的必备工具!很多朋友后台留言说安装时各种报错、汉化失败,所以我决定出一期零基础、保姆级的教程,从下载到安装再到汉化,全部一步到位搞定!按照我的步骤来,包你顺利安装不出错!!!通过本教程,相信大家已经成功安装并配置好了Multisim 14.3。这款电路仿真神器能帮你设计和测试各种电路,从简单的LED闪烁到复杂的信号处理电路都不在话下。

pythonpapaxia的博客 8万+

修复后找不到ip 黑群晖_黑群晖引导U盘损坏了怎么办?

前言虽然一般来说引导U盘损坏的可能性很小,但是避免不了万一出现问题导致黑群晖没有办法引导进入系统也是一件相当麻烦的事情。这里我就用两块U盘做个小试验,看看如果黑群晖上的引导U盘损坏以后,另一块U盘需要怎样写引导文件才能让黑群晖正常引导进入系统。试验开始我这里黑群晖使用的是DSM6.1.7的系统,U盘一块使用的是闪迪的酷豆,另一块就是闪迪的酷铄。目前系统引导U盘使用的是酷豆,VID:0781 PID...

weixin_36239323的博客 8269

用Crosstool-ng构建stm32mp157交叉编译工具链----备份---转载

用Crosstool-ng构建交叉编译工具链 交叉编译指在一个平台上生成另一个平台上的可执行代码。常见的有三种: 在Windows PC上,利用集成开发环境(ADS),运行armcc编译器,编译出针对ARM CPU的可执行代码 在Windows PC上,利用cygwin环境,运行arm-elf-gcc编译器,编译出针对ARM CPU 的可执行代码 在Linux PC上,利用arm-linux-gcc编译器,编译出针对Linux ARM平台的可执行代码 交叉编译工具链是一个由编译器、连接器和解释器组成的综合

weixin_43568960的博客 545

【论文解读--Xdog】新型电驱式四足机器人研制与测试

系列文章目录 提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加 TODO:写完再整理 文章目录系列文章目录前言一、四足机器人体型大小和驱动方式的比较二、四足机器人设计一些重要的结论三、系统控制框架四、系统硬件框架五、力位混合控制(阻抗控制)六、侧向平衡控制(和VMC如出一辙)七、电机驱动系统研制(FOC磁场定向控制)总结 前言 认知有限,望大家多多包涵,有什么问题也希望能够与大家多交流,共同成长! 本文先对新型电驱式四足机器人研制与测试做个简单的介绍,具体内容后续再更,其他模块可以参

qq_35635374的博客 3727

linux 交叉工具链下载,用crosstool-ng建立arm-linux 4.3.2 交叉工具链

crosstool-ng是新的用来建立交叉工具链的工具,它是crosstool的替换者.使用crosstool最多只能编译gcc 4.1.1 glibc 2.x的版本.而crosstool-ng一直保持着更新,现在最新能够建立 gcc 4.3.2版本 glibc 2.9版本...在使用低于4.1.1的版本编译2.6.29 kernel时,会出现include/linux/compiler-gcc4...

weixin_33594662的博客 323

知识存储之Apache Jena

知识图谱的存储可以分为基于表结构的存储和基于图结构的存储。1️⃣基于表结构的存储基于表结构的存储利用二维的数据表对知识图谱中的数据进行存储。根据不同的设计原则,知识图谱可以具有不同的表结构:💨知识图谱实质上是一个个的三元组,一种简单直接的存储方式是设计一张三元组表用于存储所有三元组,有不少比较成熟的产品利用该形式存储知识图谱,包括Jena、Oracle、Virtuoso等。💨为每种类型构建一张表,同一类型的实例存放在相同的表中。

Puzzle的博客 6065

【C++】【STL算法】数据窄化及代码安全性

本文系统探讨了C++工程中数据窄化(narrowing conversion)的隐患与解决方案。数据窄化指将高精度/大范围类型转换为低精度/小范围类型,虽语法合法但会导致静默精度损失。其危险性体现在:错误隐蔽、STL会放大问题、数值错误具有传播性。现代C++要求窄化必须显式声明,文中提出四种工程解决方案:显式转换、边界统一转换、范围检查转换和使用GSL工具。建议在系统边界集中处理窄化,保持计算链路类型一致性,并通过分层策略(建模用double,控制用float)确保数值稳定性。核心思想是让窄化成为清晰可控的

Double Galaxy 80

新发现

可以用crosstool-ng建立arm-linux 4.3.2 交叉工具链

397

【学习系列】SAP RAP 2:创建第一个RAP应用

本文介绍了从零开始创建基于SAP RAP(ABAP RESTful Application Programming Model)的Fiori应用的完整流程。首先说明了学习RAP需要结合官方文档和教程,并提供了相关资源链接。文章详细讲解了开发环境的准备要求,包括系统版本、开发工具和基本知识。重点演示了如何通过8个步骤创建支持CRUD操作和草稿功能的RAP应用:1)创建数据库表;2)定义CDS视图实体;3)创建投影视图;4)定义行为;5)创建行为投影;6)定义服务;7)绑定服务;8)添加UI注解。

DeveloperMrMeng的博客 1499

linux之crosstool-NG(1)生成toolchain

Crosstool-NG 是一款用于建立交叉编译器的开源工具。交叉编译器是一种特殊类型的编译器,可以在一种类型的计算机上(称为“主机”)为另一种类型的计算机(称为“目标”)生成可执行代码。这对于嵌入式系统开发者特别有用,他们需要在功能强大的主机上为资源受限的目标设备(如 ARM 或 MIPS 微控制器)生成代码。自定义构建: Crosstool-NG 允许用户选择他们想要的特定版本的 GCC,glibc 和 binutils,以及其他的库和工具。这意味着你可以根据项目需求创建一个精细调整的工具链。

梅花香自苦寒来,宝剑锋从磨砺出。 3880

【GameFramework框架内置模块】9、有限状态机(FSM)

这篇文章分享FSM有限状态机,了解过StarForce源码的同学相比都比较了解,GameFramework框架给我们抽象了一个Procedure流程的概念。这个Procedure流程可以方便的处理我们游戏从启动到游戏的各个流程阶段的处理逻辑,实现的核心就是FSM状态机,内部的Procedure流程就是不同的FsmState状态。接下来,就是FSM有限状态机的教程了。有限状态机(Finite-state machine,FSM)

优快云博客专家,Unity3D高级软件工程师,《Unity 3D从入门到实战》作者。 2533

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

用crosstool-ng建立arm-linux交叉工具链

crosstool-ng是新的用来建立交叉工具链的工具,它是crosstool的替换者.<br />使用crosstool最多只能编译gcc 4.1.1 glibc 2.x的版本.<br />而crosstool-ng一直保持着更新,现在最新能够建立 gcc 4.3.2版本 glibc 2.9版本...在使用低于4.1.1的版本编译2.6.29 kernel时,会出现include/linux/compiler-gcc4.h:7:3: error: #error Your version of gcc mi

babyfans的专栏 2921

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

在fedora12下用crosstool-ng建立arm-linux交叉编译环境

在fedora12下用crosstool-ng建立arm-linux交叉编译环境    花了几天时间才把基于crosstool-ng的arm-linux交叉编译环境建立好,其间过程中一路磕磕碰碰,较为辛苦,最终成功完成,倍感欣慰。趁着记忆余温,及时作个总结记录。<br />    之所以用crosstool-ng是因为crosstool-ng是新的用来建立交叉工具链的工具,它是crosstool的替换者。crosstool的gcc版本只能到4.1.1,无法编译版本高于2.6.29的linux内核。而cros

babyfans的专栏 2659

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain&#39;s apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath(&#39;DeepLearnToolbox&#39;));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand(&#39;state&#39;,0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W&#39;); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand(&#39;state&#39;,0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = &#39;sigm&#39;;%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, &#39;Too big error&#39;);```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand(&#39;state&#39;,0)sae = saesetup([784 100]);sae.ae{1}.activation_function = &#39;sigm&#39;;sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)&#39;)% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;;nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, &#39;Too big error&#39;);```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x&#39;,28,28,60000))/255;test_x = double(reshape(test_x&#39;,28,28,10000))/255;train_y = double(train_y&#39;);test_y = double(test_y&#39;);%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you&#39;ll get around 1.2% errorrand(&#39;state&#39;,0)cnn.layers = { struct(&#39;type&#39;, &#39;i&#39;) %input layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 6, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %sub sampling layer struct(&#39;type&#39;, &#39;c&#39;, &#39;outputmaps&#39;, 12, &#39;kernelsize&#39;, 5) %convolution layer struct(&#39;type&#39;, &#39;s&#39;, &#39;scale&#39;, 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, &#39;Too big error&#39;);```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, &#39;Too big error&#39;);%% ex2 neural net with L2 weight decayrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex3 neural net with dropoutrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex4 neural net with sigmoid activation functionrand(&#39;state&#39;,0)nn = nnsetup([784 100 10]);nn.activation_function = &#39;sigm&#39;; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex5 plotting functionalityrand(&#39;state&#39;,0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = &#39;softmax&#39;; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand(&#39;state&#39;,0)nn = nnsetup([784 20 10]); nn.output = &#39;softmax&#39;; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, &#39;Too big error&#39;);```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

M3芯片Mac上安装arm64位ubuntu22.04并编译交叉工具链gcc4.9.2

编译前会去下载相应的库,通常需要几个小时,可以手动下载目标库到crosstool-ng/.build/tarballs这个路径下,这样比较快。编译会报错,会重复的修改后清理并重新编译,为了不让他每次重新编译时都去下载,将这个目录下的拷贝一份,重新编译时,直接将备份的压缩包考到该路径下,他会检测跳过下载步骤,节省时间。wget http://ftp.gnu.org/gnu/gcc/gcc-4.9.2/gcc-4.9.2.tar.bz2,手动下载放到crosstool-ng/.build/tarballs/

weixin_69434680的博客 2347

使用crosstool_NG制作arm-linux交叉编译链

由于一般嵌入式开发系统的存储大小是有限的,通常要在PC机上编译然后下载到目标机上运行,这就需要交叉编译工具链。制作arm-linux交叉编译链一般可以使用crosstool_NG工具。 1. 下载crosstool_NG、GCC源码和构建工程 1.1 下载最新的crosstool_NG 官网:http://crosstool-ng.org/ 1.2  下载GCC源码 链接:https:/

不忘初心,方得始终。 6424

crosstool-ng 交叉工具链默认配置 名词解释

crosstool-ng默认配置列表 crosstool-ng版本1.23.0   安装使用参考 centos7用crosstool-ng构建交叉工具编译链 https://blog.csdn.net/whatday/article/details/86991907 使用命令 ct-ng list-samples 得到  [G..] aarch64-rpi3-linux-gnueab...

whatday的专栏 6万+

Crosstool-NG入门教程:5步搭建第一个ARM交叉编译器

Crosstool-NG是一款功能强大的交叉工具链生成器,能够帮助开发者轻松构建适用于不同架构的编译器工具链。本文将通过5个简单步骤,带您快速搭建第一个ARM交叉编译器,即使是新手也能轻松上手。 ## 步骤1:准备环境与获取源码 在开始之前,请确保您的系统已安装必要的依赖库,如`build-essential`、`libtool`、`autoconf`等。然后通过以下命令克隆Crosstool

gitblog_00773的博客 695

在Fedora13下用cross-ng建立arm-linux交叉编译环境

在Fedora13下用cross-ng建立arm-linux交叉编译环境2010-11-08 16:20 发表      系统分类:EDA      自定义分类:FPGA标签:armlinux交叉编译一.选择crosstool-ng作为建立交叉编译链工具<br />使用crosstool最多只能编译gcc 4.1.1 glibc 2.x的版本.<br />使用crosstool-ng能建立新的工具链(gcc 4.3.2 glibc 2.9),以支持对最新kernel编绎.<br />crosstool-ng

babyfans的专栏 1808

用crosstool-NG-1.9.3构建ARM工具链

用crosstool-NG-1.9.3构建ARM工具链     在成功重装了两次系统之后之前的移植工作终于还是被我弄丢了,无奈只好一切重头再来了。     首先下载u-boot源码,下载地址为ftp://ftp.denx.de/pub/u-boot/,这次将要移植的版本为2010-12。     制作交叉工具链(Cross-Tool),还是使用crosstool-NG来制作编译工

弱水三千 只取一韶 1159

用crosstool-ng建立Linux 交叉编译环境

转载自: http://hi.baidu.com/shishlv/blog/item/8699d426e3aedd1a8a82a1f5.html用crosstool-ng建立Linux交叉编译环境(以S3C2440(armv4t)为例)     最近准备针对支持ARMv4指令的可执行文件进行反汇编,但是当我安装arm-linux-gcc并用其进行编译一个简单的c程序时,却只能得到支持 ARM

transistor0的专栏 1230
上一篇: grub-0.97源码分析(1)
下一篇: ubuntu bochs 编译安装
刘军卫
博客等级 码龄19年 1143粉丝 245原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值