久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4443|回復: 1
打印 上一主題 下一主題
收起左側

基于IAR平臺STC8A8K64S4A12單片機的一種bootloader實現更新程序

[復制鏈接]
跳轉到指定樓層
樓主
    STC8A8K64S4A12單片機程序燒錄一般用STC官方提供的stc-isp軟件,其燒錄原理是:STC8A8K64S4A12上電會先進入官方固化的ISP區執行代碼,代碼會對串口進行檢測,一旦發現上位機(PC)有發送有效數據,STC8A8K64S4A12就可以執行程序燒錄。每次程序燒錄,都要重新上電,或者軟件重啟才能進入ISP區,也只要在ISP區,串口燒錄才是有效的,而且官方在SP區固化的代碼僅支持串口燒錄,發送的串口數據要按照STC官網給的格式發送。
   另外一種燒錄程序的方式就是自己寫一個引導程序bootloader來實現程序的燒錄,比如用bootloader接收串口數據、讀取外掛flash的數據或者SD卡數據,然后一邊讀數據、一邊燒錄應用程序。STC8A8K64S4A12一上電就執行ISP區代碼,超時后,會執行bootloader程序,bootloader會檢查是否要更新程序,如果沒有,就直接跳去執行應用程序。這種方法和好處是可以不用串口去更新程序,因為串口要再加一顆MCU,或者要用專用的上位機,多了成本。通過STC8A8K64S4A12主動拷貝數據來更新程序可以說是一種省成本的方式。
   下面我用一個簡單的例子來說明一種簡單BIM的更新程序方式。
   首先新建一個應用程序工程IMAGE_A,里面放一個點燈的操作。然后把代碼的起始地址設在0x27FF。


編譯后產生的hex文件用stc-isp軟件打開,可以看到全部代碼的數據。


   然后在IAR平臺新建一個BIM工程來作為bootloader,把IMAGE_A的代碼數據存放在一個hexfile[]數組里面,執行main函數的時候,會將數組寫入到以0x27FF起點的內部flash中,然后跳轉到0x27FF執行IMAGE_A代碼。


編譯BIM工程,產生的hex文件用stc-isp軟件燒錄到STC8A8K64S4A12中,打開串口可以看到寫flash的過程


實物可以看到P5_5驅動的LED燈亮了,說明程序正常跳轉。


本例子是簡單的實現程序的燒錄,后面可以完善一下BIM工程,添加從外部flash中拷貝程序到內部flash的功能。

評分

參與人數 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:642557 發表于 2019-12-22 17:21 | 只看該作者
感謝分享
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 综合久久综合久久 | 久久在线 | 欧美日韩一 | 国产在线视频三区 | 日韩在线小视频 | 亚洲综合一区二区三区 | 亚洲一区二区三区在线免费观看 | 美女逼网站 | 亚洲精品一区二区三区蜜桃久 | 天堂色网 | 中文字幕一区二区三区精彩视频 | 日韩一区二区三区在线 | 日韩视频一区二区三区 | 凹凸日日摸日日碰夜夜 | 日韩国产一区二区 | 性高湖久久久久久久久 | 国产精品不卡 | 亚洲精品国产a久久久久久 午夜影院网站 | 欧美一二三区 | 久久精品视频91 | 99re国产精品 | 一级欧美日韩 | 久久精品a级毛片 | 午夜精品一区二区三区免费视频 | 美国一级黄色片 | 97免费在线观看视频 | 久久久久久亚洲精品 | 亚洲三区在线观看 | 国产日韩一区二区三免费高清 | 特黄毛片| 国产日韩一区二区三区 | 久久精品久久久久久 | 久久美女视频 | 一本岛道一二三不卡区 | www.伊人.com| 欧美一区二区大片 | 91精品国产综合久久久亚洲 | 一区二区日本 | 91精品国产综合久久久久蜜臀 | 一区二区三区四区在线 | 久久久久中文字幕 |