搜索
bottom↓
回复: 21

DS-5编译的arm-linux程序无法运行

[复制链接]

出0入0汤圆

发表于 2014-6-18 18:39:01 | 显示全部楼层 |阅读模式
本帖最后由 xCamel 于 2014-6-18 18:49 编辑

各位前辈,小弟最最近刚学arm-linux嵌入式开发,为了方便,选择在熟悉的Windows平台上进行开发。使用的开发环境是ds-5,按照
这个http://www.myir-tech.com/resource/497.asp方法,想生成一个可在开发板中Linux运行的程序,将编译好的程序上传到开发板上
运行时,却提示line: 1: Syntax error: word unexpected (expecting ")"),请问这是出现了什么问题,应当如何解决

注:我使用的开发板是友善之臂的mini2440开发板。

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入0汤圆

发表于 2014-6-18 19:33:12 | 显示全部楼层
呃呃呃,能贴个代码出来吗?

出0入0汤圆

 楼主| 发表于 2014-6-18 19:40:02 | 显示全部楼层
LearningASM 发表于 2014-6-18 19:33
呃呃呃,能贴个代码出来吗?

就一个打印出Hello World的程序,程序时没有问题的,编译是成功的

出0入0汤圆

发表于 2014-6-18 19:55:32 | 显示全部楼层
用file命令查看下编译出来的文件 应该还是X86的吧?

出0入0汤圆

 楼主| 发表于 2014-6-18 21:05:35 | 显示全部楼层
dhbighead 发表于 2014-6-18 19:55
用file命令查看下编译出来的文件 应该还是X86的吧?

使用的是这个arm-linux-gnueabihf-gcc.exe编译器编译的,只在在命令提示符中,调用这个程序编译了源程序,能编译通过生成可执行文件,但是也没法在开发板中运行。

出0入0汤圆

发表于 2014-6-18 21:31:11 | 显示全部楼层
如果是用ftp把可执行文件传到开发板,要把ftp软件里的default file type设置为binary

出0入0汤圆

 楼主| 发表于 2014-6-18 21:38:05 | 显示全部楼层
ywhbn 发表于 2014-6-18 21:31
如果是用ftp把可执行文件传到开发板,要把ftp软件里的default file type设置为binary ...

我是直接用Eclipse一个自带的ftp工具上传的,在Linux系统中用过,没有问题的

出0入0汤圆

发表于 2014-6-18 21:43:52 | 显示全部楼层
xCamel 发表于 2014-6-18 21:38
我是直接用Eclipse一个自带的ftp工具上传的,在Linux系统中用过,没有问题的 ...

Windows和Linux里的ftp软件对没有后缀的文件判别方式不一样,一个认为是binary,另外一个认为是ascii。可以试试压成.zip或者.gz再传

出0入0汤圆

 楼主| 发表于 2014-6-18 22:17:12 | 显示全部楼层
ywhbn 发表于 2014-6-18 21:43
Windows和Linux里的ftp软件对没有后缀的文件判别方式不一样,一个认为是binary,另外一个认为是ascii。可 ...

有后缀名的,后缀名为  .out

出0入0汤圆

发表于 2014-6-18 22:22:29 | 显示全部楼层
file hello看一下。。

出0入0汤圆

 楼主| 发表于 2014-6-18 22:39:51 | 显示全部楼层
SNOOKER 发表于 2014-6-18 22:22
file hello看一下。。

这是file的结果:
a.out: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.31, BuildID[sha1]=6224e0b788fef36e07fad31da269d62fbe437653, not stripped

出0入0汤圆

发表于 2014-6-19 20:24:14 | 显示全部楼层
xCamel 发表于 2014-6-18 22:39
这是file的结果:
a.out: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), dynamically linked ...

这个没错的,直接拷到板上运行之

出0入0汤圆

发表于 2014-6-20 10:21:09 | 显示全部楼层
有可能是库问题,静态编译试试。

出0入0汤圆

 楼主| 发表于 2014-6-20 13:41:42 | 显示全部楼层
SNOOKER 发表于 2014-6-19 20:24
这个没错的,直接拷到板上运行之

运行不了的,就出现了之前我提的问题。我不知道是不是交叉编译器版本的问题,友善之臂提供的编译器版本是
4.4.3 。而DS-5的交叉编译器是4.7.2。 会不会是编译器版本的问题?开发板的内核是2.6

