用于微控制器DS80G400的C語言應(yīng)用
發(fā)布時間:2007/8/28 0:00:00 訪問次數(shù):657
吳星華
本文先從一個用C語言實現(xiàn)的Hello World程序人手,然后介紹一個簡單的HTTP服務(wù)器。文中介紹了如何設(shè)置開發(fā)工具并編寫一個簡單的示范程序,然后演示如何使用DS80C400的ROM功能。所有開發(fā)都使用TINIm400驗證模塊和包含7.05版C編譯器“C51’’的Keil μVision2TM2.37版
引言
自從推出了DS80C390的TINI~運行環(huán)境(TINI Runtime Environment),開發(fā)人員早就呼吁尋找一種方法,能在不使用Javatm語言的前提下使用TINI的強大功能。但遺憾的是,TINI的網(wǎng)棧和其他特性與Java虛擬機及運行環(huán)境曾經(jīng)是緊密相連的,很難在C語言或匯編程序中去訪問。為此,在設(shè)計DS80C400網(wǎng)絡(luò)微控制器的ROM時,一組功能被公開出來,可以在8051匯編、C語言或Java程序中訪問。受容量的限制,ROM提供的功能僅限于TINI運行環(huán)境的一個子集。這樣,ROM可以被視作一個可由C或匯編程序使用的模塊,它提供了經(jīng)過驗證的網(wǎng)棧、進程調(diào)度器和存儲器管理器。簡單程序象網(wǎng)絡(luò)揚聲器可以用匯編語言輕松實現(xiàn),更復(fù)雜一點的象HTTP(超文本傳送協(xié)定)服務(wù)器這種需要與文件系統(tǒng)交互的程序可以使用C語言。
本文先從一個用C語言實現(xiàn)的Hello World程序人手,然后介紹一個簡單的HTTP服務(wù)器。文中介紹了如何設(shè)置開發(fā)工具并編寫一個簡單的示范程序,然后演示如何使用DS80C400的ROM功能。所有開發(fā)都使用TINIm400驗證模塊和包含7.05版C編譯器“C51’’的Keil μVision2TM2.37版
從Keil的μVision2開始
可以使用Keil μVision2開發(fā)套件,構(gòu)建一個簡單的Hello World型C語言程序。按照以下步驟完成你的第一個用于DS80C400的C語言應(yīng)用程序。
.選擇Project->Create New 。
輸入項目名稱。
.屏幕上將出現(xiàn)Select Device for Target對話框。在Data base中選擇Dallas Semiconductor和DS80C400。選擇Use Extended Linker和Use Extended Assembler。點擊OK繼續(xù),見圖1所示為該對話框的正確配置。
.將有對話框提示:Copy Dallas 80C390 Startup Codey to Project Folder和Add File
to Project?選擇No。我們將提供自己的啟動代碼。
.當(dāng)項目窗口在左側(cè)打開時,打開Target1。右擊Source Group1,并選擇Add files to group'Source Group1’。在彈出的文件對話框中,將files of type 改為Asm source file。添加文件startup400.a51。
.應(yīng)該注意,建立應(yīng)用的地址應(yīng)為400000h,它對應(yīng)于TINIm400上flash的起始地址。雙擊打開文件startup400.a51。找到段聲明?C_CPURESET?0。確保代碼段聲明為400000h:
?C_CPURESET?0
SEGMENT CODE AT 400000h
.另外,應(yīng)有一個“DB,’TINI’行,后跟另一個DB行,帶有注釋“Targe tbank”。這個聲明是一個標(biāo)記的一部分,用于告知DS80C400 ROM從地址400000h開始執(zhí)行代碼。這樣就可以確保應(yīng)用的建立地址為400000h,對應(yīng)于TINIm400上flash的起始地址。請確認該行為:
DB 40h ; Target bank
.創(chuàng)建一個新的文件,以“main.c”為文件名來保存。在該文件中寫人如下代碼:
# include
Void main( )
{
printf(”Test 400 Program\r\n”);
while (1) { }
)
.保存文件內(nèi)容。右擊Source Group1,并添加源文件main.c,F(xiàn)在就可以將該源文件添加到項目中了。
.右擊左側(cè)的Target1。選擇options for target’Target1’,打開選項對話框。第一個選擇標(biāo)簽應(yīng)該為Target。將Memory Model改為Large:variables in XDATA。將Code Rom Size改為Contiguous Mode:16MB program。選中檢查框Use multiple DPTR registers和far memory type support。在off-chip Code memory項目下加入第一個人口:Start:Ox400000,Size:Ox80000。在off- chip Xdata memory項目下加入一個入口:Start:0x10000,Size:Ox4000。
圖2所示為配置完成后的對話框。注意,Ox400000的最后一個0在窗口中沒有顯示出來。
上述設(shè)置基于TINIm400參考模塊的存儲區(qū)配置,該模塊在地址0有512k的RAM,從地址400000h開始有1M的flash。Keil配置中的起始地址與大小應(yīng)根據(jù)用戶的DS80C400設(shè)計來修改。
.選擇Output標(biāo)簽。點擊Create HEX File,并在下拉框中選擇HEX-386。
.按F7鍵建立應(yīng)用程序。如果每一步都正確完成,建立過程應(yīng)不產(chǎn)生錯誤或警告信息。之后會生成一個hex文件,F(xiàn)在就可以將該應(yīng)用程序裝載到你的電路板上了。
&n
吳星華
本文先從一個用C語言實現(xiàn)的Hello World程序人手,然后介紹一個簡單的HTTP服務(wù)器。文中介紹了如何設(shè)置開發(fā)工具并編寫一個簡單的示范程序,然后演示如何使用DS80C400的ROM功能。所有開發(fā)都使用TINIm400驗證模塊和包含7.05版C編譯器“C51’’的Keil μVision2TM2.37版
引言
自從推出了DS80C390的TINI~運行環(huán)境(TINI Runtime Environment),開發(fā)人員早就呼吁尋找一種方法,能在不使用Javatm語言的前提下使用TINI的強大功能。但遺憾的是,TINI的網(wǎng)棧和其他特性與Java虛擬機及運行環(huán)境曾經(jīng)是緊密相連的,很難在C語言或匯編程序中去訪問。為此,在設(shè)計DS80C400網(wǎng)絡(luò)微控制器的ROM時,一組功能被公開出來,可以在8051匯編、C語言或Java程序中訪問。受容量的限制,ROM提供的功能僅限于TINI運行環(huán)境的一個子集。這樣,ROM可以被視作一個可由C或匯編程序使用的模塊,它提供了經(jīng)過驗證的網(wǎng)棧、進程調(diào)度器和存儲器管理器。簡單程序象網(wǎng)絡(luò)揚聲器可以用匯編語言輕松實現(xiàn),更復(fù)雜一點的象HTTP(超文本傳送協(xié)定)服務(wù)器這種需要與文件系統(tǒng)交互的程序可以使用C語言。
本文先從一個用C語言實現(xiàn)的Hello World程序人手,然后介紹一個簡單的HTTP服務(wù)器。文中介紹了如何設(shè)置開發(fā)工具并編寫一個簡單的示范程序,然后演示如何使用DS80C400的ROM功能。所有開發(fā)都使用TINIm400驗證模塊和包含7.05版C編譯器“C51’’的Keil μVision2TM2.37版
從Keil的μVision2開始
可以使用Keil μVision2開發(fā)套件,構(gòu)建一個簡單的Hello World型C語言程序。按照以下步驟完成你的第一個用于DS80C400的C語言應(yīng)用程序。
.選擇Project->Create New 。
輸入項目名稱。
.屏幕上將出現(xiàn)Select Device for Target對話框。在Data base中選擇Dallas Semiconductor和DS80C400。選擇Use Extended Linker和Use Extended Assembler。點擊OK繼續(xù),見圖1所示為該對話框的正確配置。
.將有對話框提示:Copy Dallas 80C390 Startup Codey to Project Folder和Add File
to Project?選擇No。我們將提供自己的啟動代碼。
.當(dāng)項目窗口在左側(cè)打開時,打開Target1。右擊Source Group1,并選擇Add files to group'Source Group1’。在彈出的文件對話框中,將files of type 改為Asm source file。添加文件startup400.a51。
.應(yīng)該注意,建立應(yīng)用的地址應(yīng)為400000h,它對應(yīng)于TINIm400上flash的起始地址。雙擊打開文件startup400.a51。找到段聲明?C_CPURESET?0。確保代碼段聲明為400000h:
?C_CPURESET?0
SEGMENT CODE AT 400000h
.另外,應(yīng)有一個“DB,’TINI’行,后跟另一個DB行,帶有注釋“Targe tbank”。這個聲明是一個標(biāo)記的一部分,用于告知DS80C400 ROM從地址400000h開始執(zhí)行代碼。這樣就可以確保應(yīng)用的建立地址為400000h,對應(yīng)于TINIm400上flash的起始地址。請確認該行為:
DB 40h ; Target bank
.創(chuàng)建一個新的文件,以“main.c”為文件名來保存。在該文件中寫人如下代碼:
# include
Void main( )
{
printf(”Test 400 Program\r\n”);
while (1) { }
)
.保存文件內(nèi)容。右擊Source Group1,并添加源文件main.c,F(xiàn)在就可以將該源文件添加到項目中了。
.右擊左側(cè)的Target1。選擇options for target’Target1’,打開選項對話框。第一個選擇標(biāo)簽應(yīng)該為Target。將Memory Model改為Large:variables in XDATA。將Code Rom Size改為Contiguous Mode:16MB program。選中檢查框Use multiple DPTR registers和far memory type support。在off-chip Code memory項目下加入第一個人口:Start:Ox400000,Size:Ox80000。在off- chip Xdata memory項目下加入一個入口:Start:0x10000,Size:Ox4000。
圖2所示為配置完成后的對話框。注意,Ox400000的最后一個0在窗口中沒有顯示出來。
上述設(shè)置基于TINIm400參考模塊的存儲區(qū)配置,該模塊在地址0有512k的RAM,從地址400000h開始有1M的flash。Keil配置中的起始地址與大小應(yīng)根據(jù)用戶的DS80C400設(shè)計來修改。
.選擇Output標(biāo)簽。點擊Create HEX File,并在下拉框中選擇HEX-386。
.按F7鍵建立應(yīng)用程序。如果每一步都正確完成,建立過程應(yīng)不產(chǎn)生錯誤或警告信息。之后會生成一個hex文件,F(xiàn)在就可以將該應(yīng)用程序裝載到你的電路板上了。
&n
熱門點擊
- 分析封裝過程中的彈坑與失鋁現(xiàn)象
- 光電二極管前置放大器設(shè)計
- 富康轎車空調(diào)控制系統(tǒng)常見故障及檢修
- 基于VHDL語言的出租車計費系統(tǒng)設(shè)計
- 寶來轎車電子穩(wěn)定系統(tǒng)的結(jié)構(gòu)與檢修
- 單片、同步、降壓轉(zhuǎn)換器LTC3414及其應(yīng)用
- 應(yīng)分析好SAR ADC才能為寬廣應(yīng)用開導(dǎo)
- 一種VME橋接芯片VIC068A/VIC64
- 集成電路互連引線電遷移的研究進展 吳豐順a,
- CMOS圖像傳感器芯片OV7648及其應(yīng)用
推薦技術(shù)資料
- AMOLED顯示驅(qū)動芯片關(guān)鍵技
- CMOS圖像傳感器技術(shù)參數(shù)設(shè)計
- GB300 超級芯片應(yīng)用需求分
- 4NP 工藝NVIDIA Bl
- GB300 芯片、NVL72
- 首個最新高端芯片人工智能服務(wù)器
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究