您尚未登录。

楼主 #1 2018-10-14 04:22:10

阿黄
会员
注册时间: 2018-10-03
已发帖子: 294
积分: 145

请教,荔枝派nano运行交叉编译的littlevgl 5.2 demo,出现Segmentation fault

使用eclipse交叉编译了littlevgl 5.2的一个简单的hello窗口demo,使用的是arm-linux-gnueabi-编译的,但是生成的文件放到nano上,执行出现Segmentation fault,使用core dump,生成core文件之后,拷贝到PC上 gdb查看,却出现
Backtrace stopped: not enough registers or memory available to unwind further
    大家怎么编译的?
Your text here

离线

楼主 #2 2018-10-14 13:28:54

阿黄
会员
注册时间: 2018-10-03
已发帖子: 294
积分: 145

Re: 请教,荔枝派nano运行交叉编译的littlevgl 5.2 demo,出现Segmentation fault

测试了最简单的helloworld,执行都会出现Segmentation fault。
eclipse编译log
13:25:16 **** Build of configuration Debug for project helloworld ****
make all
Building file: ../main/helloworld.c
Invoking: Cross GCC Compiler
arm-linux-gnueabi-gcc -O0 -Wall -c -fmessage-length=0 -MMD -MP -MF"main/helloworld.d" -MT"main/helloworld.o" -o "main/helloworld.o" "../main/helloworld.c"
Finished building: ../main/helloworld.c

Building target: helloworld
Invoking: Cross GCC Linker
arm-linux-gnueabi-gcc  -o "helloworld"  ./main/helloworld.o   
Finished building target: helloworld


13:25:18 Build Finished. 0 errors, 0 warnings. (took 1s.877ms)
<code>
#include <stdio.h>
#include <stdlib.h>

int main(void) {
    printf("!!!Hello World!!!\r\n"); /* prints !!!Hello World!!! */
    return EXIT_SUCCESS;
}
</code>

离线

#3 2018-10-14 13:45:41

达克罗德
会员
注册时间: 2018-04-10
已发帖子: 1,094
积分: 1056.5

Re: 请教,荔枝派nano运行交叉编译的littlevgl 5.2 demo,出现Segmentation fault

你是裸奔还是在Linux上跑的?

离线

楼主 #4 2018-10-14 14:02:22

阿黄
会员
注册时间: 2018-10-03
已发帖子: 294
积分: 145

Re: 请教,荔枝派nano运行交叉编译的littlevgl 5.2 demo,出现Segmentation fault

达克罗德 说:

你是裸奔还是在Linux上跑的?

linux,用的7.2.1的arm-linux-gnueabi-   以为是版本问题,就把uboot、rootfs、zImage全编译成这个版本,结果还是一样。抓狂

离线

#5 2018-10-14 14:30:37

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,191
积分: 9197

Re: 请教,荔枝派nano运行交叉编译的littlevgl 5.2 demo,出现Segmentation fault

参考链接: https://whycan.cn/t_1017.html#p4914

pighead 说:

这个问题也浪费了我几个小时,后来拿云盘上给的那个rootfs来对比,才发现:
1. arm-linux-gnueabi 这个工具链用来编译内核没有问题,编译应用则会出现问题;

2. 编译应用的问题,是因为工具链所附加的库,是面向Cortex A7来编译的;因为假如只编译,不链接: arm-linux-gnueabi-gcc -Q -v -c -mcpu=arm926ej-s hello.c ,然后用readelf -A hello.o,会发现:Tag_CPU_name: "ARM926EJ-S";但只要链接了库,就成了:Tag_CPU_name: "7-A"

3. 解决方法,重新编译工具链,使得它附带的库是用于ARM926EJ-S的,方法是:

https://briolidz.wordpress.com/2012/02/07/building-embedded-arm-systems-with-crosstool-ng/
http://unisim-vp.org/site/crosstool-arm-926ejs-linux-gnueabi-how-to.html

4. 之后再使用编译出来的external toolchain,也是完全OK的。

看看是否是这个问题?





离线

楼主 #6 2018-10-14 15:22:49

阿黄
会员
注册时间: 2018-10-03
已发帖子: 294
积分: 145

Re: 请教,荔枝派nano运行交叉编译的littlevgl 5.2 demo,出现Segmentation fault

晕哥 说:

参考链接: https://whycan.cn/t_1017.html#p4914

pighead 说:

这个问题也浪费了我几个小时,后来拿云盘上给的那个rootfs来对比,才发现:
1. arm-linux-gnueabi 这个工具链用来编译内核没有问题,编译应用则会出现问题;

2. 编译应用的问题,是因为工具链所附加的库,是面向Cortex A7来编译的;因为假如只编译,不链接: arm-linux-gnueabi-gcc -Q -v -c -mcpu=arm926ej-s hello.c ,然后用readelf -A hello.o,会发现:Tag_CPU_name: "ARM926EJ-S";但只要链接了库,就成了:Tag_CPU_name: "7-A"

3. 解决方法,重新编译工具链,使得它附带的库是用于ARM926EJ-S的,方法是:

https://briolidz.wordpress.com/2012/02/07/building-embedded-arm-systems-with-crosstool-ng/
http://unisim-vp.org/site/crosstool-arm-926ejs-linux-gnueabi-how-to.html

4. 之后再使用编译出来的external toolchain,也是完全OK的。

看看是否是这个问题?

谢谢晕哥,我试试

离线

楼主 #7 2018-10-14 17:20:40

阿黄
会员
注册时间: 2018-10-03
已发帖子: 294
积分: 145

Re: 请教,荔枝派nano运行交叉编译的littlevgl 5.2 demo,出现Segmentation fault

暂时根据群友说的用nanopi的4.4.3编译器先编译,运行OK了,直接编译linaro 7.2源码还没研究懂怎么编译

离线

楼主 #8 2018-10-14 20:35:33

阿黄
会员
注册时间: 2018-10-03
已发帖子: 294
积分: 145

Re: 请教,荔枝派nano运行交叉编译的littlevgl 5.2 demo,出现Segmentation fault

应该是这个问题,我最后是使用的buildroot里面那个arm-none-linux-gnueabi,版本是4.8.3

离线

#9 2018-10-14 21:36:35

basicdev
会员
注册时间: 2017-10-02
已发帖子: 159
积分: 159

Re: 请教,荔枝派nano运行交叉编译的littlevgl 5.2 demo,出现Segmentation fault

还是bbs好啊,大神踩过的坑都有记录,要是Q群渣都没有了。

离线

#10 2018-12-10 15:25:02

小菜
会员
注册时间: 2018-12-06
已发帖子: 45
积分: 45

Re: 请教,荔枝派nano运行交叉编译的littlevgl 5.2 demo,出现Segmentation fault

编译完了,运行速度怎么样?我这边运行littlevgl下的demo速度明显慢。

离线

#11 2019-02-18 15:06:45

tkyl01
会员
注册时间: 2018-11-19
已发帖子: 9
积分: 39

Re: 请教,荔枝派nano运行交叉编译的littlevgl 5.2 demo,出现Segmentation fault

我也遇到这个问题,但是我是用的docker中的环境编译的,也会出现Segmentation fault,好奇怪。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn