Re: gld 如何引用外部定義
|
||||
---|---|---|---|---|
初級會員
|
感謝提供測試方式。
發表於: 2023/1/12 11:24
|
|||
|
gld 如何引用外部定義
|
||||
---|---|---|---|---|
初級會員
|
請教如何讓 .gld 檔能夠引用外部定義?
例如在 ABC.h 內含 #define XYZ 2 如何在 .gld 內實現如底下判斷式 #if XYZ > 1 ... #else ... #endif
發表於: 2023/1/11 13:22
|
|||
|
Re: 無關中斷,使用 Codeoffset 會使程式運作不正常
|
||||
---|---|---|---|---|
初級會員
|
參照:
已回寄給了, 謝謝您!
發表於: 2021/8/19 9:39
|
|||
|
Re: 無關中斷,使用 Codeoffset 會使程式運作不正常
|
||||
---|---|---|---|---|
初級會員
|
參照:
感謝您, 是否方便用 Line 聯繫您? 若可以, 請將 Line ID 寄至 picer2012@gmail.com
發表於: 2021/8/18 16:07
|
|||
|
Re: 無關中斷,使用 Codeoffset 會使程式運作不正常
|
||||
---|---|---|---|---|
初級會員
|
參照:
Hello, 我有在 Program Memory 比對一小部分頭尾程式, 沒看到不一致(同 Hex File 比對) 我不是單純靠 Bootloader 載入 APP 做幾次由 Bootloader 寫入都相同異常, 就基本不再用 Bootloader 寫 APP, 畢竟這動作較耗時 使用 Debug 模式去看程式跑到哪邊是可以, 但是我覺得與實際燒錄執行有出入。 實際燒錄用燈號來表示程式執行 ”經過/沒經過” 的地方與 Debug 停止處不符合。 而且我透過 X IDE 做結合 / 編譯 / 燒錄, 期間只有設置 Codeoffset 不一樣 程式佔用也不足 OTA 更新區 的 30% 問題是 Codeoffset 0x1000 會正常, 設置 Codeoffset 0x10000 會不正常 當然設置 Codeoffset 0x10000 的時候也要讓 Bootloader 預設跳轉一致
發表於: 2021/8/18 15:47
|
|||
|
Re: 無關中斷,使用 Codeoffset 會使程式運作不正常
|
||||
---|---|---|---|---|
初級會員
|
參照:
Hello, 透過 Target Memory Views 跟 Hex File 要人工比對的話 不管透過 IDE 結合編譯燒錄還是由 Bootloader 由於資料有大於 20K Bytes, 有點難度 0.0 我稍微比較頭尾是一致的 另外我燒錄不只一次, 也有換不同顆的 MCU, 應該不會次次都燒錄失敗或不完全
發表於: 2021/8/18 13:21
|
|||
|
Re: 無關中斷,使用 Codeoffset 會使程式運作不正常
|
||||
---|---|---|---|---|
初級會員
|
參照:
Hello, 有的, 上述的加載 Bootloader.h 就是透過 MPLAB X IDE 做的(編譯結合與燒錄) 然後我有再測試將 APP.h 透過 Bootloader 去寫入 OTA 區塊, 會得到同樣異常的結果
發表於: 2021/8/18 13:10
|
|||
|
Re: 無關中斷,使用 Codeoffset 會使程式運作不正常
|
||||
---|---|---|---|---|
初級會員
|
參照:
Hello, 感謝回覆 可以確定, 因為我有在 APP 額外加燈號測試, 確實有進 0x10000 且有繼續往下執行一小部份 甚至都透過燈號知道執行到哪邊就會異常 我將那行程式註解掉, 重新編譯執行, 它就在註解掉的下一行會異常 而且不管下一行是不是副程式或簡單的 if 判斷式都會異常, 就算在 APP 開頭將中斷全關掉, 也不能正常跑完開頭不需要進中斷的那部份程式 我寫一個簡單新的 APP,功能是由 Timer 2 每 0.1 秒中斷反向 Led 這個新 APP.h + 相同 Bootloader.h 在 0x1000 能正常, 偏移改 0x10000 也正常能閃燈 原本的 APP 是比較大, 但也不過佔用全部不到 1/4 的 PFM
發表於: 2021/8/18 12:34
|
|||
|
Re: 無關中斷,使用 Codeoffset 會使程式運作不正常
|
||||
---|---|---|---|---|
初級會員
|
參照:
Hello, 感謝回覆 我上面有說了喔, 我有重新定定義偏移重置位置, 也包含兩區各自的中斷偏移位置 這些都在 Bootloader 裡面有設置好了 而且程式有由 Bootloader 運作移交給 0x10000 (更新區的起始) 並往下執行一小段程式 這一小段程式其實也沒有進中斷, 就算我關掉 GIE 等也是一樣異常
發表於: 2021/8/18 11:46
|
|||
|