Re: near 指令使用(Access Bank)

作者 Ryang 於 2020年02月03日 12:13:25
剛下載你的程式並用 MPLAB v8.92 + C18 重新編議程式出現錯誤原因是在 Linker 那媢L不去。主要的問題是因為 C18 有用到 "Temp_Data" 作為乘法的暫存區,而這暫存區是要使用到 Access Bank 的 RAM。

因為你在程式裡的陣列宣告使用全部的 Access RAM,所以 Linker 無法安排 "Temp_Data" 在 Access RAM 的位址,所以出現了錯誤的訊息。

貼圖是修改過陣列大小後編譯成功的圖片。

Access RAM 一般建議使用在中斷函數所使用的變數及一些程式裡常常會用到或用來傳遞函數間所使用到的變數傳遞 (像參數)。一般陣列所使用到的陣列內容不會放在 Access RAM 裡,因為陣列的存取幾乎是用 FSR0 的指標做索引,放在哪一區的 RAM 其資料存取的速度都是一樣的。

附加檔案:



jpg  擷取.JPG (112.09 KB)
16_5e379de59cfd1.jpg 1102X706 px

來自: http://www.microchip.com.tw/newbb/viewtopic.php?forum=1&topic_id=22810&post_id=80303