草庐IT

c - ARM 平台上没有来自 SIGABRT 信号的回溯?

我在信号处理程序中使用“backtrce()”和“backtrace_symbols_fd()”函数来生成用于调试的回溯(GDB不可用)。它们在x86桌面(Ubuntu)上运行良好,但在目标设备(基于ARM)上,Abort信号的回溯(由于double-free错误)仅显示三个帧:信号处理程序还有两个来自libc,这对调试我们的代码没有用!SEGV上的回溯(例如使用错误的指针)确实会产生良好的回溯。为什么我不能在ARM上获得有用的ABRT信号回溯?[为清楚起见编辑了问题]这是一个演示问题的简单测试程序:#include#include#include#include#include//S

linux - linux x86平台学习ARM所需工具

关闭。这个问题不符合StackOverflowguidelines。它目前不接受答案。我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。关闭3年前。Improvethisquestion我有一个x86、linux机器。在阅读有关ARM的各种信息时,我很好奇,现在我想花一些时间学习这种体系结构。我现在的目标是能够为ARM编写简单的汇编程序,使用一些汇编程序为ARM生成目标代码,并能够在模拟的ARM机器上运行该程序。首先,我下载了ARM体系结构引用手册。根据here的信息,Linux不支持Keil,因此请帮助我使用我需要的工具(汇编器、仿真器)。

linux - 构建 ARM GNU 交叉编译器

类似的(描述性较差的)帖子是here.我正在尝试使用Ubuntu上的最新版本推出我自己的工具链,并希望这里有足够多的Linux社区,以便我可以在出现某些问题时获得具体建议。在大家的帮助下,我希望最终能将其变成有用的引用。首先,几乎每个人都提到的“Crosstool”有点过时(2006年),而“Crosstool-NG”似乎现在在我的机器上失败了。我宁愿调试过程本身而不是脚本(这似乎需要我理解过程)。以下是我目前所做工作的基本步骤;目前我一直在尝试编译第一遍GCC。失败的地方......失败是因为缺少包含“crti.o”的交叉编译库:#./gcc-4.4.1/configure--tar

linux - 如何在 ARM Cortex M3 开发板上运行 Linux?

我有一blockLuminaryLM3s8962ARMCortexM3开发板,虽然我已经能够使用KeilRTOS为其编程,但我更愿意在linux和嵌入式libc之上进行开发。我想知道的是我怎样才能在我的主板上真正获得linux内核以及我的应用程序和依赖项?它有一个SD插槽,我可以创建某种文件系统镜像并使用引导加载程序对电路板进行编程吗?我必须自己编写引导加载程序吗?我完全不知道从哪里开始。我研究了yocto项目,但我仍然不知道如何实际处理数兆字节的内核和文件系统镜像文件并让我的板运行它们。 最佳答案 Linux到M3的移植是由ARM

linux - ARM Linux Atags 与设备树

设备树和ATAG有什么区别?另外,ATAG是必须的吗?内核希望它们位于固定地址,还是希望它们位于r0-r3中? 最佳答案 设备树描述了内核用来选择要加载的驱动程序的硬件的所有信息,所有MMIO接口(interface)的位置等等……在运行时。ATAGs只是描述了诸如在哪里可以找到initrd和内核参数、内存等之类的东西...-关于机器的所有其他内容都硬编码到内核中。现在首选的方法是使用设备树而不是ATAG。优点之一是添加新平台并不总是需要向内核添加新代码。要回答你的第二个问题,如果你已经阅读了bootingLinuxontheARM

ARM官方推荐的JTAG/SWD接口

JTAG/SWDInterfaceTheULINKplus supportsanisolatedJTAG/SWDinterfaceusingalow-cost10-pin(0.05")connector.TechnicalcharacteristicsInterfaceDescriptionJTAG/SWDVoltagerange:1.2V..5.5VClockspeed:configurableupto10MHzSWOtracecapturing:datarateupto50Mbit/s(UART/NRZMode)Isolation:1kVSupportshot-pluggingtoarun

linux - 为 ARM 架构使用 objdump : Disassembling to ARM

我有一个目标文件,正在尝试反汇编它。当我使用时:objdump-dexample.o我得到一个文件格式为elf64-x86-64的程序集。我正在尝试将其反汇编为ARM,我该怎么做? 最佳答案 如果你想反汇编ARM代码,你最好有一个ARM工具链,这是我得到的:http://bb.osmocom.org/trac/wiki/toolchain有了这个之后,你就可以使用arm-elf-objdump而不是objdump。我使用的命令是arm-elf-objdump-D-bbinary-marmbinaryfile.dat如果查看联机帮助页

linux - ARM 是否在 NEON 运行时闲置?

可能类似于:ARMandNEONcanworkinparallel?,但不是,我还有一些其他问题(可能是我理解的问题):在协议(protocol)栈中,当我们计算校验和时,这是在GPP上完成的,我现在将该任务作为函数的一部分移交给NEON:这是我作为NEON的一部分编写的校验和函数,发布在StackOverflow中:ChecksumcodeimplementationforNeoninIntrinsics现在,假设从linux调用这个函数,ip_csum(){……csum=do_csum();//functioncallfromarm……}do_csum(){……//NEONopti

linux - arm "versions?"之间的差异(仅限 ARMv7)

基本上我想知道ARMv7l和ARMv7hl之间的区别?我有一个带有armv7l的arm处理器,并且有很多armv7hl的rpm。我不完全知道我必须搜索什么才能获得相关信息。这个“后缀”叫什么?还有其他类型吗?他们有什么不同之处? 最佳答案 我会假设它指示为little-endian和hard-floatABI编译的包(视情况而定)——即它是一个软件的东西,只与硬件。换句话说,你实际上并没有“armv7l”处理器——你有一个ARMv7处理器,它可能有一个硬件FPU(如果你真的想的话,可以运行big-endian),但你碰巧是运行一个不

linux - 找不到 gcc-arm-linux-gnueabi 命令

我正在尝试为ubuntu安装gnuarm工具链。我首先从CodeSourcery下载了tar。但是,当我进入bin文件夹时,我无法运行任何二进制文件。我尝试过使用./和不使用它并将其放入PATH中,它一直告诉我“未找到命令”,但该文件就在我面前的文件夹中。然后我尝试了sudoapt-getinstallgcc-arm-linux-gnueabi除非它说它已经安装成功,我找不到它whereisgcc-arm-linux-gnueabi。谁能帮忙? 最佳答案 固定,使用:sudoapt-getinstallgcc-arm*