![]() |
我也出現了這個問題但不知道怎么回事只有18行代碼 |
暗光 發表于 2016-4-21 13:13 我原本的設置就是這樣的,還是不行啊 |
keil的版本限制了 |
可能是你代碼里面數據太多,你把一些數據存儲到外部RAM里面去,可以在數據變量定義前面加一個xdata. |
從下面的錯誤描述,你這個Keil沒有注冊,代碼大小受限制。另外一方面你這很有可能是工程文件沒有建對,要關閉原有的項目文件,然后新建,然后選擇芯片型號,然后新建源程序,注意保存為對應文件格式,最后要添加進來。 |
這個改一下 xdata,就行了 |
重建工程,或者是你里面定義了不允許的東西,仔細查看一下 |
復制內容重建工程,這個是警告,里面你可能定義了不允許的東西 |
新建個工程,一步一步來,代碼一個函數一個函數驗證, |
暗光 發表于 2016-4-21 13:13 這個方法也試了,還是不行,可怎么辦好 |
ArthurKing 發表于 2017-1-19 22:19 在 C51選項那里點擊 9 應該能通過,如果原來是默認選8的話。這個與選用的單片機有關。 這個方法我試了,不行啊,怎么辦 |
程序問題 |
通常重新啟動就好 |
也有可能是你的軟件MDK沒有破解 |
請問把C51改成9要怎么改? |
全局變量用的太多了 |
可能是你的程序有錯誤,不能生成hex文件,也有可能是版本的問題 我的keil,如果工程文件太大,就容易出現這個毛病,玄學。 |
我的這個問題,還是沒有解決 |
wc86110 發表于 2016-4-20 21:02 太感謝了,改成9就解決了 |
感謝分享經驗 |
問題解決了嗎,應該是程序問題 |
wanngfengyun123 發表于 2016-4-21 17:31 嗯,那個地方是優化代碼編譯的,但是你的原因是代碼太長了,這是根本原因,與是8是9都沒有關系,改成9要注意的是,原來你寫P0=0XFF,然后寫P0=0X00,編譯器為了優化代碼,就會默認為直往P0寄存器謝了0X00,前面寫0XFF的認為是操作同一個寄存器的代碼是無用代碼,這樣有時候會在運行上出錯,請注意中間加一個_nop_(); |
1678 發表于 2016-4-21 09:12 我把 C51選項 那里改為 9 就通過,原來是默認選8 。謝謝了 現在可以正常運行了 |
wc86110 發表于 2016-4-21 12:11 謝謝大神 |
暗光 發表于 2016-4-21 09:07 用stc89c52 程序是同學幫忙修改的,在他那邊沒問題(他也是用stc89c52),發給我,運行就出現這情況。 并且 我打開其他項目都好著,就這個不行。 |
1678 發表于 2016-4-21 09:12 程序是同學幫忙修改的,在他那邊沒問題(他也是用stc89c52),發給我運行就出現這情況。 并且 我打開其他項目都好著,就這個不行。 |
暗光 發表于 2016-4-21 09:07 我用的是芯片是 stc89c52,.這個問題可以在軟件上修改嗎? 程序是同學幫忙修改的,在他那邊沒問題,發給我運行就出現這情況。 并且 我打開其他項目都好著,就這個不行。 |
liuyimao485812 發表于 2016-4-20 22:29 這個問題可以在軟件上修改嗎? 程序是同學幫忙修改的,在他那邊沒問題,發給我運行就出現這情況。 并且 我打開其他項目都好著,就這個不行。 |
暗光 發表于 2016-4-21 09:07 應該就是這個問題,rom 不夠,但是不知道要怎么弄? 求支招,謝謝 ![]() |
zxc5230 發表于 2016-4-20 19:13 還是不行啊 |