會員登陸
帳號:

密碼:

記住我



忘記密碼?

現在註冊!
網站導航
最新下載
訪問統計 (自2012/5/3)


正在流覽:   2 名訪客





PIC18 MCC Bootloader
新會員
註冊日期:
2015/10/21 11:16
所屬群組:
註冊會員
文章: 6
等級: 1; EXP: 47
HP : 0 / 11
MP : 2 / 91
離線
各位前輩,

最近碰到一個問題,
需使用 MPLAB X 4.05, XC8 1.45,
在 PIC18F25K80 環境下用 MCC 產生 Bootloader。
參考資料如下:
1. (Simplified Chinese) 如何实现Microchip 8位MCU的软件在线升级
2. AN851, A FLASH Bootloader for PIC16 and PIC18 Devices.pdf
3. 2017 Master conference, 8-bit bootloader using MCC.pdf
4. Bootloader Generator User’s Guide.pdf

碰到幾個問題,還望不吝解惑

1. Bootloader 生成
(a) Manage configuration 在製作 No Configurations 時,在 build 之後都會出現如下警告語句
The program file could not be loaded: The Extended CPU Mode configuration bit is enabled, but the program was not built using extended CPU instructions.
請問這是什麼問題呢?在 Merge 的時候也無法 loading 這個 hex 檔案。

(b) 在 MCC 生成的 pic18f_uart.c 與 pic18f_bootloader.c 裡面有看到根據 bootloader protocol 建立的解析程式與執行程式。
所以我應該是創建一個 main.c,在其中執行 SYSTEM_Initialize() 就可以了吧?

可是為什麼當我使用 unified bootloadet application 進行燒錄時,console 出現如下字樣。

09
:22:08.824 > Device: COM6 Bootloading started
09
:22:08.868 > Reading Version ...
09:22:08.896 > Bootloader Version Read Successful
09
:22:08.896 > Erasing Device ...
09:22:08.918 > Erase Successful
09
:22:08.918 > Programming Flash ...
09:22:09.902 > Flashed Programmed
09
:22:09.902 > Retrieving Checksum ...

但我的板子卻沒有執行應有的動作呢? ( 燒錄的 APP 為單純的 LED 顯示程式 )

2. bootloader 與 app 的 Hex merge 問題
參照 Bootloader Generator User’s Guide.pdf 進行設置後,一直出現如下警告語句
(944) data conflict at address 300000h between dist/Combined/production/TEST.X.production.hex and C:/Users/justi/Desktop/TEST_BTL/TEST_BTL.X/TEST_BTL.X/dist/W_Config/production/TEST_BTL.X.production.hex

2017/12/15 09:34
轉換PDF檔 列印


Re: PIC18 MCC Bootloader
版主
註冊日期:
2004/04/30 10:53
來自 CAE, Microchip
所屬群組:
站務管理者
註冊會員
MICROCHIP
文章: 14342
等級: 72; EXP: 81
HP : 1077 / 1795
MP : 4780 / 74214
離線
先回答第一及第三個問題:

1. PIC18Fxxxx 四碼系列為增強 C 編譯的效率有多加入 20 幾個新指令,只要是讓 C 編譯時有更好的編譯效率及執行速度。這些指令集稱為 Extended Instructions。目前這些指令只被正式版的 C 編譯器所支援。如果是免費的 XC8 Lite 版本就不支援這些 Extended Instructions. 所以在 Bootloader 的 Configuration Bits 下的設定是要將這 Extended Instruction Mode 關閉的。

3. 有用到 Bootloader 的應用程式是有些限制的。Application 程式就只能使用 Bootloader 的 Configruation 的設定。因為 Bootloader 啟動在執行程式時是最先使用 COnfiguration 的設定, Application 只能沿用這個設定的。

2017/12/15 09:57
轉換PDF檔 列印


Re: PIC18 MCC Bootloader
新會員
註冊日期:
2015/10/21 11:16
所屬群組:
註冊會員
文章: 6
等級: 1; EXP: 47
HP : 0 / 11
MP : 2 / 91
離線
引用:

Ryang 寫道:
先回答第一及第三個問題:

1. PIC18Fxxxx 四碼系列為增強 C 編譯的效率有多加入 20 幾個新指令,只要是讓 C 編譯時有更好的編譯效率及執行速度。這些指令集稱為 Extended Instructions。目前這些指令只被正式版的 C 編譯器所支援。如果是免費的 XC8 Lite 版本就不支援這些 Extended Instructions. 所以在 Bootloader 的 Configuration Bits 下的設定是要將這 Extended Instruction Mode 關閉的。

3. 有用到 Bootloader 的應用程式是有些限制的。Application 程式就只能使用 Bootloader 的 Configruation 的設定。因為 Bootloader 啟動在執行程式時是最先使用 COnfiguration 的設定, Application 只能沿用這個設定的。



感謝謝版大的指教
以上兩點錯誤已解決~

但即便是 merge 完成的程式,在燒錄到板子上仍然無法正常動作~

2017/12/15 13:11
轉換PDF檔 列印


Re: PIC18 MCC Bootloader
資深會員
註冊日期:
2009/02/26 09:42
所屬群組:
註冊會員
文章: 316
等級: 16; EXP: 61
HP : 0 / 390
MP : 105 / 10636
離線
關於第二個問題 Unified Bootloader Application停在下面console畫面.

09:22:09.902 > Retrieving Checksum ...

表示燒錄的Hex file和從MCU讀回的flash資料不一致, 所以卡在該程序. 也就是說可能沒有正確Erase或是Write flash所導致.

目前最新版本MCC v3.45.1所內建的8-bit bootloader library的版本還是v2.2.0. 而Microchip官網最新的版本是v2.2.31, 建議您可以試一下該版本library(應該有解決該問題), 並搭配最新版的Unified Bootloader Application v0.1.14版來燒錄hex file.

但是目前8-bit bootloader library v2.2.31的下載頁面好像有問題.

您也可以手動修改下面程式段測試一下, 在pic18f_bootload.c中的StartWrite() function裡面, 將下面這三行comment out掉.

//EECON2 = EE_Key_1;
//EECON2 = EE_Key_2;
//EECON1bits.WR = 1; // Start the write

並加入下面這幾行

CLRWDT();

// had to switch to assembly - compiler doesn't comprehend // no need for bank switch
asm ("movf " str(_EE_Key_1) ",w");
asm ("movwf " str(BANKMASK(EECON2)));
asm ("movf " str(_EE_Key_2) ",w");
asm ("movwf " str(BANKMASK(EECON2)));
asm ("bsf " str(BANKMASK(EECON1)) ",1");


// Start the write

NOP();
NOP();

2017/12/28 15:37
轉換PDF檔 列印






無法在此發表文章
可以在此觀看文章
無法回覆文章
無法編輯自己的文章
無法刪除自己的文章
無法發起投票調查
無法在此投票
無法上傳附加檔案
無法不經審核直接發表文章

[進階搜尋]


搜尋
Microchip連結

網頁捷徑
2018 Winter Elite 報名
教育訓練
其它網站連結
電話: 02-25000405
產品技術問題產品技術支援專線:0800-717718 台北02-25088600 新竹03-5778366 Ext. 8600 高雄07-2137830 MicrochipDIRECT 專線: 07-2137830
Powered by XOOPS © 2001-2012 The XOOPS Project