2017-01-06 93 views
-2

我需要一種方法通過Trace32將一些數據發送到ucontroller。我聽說這是可能的,但我不知道從哪裏開始。
我實際上想要做的是在Aurix TC297 ucontroller上運行一段代碼來做一些測量(運行時,RAM等)。這段代碼實際上是一個卡爾曼濾波器,需要輸入結構向量,我也通過Trace32從計算機發送。請幫忙 !如何通過Trace32調試器發送數據到目標?

+1

對這個問題的回答很可能取決於您的具體目標和工具鏈 - 如果您希望得到答案而不是回調或封閉,則應該添加該信息。您可能需要查看調試器和/或工具鏈文檔以獲取與*「半主機」相關的信息* - 這允許目標使用調試器主機上的I/O。 – Clifford

+0

你是什麼意思「發送數據」?請澄清。 – Lundin

+0

對不起模糊的問題。我實際上想要做的是在Aurix TC297 ucontroller上運行一段代碼來做一些測量(運行時,RAM等)。這段代碼實際上是一個卡爾曼濾波器,需要輸入結構向量,我也通過Trace32從計算機發送。 –

回答

2

「通過Trace32向ucontroller發送一些數據的方式」有點含糊。取決於您實際嘗試實現的內容,可能存在各種可能性,還可能取決於所用的CPU系列和目標操作系統。總之以下的一個可能的工作:

  • 簡單一些原始數據寫入到目標存儲器可與Data.Set命令來實現。
  • 要將大量數據(甚至是整個應用程序)從文件傳輸到目標內存,Data.LOAD命令可能是正確的選擇。例如。原始二進制文件的Data.LOAD.Binary命令。
  • 要在應用程序中設置變量或甚至啓動C風格數據陣列,請使用Var.Set命令。
  • 要將數據寫入NOR閃存或片上閃存,除了前面提到的命令(將閃存聲明爲TRACE32之後)之外,還需要命令FLASH.AUTO
  • 要將數據寫入NAND,SPI或其他串行閃存,您可能應該使用FLASHFILE.Set命令(在FLASHFILE編程系統初始化後)。
  • 要在CPU運行時將數據從TRACE32傳輸到目標您可能必須正確配置SYStem.MemAccess並使用內存訪問類前綴「E」。
    例如Data.Set E:<addr> <data>
    Var.Set %E <expression>
  • 您可以使用FDX在調試器和運行目標應用程序之間進行雙向數據傳輸。
  • 爲了讓目標應用程序中打開和閱讀從計算機中運行TRACE32文件,你有合適的半主機代碼編譯應用程序並啓動在TRACE32半主機TERM.GATE命令。
+0

感謝您的回覆!對於模糊的問題抱歉。我實際上想要做的是在Aurix TC297 ucontroller上運行一段代碼來做一些測量(運行時,RAM等)。這段代碼實際上是一個卡爾曼濾波器,需要輸入結構向量,我也通過Trace32從計算機發送。從你說的,我會去代碼中聲明我的結構,然後使用Var.Set進行設置。我從來沒有使用Trace32。 Var.Set是我想要實現的最好方法嗎? –

+0

Var。Set絕對是設置聲明爲struct的向量的最簡單解決方案。但是,您可能需要多次調用Var.Set來初始化您的結構的所有元素以及數組的所有結構。因此我建議通過一個練習腳本來做到這一點:創建一個後綴爲「.cmm」的文本文件,並在其中放置所有需要的Var.Set命令。您可能還想在此腳本中使用WHILE循環,或者使用腳本中的OPEN/READ/CLOSE命令首先從純文本文件中讀取數據。另見http://www.lauterbach.com/reference_card_web.pdf – Holger

+0

感謝一羣Holger! –