www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 最近在搞430的FLASH的自定義法(利用串口)程序燒寫,燒寫完成后斷電復(fù)位,reset按鍵就可以運(yùn)行新的程序。但是和學(xué)長交流了一下,這種方法不夠好,希望有一種軟復(fù)位的方式。于是百度了一下,都是些對(duì)看

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


因?yàn)樵诟愠绦虻臒龑懴螺d,所以看了一下430的BSL??吹嚼锩嬗幸欢卧?,關(guān)于從C代碼中啟動(dòng)BSL的方法。如下:


從一個(gè)外部應(yīng)用中啟動(dòng)BSL

將程序計(jì)數(shù)器設(shè)定到內(nèi)存為位置0x1000 來啟動(dòng)BSL。堆棧一直被復(fù)位,而RAM 被清空。應(yīng)該注意的是,GIE 位未被禁用,所以如果不需要中斷的話,這一步應(yīng)該通過調(diào)用應(yīng)用來完成,并且如果它們被使用的話,這一步應(yīng)該從“返回BSL”返回。

由于堆棧被復(fù)位,位置0x1000 也可以被作為一個(gè)C 功能進(jìn)行調(diào)用,示例代碼如下:
((void (*)())0x1000)()


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


以6638為例。430的復(fù)位中斷矢量地址是0xFFFE,里面存儲(chǔ)了將要跳轉(zhuǎn)的物理地址。6638的代碼區(qū)起始地址是0x8000,正常復(fù)位是先進(jìn)入復(fù)位中斷,然后PC指針導(dǎo)入地址0x8000,然后從0x8000開始執(zhí)行代碼。那么軟復(fù)位則是,執(zhí)行((void (*)())0x8000)(),直接PC指針被導(dǎo)入0x8000的地址,而這個(gè)地址正好是6638的代碼區(qū)起始地址,于是軟復(fù)位了。個(gè)人分析一下這個(gè)指令,如有錯(cuò)誤敬請(qǐng)大神們指正。


從代碼上講,(void (*)()是一個(gè)指向空函數(shù)的指針,((void (*)())0x8000)()是將0x8000強(qiáng)制轉(zhuǎn)換為函數(shù)指針后進(jìn)行函數(shù)調(diào)用,于是0x8000便被送入了PC指針。


對(duì)于其他的430單片,去查其數(shù)據(jù)手冊(cè)FLASH段,弄清其代碼區(qū)的開始地址,也可以用這個(gè)方法軟復(fù)位了。


實(shí)測(cè),IAR,CCS下編譯、實(shí)踐通過。


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


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

在這篇文章中,小編將對(duì)PLC的相關(guān)內(nèi)容和情況加以介紹以幫助大家增進(jìn)對(duì)它的了解程度,和小編一起來閱讀以下內(nèi)容吧。

關(guān)鍵字: PLC 模塊化 程序

對(duì)程序進(jìn)行優(yōu)化,通常是指優(yōu)化程序代碼或程序執(zhí)行速度。優(yōu)化代碼和優(yōu)化速度實(shí)際上是一個(gè)予盾的統(tǒng)一。一般是優(yōu)化了代碼的尺寸,就會(huì)帶來執(zhí)行時(shí)間的增加;如果優(yōu)化了程序的執(zhí)行速度,通常會(huì)帶來代碼增加的副作用。很難魚與熊掌兼得,只能在...

關(guān)鍵字: 單片機(jī) 程序

一個(gè)程序首先要保證正確性,在保證正確性的基礎(chǔ)上,性能也是一個(gè)重要的考量。要編寫高性能的程序,必須選擇合適的算法和數(shù)據(jù)結(jié)構(gòu)。

關(guān)鍵字: CPU 程序 緩存

仿真的概念其實(shí)使用非常廣,最終的含義就是使用可控的手段來模仿真實(shí)的情況。在嵌入式系統(tǒng)的設(shè)計(jì)中,仿真應(yīng)用的范圍主要集中在對(duì)程序的仿真上。

關(guān)鍵字: 單片機(jī) 仿真器 程序

步進(jìn)電動(dòng)機(jī)是將電脈沖激勵(lì)信號(hào)轉(zhuǎn)換成相應(yīng)的角位移或線位移的離散值控制電動(dòng)機(jī),這種電動(dòng)機(jī)每當(dāng)輸入一個(gè)電脈沖就動(dòng)一步,所以又稱脈沖電動(dòng)機(jī)。

關(guān)鍵字: 步進(jìn)電機(jī) 正反轉(zhuǎn) 程序

KeilμVision4是Keil軟件公司為8051系列微控制器及其兼容產(chǎn)品設(shè)計(jì)的集成式軟件開發(fā)環(huán)境。μVision4集成了C51編譯器和A51匯編器,其界面類似于Microsoft VS,支持C語言和匯編語言程序的編寫...

關(guān)鍵字: 程序 編譯 鏈接

雙方各執(zhí)一詞,誰也不退讓,吳雄昂的身份成為薛定諤的貓:在Arm公司眼中,他已經(jīng)被罷免一切職位;在安謀中國聲明里,吳仍然一切照常。這種疊加態(tài)或許還會(huì)持續(xù)一段時(shí)間,但疊加態(tài)應(yīng)該很快就會(huì)塌縮成一個(gè)確定結(jié)果。同樣,安謀中國董事會(huì)...

關(guān)鍵字: ARM 中國董事會(huì) 程序

除了指令空間,自定義指令對(duì)應(yīng)的程序出入口也有嚴(yán)格限制。自定義指令在使用過程中出現(xiàn)任何錯(cuò)誤時(shí),Arm的工具鏈都能及時(shí)對(duì)其進(jìn)行識(shí)別、提取,并且進(jìn)行相應(yīng)的控制。目前也已經(jīng)有第三方編譯器,可以識(shí)別自定義指令集可能會(huì)出現(xiàn)的錯(cuò)誤。專...

關(guān)鍵字: 指令空間 程序 ARM

如果說一眾美國科技公司遵循特朗普命令斷供華為,還算某種程度上維護(hù)所謂程序正義不得已而為之;那么各路本應(yīng)對(duì)政治保持中立的國際技術(shù)標(biāo)準(zhǔn)組織,先后宣布剔除華為成員資格,絕對(duì)算助紂為虐;而聯(lián)邦快遞將華為委托寄送目的地為中國的快遞...

關(guān)鍵字: 快遞 華為 程序

在軟件開發(fā)過程中,我們希望軟件可以運(yùn)行無誤。但是常常事與愿違,程序經(jīng)常跑飛,或者卡死。原因有很多,有可能是因?yàn)檐浖到y(tǒng)設(shè)計(jì)的原因,或者外部傳感器的失效,再或者是程序的Bug等。為了防止程序在出現(xiàn)問題之后,可以順利復(fù)位和重...

關(guān)鍵字: 軟件 程序 傳感器
關(guān)閉