91视频丝瓜-91视频完整版高清-91视频网-91视频网店-91视频网或将从此无大神-91视频网入口

您好,歡迎訪問上海現易電子元器件有限公司網站!

021-51870898
021-51870898   18019251567
4新聞資訊
您的位置: 首頁 ->  新聞資訊 -> 單片機

?一種430軟復位方法(原創)

文章出處:單片機 責任編輯:上海現易電子元器件有限公司 發表時間:2018-05-19

最近在搞430的FLASH的自定義法(利用串口)程序燒寫,燒寫完成后斷電復位,reset按鍵就可以運行新的程序。但是和學長交流了一下,這種方法不夠好,希望有一種軟復位的方式。于是百度了一下,都是些對看門狗進行寫入特殊值使得430的cpu復位。反正個人是沒有采用。


因為在搞程序的燒寫下載,所以看了一下430的BSL。看到里面有一段話,關于從C代碼中啟動BSL的方法。如下:


從一個外部應用中啟動BSL

將程序計數器設定到內存為位置0x1000 來啟動BSL。堆棧一直被復位,而RAM 被清空。應該注意的是,GIE 位未被禁用,所以如果不需要中斷的話,這一步應該通過調用應用來完成,并且如果它們被使用的話,這一步應該從“返回BSL”返回。

由于堆棧被復位,位置0x1000 也可以被作為一個C 功能進行調用,示例代碼如下:
             ((void (*)())0x1000)()


于是想到,既然可以從C里面跳轉到0x1000,那么也可以跳轉到其他地址,比如復位地址了。


以6638為例。430的復位中斷矢量地址是0xFFFE,里面存儲了將要跳轉的物理地址。6638的代碼區起始地址是0x8000,正常復位是先進入復位中斷,然后PC指針導入地址0x8000,然后從0x8000開始執行代碼。那么軟復位則是,執行((void (*)())0x8000)(),直接PC指針被導入0x8000的地址,而這個地址正好是6638的代碼區起始地址,于是軟復位了。個人分析一下這個指令,如有錯誤敬請大神們指正。


從代碼上講,(void (*)()是一個指向空函數的指針,((void (*)())0x8000)()是將0x8000強制轉換為函數指針后進行函數調用,于是0x8000便被送入了PC指針。


對于其他的430單片,去查其數據手冊FLASH段,弄清其代碼區的開始地址,也可以用這個方法軟復位了。


實測,IAR,CCS下編譯、實踐通過。


最后,查了一下,對于計算機系的這個方法可能是常識了,但是對于搞單片機、嵌入式的大多還不知曉,個人就寫出來,大家交流交流。已經知道這個方法的高手們,就一笑而過吧!


上海現易電子元器件有限公司 版權所有 未經授權禁止復制或鏡像

CopyRight 2020-2025 www.urqm.cn All rights reserved   滬ICP備2020031792號

友情鏈接:

電話

易經理

18019251567

微信

易經理

易經理

頂部

咨詢
主站蜘蛛池模板: 婷婷激情视频 | 天天摸夜夜操 | 日韩国产免费一区二区三区 | 亚洲色欲色欲综合网站 | 日日淫 | 91麻精品国产91久久久久 | 在线亚洲国产日韩欧洲专区 | 精品淑女少妇AV久久免费 | 在线观看亚洲AV无码每日更新 | 色窝窝亚洲AV在线观看 | 国产自产对白一区 | 日本又黄又爽又色又刺激的视频 | 三级黄色一级视频 | 久久国产一区二区 | 久久久亚洲精品国产 | 在线乱码一卡二卡麻豆 | 四虎影视免费完整版在线观看 | 免费三级现频在线观看免费 | 欧美性猛交aa一级 | 中国一级毛片在线观看 | 真人一级一级特黄高清毛片 | 国产精品成人国产乱 | 国产三级级在线观看大学生 | 国产熟妇BBWBBWBBW歼尸 | 肉多NP 巨H公交车情欲 | 国产无遮挡A片又黄又爽 | 激情五月天小说 | 师生H湿 1V1 师尊禁脔被迫含精入睡H | 婷婷丁香视频 | 日本久久高清一区二区三区毛片 | 日日碰狠狠躁久久躁婷婷 | 中文字幕无码一区二区免费 | 理论片87福利理论电影 | 性生大片免费观看网站YY | 日韩精品视频在线播放 | 天上人间av网 | 欧美日韩激情一区二区三区 | 国产在线观看中文字幕 | 巨大黑人极品vjdeo | 波多野结衣国产精品 | 日韩伦理一区二区三区 |