簡體   English   中英

如何在嵌入式 Forth 控制器中查找和更改變量?

[英]How can I find and change a variable in an embedded Forth controller?

在維修儀表組時,我需要更換一個使用 Forth 構建在摩托羅拉MC68HC11上的控制器。 雖然我能夠轉儲整個內存,但不知道使用的是哪個 Forth,並且可用的單詞似乎非常有限。

如何在嵌入式 Forth 環境中定位和更改內存中的已知值?

根據 Forth 的風格,您可以使用vlistwords列出所有“單詞”。 單詞包括定義的任何變量或常量,並且可以使用以下運算符操作變量:

  • ! ( n addr — ) 將單長數字存儲到地址中。
  • @ ( addr - n ) 在 addr 處獲取該值。
  • ? ( addr — ) 打印地址的內容,后跟一個空格。
  • +! ( n addr — ) 向地址的內容添加一個單長數字。

對於雙長度變量,有:

  • 2! ( d addr — ) 或 ( n1 n2 addr — ) 在地址 addr 處存儲一個雙長度數字(或一對單長度數字)。
  • 2@ ( addr - d ) 或 ( addr - n1 n2 ) 從 addr 獲取一個雙長度數字(或一對單長度數字)。

補充一下 Clifford 所說的內容,重要的變量很可能在字典中會有一個由單詞或 vlist 標識的名稱。

雖然在 68HC11 上運行的程序最初是用 Forth 編寫的,但我相信它最終會被編譯成機器代碼以在微控制器上運行。 當 68HC11 第一次發布時,有幾個(一些免費的)編程工具,即這個微控制器的匯編語言程序員。 如果您有內存轉儲,也許嘗試加載到編輯器/匯編器並通過匯編代碼工作? 您甚至可以識別對您希望更改的單個端口配置、數據等的引用。 希望這個對你有幫助。 問候 AB

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM