技术标签: 编译器 gcc linux 工具 程序开发 嵌入式
tar -xzvf crosstool-0.43.tar.gz
cd crosstool-0.43
http://www.cn.kernel.org/pub/linux
http://www.cn.kernel.org/pub/software
ftp://ftp.cn.kernel.org/pub/linux
ftp://ftp.cn.kernel.org/pub/software
这一步可以省略,因为如果运行demo-arm9tdmi.sh 时在${TARBALLS_DIR}目录下没有相应的源码包,会自动下载其.bz2源码包。但是建议事先用下载工具下好,这样更省时间。
根据《构建嵌入式Linux系统》中的介绍,如果为不同的内核编译交叉编译工具,交叉编译工具要根据其内核重新编译过。由于我想使用最新的2.6.22.2 内核,所以在编译完以上配置的工具链后,我将“LINUX_DIR=linux-2.6.15.4 ”改成“LINUX_DIR=linux-2.6.22.2 ”,并下载linux-2.6.22.2.tar.bz2到${TARBALLS_DIR}目录下,重新编译了一次。
最后一步:进入crosstool-0.43目录,输入./demo-arm9tdmi.sh,然后就是泡茶、看书。经过不到3小时的编译(公司的烂电脑所用的时间,配置好的可以更快),就可以在${ RESULT_TOP}目录中看到想要的工具链、头文件、库文件等文件了!一般不会失败,我编了2.6.15.4内核和2.6.22.2内核都顺利结束,且下载到博创2410-S实验箱(2.4.18内核)里测试,证明编译出的Hello,world!程序(在${ RESULT_TOP}/gcc-4.1.0-glibc-2.3.2/arm-9tdmi-linux-gnu/tmp文件夹中)绝对可用(除了需要库文件的程序,因为2410-S系统中没有相应的库文件无法执行。静态编译的都可用!)!
后记:
1、有位网友按以上的方法做,碰到了如下错误提示:
abort 'Don'/''t run all.sh or crosstool.sh as root, it'/''s dangerous'
echo 'Don'/''t' run all.sh or crosstool.sh as root, 'it'/''s' dangerous
Don't run all.sh or crosstool.sh as root, it's dangerous
exec false
原因是他用root登录编译,后来他以普通用户登录,就成功了!
所以我在这里再次建议:在嵌入式开发时,最好以普通用户登录,这样Host系统会比较安全。
《构建嵌入式Linux系统》里也是这样建议的!!!
首先需要说明下,这里说的sdcard的权限并不是指在Android application程序中设置sdcard的权限读取问题。而是指在DDMS看到的目录下的那个sdcard目录的权限问题。 有时候,当你想在sdcard目录下面导入某个文件时,突然发现sdcard目录没有权限,它的权限状态为(d-------即000)。这时候我们需要做的事:1.如果你没有配置好adb运行环境...
昨天尝试编译libpcap0.9.8和jnetpcap1.2成功了,今天想着能不能编译libpcap0.9.8和jnetpcap-1.3.0-1。因为jnetpcap-1.3.0-1也支持libpcap的0.9.8版本。 libpcap0.9.8的源码下载参见前一篇文章:http://aswang.iteye.com/blog/1036305 jnetpcap-1.3.0-...
一、实验题目 五子棋游戏。二、问题分析 五子棋是双人博弈棋类益智游戏,由围棋演变而来,属纯策略型。棋盘通常15*15,即15行,15列,共225个交叉点,即棋子落点;棋子由黑白两色组成,黑棋123颗,白棋122颗。游戏规则为黑先白后,谁先五子连成一条直线谁赢,其中直线可以是横的、纵的、45度、135度。 本次Java编程我的目的是现实人机对战,即游
WEB前端学习日志第三周 Day1今日总结:通过今天的学习,共学习了5个知识点,分别是固定定位,用定位实现子元素在父元素中的剧中问题,粘性定位,锚点以及PC端网页的宽高自适应。并且解决了遗留下来的两个问题,分别是当banner图超出版心时的解决方法和轮播图的结构。固定定位固定定位很常见,几乎每个网页中都会涉及到,比如固定在网页右下角的回到顶部按钮。position:fixed; 固定定位...
【代码】linux SPI测试spidev_test。
Runtime#addShutDownHook方法是给虚拟机增加一个虚拟机关闭时的调用钩子,在虚拟机关闭的时候调用这些钩子线程。还是非常有用的一个方法,最直接的用法就是监控了,因为其是在虚拟机临关闭时被调用,所以天生可以记录虚拟机关闭这件事情,及其相关的信息;再就是清理资源什么的,也可以做一个钩子线程,这样就不用再应用中为这些清理资源的操作找合适的位置了;下面先翻译一下这个方法的Java do
今天学习了用Java写递归问题,以下就是用Java对fibo函数的应用:public class fibo {public int fibo(int n) {if(n1||n2)return 1;elsereturn fibo(n-1)+fibo(n-2);}public static void main(String []args){fibo x=new fibo();int a =x.fibo(7);System.out.println(a);}}编译运行结果如下:C:\U
昨天按照教程安装好vue-router模块后,在应用中引入router 发现没有router.map方法,百度后原来是vue2.0里的路由改了// 1. 定义(路由)组件。// 可以从其他文件 import 进来const Foo = { template: 'foo' }const Bar = { template: 'bar' }// 2. 定义路由// 每个路由应该映射一个组件。
在pycharm中的file->setting->plugins中搜索paho-mqtt显示找不到网上只有python pip安装paho-mqtt的方法,如何在pycharm中使用呢?1、查看pycharm中使用的python的路径可见我用的是vs中安装的python3.62、在cmd中cd进入\Python36_64\Scripts文件夹,目的是使用pip。(运气好的话,直接执行pip install paho-mqtt就成功了)3、cmd中执行pip show pip查看自己的
第一节:Mysql注意事项:1.程序代码默认大写,程序员代码为小写。2.每个语句都以;或者\g结束。3.任何数据都有自己的数据类型。库级操作语句:1.show databases;查找数据库里面的所有的库,所以加s。2.MySQL -uusername -ppassword 进入MySQL, exit 退出MySQL。3.show create database 数据库名字; 显示创建数据库的信息...
JQuery中HTML代码操作1. 获取或者修改标签中的HTML代码2. html()和text()的区别<script type="text/javascript"> $(function(){ var html_txt=$("div.left").html(); alert(html_txt); $("input[type=button]").clic...
etcd 核心模块下图中展示了 etcd 如何处理一个客户端请求涉及到的模块和流程。图中淡紫色的矩阵表示 etcd ,它包括如下几个模块:etcd server:对外接受客户端的请求,请求 etcd 代码中的 etcd server 目录,其中还有一个 raft.go 的模块与 etcd raft 库进行通信。etcd server 中与存储相关的模块是 applierV3,这里封装了 V3 版本的数据存储, WAL(write ahead log),用于写数据日志,etcd 启动时会根据这部分内容进行