为基于 ARM 的嵌入式系统创建 coredump

     2023-02-22     252

关键词:

【中文标题】为基于 ARM 的嵌入式系统创建 coredump【英文标题】:Creating coredump for ARM based embedded system 【发布时间】:2014-10-29 22:00:57 【问题描述】:

我基本上是在跟进core dump note section。我没有发布那个问题,但我正在尝试做同样的事情:编写一个程序来从头开始创建核心转储文件;除了我正在尝试为在嵌入式 ARM 处理器上运行的自定义单线程固件执行此操作。

我还参考了 Google coredumper 来源以了解通常如何创建核心文件。到目前为止,我已经成功创建了一个带有 PT_NOTE 和 PT_LOAD 程序头的核心文件,GDB 可以读取它。

请注意,我正在尝试为自定义固件创建此核心文件,这不是 Linux 环境。我的问题是关于 PT_LOAD 程序头的。据我了解,我只需要创建与活动线程(需要为其创建核心)一样多的 PT_LOAD 程序标头,其中标头代表每个线程的内存映射。由于我的固件是单线程的,我只创建了一个 PT_LOAD 程序头,其中内存映射是堆栈上的地址值。

当我使用这个新创建的核心文件加载固件的 ELF 映像时,GDB 会使用“info reg”准确地打印寄存器。 GDB 还可以识别 PC(程序计数器)值并准确显示符号。但是,它无法显示堆栈中的剩余帧(“bt”不起作用)。它抱怨它“无法访问地址 (SP+4) 处的内存”。

我已经在核心文件中提供了固件的堆栈映射,GDB 应该能够在地址 (SP+4) 处读取。请注意,我可以使用“x 0x(SP+4)”检查 (SP+4) 处的值。

谁能告诉我这里缺少什么?

谢谢

【问题讨论】:

【参考方案1】:

我想通了。显然,PT_LOAD 程序头的内容——堆栈映射——并不完整。问题是它需要对正在运行的一个线程进行完整映射。在我包含整个 CPU SRAM 的内容后,GDB "bt" 和所有其他命令都可以正常工作。

此外,据我了解,可执行文件具有所有变量的地址,核心文件具有这些变量的运行时值。因此,如果任何符号驻留在内存 (RAM) 中,则应添加具有 RAM 映射的单独 PT_LOAD 程序头。之后,GDB 应该能够准确地打印这些变量的运行时值。如果没有映射,变量的值将是 0(如 GDB 所示)。

【讨论】:

基于arm的多路温度采集控制系统项目介绍

嵌入式项目实践–多路温度采集控制系统(1)项目介绍项目实践说明: 本实践项目是嵌入式开发培训(阶段1)基础应用开发视频课程的综合实践项目。 项目开发使用的技术知识点包括:C语言编程,文件编程,串口编程... 查看详情

交叉编译vim并移植到arm嵌入式linux系统

   原创作品,允许转载,转载时请务必以超链接形式标明文章、作者信息和本声明,否则将追究法律责任。   众所周知,vim是vi的增强版本,实际体验要比vi好用很多,由于笔者为ARM系统制作的基于busybox的文件系统... 查看详情

[boostrap]debian下为arm创建debian和emdebian文件系统

...最终的文件系统要大一些。emdebian 是一个非常好用的嵌入式linux操作系统,其基于debian的特点对于熟悉debian系统的人来说很容易就能得心应手地进行配置。emdebian有好几个版本:Grip,Crush 查看详情

基于arm的智能灯光控制系统设备管理

基于ARM的智能灯光控制系统(9)设备管理嵌入式开发培训(阶段2)底层系统开发智能灯光控制系统设备管理页面程序(dev_con.c)#include<unistd.h>#include<stdlib.h>#include<stdio.h>#include<string.h>#include"html.h"#include"config.h"#... 查看详情

谁有arm嵌入式基于linux系统的视频教程啊?能给我发过来吗,非常感谢,我自学急用!

参考技术A你找韦东山视频,就可以 参考技术B你好,我有韦东山的视频,是jz2440芯片的,需要的话可以给你,留个联系方式,希望对你有用追问manyanfengguang新浪的邮箱多谢大神! 查看详情

毕设教程:基于嵌入式linux和web实现的视频监控系统(arm/树莓派/jetson)(代码片段)

