色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > DS80C400的Keil C語(yǔ)言編程

          DS80C400的Keil C語(yǔ)言編程

          作者: 時(shí)間:2012-02-01 來(lái)源:網(wǎng)絡(luò) 收藏
          可以被視作一個(gè)構(gòu)建C或匯編程序的起跑架,它提供TINI?經(jīng)過(guò)驗(yàn)證的網(wǎng)棧、進(jìn)程調(diào)度器和存儲(chǔ)器管理器。簡(jiǎn)單程序,如網(wǎng)絡(luò)揚(yáng)聲器,可以用匯編語(yǔ)言輕松實(shí)現(xiàn),更復(fù)雜一點(diǎn)的,如HTTP服務(wù)器這種需要與文件系統(tǒng)交互的程序,可以使用C語(yǔ)言。

          文中介紹了如何從的uVision2開(kāi)發(fā)套件著手構(gòu)建一個(gè)的C語(yǔ)言應(yīng)用程序,通過(guò)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的HTTP服務(wù)器演示如何使用的ROM功能。所有開(kāi)發(fā)都采用了TINIm400驗(yàn)證模塊和包含7.05版C編譯器'C51'的 uVision2 2.37。

          的uVision2開(kāi)始
          你可以使用Keil uVision2開(kāi)發(fā)套件,構(gòu)建一個(gè)簡(jiǎn)單的HelloWorld型C語(yǔ)言程序。按照以下步驟完成你的第一個(gè)用于的C語(yǔ)言應(yīng)用程序。

          選擇Project-->Create New Project。 輸入項(xiàng)目名稱(chēng)。

          屏幕上將出現(xiàn)Select Device for Target對(duì)話框。在Data base中選擇Dallas Semiconductor和DS80C400。選擇Use Extended Linker和Use Extended Assembler。點(diǎn)擊OK繼續(xù)。圖1所示為該對(duì)話框的正確配置。


          圖1. 為一個(gè)新的Keil uVision2項(xiàng)目選擇

          將有對(duì)話框提示:Copy Dallas 80C390 Startup Code to Project Folder and Add File to Project?選擇No。我們將提供自己的啟動(dòng)代碼。

          當(dāng)項(xiàng)目窗口在左側(cè)打開(kāi)時(shí),打開(kāi)Target 1。右擊Source Group 1,并選擇Add files to group 'Source Group 1'。在彈出的文件對(duì)話框中,將files of type改為Asm Source file。添加文件startup400.a51。該文件可以在http://files.dalsemi.com/tini/ds80c400/c_libraries/HelloWorld.zip上的zip文件中找到。

          雙擊打開(kāi)文件startup400.a51。找到段聲明?C_CPURESET?0。確保代碼段聲明為400000h。

                C_CPURESET?0        SEGMENT CODE AT 400000h
          另外,應(yīng)有一個(gè)"DB 'TINI'"行,后跟另一個(gè)DB行,帶有注釋"Target bank"。這樣就可以確保應(yīng)用建立地址為400000h,對(duì)應(yīng)于TINIm400上flash的起始地址。請(qǐng)確認(rèn)該行為: 
                DB     40h           ; Target bank
          創(chuàng)建一個(gè)新的文件,以"main.c"為文件名來(lái)保存。在該文件中寫(xiě)入如下代碼:
                #include void main(){printf("Test 400 Programr");while (1){}}
          保存文件內(nèi)容。右擊Source Group 1,并添加源文件main.c。現(xiàn)在就將該源文件添加到項(xiàng)目中了。

          右擊左側(cè)的Target 1。選擇Options for target 'Target 1'打開(kāi)選項(xiàng)對(duì)話框。第一個(gè)選擇標(biāo)簽應(yīng)該為T(mén)arget。將Memory Model改為L(zhǎng)arge: variables in XDATA。將Code Rom Size改為Contiguous Mode: 16MB program。選中檢查框Use multiple DPTR registers和far memory type support。在Off-chip Code memory項(xiàng)目下加入第一個(gè)入口:Start:0x400000,Size:0x80000。在Off-chip XData memory項(xiàng)目下加入一個(gè)入口:Start:0x10000,Size:0x4000。圖2所示為配置完成的對(duì)話框。確認(rèn)檢查框Use On-Chip Arithmetic Accelerator被清除--多線程應(yīng)用很難共用算術(shù)累加器。


          圖2. setp 7目標(biāo)選項(xiàng)對(duì)話框(注意,'Eprom:start' 應(yīng)為0x400000,最后一個(gè)'0'未顯示)。

          選擇Output標(biāo)簽。點(diǎn)擊Create HEX File,并在下拉框中選擇HEX-386。按F7鍵建立應(yīng)用程序。如果每一步都正確完成,建立過(guò)程應(yīng)不產(chǎn)生錯(cuò)誤或警告信息。之后會(huì)生成一個(gè)hex文件?,F(xiàn)在就可以將該應(yīng)用程序裝載到你的電路板上了。

          將應(yīng)用實(shí)例裝載到TINIm400模塊
          這部分介紹如何使用JavaKit工具將Keil編譯器生成的hex文件裝載到TINIm400驗(yàn)證模塊中。使用JavaKit之前,必須首先安裝Java Runtime Environment2 (1.2版以上)和Java Communications API3。JavaKit包含在TINI軟件開(kāi)發(fā)包中(TINI Software Development Kit),http://files.dalsemi.com/tini/tini1_11.tgz上提供下載。運(yùn)行JavaKit的說(shuō)明可以在TINI Software Development Kit的docs目錄下的Running_JavaKit.txt文件中找到。如果你在運(yùn)行JavaKit時(shí)遇到任何技術(shù)問(wèn)題,很可能其他人曾經(jīng)遇到過(guò)類(lèi)似的問(wèn)題,這些問(wèn)題被收集在TINI主題列表中。你可以在http://lists.dalsemi.com/search/search.html上搜索有關(guān)該列表的文檔。

          通過(guò)以下命令行建立JavaKit與TINIm400的通話。

                java JavaKit -400 -flash 40
          圖3顯示了JavaKit窗口。


          圖3. JavaKit界面。

          運(yùn)行JavaKit后,選擇用來(lái)與TINIm400進(jìn)行通信的串口。使用'Open Port'按鈕打開(kāi)該串口。然后按Reset按鈕。DS80C400裝載器將提示如下信息:

               DS80C400 Silicon Software - Copyright (C) 2002 Maxim Integrated ProductsDetailed product information available at http://www.maxim-ic.comWelcome to the TINI DS80C400 Auto Boot Loader 1.0.1>
          在JavaKit頂部的'File'菜單中,選擇Load HEX File as TBIN。找到并選擇我們已經(jīng)創(chuàng)建的helloworld.hex文件。Load HEX File as TBIN選項(xiàng)先將輸入的hex文件轉(zhuǎn)換為T(mén)BIN文件,然后裝載。這樣的操作比直接裝載hex文件速度快,因?yàn)閷?duì)于同樣的數(shù)據(jù),ASCII編碼的hex文件的尺寸是二進(jìn)制文件的二倍多。
          用戶程序裝載后,有兩種執(zhí)行方法。由于程序裝載到存儲(chǔ)區(qū)40中,所以你可以直接鍵入:
                > B40> X
          要選擇存儲(chǔ)區(qū)40,并在運(yùn)行這里的代碼,也可以鍵入:
                > E
          這將使ROM查找可執(zhí)行代碼,有一個(gè)特殊標(biāo)記符用來(lái)表示當(dāng)前存儲(chǔ)區(qū)中有可執(zhí)行代碼。該標(biāo)記符由字符'TINI'和緊隨其后的當(dāng)前區(qū)號(hào)組成。它位于當(dāng)前區(qū)的地址0002處。我們的HelloWorld程序?qū)τ诖藰?biāo)記符的聲明在startup400.a51文件中如下所示:

          c語(yǔ)言相關(guān)文章:c語(yǔ)言教程



          上一頁(yè) 1 2 3 4 下一頁(yè)

          關(guān)鍵詞: DS80C400 Keil C語(yǔ)言編程

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