通过一些研究后我可以看到,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时出现异常的段错误相关推荐

  1. svn 错误信息:这是在主机名解析时通常出现的暂时错误,它意味着本地服务器没有从权威服务器上收到响应。

    配置一下dns就可以了 免费DNS地址:114.114.114.114 或者 114.114.115.115(国内最好的免费DNS之一,推荐使用)

  2. matlab错误使用builtin,MATLAB环境下运行MATLAB函数时发生异常

    首先,我想在演练中测试代码,但每一次我得到相同的异常: myfunc.m: function myfunc() disp('hello from MYFUNC') end 的Java: class S ...

  3. php项目webpack打包,Vue项目webpack打包部署时Tomcat刷新报404错误问题如何处理

    这次给大家带来Vue项目webpack打包部署时Tomcat刷新报404错误问题如何处理,Vue项目webpack打包部署时Tomcat刷新报404错误问题处理的注意事项有哪些,下面就是实战案例,一起 ...

  4. java编译异常有哪些_编译时JAVA最常见的错误有哪些

    如果你正学习Java语言,你在编译和执行代码的时候遇到问题,一般来说问题将分为2类:无论你遇到的是编译时错误,这说明你的程序编译失败,还是你遇到运行时错误,这是指错误发生在你成功地编译了程序但不能运行 ...

  5. 电脑提示显示服务器错误怎么解决,电脑提示错误信息:在主机名解析时通常出现的暂时错误如何解决...

    ‍ 最近有用户和小编反映电脑在接受电子邮件时会出现提示"错误信息:这是在主机名解析时通常出现的暂时错误,它意味着本地服务器没有从权威服务器上收到响应."这个问题主要是DNS解析错误 ...

  6. 怎样实现在单片机上跑LINUX系统,简述Linux如何应用在嵌入式单片机上

    大多数功能更强大的紧凑型单片机(SBC)都运行一种流行的Linux发行版,专门用于这些嵌入式板.尽管没有针对嵌入式应用程序的特定版本的Linux内核,但与运行Linux的PC或台式设备的区别通常很小. ...

  7. 嵌入式学习之linux系统编程----1 了解linux编程并且在ubuntu以及ARM上运行测试程序

    1.何为linux系统编程? linux系统编程也称为linux下的高级编程,它介于应用层与驱动层之间. 一般来说分为三个层面,分别是:应用层(写一个qt程序或者c程序就属于是应用层面).驱动层(比如 ...

  8. 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南题八——MiniGUI 和其他嵌入式 Linux 上的图形及图形用户界面系统

    简介: 为了让读者对嵌入式 Linux 当中能够使用的图形及图形用户界面有个较为全面的认识,本文将为读者介绍一些嵌入式 Linux 系统中常见的图形及图形用户界面系统,并作为<基于 Linux ...

  9. 基于 Linux 和 MiniGUI 的嵌入式系统软件开发指南(六) MiniGUI 提供的非 GUI/GDI 接口...

    1 引言 一般而言,GUI 系统的应用程序编程接口主要集中于窗口.消息队列.图形设备等相关方面.但因为 GUI 系统在处理系统事件时通常会提供自己的机制,而这些机制往往会和操作系统本身提供的机制不相兼 ...

最新文章

  1. 赠书 | 读懂生成对抗神经网络 GAN,看这文就够了
  2. 不明白点积的几何意义
  3. 全国计算机等级考试 简称NCRE,长春大学2018年下半年全国计算机等级考试(简称NCRE)招生简章...
  4. 一个操作系统组成部分
  5. 电脑常见问题_电脑知识,每日一课,计算机常用维修小技巧
  6. 第5章 Python 数字图像处理(DIP) - 图像复原与重建6 - 椒盐噪声
  7. Log4j快速使用精简版
  8. python批量雷达图_python批量制作雷达图
  9. SIMD and Avx2
  10. 用MDK调试AXF文件
  11. word快速切换多个文件窗口
  12. rectpuls函数 matlab,Matlab中的rectpuls函数解析
  13. 【Python】小甲鱼Python学习总结——代码版
  14. 两级交流放大电路实验报告
  15. Visio中旋转文本框与箭头平行
  16. Cocos Creator入门实战:桌球小游戏
  17. iOS UITextView 纯英文排版换行出错的解决方案
  18. 30天自制操作系统——第十五天实现多任务(一)
  19. android客户端恢复教程,如何从安卓手机上恢复数据?
  20. 零基础学习数据分析,这篇文教你绕过这些坑

热门文章

  1. 特朗普为何喜欢马云?阿里巴巴开始拯救美国企业
  2. 那个学Python 的同龄人,也许已经超越你了!
  3. java对象与c网络语言通信,JAVA与C语言的网络通信代码案例.pdf
  4. wxpython有哪些基本功能_用Python中的wxPython实现最基本的浏览器功能
  5. Deepin nginx lumen配置
  6. DButils工具使用笔记以及常见问题总结
  7. 一种基于邻域的聚类算法
  8. 爬虫遇到路径转换的解决方案
  9. ElasticSearch 快照 备份、恢复数据
  10. Cloudera Manager agent无法启动,拒绝链接 Failed! trying again in 2 second(s): [Errno 111] Connection refuse