A. 怎麼能把keil中程序編譯後自動看出程序是否正確。我的編譯後是這樣!
View 菜單----->Build Output Window....
顯示出喊碼被你關閉掉的窗口就行了鄭螞哪,
如果還不行,Window菜單--->Reset View....
可以把默認的窗口調出來物喊
B. crc校驗,keilc里和vb得到的校驗碼不同,請問什麼原因,謝謝
CRC校驗結果的不同從計算原理上有以下幾個胡衡方面:
1.簡化式不同,比如CRC8在應用上有5種常用簡化式,簡化式的不同結果必然不同。
2.正向演算法與逆向演算法,正向演算法是數據右側為高位,CRC初始值為0,簡化式正向,逆向演算法是數據右側為低位,CRC初始值為ffff,簡化式需逆向。
從程序運行的硬體角度看褲跡做:
1.單片機和ARM數據定義不同,比如單片機中int型是16位數據,ARM中一般為32位,在PC中有可能就是64位了,這樣的數據定義在CRC運算時會產生不同的結果。
2.單片機種存儲數據的空間是有說法的,比如code,idata,xdata區需要弄清除你的待校驗數據存儲的位置,看是否真的將數據存儲對了,否則有可能是00,或ff的校驗結果。
從你程序上看,硬體原因的可能性大些,一定注意數據的定義,比如在51中的short int型變數時啥??你州伍直接8位定義成char,16位定義成int,32位定義成long就完了,弄個short多愁人啊
C. Keil編譯問題
連接錯誤,只聲明了這幾個函數,但是沒有真正的實現。
如 void EXTI_Init(); 是聲明
// 下面這個才是函數實現,你的工程中沒有該函數的實現
void EXTI_Init()
{
// todo something
}
D. keil編譯錯誤undefined identifier是什麼意思
undefined identifier是常見的keil編譯錯誤。
引發這一錯誤的原因是你使用的變數沒有被定義。
常見的處理手段是對你使用到的變喚消量進行變數定義。
另外一種常見的錯誤就是大和銷知小寫導致的,如定義的是unsigned char num;在使斗談用的時候,寫成了NUM,也會出現同樣的錯誤。
(4)keil編譯沒有校驗碼擴展閱讀:
使用獨立的Keil模擬器時,注意事項:
模擬器標配11.0592MHz的晶振,但用戶可以在模擬器上的晶振插孔中換插其他頻率的晶振。
模擬器上的復位按鈕只復位模擬晶元,不復位目標系統。
模擬晶元的31腳(/EA)已接至高電平,所以模擬時只能使用片內ROM,不能使用片外ROM;但模擬器外引插針中的31腳並不與模擬晶元的31腳相連,故該模擬器仍可插入到擴展有外部ROM(其CPU的/EA引腳接至低電平)的目標系統中使用。
E. keil編譯器運行為什麼檢測不到錯誤
答:這種情況是你的程序還有別的錯誤,
當你把別的錯誤改掉後,再編譯你的vid 就會提示錯誤。
這種情況keil 經常有的。
F. keil4 同樣的源程序, 每次編譯生成的hex文件crc校驗碼都不一樣,為什麼如何使生成的hex文件校驗碼一樣
這個沒什麼奇怪的,編譯後的Hex文件和CRC校驗碼一定是不一察茄謹樣的,因為編譯器在編譯的時候,會自動插入一些隨機數,進行冗餘計算,這個是為了保密的需要,試想,如果一個編譯器不進行保密的冗餘計算,那麼,稍微有點知識的人,就可以很容易的從HEX文件反推回匯編語言,這樣的編譯器,哪個廠家敢用?自己辛苦寫的軟體,很容易的就被人盜版了。
所以,敗基這個是沒有辦法的事納答情。
G. keil編譯成功如何顯示
1.
查看keil編譯後代碼雀孫局大小 在Keil中編譯工程成功後,在下面的Bulid Ouput窗口中會輸頃讓出下面這樣一段信息: Program Size: Code=6320 RO-data=4864 RW-data=44 ZI-data=1636 代表的意思: Code :是凱瞎程序中代碼所佔位元組大小 RO-data :程序中所定義的指令和常量大小 RW-data :程序中已初始化的變數大小 ZI-Data :程序中未初始化的變數大小 ROM(Flash) size = Code+RO-data+RW-data; RAM size = RW-data+ZI-data 可以通過.map查看佔用的flash和ram大小
2.
STM32堆棧空間溢出解決辦法 一般導致堆棧空間溢出的原因是:定義數組過大,或者申請動態內存過多產生。 以STM32F1
H. 這幾段代碼為什麼用KEILC編譯不成功啊是做PROTEUS模擬用的,基於單片機的智能照明。好的可以加分
看看編譯時的錯誤提示吧,可以根據提示來調試程序。
看著錯誤提示可以自己一點一點的修改一下,搞清楚為啥出錯了,這樣也可以提高自己調試程序的能力。
I. 請問Keil編譯文件出現如下顯示,不能生成hex文件(運行沒有警告和錯誤)怎麼處理
這里已經表述得清楚明白……
你當前使用的是未和諧的評估版,僅支持編譯不超過2kB(800h)的程序,而目前這個程序編譯之後的長度是4859位元組,是限制的2.37倍。同時,變數太多已經超過了直接定址的80h范圍,你需要把一部分變數分配到間接定址的 idata 區。