2010-07-15 68 views
1

就使用的內存而言,BDM ELF文件比普通ELF文件有什麼優勢?通過JTAG堵漏BDM精靈文件vs普通精靈文件

  1. BDM ELF文件可用於調試通過任何調試工具 像TRACE32:

    我知道以下兩個東西。正常的ELF文件也可以是 用於調試目的,只要我們有相應的FLS 文件(Flash文件)必須閃存到 ECM的ROM區域。

  2. BDM ELF文件被加載到ECM的RAM區域(電子 控制模塊),而正常的ELF文件及其對應的 FLS被加載到ECM的ROM中。
  3. ELF文件(無論是BDM還是普通的文件)並沒有全部加載到ECM的存儲器中(我從ECM 存儲器中瞭解到這一點,我們使用它來加載ELF,這是根據KB的 與以MB爲單位的ELF的巨大尺寸相比), ELF文件的某些部分(像類型,變量和函數等符號)保存在Trace32內存中。

以上是我對使用ELF的主要理解,我知道你們的人會幫我糾正我自己,以免我錯誤地解釋了任何東西。

我的期望是瞭解BDM ELF文件內容如何在Trace32調試器和ECM內存之間進行分配,這兩種ELF格式之間的優勢如何,因爲它們都僅用於調試目的。請注意,在向客戶發佈應用程序/軟件時,我們會根據客戶進入ECM的FLS格式進行發佈。

請讓我知道你是否需要任何信息繼續回答我的問題。

回答

1

OK,我會再試一次:

如何BDM ELF文件內容的TRACE32調試器和ECM記憶中的分佈?

ELF文件可以保存trace32用來幫助您調試的調試符號信息(將存儲器位置和寄存器與函數和變量相關聯)。該符號信息保存在trace32中,用於解碼芯片的BDM輸出(主要是寄存器值),並提供超出裸彙編的有用信息。

如何要麼的ELF格式 不是彼此既是 有利的僅用於調試的目的?

這取決於您的調試工具和您的開發工具鏈。正如我在其他答案中所說的,ELF只是一種標準格式。用於線路編程的天氣取決於您的開發工具在鏈接時的功能。既然你不告訴我你的工具鏈是什麼,我真的只能推測。

如果您的設備具有平面內存模型和集成ROM(大多數32位設備的存儲量較小),那麼只需要一個文件即可對設備進行編程。由於RAM和內部閃存地址相同,因此地址只需匹配所需的目的地。

另一方面,如果您有兩個存放ROM的地方(我懷疑是您產品中的情況),而且地址不相同,則可能需要兩個文件。如果存在與外部閃存ROM芯片(或SD卡等)接口的ECU,則會出現這種情況。在這種情況下,由於地址可能會重疊(ELF假定數據的唯一地址),因此需要單獨的映像寫入片外存儲器。因此,對於您的情況,需要兩個ELF文件:一個指定要加載到RAM中的調試設置以便在調試時啓動設備,另一個指定操作系統的符號信息以及編程到外部閃存芯片的其他數據。 FLS文件可能指定了程序員用來解決ELF中不存在的外部閃存的信息,但這取決於體系結構(我不熟悉諾基亞如何設計他們的硬件)。

這可有助於爲一般ELF信息:http://blog.ksplice.com/tag/elf/

-1

你的問題沒有任何問號。因此,我不確定我是否完全回答你的問題。

這個信息主要是從使用的ELF文件導出了BDM,而不是從實際 文檔:

ELF是一個文件規範,因此所有的ELF文件應該是相同的。 ELF文件由鏈接器生成,幷包含符號信息以及組織成段的可執行代碼。當用戶編程一個ECM時,調試器/程序員讀取ELF文件,挑出部分的地址及其相關代碼,然後根據需要寫入這些地址。

是否將可執行文件寫入RAM或ROM取決於ELF中各節的地址(通常可通過鏈接器讀取的配置文件進行配置)或程序「編程」時的編程器設置。大多數調試器都可以選擇將圖像加載到ROM或RAM中。程序映像唯一的區別是代碼和變量的位置。

在您描述的情況下,您的程序員似乎無法從elf文件中提取可執行數據。我假設你的fls文件是某種原始圖像文件,可以逐個寫入目標硬件。

+0

我認爲你不熟悉術語「FLS文件」或「.fls」文件擴展名......讓我試着用手機的例子來解釋你... – wrapperm 2010-07-16 06:54:40

+0

擴展名爲.FLS的文件是軟件閃存文件以供某些諾基亞手機使用。 'Flash'的目的或者'閃爍'的目的是改變手機操作系統或固件。手機操作系統不是存儲在硬盤上,而是保存在可以電擦除和重新編程的非易失性計算機存儲器的「閃存」中。 「.FLS」文件格式可能特定於用於創建.FLS文件的特定版本的軟件。使用不正確的軟件可能會導致操作系統損壞。類似的概念與所有ECM一起使用 – wrapperm 2010-07-16 06:55:01

+0

無論您提到的是絕對正確的,我知道上述信息。但我的問題仍然未得到答覆。 – wrapperm 2010-07-16 07:02:13

0

在BDM ELF的能力是查看更改存儲器位置,並且代碼運行時存儲器映射寄存器,並且不必將其停止。

通過使用BDM ELF,我們可以擁有硬件觀察點或斷點。這非常有用,因爲您可以在不影響執行速度的情況下更改值。一旦調試器中斷,我們可以使用調試內核和應用程序一起找到它發生的確切線路。

您不能在BDM調試器的用戶程序中設置斷點。這是因爲它插入了「暫停」指令,而這些只能由內核代碼執行。可以修改BDM驅動程序以允許通過BDM接口調試用戶應用程序。