飞天猴 发表于 2005-11-3 09:42:39

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

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上运行??
这个问题已经困扰我一个多星期了,希望有高手能指点一下!谢谢!!

shutle 发表于 2005-11-3 12:50:14

1.)确保你的usr已经在路径里了.最好放在bin下.
2.)确保有libc库(如果动态编译),并查看是否已经包含类库路径.

stephen1w 发表于 2006-5-31 13:36:44

请问楼主,问题解决了吗?我现在也遇到同样的问题.
请告诉我解决的方法好吗?谢谢
页: [1]
查看完整版本: 如何让自己的应用程序运行在armlinux下?疑问中~~~