![]() |
這不是軟件問題,是你的內存超出了,看你圖2,內存有149了,51單片機只能裝128個字節,你需要換52芯片(寫程序時選擇52芯片)52內存有256個字節,還要換個頭文件,REGX52.H。還有一個辦法就是把你數組前加的code改成data,他就會存儲在外部存儲器上,想當于我們電腦里的機械硬盤。看你下面編譯輸出窗口中data有沒有超出128,如果超出就還是不行,就得換52或者更高級的單片機 |
[img]點擊project-----options for Target''Target 1" 會彈出來一個對話框中,選擇output欄,勾選ceeate Hex file再編譯一下就可以了 |
main.c都沒有嗎 |
編譯提示消息很明顯指出: idata 溢出,空間不足長度為 0x80H。 因此導致 數組變量dispRam被丟棄。 |
data空間已經不夠用,可能有好多函數,函數內部的局部變量又沒有定義空間,系統會將變量分配到你在Otions for Target 對話框里的設置的空間,網上搜一下都有 https://www.cnblogs.com/bison1989/archive/2011/06/02/2067626.html |
單片機ram太小,第一個錯誤都已經告訴你了 |
應該是ram不夠 |
把idata改為xdata |
Error 107 MCU RAM不夠,圖形數據太大了,減減肥吧。 |
keil4卸載重裝,裝完了破(不漢化)英文界面再試試 |
換內存更大的單片機 |
要么換單片機,要么減少你的代碼量 |
迵憶那段程序 發表于 2019-7-28 10:15 右鍵單擊Target選擇“Options for Target'Target1'”就會出來一個框,在memory model中選擇compact:variables in pdata試試: |
換52 ;出現Program Size: data=149.0 xdata=0 code=2452 (程序大小:數據=149.0 xdata=0代碼=2452) |
小黑屋525 發表于 2019-7-28 08:37 謝謝你的回答,怎么解決呢? |
12345678.. 發表于 2019-7-28 08:50 謝謝你的回答,這個我早就看過了,不行。 |
第二幅圖和第三幅圖顯示內存空間溢出,參考https://blog.csdn.net/yishengzhiai005/article/details/25755181 |
keil軟件百度云鏈接鏈接:https://pan.baidu.com/s/1MXg-1xHgblkvziia-L3KJQ提取碼:y308復制這段內容后打開百度網盤手機App,操作更方便哦 |
或者是你軟件可能有問題。 |
如何生產hex,https://jingyan.baidu.com/article/fd8044fa232bf05031137a21.html |
有兩個錯誤,ERRORL107說的是你的單片機RAM不夠,ERRORL105說的是data空間不夠! |