本文章将教你做一个用嵌入式linux开发板和web端来实现的视频监控系统。本项目是博主大学时的毕业设计题目,现分享给大家。"技术交流群:365410923"知识点:嵌入式LinuxV4L2socketWebnode.jshtmlQT硬件:开发板࿱... 查看详情

arm嵌入式主板的介绍

  嵌入式主板是嵌入在设备里面做控制、数据处理使用的CPU板,常见的有两类,即基于X86的嵌入式主板和基于RISC的ARM嵌入式主板。今天我们就来认识arm嵌入式主板,arm嵌入式主板就是一个嵌入在设备里面做控制、数据处理使... 查看详情

基于arm的多路温度采集控制系统配置文件

嵌入式项目实践–多路温度采集控制系统(3)配置文件本文档对应视频教程多路温度采集系统–配置文件配置文件使用菜单程序会读取配置文件数据。    char cmd[16];//命令数据缓冲区    load_dev(g_d... 查看详情

基于arm的多路温度采集控制系统需求分析

嵌入式项目实践–多路温度采集控制系统(2)需求分析本文档视频教程多路温度采集系统–需求分析项目实践流程:1.设计项目需求文档 说明项目设计目的,项目功能,项目模块,实现技术。 2.项目编码设计 程序要... 查看详情

基于arm的智能灯光控制系统(10)网络节点

基于ARM的智能灯光控制系统(10)网络节点嵌入式开发培训(阶段2)底层系统开发智能灯光控制系统节点设备络通信协议//--head--cmddatacrc//0x5a0x150x0x0x协议头部(2字节)命令位(1字节)数据位(1字节)校验位(1字节)功能0x5a0x15... 查看详情

使用tftp进行文件传输,arm系统移植

在嵌入式系统开发中,经常需要从主机上传送映像、文件等到目标机上。实现的方法有很多。如tftp,scp等。TFTP(TrivialFileTransferProtocol)是用来下载远程文件的最简单的网络协议,它基于UDP协议而实现。 一、TFTP的建立嵌入式... 查看详情

如何安装keilmdk-arm

...,易于学习和使用,但功能强大,足以满足要求最苛刻的嵌入式应用。每个MDK版本都包括IDE、C/C++编译器、调试器、软件包管理和CMSIS。MDK-Core为超过3,750个基于Cortex-M的设备提供领先的支持,包括新的ArmCortex-M23/M33内核。参考技术... 查看详情

arm+linux平台使用gdb/coredump分析系统日志

1.在arm+linux平台上设置环境,使能coredump相关的命令:使用ulimit-c命令当前系统coredump的开关状态:[root@mi:/]#ulimit-c00说明没有打开,我们将其打开:#!/bin/shulimit-cunlimitedulimit-c0echo"/mnt/flash/ext/core-%p-%e"&... 查看详情

在 Windows 上使用自定义交叉编译器为 arm 编译 v8

...12-07-0212:32:14【问题描述】:我想编译一个静态v8版本以在嵌入式设备上使用。制造设备的公司给了我们一个基于cygwin的交叉编译器(设备使用基于Linux的操作系统),这样我们就可以在windows平台上编写和编译代码,然后再将其传... 查看详情

ARM-NEON 用于视频格式转换

...:2012-07-2509:25:31【问题描述】:我正在尝试使用基于ARM的嵌入式系统(GumstixOvero)的NEON来加速一些视频帧转换。源为单色(Y12或Y10),目标为RGB565、RGB888或RGB32。是否有一些特定的技术/技巧可供学习和使用ARMNEON来加速这种转换并... 查看详情

《arm嵌入式linux系统开发详解》高清pdf下载链接

 《ARM嵌入式Linux系统开发详解》高清pdf下载链接百度网盘链接:https://pan.baidu.com/s/1IoguVgzbubUb5O96Ul5uyw提取码:plb8下载链接2:http://ziliaoshare.cn/Download/p_ARMQRSLINUXXTKFXJ.zip   图书简介本书是获得了大量读者好评的“Li... 查看详情

嵌入式系统的应用和开发

参考技术A嵌入式系统的应用和开发  基于嵌入式系统的具体产品应用是计算机工程史上的里程碑。深入到了各行各业,其已成为高科技领域中必不可少的工具。我下面为你整理了关于嵌入式系统的应用和开发的文章,希望对... 查看详情

yocto和bitbake

...作软件,提供模板、工具和方法帮创建定制的Linux系统和嵌入式产品,而无需关心硬件体系。目是为了使嵌入式Linux?开发更简单,更易于在不同架构间进行移植。 查看详情