『壹』 keil編譯時,Build target與rebuild all target files有什麼區別
Build target是編譯當前文件,而rebuild all target files是編譯所有文件。
如果你的程序都是寫在一個文件里,那麼,要編譯整個程序時,Build target與rebuild all target files就沒區別。
但是如果模塊化編程的話,整個程序就會分成好幾個模塊,如圖:
此時,
不用說你也知道如何區分Build target與rebuild all target files了
謝謝採納!
『貳』 keil uV4在編譯時總是會編譯上次的程序,請問高手指點一下,謝謝!
math在連接時需要添加參數,很久不搞linux的程序了,我映像是-o 編譯時加上 -lm像下面這樣:
gcc -lm -o xxx.out xxx.c
因為math.h不是C運行庫函數,就像linux下線程函數庫pthread.h也不是,都需要在編譯時連接該庫
如果你有IDE(如eclipse)+ GCC 開發C程序,可以在項目屬性中編譯命令中添加-lm,作用是一樣的 (本人用VI很不熟練。。。)
樓主如果需要可以到www.eclipse.org下載IDE,不用手動添加Mingw和GCC,它已經全部搞定了,用起來很方便。
『叄』 為什麼用keil修改了c語言程序後,再用proteus模擬運行的時候,運行的還是修改之前的文件啊
我認為是hex 文件沒有改變。用keil修改後,要編譯運行一次,並且要注意是否重新生成 hex 文件(最好去設置裡面重新勾選一下,再編譯運行改之後的程序)。
『肆』 keil4寫程序,我明知把程序改了,結果下載到單片機後還是之前的那個程序
你可能沒注意看代碼文件的路徑,有時候它默認打開的是同一名字的文件,但是在不同路徑的。
你認真看一下各文件的路徑吧,這是經常遇到的情況。
『伍』 修改keilC51里的程序,但是Proteus模擬沒有變化,求助!
可以模擬51系列、avr,pic等常用的mcu及其外圍電路(如lcd,ram,rom,鍵盤,馬達,led,ad/da,部分spi器件,部分iic器件,)其實proteus與multisim比較類似,只不過它可以模擬mcu!當然,軟體模擬精度有限,而且不可能所有的器件都找得到相應的模擬模型,用開發板和模擬器當然是如果你在學51單片機,如果你想自己動手做做lcd,led,ad/da,直流馬達,spi,iic,鍵盤,的小實驗的話,試一下吧,不會讓你失望的!模擬器+電工系自己做的實驗板的實驗都可以做得到吧!當然,硬體實踐還是必不可少的!!!本方案只是在沒有硬體的情況下讓你能像pspice模擬模擬/數字電路那樣模擬mcu及外圍電路。另外,即使有硬體,在程序編寫早期用軟體模擬一下也不錯的~2、把proteus安裝目錄下vdm51.dll(搜一下吧)文件復制到keil安裝目錄的\c51\bin目錄中。3、修改keil安裝目錄下tools.ini文件,在c51欄位加入tdrv5=bin\vdm51.dll(proteusvsmmonitor-51driver),保存注意:不一定要用tdrv5,根據原來欄位選用一個不重復的數值就可以了。4、打開proteus,畫出相應電路(這個自己摸索吧。注意:proteus中mouse的左右鍵與一般程序是相反的樣子)。在proteus的debug菜單中選中useremotedebugmonitor5...可以模擬51系列、avr,pic等常用的mcu及其外圍電路(如lcd,ram,rom,鍵盤,馬達,led,ad/da,部分spi器件,部分iic器件,)其實proteus與multisim比較類似,只不過它可以模擬mcu!當然,軟體模擬精度有限,而且不可能所有的器件都找得到相應的模擬模型,用開發板和模擬器當然是如果你在學51單片機,如果你想自己動手做做lcd,led,ad/da,直流馬達,spi,iic,鍵盤,的小實驗的話,試一下吧,不會讓你失望的!模擬器+電工系自己做的實驗板的實驗都可以做得到吧!當然,硬體實踐還是必不可少的!!!本方案只是在沒有硬體的情況下讓你能像pspice模擬模擬/數字電路那樣模擬mcu及外圍電路。另外,即使有硬體,在程序編寫早期用軟體模擬一下也不錯的~2、把proteus安裝目錄下vdm51.dll(搜一下吧)文件復制到keil安裝目錄的\c51\bin目錄中。3、修改keil安裝目錄下tools.ini文件,在c51欄位加入tdrv5=bin\vdm51.dll(proteusvsmmonitor-51driver),保存注意:不一定要用tdrv5,根據原來欄位選用一個不重復的數值就可以了。4、打開proteus,畫出相應電路(這個自己摸索吧。注意:proteus中mouse的左右鍵與一般程序是相反的樣子)。在proteus的debug菜單中選中useremotedebugmonitor5、在keil中編寫mcu的程序(keil不會,那先學學吧,比medwin難學些哦!)。6、進入keil的project菜單optionfortarget'工程名'。在debug選項中右欄上部的下拉菜選中proteusvsmmonitor-51driver。在進入seting,如果同一台機ip名為127.0.0.1,如不是同一台機則填另一台的ip地址。埠號一定為8000注意:可以在一台機器上運行keil,另一台中運行proteus進行遠程模擬哦~7、在keil中進行debug吧,同時在proteus中查看直觀的結果(如lcd顯示)8、就是以上這么多了。
『陸』 keil中修改程序後要重新編譯才能運行嗎
rebuild all target files.
『柒』 請教關於KEIL如何正確設置BANK編譯超過64K的程序
一般來說,單片機有幾個BANK是硬體決定的。你在寫程序時,可以將某個C文件定位到一個BANK上去,在左側的項目樹中,右鍵點某個C文件,在option for file "xxxx.C",在下拉框 code bank中選bank號,這樣,以後編譯出來的代碼就定位到這個BANK了。
可以把多個C文件定位到一個BANK,不過要注意,某個BANK上總代碼量不能超過單個BANK容量。
『捌』 我在keil里,工程編譯好之後,什麼都不改,再編譯一次,又要重新一個文件一個文件編譯是怎麼回事
你看一下,是否是下面這個原因?
如果你點的是「Rebuild」按鈕,那麼Keil必然會一個文件一個文件地把所有文件都編譯一遍。
如果你使用「Build」按鈕,那麼未做修改的文件一般不會重新鏈接。
Rebuild:Rebuild all target files (它會重新編譯所有目標文件,再鏈接)
Build :Build target files (它一般只會編譯修改過的目標文件,並鏈接)
如下圖紅框中左端那個按鈕是「Build」,右端那個是「Rebuild」