<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > AT91SAM7Sxx系列MCU Boot-Loader的設計

AT91SAM7Sxx系列MCU Boot-Loader的設計

作者: 時(shí)間:2011-08-27 來(lái)源:網(wǎng)絡(luò ) 收藏

2.3 的操作
把所有操作的函數定義在RAM空間,例如:
__ramfunc int C::Erase_All(void)
因為SAM7Sxx系列的Flash采用單層結構,不允許程序在Flash上運行的同時(shí)改寫(xiě)Flash的內容, 所以要將操作Flash的程序放在RAM中運行.

2.4 數據包的處理
第一個(gè)數據包包含用戶(hù)啟動(dòng)代碼和異常向量表。Boot-Loader需要修改復位向量,并保存用戶(hù)入口地址(偽代碼如下)
if (Page == 0) {
Get User Entrance Address
Replace User Entrance Address with Boot-Loader Entrance Address
Program first page into Flash
Set flag to indicate an unfinished task
Calculate checksum and return to PC
}
收到結束指令后需要設置完成標志(偽代碼如下):
if (Command == END_OF_TASK) {
Write last page into Flash
Reset unfinished flag
Calculate checksum and return to PC
}
如果頁(yè)地址與boot-loader 重疊,則不進(jìn)行寫(xiě)操作,僅返成功標志給PC:
if ( (Page >= BL_START_PAGE) (Page = BL_END_PAGE) ) {
ret = true ;
break ;
}

3 PC端下載軟件的實(shí)現簡(jiǎn)介
下面是標準的PC端操作流程:
- 獲得USB HID 類(lèi)GUID
- 獲得所有HID設備結構數組
- 根據 PID 獲得設備信息
- 打開(kāi)設備句柄
- 與Boot-Loader 進(jìn)行通訊
以上操作步驟在Windows, MacOS, Linux 中都是通用的,讀者可以在參考文獻3找到關(guān)于PC端程序實(shí)現的具體方法。

圖 Boot-loader 在Flash中的位置(以SAM7S256為例)

4 結論

本文介紹的實(shí)現方法簡(jiǎn)化了系列用戶(hù)程序升級過(guò)程。HID類(lèi)的USB接口增加了產(chǎn)品跨平臺應用的靈活性。筆者測試下載25K代碼約2秒鐘,具有一定實(shí)用價(jià)值。

參考文獻

[1] at91sam7s_full.pdf. Http://www.at91.com
[2] HID1_11.pdf. Http://www.usb.org
[3] Stuart Allman Using the HID class eases the job of writing USB device drivers. Http://www.edn.com


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: AT91SAM7Sxx VID Flash

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>