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

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

MSP430中定義大數(shù)組存在的問題及解決方案

作者:學(xué)會(huì)珍惜LW   來源:學(xué)會(huì)珍惜LW的空間   點(diǎn)擊數(shù):  更新時(shí)間:2014年07月30日   【字體:

      這兩天利用MSP430做一個(gè)小系統(tǒng),需要定義一個(gè)很大的全局?jǐn)?shù)組,編譯之后沒有問題,但是調(diào)試的時(shí)候卻遇到了問題。下面我們先來看下遇到的問題。

問題:
        利用CCS軟件將代碼燒入430之后,在還沒有點(diǎn)擊開始運(yùn)行時(shí),程序就已經(jīng)開始自動(dòng)運(yùn)行了如下圖所示,在點(diǎn)擊暫停之后,程序就報(bào)錯(cuò)了。在把那個(gè)數(shù)組元素個(gè)數(shù)改的很小之后,程序就正常了。所以可以斷定,是由于定義大數(shù)組產(chǎn)生的問題。

問題分析:
       通過查找資料,發(fā)現(xiàn)產(chǎn)生這個(gè)問題的原因是因?yàn)槿謹(jǐn)?shù)組定義過大時(shí),系統(tǒng)一上電,需要對(duì)這些數(shù)組初始化,初始化的時(shí)間過長,導(dǎo)致看門口溢出,從而一直進(jìn)不了主函數(shù),導(dǎo)致程序跑飛了。
解決方案:
(1)編寫C啟動(dòng)函數(shù)
       在TI官網(wǎng)找了有關(guān)CCS的資料之后,找到了解決方案。
       除了主函數(shù)之外,我們需要再定義一個(gè)函數(shù),函數(shù)名為的_system_pre_init(),在CCS編譯器中,這是一個(gè)C啟動(dòng)函數(shù),是在主函數(shù)開始執(zhí)行之前執(zhí)行的,所以在該函數(shù)里,加入關(guān)閉看門口的代碼就可以解決這個(gè)問題了~
       在IAR編譯器中,也有類似的函數(shù),為__low_level_init(),使用方法與上文提到的相同。
(2)將大數(shù)組放在RAM的不初始化區(qū)域
       既然已經(jīng)知道是初始化時(shí)間過長導(dǎo)致這個(gè)問題,我們可以把大數(shù)組定義在RAM的不初始化區(qū)域就行了。
       在IAR編譯器中,在定義變量之前,加上__no_initm命令即可,如__no_init char a; 即把a(bǔ)這個(gè)字符型變量放在RAM的不初始化區(qū)域。
       在CCS編譯器中,沒有這樣的命令,需要做類似的操作的話,有些繁瑣,需要自己改寫CMD文件,這里就不再贅述了。大家有興趣的話,可以到TI官網(wǎng)下載相應(yīng)的文檔看一下。
關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: www.天天操 | 91在线观 | 国产一区二区三区免费视频 | 成年人免费在线视频 | 国产99热| 久草免费福利视频 | 欧美一级片免费 | 日本伊人久久 | 男女啪啪免费视频 | 在线免费av网站 | 69精品人人人人 | 成人免费在线视频 | 亚洲17p | 中文字幕欧美激情 | 一本伊人| 免费成人小视频 | 亚洲激情偷拍 | 国产一区不卡 | 欧美日韩免费 | 日韩精品视频免费播放 | 国产精品一区二区三区在线 | 成人永久免费视频 | 日韩亚洲欧美在线观看 | 99在线精品视频 | 国产精品毛片va一区二区三区 | www.桃色| 中文字幕在线视频播放 | 久久夜色精品国产欧美乱极品 | 欧美激情专区 | 国产欧美日韩一区 | 国产一级片视频 | 亚洲天堂久久久 | 日韩一区不卡 | 亚洲精品一 | 日韩精品一区二区视频 | 欧美专区第一页 | 国产伦精品一区二区三区88av | 国产精品一区二区久久 | 国产精品国产三级国产 | 精品国产伦一区二区三区 | 少妇激情视频 |