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

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于MPC8280 多通道控制器驅(qū)動的研究與實現(xiàn)

          基于MPC8280 多通道控制器驅(qū)動的研究與實現(xiàn)

          作者: 時間:2010-12-07 來源:網(wǎng)絡(luò) 收藏


          MCC 主要分為以下幾部分:

          3.1 MCC 初始化

          主要完成 MCC 模塊的初始化,具體內(nèi)容包括:為MCC 控制數(shù)據(jù)結(jié)構(gòu)分配內(nèi)存,并根據(jù)初始化參數(shù)初始化數(shù)據(jù)結(jié)構(gòu)的相關(guān)內(nèi)容;初始化MCC 相關(guān)的控制寄存器;創(chuàng)建接收消息隊列以及相應(yīng)接收處理任務(wù);最后啟動MCC 進行數(shù)據(jù)收發(fā)。

          (1) 分配并初始化MCC 操作所需的內(nèi)存空間。

          申請數(shù)據(jù)緩沖區(qū)、緩沖區(qū)描述符及循環(huán)中斷表所需的存儲空間。由于MCC 通過DMA 與主存進行發(fā)送數(shù)據(jù)和接收數(shù)據(jù)的交換,所以內(nèi)存分配時必須要考慮緩存一致性問題,否則程序運行時可能出現(xiàn)較為嚴(yán)重的錯誤。VxWorks 提供了一個函數(shù)cacheDmaMalloc,可以為DMA 設(shè)備或者程序分配緩存安全的內(nèi)存空間。

          (2) 初始化循環(huán)中斷表。

          將循環(huán)中斷表中的條目初始化為 0x00000000,并將最后一個條目初始化為0x40000000以標(biāo)記結(jié)束位置。

          (3) 配置SI 寄存器和SIRAM。

          設(shè)置每組MCC 所使用的TDM,并且配置SIRAM 以建立TDM 時隙和MCC 的對應(yīng)關(guān)系。

          (4) 初始化MCC Global Parameters。主要包括:

          ● MCCBASE MCC 基址指針,指向位于外部存儲器的緩沖區(qū)描述符表,為最大512KB 的連續(xù)空間。

          ● MRBLR 最大接收緩沖區(qū)長度。必須是8 整數(shù)倍。

          ●GRFTHR 全局接收幀門限。用于減少由于頻繁產(chǎn)生中斷而造成的開銷。

          ● GRFCNT 全局接收幀計數(shù)。初始化為GRFTHR。

          ● TINTBASE 多發(fā)送循環(huán)中斷表基址指針。

          ● TINTPTR 指向可用的發(fā)送循環(huán)中斷表條目。初始化為TINTBASE。

          ● SCTPBASE 指向超通道表。

          ● RINTBASE 多通道接收循環(huán)中斷表基址指針。

          (5) 初始化緩沖區(qū)描述符BD 和數(shù)據(jù)緩沖區(qū)。

          BD 表位于外部存儲器,其組織結(jié)構(gòu)如圖2 所示。


          圖 2 MCC 緩沖區(qū)描述符結(jié)構(gòu)組織圖

          (6) 安裝數(shù)據(jù)接收回調(diào)函數(shù)。

          (7) 初始化所使用通道的MCC Channel-specific Parameters。

          (8) 初始化所使用通道的MCC Channel-extra Parameters。

          (9) 如使用了超通道則初始化Super-channel Table。

          (10) 配置系統(tǒng)接口單元SIU,根據(jù)需要設(shè)置與MCC 相關(guān)的中斷并安裝中斷處理函數(shù)。

          (11) 配置TDM 所用到的并行接口和時鐘信號。

          (12) 執(zhí)行MCC INIT 命令。

          (13) 使能TDM。


          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