出0入0汤圆

 楼主| 发表于 2014-6-20 13:42:38 | 显示全部楼层
sys_suweixiao 发表于 2014-6-20 10:21
有可能是库问题,静态编译试试。

已经试过用静态库,依旧还是出现了相同的问题。会不会是交叉编译器的版本问题?

出0入0汤圆

发表于 2014-6-20 23:06:30 | 显示全部楼层
xCamel 发表于 2014-6-20 13:41
运行不了的,就出现了之前我提的问题。我不知道是不是交叉编译器版本的问题,友善之臂提供的编译器版本是 ...

还是装个虚拟机吧

出0入0汤圆

 楼主| 发表于 2014-6-21 21:55:49 | 显示全部楼层
SNOOKER 发表于 2014-6-20 23:06
还是装个虚拟机吧

在Ubuntu系统中的DS-5编译的程序也不能在2440开发板中运行。

出0入0汤圆

发表于 2014-6-27 08:52:14 | 显示全部楼层
本帖最后由 bruce_helen 于 2014-6-27 08:53 编辑

是不是程序权限的原因。
我的开发板使用rz命令通过串口传输程序到开发板,传输完成后程序的权限被改了。
直接执行跟你的错误是一样的。
仔细看看我的截图



图看不了,贴命令行
root@freescale /$ cd /home/bruce/sqlite/
root@freescale /home/bruce/sqlite$ ls
sqlite_arm     sqlite_test.db
root@freescale /home/bruce/sqlite$ ls -l
total 788
-rwxrwxrwx    1 root     root         12114 Jun 26  2014 sqlite_arm
-rw-r--r--    1 root     root        787456 Jan  1  1970 sqlite_test.db
root@freescale /home/bruce/sqlite$ rm sqlite_arm
root@freescale /home/bruce/sqlite$ ls
sqlite_test.db
root@freescale /home/bruce/sqlite$ rz
rz ready. Type "sz file ..." to your modem program

Starting zmodem transfer.  Press Ctrl+C to cancel.
Transferring sqlite_arm...
  100%      11 KB      11 KB/sec    00:00:01       0 Errors  

rz 3.48 01-27-98 finished.
root@freescale /home/bruce/sqlite$
root@freescale /home/bruce/sqlite$
root@freescale /home/bruce/sqlite$ ls
sqlite_arm      sqlite_test.db
root@freescale /home/bruce/sqlite$ ./sqlite_arm
-/bin/sh: ./sqlite_arm: Permission denied
root@freescale /home/bruce/sqlite$ sh -x ./sqlite_arm
./sqlite_arm: line 1: syntax error: unexpected word (expecting ")")
root@freescale /home/bruce/sqlite$ ls -l
total 788
-rw-r--r--    1 root     root         12086 Jun 27  2014 sqlite_arm
-rw-r--r--    1 root     root        787456 Jan  1  1970 sqlite_test.db
root@freescale /home/bruce/sqlite$ chmod 777 sqlite_arm
root@freescale /home/bruce/sqlite$ ./sqlite_arm
Result[0]: name=1001, occ=256
Result[1]: name=1002, occ=256
Result[2]: name=1003, occ=256

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2014-10-3 12:22:07 | 显示全部楼层
bruce_helen 发表于 2014-6-27 08:52
是不是程序权限的原因。
我的开发板使用rz命令通过串口传输程序到开发板,传输完成后程序的权限被改了。
直 ...

权限是没有问题的

出0入0汤圆

发表于 2015-7-30 22:55:03 | 显示全部楼层
xCamel 发表于 2014-10-3 12:22
权限是没有问题的

EABI不兼容的可能性最大,DS-5的arm-linux-gnueabihf默认的是hard float ,你去查一查就知道了。

出0入0汤圆

发表于 2015-7-31 10:27:49 | 显示全部楼层
应该是交叉编译器版本的问题,如果板子内核编译使用gcc 4.4.3,而DS-5编译器是4.7.2,是不能在板子上运行的

出0入0汤圆

发表于 2015-8-7 12:05:00 | 显示全部楼层
用 readelf  -h a.out 命令查看一下elf的文件头。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-25 01:49

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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