DS80C400的Keil C語言編程

2021-01-08 電子產品世界

可以被視作一個構建C或彙編程序的起跑架,它提供TINI®經過驗證的網棧、進程調度器和存儲器管理器。簡單程序,如網絡揚聲器,可以用彙編語言輕鬆實現,更複雜一點的,如HTTP伺服器這種需要與文件系統交互的程序,可以使用C語言。

文中介紹了如何從Keil的uVision2開發套件著手構建一個DS80C400的C語言應用程式,通過實現一個簡單的HTTP伺服器演示如何使用DS80C400的ROM功能。所有開發都採用了TINIm400驗證模塊和包含7.05版C編譯器'C51'的Keil uVision2 2.37。

從Keil的uVision2開始
你可以使用Keil uVision2開發套件,構建一個簡單的HelloWorld型C語言程序。按照以下步驟完成你的第一個用於DS80C400的C語言應用程式。

選擇Project-->Create New Project。 輸入項目名稱。

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


圖1. 為一個新的Keil uVision2項目選擇

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

當項目窗口在左側打開時,打開Target 1。右擊Source Group 1,並選擇Add files to group 'Source Group 1'。在彈出的文件對話框中,將files of type改為Asm Source file。添加文件startup400.a51。該文件可以在http://files.dalsemi.com/tini/ds80c400/c_libraries/HelloWorld.zip上的zip文件中找到。

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

C_CPURESET?0 SEGMENT CODE AT 400000h

另外,應有一個"DB 'TINI'"行,後跟另一個DB行,帶有注釋"Target bank"。這樣就可以確保應用建立地址為400000h,對應於TINIm400上flash的起始地址。請確認該行為:

DB 40h ; Target bank

創建一個新的文件,以"main.c"為文件名來保存。在該文件中寫入如下代碼:

#include void main(){printf("Test 400 Program\r");while (1){}}

保存文件內容。右擊Source Group 1,並添加源文件main.c。現在就將該源文件添加到項目中了。

右擊左側的Target 1。選擇Options for target 'Target 1'打開選項對話框。第一個選擇標籤應該為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:0x400000,Size:0x80000。在Off-chip XData memory項目下加入一個入口:Start:0x10000,Size:0x4000。圖2所示為配置完成的對話框。確認檢查框Use On-Chip Arithmetic Accelerator被清除--多線程應用很難共用算術累加器。


圖2. setp 7目標選項對話框(注意,'Eprom:start' 應為0x400000,最後一個'0'未顯示)。

選擇Output標籤。點擊Create HEX File,並在下拉框中選擇HEX-386。按F7鍵建立應用程式。如果每一步都正確完成,建立過程應不產生錯誤或警告信息。之後會生成一個hex文件。現在就可以將該應用程式裝載到你的電路板上了。

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

通過以下命令行建立JavaKit與TINIm400的通話。

java JavaKit -400 -flash 40

圖3顯示了JavaKit窗口。


圖3. JavaKit界面。

運行JavaKit後,選擇用來與TINIm400進行通信的串口。使用'Open Port'按鈕打開該串口。然後按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。找到並選擇我們已經創建的helloworld.hex文件。Load HEX File as TBIN選項先將輸入的hex文件轉換為TBIN文件,然後裝載。這樣的操作比直接裝載hex文件速度快,因為對於同樣的數據,ASCII編碼的hex文件的尺寸是二進位文件的二倍多。
用戶程序裝載後,有兩種執行方法。由於程序裝載到存儲區40中,所以你可以直接鍵入:

> B40> X

要選擇存儲區40,並在運行這裡的代碼,也可以鍵入:

> E

這將使ROM查找可執行代碼,有一個特殊標記符用來表示當前存儲區中有可執行代碼。該標記符由字符'TINI'和緊隨其後的當前區號組成。它位於當前區的地址0002處。我們的HelloWorld程序對於此標記符的聲明在startup400.a51文件中如下所示:

c語言相關文章:c語言教程


