熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
我也出現(xiàn)了這個(gè)問題但不知道怎么回事只有18行代碼 |
暗光 發(fā)表于 2016-4-21 13:13 我原本的設(shè)置就是這樣的,還是不行啊 |
keil的版本限制了 |
可能是你代碼里面數(shù)據(jù)太多,你把一些數(shù)據(jù)存儲(chǔ)到外部RAM里面去,可以在數(shù)據(jù)變量定義前面加一個(gè)xdata. |
從下面的錯(cuò)誤描述,你這個(gè)Keil沒有注冊(cè),代碼大小受限制。另外一方面你這很有可能是工程文件沒有建對(duì),要關(guān)閉原有的項(xiàng)目文件,然后新建,然后選擇芯片型號(hào),然后新建源程序,注意保存為對(duì)應(yīng)文件格式,最后要添加進(jìn)來。 |
這個(gè)改一下 xdata,就行了 |
重建工程,或者是你里面定義了不允許的東西,仔細(xì)查看一下 |
復(fù)制內(nèi)容重建工程,這個(gè)是警告,里面你可能定義了不允許的東西 |
新建個(gè)工程,一步一步來,代碼一個(gè)函數(shù)一個(gè)函數(shù)驗(yàn)證, |
暗光 發(fā)表于 2016-4-21 13:13 這個(gè)方法也試了,還是不行,可怎么辦好 |
ArthurKing 發(fā)表于 2017-1-19 22:19 在 C51選項(xiàng)那里點(diǎn)擊 9 應(yīng)該能通過,如果原來是默認(rèn)選8的話。這個(gè)與選用的單片機(jī)有關(guān)。 這個(gè)方法我試了,不行啊,怎么辦 |
程序問題 |
通常重新啟動(dòng)就好 |
也有可能是你的軟件MDK沒有破解 |
請(qǐng)問把C51改成9要怎么改? |
全局變量用的太多了 |
可能是你的程序有錯(cuò)誤,不能生成hex文件,也有可能是版本的問題 我的keil,如果工程文件太大,就容易出現(xiàn)這個(gè)毛病,玄學(xué)。 |
我的這個(gè)問題,還是沒有解決 |
wc86110 發(fā)表于 2016-4-20 21:02 太感謝了,改成9就解決了 |
感謝分享經(jīng)驗(yàn) |
問題解決了嗎,應(yīng)該是程序問題 |
wanngfengyun123 發(fā)表于 2016-4-21 17:31 嗯,那個(gè)地方是優(yōu)化代碼編譯的,但是你的原因是代碼太長了,這是根本原因,與是8是9都沒有關(guān)系,改成9要注意的是,原來你寫P0=0XFF,然后寫P0=0X00,編譯器為了優(yōu)化代碼,就會(huì)默認(rèn)為直往P0寄存器謝了0X00,前面寫0XFF的認(rèn)為是操作同一個(gè)寄存器的代碼是無用代碼,這樣有時(shí)候會(huì)在運(yùn)行上出錯(cuò),請(qǐng)注意中間加一個(gè)_nop_(); |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
暗光 發(fā)表于 2016-4-21 13:13 我把 C51選項(xiàng) 那里改為 9 就通過,原來是默認(rèn)選8 。謝謝了 現(xiàn)在可以正常運(yùn)行了 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
1678 發(fā)表于 2016-4-21 09:12 我把 C51選項(xiàng) 那里改為 9 就通過,原來是默認(rèn)選8 。謝謝了 現(xiàn)在可以正常運(yùn)行了 |
wc86110 發(fā)表于 2016-4-21 12:11 謝謝大神 |
wanngfengyun123 發(fā)表于 2016-4-21 09:44 可以,點(diǎn)project》options for.....》target》code rom size 改成large模式。如果還是這個(gè)問題在問我,一般就是這個(gè)問題了 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
超過一點(diǎn)選9可以通過,一般軟件默認(rèn)是8. 優(yōu)化或刪除部分源碼,也可以通過更換單片機(jī)型號(hào)來解決。 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
wc86110 發(fā)表于 2016-4-20 21:02 改成9 就好了 太感謝了 ![]() |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
暗光 發(fā)表于 2016-4-21 09:07 用stc89c52 程序是同學(xué)幫忙修改的,在他那邊沒問題(他也是用stc89c52),發(fā)給我,運(yùn)行就出現(xiàn)這情況。 并且 我打開其他項(xiàng)目都好著,就這個(gè)不行。 |
1678 發(fā)表于 2016-4-21 09:12 程序是同學(xué)幫忙修改的,在他那邊沒問題(他也是用stc89c52),發(fā)給我運(yùn)行就出現(xiàn)這情況。 并且 我打開其他項(xiàng)目都好著,就這個(gè)不行。 |
暗光 發(fā)表于 2016-4-21 09:07 我用的是芯片是 stc89c52,.這個(gè)問題可以在軟件上修改嗎? 程序是同學(xué)幫忙修改的,在他那邊沒問題,發(fā)給我運(yùn)行就出現(xiàn)這情況。 并且 我打開其他項(xiàng)目都好著,就這個(gè)不行。 |
liuyimao485812 發(fā)表于 2016-4-20 22:29 這個(gè)問題可以在軟件上修改嗎? 程序是同學(xué)幫忙修改的,在他那邊沒問題,發(fā)給我運(yùn)行就出現(xiàn)這情況。 并且 我打開其他項(xiàng)目都好著,就這個(gè)不行。 |
暗光 發(fā)表于 2016-4-21 09:07 應(yīng)該就是這個(gè)問題,rom 不夠,但是不知道要怎么弄? 求支招,謝謝 ![]() |
程序問題 不會(huì)是軟件 的 我最開始學(xué)得時(shí)候經(jīng)常寫錯(cuò) 就不能編譯 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
admin 發(fā)表于 2016-4-20 14:53 這個(gè)問題在于選擇編譯的芯片ROM不夠引起的,不用上傳工程文件吧 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
用的什么芯片?錯(cuò)誤的原因是代碼溢出了,也就是太多了,data夠,但是code不夠,那個(gè)WARNING不用管他,主要是下面的那個(gè)ERROR提示code尺寸超出,最后的TARGET.......意思是編譯未通過。解決辦法,如果你的芯片確實(shí)用的存儲(chǔ)是夠的(比如用的STC12,15系列的,一般都買大的了)就在程序設(shè)置中改一下編譯的模式,如果你用的AT89C52或者傳統(tǒng)的51單片機(jī),那儲(chǔ)存的ROM是不夠的,就算編譯通過下載時(shí)也會(huì)因?yàn)椴粔蚨a溢出,程序沒辦法執(zhí)行。具體方法再搜索或者再問我吧 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
應(yīng)該是全局變量用的太多,data已經(jīng)到120,內(nèi)存超了,應(yīng)該多用局部變量。 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
在 C51選項(xiàng)那里點(diǎn)擊 9 應(yīng)該能通過,如果原來是默認(rèn)選8的話。這個(gè)與選用的單片機(jī)有關(guān)。 |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎(jiǎng)勵(lì)! |
zxc5230 發(fā)表于 2016-4-20 19:13 還是不行啊 |
Powered by 單片機(jī)教程網(wǎng)