嵌入式linux段错误,在嵌入式Linux上使用C Std Lib时出现异常的段错误
通过一些研究后我可以看到,vivado是硬件开发IDE [因为它们提供了一个试用期 – 所以它是硬件开发,他们总是想要收费].
如果您使用的是Xilinx的标准SDK板,则应该预先配置所有内容.否则,硬件设计师会生成一个具有Microblaze的硬件设计.
从那时起,您可能必须使用petalinux来生成兼容的新引导,内核等图像.
您可能需要从源代码重建libstdc,但我会将其作为最后的手段.例如,不要打扰它,直到你有gdb工作并有测试结果.
开发指南显示了如何调用gdb(例如):
在目标系统上:
gdbserver主机:1534 / bin / myapp
在开发系统上:
petalinux-utils –gdb myapp后跟目标远程192.168.0.10:1534
我已经使用注释对Makefile进行了一些编辑.我已经评论了一些非必要的选项.请注意,我正在使用=运算符逐渐构建CFLAGS / CXXFLAGS
这里的基本思想是以最小的“标准”偏差进行构建.仅添加经过验证的基本选项构建和测试.逐个添加选项[每次重建和测试],直到找到导致问题的选项.
然而,我确实怀疑 – 共同 – 是一个问题的根源.此外,在较小的程度上,我有点怀疑-Wl,– 根据需要
这些选项应该有效吗?当然,但xilinx / microblaze不是没有x86 ……
我添加了两个命令行make变量:
DEBUG – 使用gdb生成调试
VERBOSE – 显示构建过程的所有内容
例如,尝试make< whatever> DEBUG = 1 VERBOSE = 1
CC = microblazeel-xilinx-linux-gnu-gcc
CXX = microblazeel-xilinx-linux-gnu-g++
CPPFLAGS ?=
CMFLAGS += -Wall -Werror
CMFLAGS += -fmessage-length=0
# compile for gdb session
# NOTES:
# (1) -gdwarf-2 may or may not be the the right option for microblaze
# (2) based on doc for -feliminate-unused-debug* petalinux/microblaze may want
# stabs format
ifdef DEBUG
CMFLAGS += -gdwarf-2
CMFLAGS += -O0
# compile for normal build
#else
CMFLAGS += -O2
CMFLAGS += -feliminate-unused-debug-types
endif
# NOTE: I used to use "@" on commands,but now I leave it off -- debug or not
# sure it's "ugly" but you can get used to it pretty quickly--YMMV
ifndef VERBOSE
Q :=
else
###Q := @
Q :=
endif
# let compiler/linker tell you _everything_:
# (1) configure options when tool was built
# (2) library search paths
# (3) linker scripts being used
ifdef VERBOSE
CMFLAGS += -v
LDFLAGS += -Wl,--verbose=2
endif
CMFLAGS += -fno-builtin
# NOTE: I'd _really_ leave this off as it may confuse c++ std as "<
# _M_insert (which is in the library,which is almost certainly _not_ using
# -fno-common)
###CMFLAGS += -fno-common
# NOTE: I'm also suspicIoUs of this a little bit because the c++ lib may have
# some "weak" symbols that the c library doesn't
###LDFLAGS += -Wl,--as-needed
# NOTE: this seems harmless enough,but you can comment it out to see if it
# helps
LDFLAGS += -Wl,--hash-style=gnu
# NOTE: an optimization only
ifndef DEBUG
LDFLAGS += -Wl,-O1
endif
CFLAGS += $(CMFLAGS)
CXXFLAGS += $(CMFLAGS)
# NOTES:
# (1) leave this off for now -- doesn't save _that_ much and adds complexity
# to the build
# (2) IMO,I _never_ use it and I erase/uninstall it on any system I
# administrate (or just ensure the build doesn't use it by removing it
# from $PATH)--YMMV
###XCCACHE = $(CCACHE)
# to compile
$(Q)$(XCCACHE) $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(CFLAGS) $< -o "$@"
# to link
$(Q)$(CXX) $(RELOBJECTS) $(LDFLAGS) $(EXT_LIBS) -o $(RELBINARY)
嵌入式linux段错误,在嵌入式Linux上使用C Std Lib时出现异常的段错误相关推荐
- svn 错误信息:这是在主机名解析时通常出现的暂时错误,它意味着本地服务器没有从权威服务器上收到响应。
配置一下dns就可以了 免费DNS地址:114.114.114.114 或者 114.114.115.115(国内最好的免费DNS之一,推荐使用)
- matlab错误使用builtin,MATLAB环境下运行MATLAB函数时发生异常
首先,我想在演练中测试代码,但每一次我得到相同的异常: myfunc.m: function myfunc() disp('hello from MYFUNC') end 的Java: class S ...
- php项目webpack打包,Vue项目webpack打包部署时Tomcat刷新报404错误问题如何处理
这次给大家带来Vue项目webpack打包部署时Tomcat刷新报404错误问题如何处理,Vue项目webpack打包部署时Tomcat刷新报404错误问题处理的注意事项有哪些,下面就是实战案例,一起 ...
- java编译异常有哪些_编译时JAVA最常见的错误有哪些
如果你正学习Java语言,你在编译和执行代码的时候遇到问题,一般来说问题将分为2类:无论你遇到的是编译时错误,这说明你的程序编译失败,还是你遇到运行时错误,这是指错误发生在你成功地编译了程序但不能运行 ...
- 电脑提示显示服务器错误怎么解决,电脑提示错误信息:在主机名解析时通常出现的暂时错误如何解决...
最近有用户和小编反映电脑在接受电子邮件时会出现提示"错误信息:这是在主机名解析时通常出现的暂时错误,它意味着本地服务器没有从权威服务器上收到响应."这个问题主要是DNS解析错误 ...
- 怎样实现在单片机上跑LINUX系统,简述Linux如何应用在嵌入式单片机上
大多数功能更强大的紧凑型单片机(SBC)都运行一种流行的Linux发行版,专门用于这些嵌入式板.尽管没有针对嵌入式应用程序的特定版本的Linux内核,但与运行Linux的PC或台式设备的区别通常很小. ...
- 嵌入式学习之linux系统编程----1 了解linux编程并且在ubuntu以及ARM上运行测试程序
1.何为linux系统编程? linux系统编程也称为linux下的高级编程,它介于应用层与驱动层之间. 一般来说分为三个层面,分别是:应用层(写一个qt程序或者c程序就属于是应用层面).驱动层(比如 ...
- 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南题八——MiniGUI 和其他嵌入式 Linux 上的图形及图形用户界面系统
简介: 为了让读者对嵌入式 Linux 当中能够使用的图形及图形用户界面有个较为全面的认识,本文将为读者介绍一些嵌入式 Linux 系统中常见的图形及图形用户界面系统,并作为<基于 Linux ...
- 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(六) MiniGUI 提供的非 GUI/GDI 接口...
1 引言 一般而言,GUI 系统的应用程序编程接口主要集中于窗口.消息队列.图形设备等相关方面.但因为 GUI 系统在处理系统事件时通常会提供自己的机制,而这些机制往往会和操作系统本身提供的机制不相兼 ...
最新文章
- 赠书 | 读懂生成对抗神经网络 GAN,看这文就够了
- 不明白点积的几何意义
- 全国计算机等级考试 简称NCRE,长春大学2018年下半年全国计算机等级考试(简称NCRE)招生简章...
- 一个操作系统组成部分
- 电脑常见问题_电脑知识,每日一课,计算机常用维修小技巧
- 第5章 Python 数字图像处理(DIP) - 图像复原与重建6 - 椒盐噪声
- Log4j快速使用精简版
- python批量雷达图_python批量制作雷达图
- SIMD and Avx2
- 用MDK调试AXF文件
- word快速切换多个文件窗口
- rectpuls函数 matlab,Matlab中的rectpuls函数解析
- 【Python】小甲鱼Python学习总结——代码版
- 两级交流放大电路实验报告
- Visio中旋转文本框与箭头平行
- Cocos Creator入门实战:桌球小游戏
- iOS UITextView 纯英文排版换行出错的解决方案
- 30天自制操作系统——第十五天实现多任务(一)
- android客户端恢复教程,如何从安卓手机上恢复数据?
- 零基础学习数据分析,这篇文教你绕过这些坑
热门文章
- 特朗普为何喜欢马云?阿里巴巴开始拯救美国企业
- 那个学Python 的同龄人,也许已经超越你了!
- java对象与c网络语言通信,JAVA与C语言的网络通信代码案例.pdf
- wxpython有哪些基本功能_用Python中的wxPython实现最基本的浏览器功能
- Deepin nginx lumen配置
- DButils工具使用笔记以及常见问题总结
- 一种基于邻域的聚类算法
- 爬虫遇到路径转换的解决方案
- ElasticSearch 快照 备份、恢复数据
- Cloudera Manager agent无法启动,拒绝链接 Failed! trying again in 2 second(s): [Errno 111] Connection refuse