Bootloader技術(shù)在數字信號控制器中的應用
6. 3 dsPIC30F器件. g ld文件的修改
Bootloader程序運行時(shí), 需要讀出用戶(hù)程序中預先設置好的一個(gè)延時(shí)值(本設計為1s) 作為下位機等待PC 機發(fā)送升級命令的周期, 還要指定用戶(hù)程序起始地址以便Boot loader程序執行完畢后可以繼續執行用戶(hù)程序。為了滿(mǎn)足這兩個(gè)要求, 必須修改用戶(hù)程序的鏈接文件( . g ld文件), 以指定用戶(hù)程序的起始地址和Bootloader 程序的延時(shí)周期。對于. g ld文件的具體修改如圖2所示。
圖2 . g ld文件的修改。
6. 4 Boot loader程序流程:
系統上電復位后, 在完成各種初始化配置后首先判斷0x500地址單元中值是否為0xFF, 如果是,則說(shuō)明系統從未下載過(guò)用戶(hù)程序, 系統會(huì )一直運行Boot loader程序等待PC 機發(fā)送下載命令; 如果0x500中的值不是0xFF, 則說(shuō)明系統中已經(jīng)下載過(guò)用戶(hù)程序了, 這時(shí)候根據0x500中的值來(lái)設置定時(shí)器T imer2的初值并開(kāi)始計時(shí), 如果UART2 在指定的自舉周期內未接收到PC 機發(fā)來(lái)的下載命令(說(shuō)明系統不需要下載程序), 系統會(huì )自動(dòng)跳出Boo tloader程序而去運行已有的用戶(hù)代碼, 如果UART2在自舉周期內接收到了下載命令, Boo tloader程序會(huì )進(jìn)入循環(huán)狀態(tài)等待PC機發(fā)送數據。如圖3所示。
圖3 程序流程圖。
評論