交叉编译应用程序无法运行

  • little_white wrote: 2024-04-26 10:30
    Crocodile wrote: 2024-04-26 9:19
    little_white wrote: 2024-04-26 8:50
    执行程序之后打印的,程序在虚拟机上的ubantu正常运行

    由于不清楚您的应用执行了什么,我觉得有可能是您的程序对对应的TTY作了设置。
    正常情况下程序如果用交叉编译链编译的可执行程序在ubuntu上是不能运行的。同时根据您的上下文调用了相关的硬件(串口tty),如果是用ubuntu上的gcc编译后的可执行程序应该找不到相应的/dev/ttySx设备。你可以排除一下是否和这方面有关。
    目前主要的问题还是在line 1: syntax error: unexpected ")" 的运行报错,我觉得可能还是和编译过程和上传过程相关,程序的内容应该不是关键,还是请求您执行md5sum file 命令查看几个系统上可执行文件的 md5 值以方便问题的进一步推断。
    我是先用gcc编译,在ubantu测试可以用之后再用交叉编译放到开发板运行的;“line 1: syntax error: unexpected ")" 的运行”这个问题大佬您后续留意还有没有遇到,目前我主要先跑串口功能;如果传输有问题,那不会单独就一个文件有问题吧,其他的文件应该也会传输报错,目前我就遇到一个文件报错;对串口配置的标志位确实多了,我对串口设计了很多东西,所以我怀疑是驱动不支持某些标志位导致的卡死问题,用异步IO接收串口数据的;串口的驱动程序是瑞芯微还是你们自己写的呀?自己写的,有时间可以研究一下这些标志位具体是卡死哪个标志位,我这主要是预研用你们的板子做上位机
    感谢您对我们的支持,
    “line 1: syntax error: unexpected ")"的问题之前在做开发的时候也有遇到过,但是具体的细节记不清了,我觉得可以看一下:
    1.是否调用了 glibc 的相关库,或者链接库地址没有设置好,可以用ldd命令查一下。
    2.板端是否还有空余空间
    如果我找到当时解决这个问题的方法,我会第一时间告知您。

    关于串口驱动问题这个是由瑞芯微提供的,用的是比较传统的8250驱动,在比较老版本的内核就引入了,存在不兼容新接口的可能,我们会在后续进行测试。
  • Crocodile wrote: 2024-04-26 11:39
    little_white wrote: 2024-04-26 10:30
    Crocodile wrote: 2024-04-26 9:19


    由于不清楚您的应用执行了什么,我觉得有可能是您的程序对对应的TTY作了设置。
    正常情况下程序如果用交叉编译链编译的可执行程序在ubuntu上是不能运行的。同时根据您的上下文调用了相关的硬件(串口tty),如果是用ubuntu上的gcc编译后的可执行程序应该找不到相应的/dev/ttySx设备。你可以排除一下是否和这方面有关。
    目前主要的问题还是在line 1: syntax error: unexpected ")" 的运行报错,我觉得可能还是和编译过程和上传过程相关,程序的内容应该不是关键,还是请求您执行md5sum file 命令查看几个系统上可执行文件的 md5 值以方便问题的进一步推断。
    我是先用gcc编译,在ubantu测试可以用之后再用交叉编译放到开发板运行的;“line 1: syntax error: unexpected ")" 的运行”这个问题大佬您后续留意还有没有遇到,目前我主要先跑串口功能;如果传输有问题,那不会单独就一个文件有问题吧,其他的文件应该也会传输报错,目前我就遇到一个文件报错;对串口配置的标志位确实多了,我对串口设计了很多东西,所以我怀疑是驱动不支持某些标志位导致的卡死问题,用异步IO接收串口数据的;串口的驱动程序是瑞芯微还是你们自己写的呀?自己写的,有时间可以研究一下这些标志位具体是卡死哪个标志位,我这主要是预研用你们的板子做上位机
    感谢您对我们的支持,
    “line 1: syntax error: unexpected ")"的问题之前在做开发的时候也有遇到过,但是具体的细节记不清了,我觉得可以看一下:
    1.是否调用了 glibc 的相关库,或者链接库地址没有设置好,可以用ldd命令查一下。
    2.板端是否还有空余空间
    如果我找到当时解决这个问题的方法,我会第一时间告知您。

    关于串口驱动问题这个是由瑞芯微提供的,用的是比较传统的8250驱动,在比较老版本的内核就引入了,存在不兼容新接口的可能,我们会在后续进行测试。
    同一个串口配置,在ubantu22上能正常运行,在开发板max上不行,只用了读了一半,然后剩下的,我在重启发送设备在读出来
    屏幕截图 2024-04-28 163246.png
    屏幕截图 2024-04-28 163222.png
    串口配置用的也是文档教程里面的
    屏幕截图 2024-04-28 163444.png
    大佬,这难搞喔
  • little_white wrote: 2024-04-28 8:35
    Crocodile wrote: 2024-04-26 11:39
    little_white wrote: 2024-04-26 10:30

    我是先用gcc编译,在ubantu测试可以用之后再用交叉编译放到开发板运行的;“line 1: syntax error: unexpected ")" 的运行”这个问题大佬您后续留意还有没有遇到,目前我主要先跑串口功能;如果传输有问题,那不会单独就一个文件有问题吧,其他的文件应该也会传输报错,目前我就遇到一个文件报错;对串口配置的标志位确实多了,我对串口设计了很多东西,所以我怀疑是驱动不支持某些标志位导致的卡死问题,用异步IO接收串口数据的;串口的驱动程序是瑞芯微还是你们自己写的呀?自己写的,有时间可以研究一下这些标志位具体是卡死哪个标志位,我这主要是预研用你们的板子做上位机
    感谢您对我们的支持,
    “line 1: syntax error: unexpected ")"的问题之前在做开发的时候也有遇到过,但是具体的细节记不清了,我觉得可以看一下:
    1.是否调用了 glibc 的相关库,或者链接库地址没有设置好,可以用ldd命令查一下。
    2.板端是否还有空余空间
    如果我找到当时解决这个问题的方法,我会第一时间告知您。

    关于串口驱动问题这个是由瑞芯微提供的,用的是比较传统的8250驱动,在比较老版本的内核就引入了,存在不兼容新接口的可能,我们会在后续进行测试。
    同一个串口配置,在ubantu22上能正常运行,在开发板max上不行,只用了读了一半,然后剩下的,我在重启发送设备在读出来
    屏幕截图 2024-04-28 163246.png
    屏幕截图 2024-04-28 163222.png
    串口配置用的也是文档教程里面的
    屏幕截图 2024-04-28 163444.png
    大佬,这难搞喔
    您好,我不太理解您的意思,从截图上看运行在板端的程序执行一半就中止了,在ubuntu上的程序可以正常运行,但是不清楚您的程序是做了什么操作,您是以什么形式来让程序运行的的,我无法作进一步推断。您可以在编译程序时加入-g指令,在板端运行时使用gdb运行程序进行调试,gdb提供的报错信息或许能让您找到问题具体的出错原因。