存档在 2008年4月

又是一次Hello world

今天又写了一次Hello World!
今天开始在uClinux上写程序了。我使用的平台是S3C44b0x + Nor Flash。主分区为只读的JFFS2文件系统,用户区使用的是读写的JFFS2,ramdisk区采用的是ext2文件系统,用来接收串口发来的文件。
交叉工具还是用的arm-elf-gcc,它是适用于没有MMU的平台,有MMU的请使用arm-linux-gcc。编译的时候一般来说需要加-elf2flt参数,意思是将elf格式转为uClinux上常用的可执行文件格式flt;如果没加可能产生如下错误:

/usr/local/lib/gcc-lib/arm-elf/2.95.3/libgcc.a(__main.o): In function `__do_global_ctors’:
__main.o(.text+0xc4): undefined reference to `__CTOR_LIST__’
/usr/local/lib/gcc-lib/arm-elf/2.95.3/libgcc.a(__main.o)(.data+0×0): undefined reference to `__DTOR_LIST__’
collect2: ld returned 1 exit status

编译成功之后,可以通过不同的方式将程序的可执行印象传给uClinux。可以使用tftp来传,还可以用xmodem协议来传,这需要看你所采用的平台。

我用xmodem协议将产生的可执行文件传到uClinux上后,和平常一样的执行,出现了非常熟悉的Hello World!

当然,你也可以将其他文件传入,例如脚本。但是,要注意,嵌入式设备所使用的shell一般都是被裁剪过的,而且一般不是bash。现在多采用BusyBox,可以查看BusyBox的一些简单信息。你可以通过重新编译内核时,选择busybox相应的选项来添加一些常用的shell命令。

(4) 条评论

牙周炎

今天牙周炎很疼……
今天算是把第一个项目做完了,项目文档和测试文档也都交了。折腾了三个星期,算是做完了吧。
下个星期可以开始毕业设计了,传说中的文件系统……
可惜下周我五天要请假三天,呵呵。喜事,我二姐要结婚了。
明天是部门活动,去清云山爬山。上周才爬的鼓山,这周马上又要去爬了,还真锻炼啊。在福建爬山和在陕西的时候爬秦岭完全是两种感觉,或许我会更喜欢爬秦岭吧,自由自在,没有太多什么现成的,全靠自己去探索和发现,两次去同一个位置,走的也决不是同一条路,看不同的风景,回来又是在大山中瞎折腾,弄得衣服都废了。回学校的时候,没说的,一定要去补一次华山之行!
希望这个项目就到此为止了,不要再让我天天VC,我实在用够了,也不想碰什么MSDN了,我还是回到我的manpage去的好。

(4) 条评论