Page 2 of 2

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

Posted: 2024-04-26 10:30
by little_white
Crocodile wrote: 2024-04-26 9:19
little_white wrote: 2024-04-26 8:50
Crocodile wrote: 2024-04-26 7:57

我这边测试的结果

Code: Select all

# stty -F /dev/ttyS4
speed 115200 baud; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;
-brkint -imaxbel
您的打印结果中多了很多标志位不太清楚是什么原因引起的,您是在重启系统修改波特率就使用stty打印还是在执行完程序后才打印的?
执行程序之后打印的,程序在虚拟机上的ubantu正常运行

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

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

Posted: 2024-04-26 11:39
by Crocodile
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驱动,在比较老版本的内核就引入了,存在不兼容新接口的可能,我们会在后续进行测试。

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

Posted: 2024-04-28 8:35
by little_white
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
大佬,这难搞喔

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

Posted: 2024-04-29 11:42
by Crocodile
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提供的报错信息或许能让您找到问题具体的出错原因。