一般的編譯器將函數中的區(qū)域變數動態(tài)配置在stack,等函數結束空間就釋放出來。因為8051 的內部記憶體很少,只有區(qū)區(qū)128 或256 bytes,而且stack 也是共用這塊記憶體。為了節(jié)省stack 空間,所以區(qū)域變數基本上是靜
深入理解并應用C51對標準ANSIC的擴展是學習C51的關鍵之一。因為大多數擴展功能都是直接針對8051系列CPU硬件的。大致有以下8類:8051存儲類型及存儲區(qū)域存儲模式存儲器類型聲明變量類型聲明位變量與位尋址特殊功能寄存
我們知道,當使用第三方的代碼時,人家有可能會扔個Lib文件給你.這時候,別人只要提供header文件給你,則你就可以通過Lib文件及header的函數聲明,對Lib中的函數進行調用.在Keil中如果使用ARMCC調用Lib文件,相信大家都能從
有時候切換了編譯方式如從ARMCC轉變?yōu)镚CC編譯器,編譯下載時會出現Error:FlashDownloadfailed:-"Cortex-M3"這個錯誤。目前,自己測試解決的方式是:刪除相同目錄下的“DebugConfig” 、“Listings"、“Objects”、“J
Abstract:在C51單片機編程中,頭文件INTRINS.H的函數使用起來,就會讓你像在用匯編時一樣簡便.Introduction:Intrins.h內部函數 描述_crol_ 字符循環(huán)左移_cror_ 字符循環(huán)右移_irol_ 整數循環(huán)左移_iror_ 整數循環(huán)右移_
一、實現延時的兩種方法1、硬件延時優(yōu)點:用到定時器/計數器,這種方法可以提高CPU的工作效率,也能做到精確延時;缺點:往往在精度要求不是很高時,會使定時器/計數器大材小用,而且很極端時,定時器根本不夠的。2、
分別安裝51和ARM的KEIL,他們在不同的文件夾,為的是提取C51文件夾。那么問題來了,是不是可以把他們安裝在同一個文件夾下,理論上行得通,沒試過。其實很簡單的,下面介紹步驟:一、先將KEIL C51安裝目錄下的名字為
上一講中我們學習了如何建立工程、匯編、連接工程,并獲得目標代碼,但是做到這一 步僅僅代表你的源程序沒有語法錯誤,至于源程序中存在著的其它錯誤,必須通過調試才能 發(fā)現并解決,事實上,除了極簡單的程序以
$NOMOD51;------------------------------------------------------------------------------; This file is part of the C51 Compiler package; Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software,
函數指針在C語言中應用較為靈活。在單片機系統(tǒng)中,嵌入式操作系統(tǒng)、文件系統(tǒng)和網絡協(xié)議棧等一些較為復雜的應用都大量地使用了函數指針。Keil公司推出的C51編譯器是事實上80C51 C編程的工業(yè)標準,它針對8051系列C
在keil 中 C語言的函數有帶參數和不帶參數之分。一般的資料里說fun(void)類型的函數不帶參數,所以,keil編譯器生成的匯編的調用地址(函數名) 為fun。這沒有錯。事實上,不管C語言的函數是否帶參數,只要函數在調
keil編譯后出現Program Size: data=21.0 xdata=0 code=2231。這表明 data= 21.0 數據儲存器內部RAM占用21字節(jié), xdata=0 數據儲存器外部RAM占用0字節(jié)code=2231程序儲存器ROM占用2231字節(jié),
前一陣子轉投到MDK下面做開發(fā),因為公司以前都用h-jtag做下載仿真工具,用的h-jtag版本為V0.9,我拿以前在ads1.2中編譯成功的程序,稍作修改,在mdk下編譯成功,仿真也沒有問題,但下載到cpu中卻怎么也沒有結果,原本我以
本篇內含工程建立以及JLINK設置,內容借鑒了前人經驗,在此感謝各位前人的貢獻。1 下載stm32F10x的官方庫http://www.st.com/web/en/catalog/tools/PF2578902 新建工程工程名設為stm32_demo,選擇芯片型號為STM32F103
Keil編譯程序沒有問題,在下載程序的時候出現:甚至于出現,Keil死掉的情況因為程序可以編譯過,所以程序本身并沒有問題,當下載時出問題就應該是 程序太大超出了單片機Flash、RAM太大等地方的問題。最后檢查是因為程
在Keil的工程設置中需要根據所選單片機來更改宏定義,如果程序移植后,宏定義沒有更改過去,有時候會報錯。這個宏定義代表了芯片的類型,如下:因此需要根據自己芯片的類型,更改宏定義。如何知道自己芯片的資源名稱
在Realview MDK的集成開發(fā)環(huán)境中,默認情況下可以生成*.axf格式的調試文件和*.hex格式的可執(zhí)行文件。雖然這兩個格式的文件非常有利于ULINK2仿真器的下載和調試,但是ADS的用戶更習慣于使用*.bin格式的文件,甚至有
C51程序編譯生成匯編代碼的效率,是由許多因素共同決定的,對于Keil C51,主要受以下兩種因素影響:第一節(jié) 存儲模式的影響 存儲模式決定了缺省變量的存儲空間,而訪問各空間變量的匯編代碼的繁簡程度決定了代碼率的高
關于編譯器的優(yōu)化,參考網上的8051系列的說明如下:??0級優(yōu)化:1、 常數折疊:只要有可能,編譯器就執(zhí)行將表達式化為常數數字的計算,其中包括運行地址的計算。2、 簡單訪問優(yōu)化:對8051系統(tǒng)的內部數