其实并不了解:从0到第一个C程序的成功运行的笔记

本文记录了从无到有,成功运行第一个C程序的全过程,包括配置skyeye.conf文件,编写sayhello.c源码,以及创建并使用Makefile进行编译。通过这篇笔记,读者可以了解到在Linux环境下,如何利用gcc命令和make工具来管理C语言项目。
摘要由CSDN通过智能技术生成
    当时选择嵌入式这个方向,我只考虑了2秒钟...

    从前天晚上开始便开始自己搭建ARM的开发、模拟平台,这时候开始,一直到现在结束,对ARM还并不了解。我选择了skyeye+uclinux这条路。于是我必须从0开始搭建。
    首先我必须解决编译器。一开始我选择了自己从0开始编译gnu工具链:最基本的,也需要binutils+gcc+glibc吧。binutils编译过了,然而问题出现了,gcc 4.2.2死活编译不过去。只好作罢,从 http://ftp.snapgear.org/pub/snapgear/tools/arm-linux/arm-linux-tools-20061213.tar.gz 下载了整套编译好的工具链,解压后就能用。为什么我还要这样去折腾自己去编译呢?有保障点的pre-compiled tool-chain都是gcc<4的,所以我想自己弄一个。可是,对我来说gcc4和gcc<4有什么差别呢?至少我用起来并没有差别……
    就这样cross-compiler的问题就初步解决了。接着是编译模拟器skyeye和操作系统uClinux。skyeye的编译相当的顺利,而uClinux的编译却困难重重。最一开始,我从 http://www.uclinux.org/pub/uClinux/dist/uClinux-dist-test-20070823.tar.bz2 下载uclinux就花了我几天的时间,不能用多线程,总共接近300M速度一直保持在1K以下,我真佩服我的执着追求的精神。下完了,解压花了我一个多小时的时间才完成,一共1.6G的source。一看到就汗,这都编译该编译多久哦!我选择了GDB/Skyeye进行编译,结果这个test版本我却怎么编译都编译不过去。我使用了各种手段来消除各种编译错误,结果还是失败了。我在想,会不会是因为这个test版还有比较大的问题的原因,于是重新下载了 http://www.uclinux.org/pub/uClinux/dist/uClinux-dist-20070130.tar.gz ,选择GDB/Skyeye结果仍然死活过不去,无论我怎么去消除各种编译期的错误……于是我尝试改成GDB/Armulator进行编译,结果……当时是非常顺利咯!就这样,uclinux编译过去了。
    编译完了,很是高兴,出现了两个文件,images/boot.rom和images/linux,一个是ROM,一个是linux内核(应该是滴)。但是,images/linux并没有包含在images/boot.rom中。生成romfs需要用genromfs程序来生成,这需要单独从新立得软件包管理器里面安装。romfs的内容在romfs/目录里面,genromfs根据这个目录来生成romfs,用来生成的命令如下:
genromfs  - - " ROMdisk "   - / home / stlxv / from_src / arm / uClinux - dist / images / boot.rom  - / home / stlxv / from_src / arm / uClinux - dist / romfs
然后就是要来启动这个OS了。先按照skyeye的说明写上默认的配置(去掉loader那一行),结果怎么运行都会出现配置错误。这让我很郁闷。后来在一个网页上看到一个配置,抄了下来,就能用了。注意,skyeye.conf必须在你当前运行的目录之下,也就是在$PWD中。由于boot.rom在uClinux-dist/中,所以建了个连接到images/boot.rom。
stlxv@stlxvcomputer: ~/ from_src / arm / uClinux -
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值