两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

基于HCS12單片機(jī)的BootLoader程序調(diào)試方法及系統(tǒng)與流程

文檔序號(hào):11234006閱讀:1454來(lái)源:國(guó)知局
基于HCS12單片機(jī)的BootLoader程序調(diào)試方法及系統(tǒng)與流程

本發(fā)明涉及一種基于hcs12單片機(jī)的bootloader程序調(diào)試方法及系統(tǒng)。



背景技術(shù):

bootloader程序提供了一種不通過(guò)仿真器下載程序的方式。bootloader程序負(fù)責(zé)初始化硬件,在不拆開機(jī)殼的情況下實(shí)現(xiàn)應(yīng)用程序遠(yuǎn)程加載。

程序下載過(guò)程為:

1)bootloader程序通過(guò)仿真器下載到單片機(jī);

2)應(yīng)用程序根據(jù)特定的接口通過(guò)bootloader程序加載到單片機(jī);

bootloader程序與應(yīng)用程序共用一張中斷向量表,中斷服務(wù)程序在bootloader程序中偏移到應(yīng)用程序位置,造成應(yīng)用程序中斷向量不完整無(wú)法直接獨(dú)立仿真;同時(shí)添加中斷服務(wù)程序需要先在bootloader程序添加中斷偏移代碼,造成升級(jí)應(yīng)用程序時(shí)不斷修改bootloader程序,發(fā)揮不出bootloader程序的優(yōu)勢(shì)。

上述方案存在以下問(wèn)題:

方案中應(yīng)用程序不能直接調(diào)試,需要更改中斷服務(wù)程序地址才能仿真調(diào)試;當(dāng)需要升級(jí)應(yīng)用程序的中斷服務(wù)程序時(shí)需要同時(shí)更改bootloader程序。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的就是為了解決上述問(wèn)題,提供一種基于hcs12單片機(jī)的bootloader程序調(diào)試方法及系統(tǒng),它具有應(yīng)用程序與bootloader程序可以直接仿真調(diào)試,應(yīng)用程序調(diào)試完以后不需做任何修改直接通過(guò)bootloader方式下載的優(yōu)點(diǎn)。

為了實(shí)現(xiàn)上述目的,本發(fā)明采用如下技術(shù)方案:

基于hcs12單片機(jī)的bootloader程序調(diào)試方法,包括:

步驟(1):bootloader程序的中斷向量表作為第一中斷向量表,應(yīng)用程序的中斷向量表作為第二中斷向量表;

步驟(2):通過(guò)bootloader程序?qū)?yīng)用程序加載到單片機(jī),將兩張中斷向量表根據(jù)地址整合形成新的中斷向量表,從而實(shí)現(xiàn)兩張中斷向量表的地址覆蓋;

步驟(3):hcs12單片機(jī)上電運(yùn)行,運(yùn)行bootloader程序的啟動(dòng)程序;

步驟(4):bootloader程序判斷自身是否需要加載新的應(yīng)用程序;然后,運(yùn)行新的應(yīng)用程序的主程序;

步驟(5):如果外部硬件中斷到來(lái),則直接運(yùn)行應(yīng)用程序的中斷服務(wù)程序。

進(jìn)一步的,所述步驟(2)的步驟為:

步驟(21):第二中斷向量表指向地址為第一偏移地址,第一偏移地址在hcs12單片機(jī)的的flash未分頁(yè)區(qū);

步驟(22):第一中斷向量表指向第一偏移地址加上n個(gè)字節(jié)的地址;從第一偏移地址加上n個(gè)字節(jié)的地址開始;其中,n≥4;

步驟(23):通過(guò)bootloader程序?qū)?yīng)用程序加載到單片機(jī)時(shí),實(shí)現(xiàn)兩張中斷向量表的地址覆蓋,新的中斷向量表指向應(yīng)用程序的中斷服務(wù)程序。

