AN10995 LPC1100 Secondary bootloader
如果內建 ISP功能不能滿足你架構上的需求,該怎麼辦 ?
NXP現在提供一個範例,藉此範例可修改為你需要的通訊介面,透過這介面來更新MCU 內Flash的code.
可惜的是這個Boot loader範例還是走UART.( On chip boot loader也是) .
最近要利用這個改為I2C 介面的boot loader.
所以先試過這個AN.(Application Note.)
操作上不難,準備一套LPCXpresso, RS232. 這之前線路都準備過了,請參考
將Application 與 Bootloader 都build過.
使用LPCXpresso 將Bootloader 燒錄到LPCXpresso上的LPC1114
與PC透過RS232連線. 不過這次PC端 RS232 軟體使用視窗內建 Hyper Terminal
Hyper Terminal 設定 9600-8-N-1
這時候應該會再Hyper Terminal 上見到如下圖1
會見到C每隔一小段時間就出現一個C,這表示鋼材燒錄的Bootloader已經開始運作,等著我們透過RS232 傳送資料,並且作燒錄動作
接著選擇傳送檔案
並如下圖2設定. 通訊協定 1K Xmodem ,選擇Application.bin
接著按傳送.
傳送完成後,將Hyper Terminal 斷線.這時候會見到LPCXpresso板上的LED2開始閃爍,這就表示2nd boot loader已經完成更新Firmware的動作.
如果內建 ISP功能不能滿足你架構上的需求,該怎麼辦 ?
NXP現在提供一個範例,藉此範例可修改為你需要的通訊介面,透過這介面來更新MCU 內Flash的code.
可惜的是這個Boot loader範例還是走UART.( On chip boot loader也是) .
最近要利用這個改為I2C 介面的boot loader.
所以先試過這個AN.(Application Note.)
操作上不難,準備一套LPCXpresso, RS232. 這之前線路都準備過了,請參考
怎麼更新LPC1114 中的firmware? (2/2) ISP/UART 線路
將壓縮檔解開後,匯入LPCXpresso 中將Application 與 Bootloader 都build過.
使用LPCXpresso 將Bootloader 燒錄到LPCXpresso上的LPC1114
與PC透過RS232連線. 不過這次PC端 RS232 軟體使用視窗內建 Hyper Terminal
Hyper Terminal 設定 9600-8-N-1
這時候應該會再Hyper Terminal 上見到如下圖1
圖1 |
會見到C每隔一小段時間就出現一個C,這表示鋼材燒錄的Bootloader已經開始運作,等著我們透過RS232 傳送資料,並且作燒錄動作
接著選擇傳送檔案
並如下圖2設定. 通訊協定 1K Xmodem ,選擇Application.bin
圖2 |
接著按傳送.
傳送完成後,將Hyper Terminal 斷線.這時候會見到LPCXpresso板上的LED2開始閃爍,這就表示2nd boot loader已經完成更新Firmware的動作.
請問用Keil MDK測試APP部分
回覆刪除將code 從0x1000開始放
並且將 0x1000 開始長度0xC0
的擺置 0x10000000後remap vetor table
發現直接測試此code 發現無法執行
請問有什麼我需要修正的。
Hi Naurto,
回覆刪除你是將an10995 改成用Keil MDK嗎?
~MCU diy~
Hi,
回覆刪除是的,因為Bootloader部分的inline assemler有問題,就修正。問Avnet FAE他給了LPC11U14 USB bootloader範例
修正了App 部分
用將code 從0x1000開始放
並且將 0x1000 開始長度0xC0
這裡用Keil MDK memory 配置設定
在APPt程式部分0x1000 長度0xC0
擺置 0x10000000後remap vetor table
compile可以過 flash 至 target board不會執行。
還麻煩你建議
我有找到APp不可執行的問題了,
回覆刪除我必須在ox0000執行時讓code jump到0x1000部分
請問bootloader中的inline assembler
在kiel compile時都更我說thumb code
不支援我要如克服這部分。
還有我有直接將bootloader部分用
LPCXpresso v3.6.3_317 引入 compile
但都發生問題無法成功請問還需設定什麼嗎?
一位還在學習LPC1114的人
Hi Naruto,
回覆刪除恭喜你找到問題.
關於你發生問題的地方,單憑你前面的敘述,我還真難猜到問題會是哪裡? 本來還在想請你提供更多資訊.不過還好你已經找到了.
另外對於你新的問題 LPCXpresso 不能compile bootloader(an10995)的問題,我猜有可能是你只匯入 Bootloader 而忘記其他同樣zip中的其他project,而導致不能compile,不然我想an10995 內的bootloader與 appliciation 我都編譯過,應該是沒問題的.
~MCU diy~
Hi 版主大大,您好。
回覆刪除請問這個application note 的code download 到 target 之後,是不是就不能用IDE 來download 和 debug ? 以及之後要加入其他 function,是否都要 based on 這個 bootloader 的 code 再加以發展。
先謝謝您的回覆。
BR
Kevin
Hi Kevin,
刪除建議可以做兩個project, 要使用 debugger的 對應原始的memory map.
就可以正常使用IDE除錯.
作者已經移除這則留言。
回覆刪除