QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2091|回复: 2

如何让自己的应用程序运行在armlinux下?疑问中~~~

[复制链接]
发表于 2005-11-3 09:42:39 | 显示全部楼层 |阅读模式
arm-elf-gcc的交叉编译环境里有一个genromfs工具,可以把自己的程序加载到testutils里面已经做好的测试系统里,例如自己写的helloworld程序,可以经过如下过程之后在skyeye里运行uclinux然后输入hello就可以运行了。
cd testsuits/at91/uclinux2(当然你还可以用别的)
mkdir romfs(建一个目录,后面用)
mount -o loop boot.rom /mnt/emb(这个可以是mnt下的任意目录)
cp -r /mnt/emb/* romfs
把hello程序拷贝到/romfs/bin目录里
genromfs -f boot.rom -d romfs/
启动skyeye
skyeye linux
(skyeye)target sim
(skyeye)load
(skyeye)run
启动之后输入hello就可以在终端看到显示:hello,world!
但是armlinux怎么办呢??编译器我用的是arm-linux-gcc,因为arm-elf-gcc不能编译armlinux的应用程序,使用的是打包好的toolchain,在RH9下,我已经成功地编译好了helloworld程序,并把它拷贝到testsuits的ep7312的ep7312_with_net目录下
我试过用ep7312里面的测试程序,不过把上面的几个命令修改了一下,因为ep7312_with_net里面用的是initrd.img文件做的映像。我用的命令如下:
mkdir romfs(建一个目录,后面用)
mount -o loop initrd.img /mnt/emb
cp -r /mnt/emb/* romfs
把helloworld程序拷贝到/romfs/usr目录里
genromfs -f initrd.img -d romfs/
启动skyeye
进入usr目录里能看到hello,但是不能运行,显示bad command or file
同时imitrd.img文件经过genromfs之后会变小,不知道是何原因?

为什么用arm-linux-gcc编译好的程序不能在skyeye仿真的armlinux上运行??
这个问题已经困扰我一个多星期了,希望有高手能指点一下!谢谢!!
发表于 2005-11-3 12:50:14 | 显示全部楼层
1.)确保你的usr已经在路径里了.最好放在bin下.
2.)确保有libc库(如果动态编译),并查看是否已经包含类库路径.
回复

使用道具 举报

发表于 2006-5-31 13:36:44 | 显示全部楼层
请问楼主,问题解决了吗?我现在也遇到同样的问题.
请告诉我解决的方法好吗?谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-23 11:19 , Processed in 0.045945 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表