畢設程序,修改了硬件之後 重新編譯 發生了未知的錯誤 :有兩個屏幕的模塊 墨水屏和 OLED ;
當墨水屏的初始化程序加到總代碼中時 OLED 就無法顯示, 當去除墨水屏部分的代碼時程序就可以運行了。
原因是 棧 開的太小了 而我的程序中的墨水屏需要非常大的內存。
發現是堆棧的原因 是 我的2 處程序運行 不正常 。註釋掉1 的初始化函數之後就正常了。 這個肯定不是 順序執行程序導致的問題。 所以 第一考慮的就是 編譯器本身的問題 。
去看啓動文件 果然 棧內存分配的太少了 我的 墨水屏 數據的 數組就佔據了15 K
重新分配棧之後解決問題。
堆和 棧的空間是 0xf000 + 0x4000 = 0x13000 = 77824
挺有意思的一個問題 ,卡了兩個多小時。。。