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

KEIL 單片機的RAM 超出范圍處理

作者:小強   來源:本站原創(chuàng)   點擊數(shù):  更新時間:2014年04月09日   【字體:

以前寫了一個測試程序,昨晚上想把測試程序在改進時候,發(fā)現(xiàn)我多增加一個全局變量 unsigned int flag; //定義一個全局變量 ,燒寫到單片機。。單片機運行時候。LCD 顯示就正常了。測量到的數(shù)據(jù)也顯示不了, 反復(fù)測試好多次, 發(fā)現(xiàn)問題就在這句: unsigned int flag; //定義一個全局變量 多定義一個就出現(xiàn)錯誤。 我百思不得其解。。 最后我只有請教了一些朋友,一些有經(jīng)驗的朋友很快就知道問題出在哪里了。 是單片機的RAM 不夠了。 因為我的這個程序比較大,涉及全局變量用到的比較多,超出范圍了。KEIL有三種存儲模式SMALL,COMPACT,LARGE. 默認(rèn)存儲模式是SMALL , 默認(rèn)就把所有的變量都放在RAM里面,這樣訪問速度是最快,但是適合小程序, 我的RAM 只有1280字節(jié) 。是不夠的。所以要選擇large模式,該模式空間大,可存變量多,但是訪問速度相對于比較慢。 所以。。只要把 KEIL Memory Model 設(shè)置為:large 即可。

 

OK ,人多力量大。。 問題就這樣解決了。 所以,做個記錄。 讓看過這篇文章的人,下次遇到這樣問題,也可以試試這個方法。

關(guān)閉窗口

相關(guān)文章