就所使用的内存而言,BDM ELF文件优于普通ELF文件的优势是什么?
我知道以下两件事:
以上是我对使用ELF的主要理解,我知道如果我对错误的解释,你们会帮助我纠正自己。
我的期望是了解如何在Trace32调试器和ECM内存之间分配BDM ELF文件内容,两种ELF格式之间的优势如何,因为它们仅用于调试目的。请注意,在向客户发布应用程序/软件时,我们会根据客户闪存到ECM中的FLS格式发布。
如果您需要更多信息继续回答我的问题,请告诉我。
答案 0 :(得分:1)
好的,我会再试一次:
如何在Trace32调试器和ECM内存之间分配BDM ELF文件内容?
ELF文件可以保存调试符号信息(将内存位置和寄存器与函数和变量相关联),trace32使用它来帮助您进行调试。该符号信息保存在trace32中,用于解码芯片的BDM输出(主要是寄存器值),并提供超出裸装配的有用信息。
两种ELF格式如何? 两者都有利于两者 仅用于调试目的?
这取决于您的调试工具和开发工具链。正如我在其他答案中所说,ELF只是一种标准格式。用于行编程的天气取决于您的开发工具在链接时所执行的操作。既然你没有告诉我你的工具链是什么,我真的只能推测。
如果您的设备具有扁平内存型号和集成ROM(大多数32位设备,存储量较小),则只需一个文件即可对设备进行编程。由于RAM和内部闪存的寻址方式相同,因此地址只需匹配所需的目的地。
另一方面,如果您有两个存放ROM的地方(我怀疑您的产品就是这种情况)并且它们没有被解决,那么可能需要两个文件。如果存在与外部闪存ROM芯片(或SD卡等)接口的ECU,则会出现这种情况。在这种情况下,需要单独的图像写入片外存储器,因为地址可能会重叠(ELF假定一段数据的唯一地址)。因此,在您的情况下,需要两个ELF文件:一个指定要加载到RAM中的调试设置以在调试中启动设备,另一个指定OS的符号信息以及编程到外部闪存芯片中的其他数据。 FLS文件可能指定了程序员用来处理ELF中不存在的外部闪存的信息,但这取决于架构(我不熟悉诺基亚如何设计他们的硬件)。
这可能有助于获得一般的ELF信息:http://blog.ksplice.com/tag/elf/
答案 1 :(得分:-1)
你的问题没有任何问号。因此,我不确定我是否完全回答了你的要求。
此信息主要来源于使用BDM上的ELF文件,而非实际信息 文档:
ELF是文件规范,因此所有ELF文件都应该相同。 ELF文件由链接器生成,包含符号信息以及按部分组织的可执行代码。当用户编程ECM时,调试器/程序员读取ELF文件,选出部分地址及其相关代码,然后根据需要写入。
可执行文件是写入RAM还是ROM取决于ELF中各部分的地址(通常可通过链接器读取的配置文件进行配置)或程序员“编程”时的程序员设置。大多数调试器都可以选择将映像加载到ROM或RAM。程序映像的唯一区别是代码和变量的位置。
在您描述的情况下,您的程序员似乎无法从elf文件中提取可执行数据。我假设您的fls文件是某种原始图像文件,可以逐字逐句写入目标硬件。