進(jìn)一步的,步驟(2)應(yīng)用程序可以獨(dú)立仿真調(diào)試,仿真調(diào)試成功后,不需更改,直接通過(guò)bootloader程序加載到單片機(jī)即可運(yùn)行。

進(jìn)一步的,所述步驟(4)的步驟為:bootloader程序的啟動(dòng)程序判斷自身是否需要加載新的應(yīng)用程序;若需要進(jìn)入步驟(41);若不需要進(jìn)入步驟(42);

步驟(41):?jiǎn)?dòng)程序自動(dòng)運(yùn)行,完成新的應(yīng)用程序的下載,然后,運(yùn)行新的應(yīng)用程序的主程序;

步驟(42):跳轉(zhuǎn)到應(yīng)用程序的啟動(dòng)程序,然后開始啟動(dòng)應(yīng)用程序的主程序。

進(jìn)一步的,所述步驟(41)的啟動(dòng)程序自動(dòng)運(yùn)行,完成新的應(yīng)用程序的下載之后,運(yùn)行新的應(yīng)用程序的主程序之前,需要執(zhí)行如下步驟:

應(yīng)用程序編譯后生成的s19文件在通過(guò)bootloader程序加載時(shí),將s19文件中的程序加載地址為ff80、ffa0、ffc0、ffe0的四行程序刪除。

基于hcs12單片機(jī)的bootloader程序調(diào)試系統(tǒng),包括:

初始化單元:bootloader程序的中斷向量表作為第一中斷向量表,應(yīng)用程序的中斷向量表作為第二中斷向量表;

整合單元:通過(guò)bootloader程序?qū)?yīng)用程序加載到單片機(jī),將兩張中斷向量表根據(jù)地址整合形成新的中斷向量表,從而實(shí)現(xiàn)兩張中斷向量表的地址覆蓋;

上電運(yùn)行單元:hcs12單片機(jī)上電運(yùn)行,運(yùn)行bootloader程序的啟動(dòng)程序;

判斷單元:bootloader程序判斷自身是否需要加載新的應(yīng)用程序;然后,運(yùn)行新的應(yīng)用程序的主程序

中斷執(zhí)行單元:如果外部硬件中斷到來(lái),則直接運(yùn)行應(yīng)用程序的中斷服務(wù)程序。

進(jìn)一步的,所述整合單元包括:

第一地址指向模塊:第二中斷向量表指向地址為第一偏移地址,第一偏移地址在hcs12單片機(jī)的的flash未分頁(yè)區(qū);

第二地址指向模塊:第一中斷向量表指向第一偏移地址加上n(n>=4)個(gè)字節(jié)的地址;從第一偏移地址加上n個(gè)字節(jié)的地址開始;

地址覆蓋模塊:通過(guò)bootloader程序?qū)?yīng)用程序加載到單片機(jī)時(shí),實(shí)現(xiàn)兩張中斷向量表的地址覆蓋,新的中斷向量表指向應(yīng)用程序的中斷服務(wù)程序。

進(jìn)一步的,所述整合單元應(yīng)用程序可以獨(dú)立仿真調(diào)試,仿真調(diào)試成功后,不需更改,直接通過(guò)bootloader程序加載到單片機(jī)即可運(yùn)行。

進(jìn)一步的,所述判斷單元:bootloader程序的啟動(dòng)程序判斷自身是否需要加載新的應(yīng)用程序;若需要,則啟動(dòng)程序自動(dòng)運(yùn)行,完成新的應(yīng)用程序的下載,然后,運(yùn)行新的應(yīng)用程序的主程序;若不需要,則跳轉(zhuǎn)到應(yīng)用程序的啟動(dòng)程序,然后開始啟動(dòng)應(yīng)用程序的主程序。

進(jìn)一步的,啟動(dòng)程序自動(dòng)運(yùn)行,完成新的應(yīng)用程序的下載之后,運(yùn)行新的應(yīng)用程序的主程序之前,需要執(zhí)行如下步驟:

