新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于eCos系統的SPCE3200中SD卡驅動程序的開發

        基于eCos系統的SPCE3200中SD卡驅動程序的開發

        作者: 時間:2009-06-17 來源:網絡 收藏

         設備程序是介于硬件和嵌入式內核之間的軟件接口,是一種底層的、專用于某一硬件的軟件組件。在[1]中,設備程序以包(Package)的形式存在,當需要使用該設備時,通過環境配置工具把該設備程序包加載到內核中,編譯后生成一個庫文件,用戶使用時,只需要打開該設備,直接調用接口API函數即可。設備驅動程序的作用如圖1所示[2]。

        本文引用地址:http://www.104case.com/article/152463.htm

         在eCos中一般把設備分為4類:字符設備、塊設備、網絡接口、其他設備。
          是凌陽公司推出的一款32位支持處理器,其內部具有卡控制器,屬于塊設備類[3]。對內部的卡控制器必須編寫驅動程序,以便完成卡的讀寫操作。下面將介紹具體實現過程,這里規定使用“/dev/sd”作為其名稱。
        1 建立驅動程序目錄結構
          在編寫驅動程序前,首先需要為驅動建立其目錄結構。eCos系統要求所有驅動程序均保存在/packages/devs目錄下的對應子目錄內,按照圖2所示在eCos/ packages/devs/sd/Spce3200 目錄下分別建立名為“cdl”、“include”、“current”3個目錄,分別用于存放SD卡驅動所需的cdl文件、驅動程序頭文件和源程序文件。

        2 建立SD卡驅動程序文件
          在cdl目錄內,首先創建一個叫做“sd_spce3200.cdl”的文件。然后,在src目錄內建立一個名為“sd_spce3200.c”驅動程序的源程序,并將名為“sd_card_driver_spce3200.c”的文件復制到src目錄內,該文件是凌陽科技提供的針對內部SD卡控制器的基本操作程序。

        3 設計SD卡驅動的CDL文件

          CDL(Component Definition Language)是eCos組件框架的一個關鍵部分。eCos中所有的包都必須具有至少一個CDL腳本對其進行描述[4]。CDL腳本包含了該包中所有配置選項的詳細信息,并提供了如何對該包進行編譯的信息[5]。這里,在CDL文件的模板框架中添加關于SD卡配置項的代碼如下:
          cdl_package CYGPKG_DEVS_SD_SPCE3200 {
          display 'SD driver for SPCE3200'
          include_dir cyg/io
          compile sd_card_driver_spce3200.c
          compile -library=libextras.a sd_spce3200.c
          description 'SD driver for SCORE SPCE3200'
          cdl_component CYGPKG_DEVS_SD_SPCE3200_OPTIONS {
          display'CompileOptions'
          flavor rnone
          no_define
          cdl_optionCYGDAT_DEVS_SD_SPCE3200_NAME{
          display 'Device name for theSDDriver'
          flavor data
          default_value{''/dev/sd''}
          description ' This option specifies the name of the sd-card device'
          }
          }
          }


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 上饶市| 贵溪市| 贞丰县| 山阴县| 图片| 蓬溪县| 墨竹工卡县| 三原县| 静宁县| 嘉义县| 沁水县| 灯塔市| 湖州市| 富阳市| 福建省| 阿城市| 冀州市| 淳化县| 新兴县| 泰来县| 营口市| 白玉县| 类乌齐县| 石首市| 泽州县| 嵩明县| 崇明县| 揭西县| 交口县| 惠东县| 莎车县| 进贤县| 合水县| 阿拉善左旗| 巧家县| 扶风县| 顺义区| 安义县| 临安市| 龙井市| 云梦县|