新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > DS80C400的Keil C語言編程

        DS80C400的Keil C語言編程

        作者: 時間:2012-02-01 來源:網絡 收藏

        有關指針傳遞的說明
        文檔提供了用8051匯編自己編寫可從你的C程序中調用的方法的途徑。如果你選擇這樣做,請注意,由C程序傳遞到8051匯編的指針在 DS80C390和中不是立即可用的。因為傳統的8051架構是16位的,指針由兩字節的指針和一字節的存儲類型組成。當采用 Dallas的24位8051微控制器時,存儲類型字節為指針高字節所用,但采用一種變化的形式。在當前版本的編譯器中,高指針字節有其高位設置并被遞增1。以下來自rom_offsets.inc的宏在Dallas Semiconductor庫中被用于糾正被更改的指針。

              FIXKEILPOINTER  MACRO DIRECT_DPXLOCAL  must_be_nullmov    a, DIRECT_DPXjz     must_be_nulldec    aanl    a, #7Fhmov    DIRECT_DPX, amust_be_null:ENDM
        Keil編譯器通過寄存器r3:r2:r1 (r3是存儲類型字節) 或XDATA存儲區傳遞指針。該宏將工作于任何寄存器或其他直接存儲器值,傳給它存儲類型字節,它會在同一位置返回高指針字節。以下代碼演示了它的用法:
              ;; Keil passes pointers as r3:r2:r1...;---- Variable 'buffer1?972' assigned to Register 'R1/R2/R3' ----;FIXKEILPOINTER r3;; r3:r2:r1 is now usable as a pointer value.;;; ...or in XDATA.;---- use dpx1:dph1:dpl1 for buffer pointer ----;mov     dptr, #buffer2?1078GETXmov     dpx1, ainc     dptrGETXmov     dph1, ainc     dptrGETXmov     dpl1, aFIXKEILPOINTER   dpx1;; Data pointer 1 is now usable as a pointer.;
        注意,還有一種與FIXKEILPOINTER宏相反的情況,可以使函數將其所需的指針轉換為Keil編譯器生成代碼可以理解的形式。在此情況下,可以用UNFIXKEILPOINTER宏。這個宏的用法和FIXKEILPOINTER宏相同。一點不同是,當你從一個用匯編寫的方法中返回一個指針時,指針必須保存在寄存器r3, r2和r1中,高指針字節在r3中。因此,在退出一個需要返回指針的函數前,它必須調用宏:
              UNFIXKEILPOINTER r3ret; End of the assembly function
        保持你的Keil為最新版本
        Keil會隨時發布對其uVision2工具套件的更新版本。網站http://www.keil.com/update/上有關于最新版本的C51編譯器和uVision2 IDE的信息。從該網頁你可以選擇你需要的下載,并看到所發生的變化。

        更新應該是一個可執行的InstallShield。應用將顯示一個標題為Setup uVision2的窗口。選擇Update Current Installation選項執行更新。程序可以檢測你當前的安裝目錄,點擊Next繼續。在下一屏上選擇是否要保留原來的uVision2配置,并再次點擊Next。最后,確認你選擇的選項并開始安裝。

        結論
        Keil C編譯器和Dallas Semiconductor提供的庫允許用C編寫的應用也可方便地使用以前只能通過TINI的Java環境訪問的功能和函數。C語言程序現在可以訪問網棧、存儲管理器、進程調度器、文件系統,以及網絡微控制器的許多其他特性。另外,與TINI運行環境相比,用C語言編寫的應用程序為用戶代碼和數據提供了更多的空間。使用C語言的開發者可輕易編寫出極為精簡的應用,有充裕的速度速度、能力、代碼空間來應付各種問題。

        參考文獻
        1 App Note 609: Internet Speaker with the DS80C400 Silicon Software

        2 Download at http://java.sun.com/j2se/downloads.html

        3 Download at http://java.sun.com/products/javacomm/

        4 The High-Speed Micro User's Guide Supplement for the DS80C400 can be found at http://pdfserv.maxim-ic.com/arpdf/Design/DS80C400UG.pdf

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



        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 大宁县| 福清市| 贵阳市| 平利县| 城口县| 盐池县| 晋城| 聂荣县| 尚志市| 莱西市| 宁陵县| 丹棱县| 定边县| 夹江县| 昭觉县| 临颍县| 武鸣县| 兖州市| 郓城县| 呼伦贝尔市| 昭觉县| 上饶县| 稷山县| 九龙县| 休宁县| 马公市| 綦江县| 长宁区| 六枝特区| 繁昌县| 文化| 焦作市| 股票| 阜宁县| 元谋县| 武清区| 大渡口区| 涿鹿县| 五莲县| 荔浦县| 古蔺县|