應(yīng)用程序編譯后生成的s19文件在通過(guò)bootloader程序加載時(shí),將s19文件中的程序加載地址為ff80、ffa0、ffc0、ffe0的四行程序刪除。

本發(fā)明的有益效果:

1)應(yīng)用程序與bootloader程序可以直接仿真調(diào)試,應(yīng)用程序調(diào)試完以后不需做任何修改直接通過(guò)bootloader方式下載。

2)應(yīng)用程序可以直接添加中斷服務(wù)程序,不需要在bootloader程序中進(jìn)行地址偏移,以后程序升級(jí)只需修改應(yīng)用程序,bootloader程序不再修改。

hcs12單片機(jī)bootloader程序與應(yīng)用程序的中斷地址覆蓋到flash未分頁(yè)區(qū),實(shí)現(xiàn)應(yīng)用程序獨(dú)立仿真和隨意添加中斷服務(wù)程序。

附圖說(shuō)明

圖1為bootloader中斷向量表;

圖2為應(yīng)用程序中斷向量表;

圖3為加載應(yīng)用程序后的中斷;

圖4為復(fù)位后程序運(yùn)行流程圖。

具體實(shí)施方式

下面結(jié)合附圖與實(shí)施例對(duì)本發(fā)明作進(jìn)一步說(shuō)明。

本方法中,bootloader程序與應(yīng)用程序各用一張完整的中斷向量表,這樣兩個(gè)程序都能獨(dú)立仿真;同時(shí)通過(guò)bootloader程序?qū)?yīng)用程序加載到單片機(jī)中時(shí),兩張中斷向量表實(shí)現(xiàn)地址覆蓋,整合成一張完整的中斷向量表。

應(yīng)用程序中斷向量表指向地址從0x4000開始,為hcs12單片機(jī)flash未分頁(yè)區(qū),

bootloader中斷向量表指向地址0x4000處空出4個(gè)字節(jié),從0x4004開始;

通過(guò)bootloader加載應(yīng)用程序時(shí),實(shí)現(xiàn)地址覆蓋,中斷向量表直接指向應(yīng)用程序中斷服務(wù)程序。

應(yīng)用程序編譯后生成的s19文件在通過(guò)bootloader程序加載時(shí),將s19文件中的程序加載地址為ff80、ffa0、ffc0、ffe0的四行程序刪除。

兩張獨(dú)立的中斷向量表如圖1,圖2所示。加載應(yīng)用程序后的中斷向量表如圖3所示。

當(dāng)用bootloader方式下載程序時(shí),兩張獨(dú)立的中斷向量表通過(guò)地址覆蓋會(huì)合為一張,如圖3所示,整個(gè)程序運(yùn)行流程圖如圖4所示。

上述雖然結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施方式進(jìn)行了描述,但并非對(duì)本發(fā)明保護(hù)范圍的限制,所屬領(lǐng)域技術(shù)人員應(yīng)該明白,在本發(fā)明的技術(shù)方案的基礎(chǔ)上,本領(lǐng)域技術(shù)人員不需要付出創(chuàng)造性勞動(dòng)即可做出的各種修改或變形仍在本發(fā)明的保護(hù)范圍以內(nèi)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
庆阳市| 西林县| 开封市| 保德县| 陕西省| 且末县| 开封市| 莒南县| 阳原县| 兰西县| 密山市| 阿拉善右旗| 大安市| 湄潭县| 兴和县| 陆丰市| 聊城市| 来安县| 云龙县| 乌拉特中旗| 凤阳县| 德钦县| 定陶县| 宜宾县| 珠海市| 西充县| 达孜县| 靖宇县| 洪洞县| 南通市| 马鞍山市| 梓潼县| 高邮市| 瑞安市| 东台市| 龙江县| 浦城县| 连云港市| 天气| 布尔津县| 乌拉特前旗|