新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > Bootloader技術(shù)在數(shù)字信號(hào)控制器中的應(yīng)用

Bootloader技術(shù)在數(shù)字信號(hào)控制器中的應(yīng)用

作者: 時(shí)間:2012-09-03 來源:網(wǎng)絡(luò) 收藏

6. 3 dsPIC30F器件. g ld文件的修改

程序運(yùn)行時(shí), 需要讀出用戶程序中預(yù)先設(shè)置好的一個(gè)延時(shí)值(本設(shè)計(jì)為1s) 作為下位機(jī)等待PC 機(jī)發(fā)送升級(jí)命令的周期, 還要指定用戶程序起始地址以便Boot loader程序執(zhí)行完畢后可以繼續(xù)執(zhí)行用戶程序。為了滿足這兩個(gè)要求, 必須修改用戶程序的鏈接文件( . g ld文件), 以指定用戶程序的起始地址和 程序的延時(shí)周期。對(duì)于. g ld文件的具體修改如圖2所示。

 . g ld文件的修改
圖2 . g ld文件的修改。

6. 4 Boot loader程序流程:

系統(tǒng)上電復(fù)位后, 在完成各種初始化配置后首先判斷0x500地址單元中值是否為0xFF, 如果是,則說明系統(tǒng)從未下載過用戶程序, 系統(tǒng)會(huì)一直運(yùn)行Boot loader程序等待PC 機(jī)發(fā)送下載命令; 如果0x500中的值不是0xFF, 則說明系統(tǒng)中已經(jīng)下載過用戶程序了, 這時(shí)候根據(jù)0x500中的值來設(shè)置定時(shí)器T imer2的初值并開始計(jì)時(shí), 如果UART2 在指定的自舉周期內(nèi)未接收到PC 機(jī)發(fā)來的下載命令(說明系統(tǒng)不需要下載程序), 系統(tǒng)會(huì)自動(dòng)跳出Boo tloader程序而去運(yùn)行已有的用戶代碼, 如果UART2在自舉周期內(nèi)接收到了下載命令, Boo tloader程序會(huì)進(jìn)入循環(huán)狀態(tài)等待PC機(jī)發(fā)送數(shù)據(jù)。如圖3所示。

程序流程圖
圖3 程序流程圖。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