相關焦點

  • keil C語言與彙編語言混合編程
    不同類型的數據及其傳遞參數的寄存器如下表所示: 在C和彙編混合編程的時候,存在C語言和彙編語言的變量以及函數的接口問題。在C程序中定義的變量,編譯為.asm文件後,都被放進了.bss區,而且變量名的前面都帶了一個下劃線。
  • keil c語言編程常見問題解析(一)
    一起走向智能工業革命時代,單片機DIY、基於c語言/彙編的編程。\ds18b20start.obj (DS18B20c/c++語言中有很多地方要用到extern,但是如果沒有真正的了解它的意義,會給編程帶來很大的麻煩,為了使大家少走彎路,特祥細的說明一下。      對於比較小的程序,一般只有一個c文件和一個頭文件,全局變量我們通常會直接定義在c文件中,在程序之前加int i定義。
  • 學單片機如何編程?非常詳細的Keil工程建立全過程講解
    相信用過彙編語言後再使用C來開發,體會更加深刻,當然如果彙編語言和硬體結構熟練到一定程度,使用彙編語言會更具優勢,但對於大部分初學者而言,Keil C51應該是首選。掌握這一軟體的使用對於使用51系列單片機的愛好者來說是十分必要的,即使不使用C語言而僅用彙編語言編程,其方便易用的集成環境、強大的軟體仿真調試工具也會令你事半功倍。
  • 單片機C語言模塊化編程方法
    初學者往往搞不懂如何模塊化編程,其實它是簡單易學,而且又是組織良好程序結構行之有效的方法之一.本文將先大概講一下模塊化的方法和注意事項,最後將以初學者使用最廣的keil c編譯器為例,給出模塊化編程的詳細步驟。
  • ARM DS-5開發STM32程序(Eclipse配合Keil插件使用)
    http://pan.baidu.com/s/1mgHX2JY補充:社區版激活代碼:http://ds.arm.com/zh-cn/ds-5-community-edition/getting-started/3.運行DS-5安裝Keil插件安裝好Keil插件後只是使用了Keil的調試和下載功能,真正與DS-5合體需要在Eclipse
  • 在keil中怎麼燒寫程序
    打開APP 在keil中怎麼燒寫程序 發表於 2017-11-16 10:52:58   什麼是keil
  • 單片機keil 常見問題
    一、混合編程1、模塊內接口:使用如下標誌符:#pragma asm彙編語句#pragma endasm注意:如果在c51程序中使用了彙編語言
  • 簡析單片機keil常見問題
    一、混合編程  1、模塊內接口:  使用如下標誌符:  #pragma asm  彙編語句  #pragma endasm  注意:如果在c51程序中使用了彙編語言,注意在keil編譯器中需要激活Properties中的「
  • 自學單片機第三篇:keil軟體
    我之前裝的是keil4,現在網絡上是keil5,圖標變成綠色,4改成5。圖標雙擊打開軟體,界面如下。然後第二個是調整程序中文字的顏色,可以自己設置,不設置也行,我喜歡設置成對比色,編程時方便觀查。語言新建一定記得,輸名稱後,帶點「.c」,不然程序就識別不了。
  • 單片機模塊化編程的原則有哪些
    目前我們在學習和開發單片機時廣泛採用 c 語言進行編程,當我們開發的單片機項目較小時,或者我們所寫的練習程序很小時,我們總是習慣於將所有代碼編寫在同一個 c 文件下,由於程序代碼量較少,通常為幾十行或者上百行, 此時這種操作是可行方便的, 也沒有什麼問題。
  • 單片機的程式語言:彙編語言、C語言、PL/M和BASIC語言
    單片機的程式語言很多,目前常見的程式語言有4種,即彙編語言、C語言、PL/M和BASIC語言。下面我們來介紹一下吧:一、BASIC程式語言BASIC是一種高級語言,它的英文含義是「初學者通用符號指令代碼」,是在1965年5月,由美國科學家託馬斯•庫爾茲研製出來的。10多年後,微軟公司把它移植到微型機上。
  • 單片機程式語言的比較
    例如,懂得彙編語言指令就可以使用在片內ram作變量的優勢,因為片外變量需要幾條指令才能設置累加器和數據指針進行存取。同樣的,當要求使用浮點數和啟用函數時也只有具備彙編編程經驗才能避免生成龐大的、效率低的程序,對於這方面的編程,沒有彙編語言是做不到的。
  • 單片機編程軟體大佬:明確單片機編程軟體編寫單片機程序步驟
    單片機用什麼軟體編程?單片機開發中除必要的硬體外,同樣離不開軟體,我們寫的彙編語言源程序要變為CPU可以執行的機器碼有兩種方法,一種是手工彙編,另一種是機器彙編,目前已極少使用手工彙編的方法了。機器彙編是通過彙編軟體將源程序變為機器碼,用於MCS-51單片機的彙編軟體有早期的A51,隨著單片機開發技術的不斷發展,從普遍使用彙編語言到逐漸使用高級語言開發,單片機的開發軟體也在不斷發展,Keil軟體是目前最流行開發MCS-51系列單片機的軟體,這從近年來各仿真機廠商紛紛宣布全面支持Keil即可看出。
  • KEIL4 工程到 KEIL5 程序的移植方法
    首先我們用 keil5 打開 keil4 的工程, 則會彈出下面的窗口, 這就是我們程序兼容的關鍵。所在的安裝路徑,搜索core_cmInstr.h,找到core_cmInstr.h所在路徑 第三步:點擊keil5裡魔術棒-->c/
  • 做嵌入式編程,為什麼用的是C語言而不是C++呢?
    C語言發展到現在,差不多50年的時間了,現在正是c語言過渡到C++語言成為嵌入式開發主流語言的最佳契機。 對於習慣了用C語言開發的嵌入式程式設計師來說,對C++語言是有一些誤解和偏見的。
  • 程式語言學哪個比較好?2019年最實用的程式語言
    學習編程關鍵是要找到一種合適的語言,那麼程式語言那麼多,該如何選擇?下面萬古網校小編為大家分享一篇關於程式語言選擇的文章,希望能給你帶來幫助!第一大類語言包括Java、C、Python和C++。這類語言都是非常通用的語言,它們並不局限於特定的編程平臺或用途。
  • 想學編程?先來理解一下C語言的Helloworld程序吧
    C語言作為一門計算機科學歷史上裡程碑式的程式語言,現在依然被廣泛使用。其功能強大,內容簡單,想學習編程的小夥伴們不妨先學習一下C語言。本文將介紹一下K&R所寫的經典程序:Helloworld的簡要分析。
  • 被雙十一套路所傷的,請到這裡取暖——「 用 C語言編寫自己的程式語言 」
    好了,上面扯了這麼多,接下來就給大家介紹下這門終極裝逼課——「用 C語言編寫自己的程式語言」。如果你的目標不僅僅是一個碼農,而是軟體工程師,那你應該好好看看本課,相信會對你了解程式語言的設計思想,實現高質量編程會有很大的幫助。1. 內容簡介我們在學習程式語言的時候會學到很多的語法規則,很多巧妙的用法,這些都是怎麼實現的?
  • 第5節:用keil軟體新建,關閉,打開一個完整工程的操作流程
    先在電腦D盤目錄下新建一個文件夾,取名為「stc89c52rc」。第二步:啟動keil軟體。雙擊桌面」keil uVision4」的圖標啟動keil軟體。第三步:關閉默認被打開的已有工程。打開keil軟體時,如果發現此軟體默認打開了一個之前已經存在的工程,請先關閉此工程。如果默認沒有打開已有工程,這一步可以忽略跳過。
  • 單片機與C語言——keil c51教程(1)
    單片機C語言教程(一) 學習單片機實在不是件易事,一來要購買高價格的編程器,仿真器,二來要學習程式語言,還有眾多種類的單片機選擇真是件讓人頭腦的事