日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] MSP430升級(jí)程序的幾點(diǎn)注意事項(xiàng)1、這幾天測(cè)試寫好的IAP升級(jí)程序,真是一個(gè)糟,能將程序下載進(jìn)去,但無法運(yùn)行。經(jīng)過各種測(cè)試,修改終于找到了問題的原因,現(xiàn)在大致總結(jié)下我在寫IAP程序的時(shí)候遇到的問題和

MSP430升級(jí)程序的幾點(diǎn)注意事項(xiàng)

1、這幾天測(cè)試寫好的IAP升級(jí)程序,真是一個(gè)糟,能將程序下載進(jìn)去,但無法運(yùn)行。


經(jīng)過各種測(cè)試,修改終于找到了問題的原因,現(xiàn)在大致總結(jié)下我在寫IAP程序的時(shí)候

遇到的問題和解決方案。首先要實(shí)現(xiàn)單片機(jī)的IAP升級(jí)程序,我們要知道自己的IDE如何能

將程序的函數(shù)或者變量的編譯地址固定,因?yàn)閷?duì)于bootload程序,我們要固定它的地址,

還有從bootload跳轉(zhuǎn)到的程序運(yùn)行的地址。

  對(duì)于MSP430,在測(cè)試中我程序復(fù)位時(shí)跳轉(zhuǎn)到rts430x.lib:boot.obj (.text:_isr:

_c_int00_noexit)這樣一個(gè)啟動(dòng)函數(shù),之后執(zhí)行_syatem_pre_int->_auto_init->main,

在_auto_init過程中,程序會(huì)執(zhí)行memcpy函數(shù)(將.cinit段賦值到RAM里),就是初始化RAM中的全局變量了。我的程序主要錯(cuò)在這個(gè)過程里,導(dǎo)致更新后問題不斷,還有對(duì)于.cinit段和.const段,我們也要固定地址,因?yàn)閙emcpy函數(shù)初始化ram的地址被固定了,且bootload是不能更新的,所以固定.cinit段后,我們memcopy操作地址就固定,不然當(dāng)程序變化重新編譯后可能就會(huì)事.cinit段的地址發(fā)生變化,導(dǎo)致ram初始化錯(cuò)誤。


這樣修改后,程序大致就能自升級(jí)了,程序只升級(jí)運(yùn)行部分的程序,對(duì)bootload程序不升級(jí)。


2、_c_int00 是c語言程序的入口.首先上電后,系統(tǒng)執(zhí)行reset矢量代碼,該代碼是我們寫的話,我們就令cpu轉(zhuǎn)到c_int00,這段程序?yàn)閏語言運(yùn)行作準(zhǔn)備,準(zhǔn)備工作做好后,就轉(zhuǎn)到c語言的main()。

如果reset矢量代碼不是我們寫的,是ti寫的,那么就執(zhí)行bootloader程序,該程序先將從某個(gè)外部得到的真正程序放在規(guī)定的地方,然后轉(zhuǎn)過去執(zhí)行該代碼。

那么如何決定reset矢量代碼是ti寫的還是我們寫的,那就看復(fù)位后mp/mc腳的電平。
要是調(diào)試的時(shí)候我們的mp/mc腳選擇了我們不希望的方式,怎么辦?(在調(diào)試的時(shí)候一般不管bootloader的,只有項(xiàng)目最后成功了才管),用jtag來控制。

C程序開始運(yùn)行時(shí),必須首先初始化C運(yùn)行環(huán)境,這是通過c_int0函數(shù)完成的,這個(gè)函數(shù)在運(yùn)行支持庫(rts,runtime-support library)中。連接器會(huì)將這個(gè)函數(shù)的入口地址放置在復(fù)位中斷向量處,使其可以在初始化時(shí)被調(diào)用。c_int0函數(shù)進(jìn)行以下工作以建立C運(yùn)行環(huán)境:為系統(tǒng)堆棧產(chǎn)生.stack塊,并初始化堆棧指針。從.cinit塊將初始化數(shù)據(jù)拷貝到.bss塊中相應(yīng)的變量。調(diào)用main函數(shù),開始運(yùn)行C程序。用戶可以對(duì)c_int0函數(shù)進(jìn)行修改,但修改后的函數(shù)必須完成以上任務(wù)。


本站聲明: 本文章由作者或相關(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)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