新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機中存儲區的應用

        單片機中存儲區的應用

        作者: 時間:2016-11-25 來源:網絡 收藏
        data區空間小,所以只有頻繁用到或對運算速度要求很高的變量才放到data區內,比如for循環中的計數值。


        2、 data區內最好放局部變量。

        因為局部變量的空間是可以覆蓋的(某個函數的局部變量空間在退出該函數是就釋放,由別的函數的局部變量覆蓋),可以提高內存利用率。當然靜態局部變量除外,其內存使用方式與全局變量相同;

        3、 確保你的程序中沒有未調用的函數。

        在Keil C里遇到未調用函數,編譯器就將其認為可能是中斷函數。函數里用的局部變量的空間是不釋放,也就是同全局變量一樣處理。這一點Keil C做得很愚蠢,但也沒辦法。

        4、 程序中遇到的邏輯標志變量可以定義到bdata中,可以大大降低內存占用空間。

        在51系列芯片中有16個字節位尋址區bdata,其中可以定義8*16=128個邏輯變量。定義方法是: bdata bit LedState;但位類型不能用在數組和結構體中。

        5、 其他不頻繁用到和對運算速度要求不高的變量都放到xdata區。

        6、如果想節省data空間就必須用large模式,將未定義內存位置的變量全放到xdata區。當然最好對所有變量都要指定內存類型。

        7、 當使用到指針時,要指定指針指向的內存類型。

        在C51中未定義指向內存類型的通用指針占用3個字節;而指定指向data區的指針只占1個字節;指定指向xdata區的指針占2個字節。如指針p是指向data區,則應定義為: char data *p;。還可指定指針本身的存放內存類型,如:char data * xdata p;。其含義是指針p指向data區變量,而其本身存放在xdata區。

        本文引用地址:http://www.104case.com/article/201611/321163.htm


        關鍵詞: 單片機存儲

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 南丹县| 黎城县| 利辛县| 萝北县| 唐山市| 芦山县| 天气| 神农架林区| 衡阳县| 汉中市| 鸡东县| 吴川市| 米脂县| 鹤庆县| 普兰县| 惠东县| 政和县| 南昌县| 松原市| 竹北市| 贵定县| 台山市| 大安市| 宽甸| 壤塘县| 济南市| 深州市| 麻江县| 开封县| 中西区| 淮滨县| 奎屯市| 长宁区| 兴仁县| 哈巴河县| 将乐县| 屏山县| 延庆县| 定襄县| 乳山市| 利津县|