亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于緩沖區(qū)的驅動程序架構設計的方法及系統(tǒng)的制作方法

文檔序號:6527100閱讀:268來源:國知局
基于緩沖區(qū)的驅動程序架構設計的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明提供了一種基于緩沖區(qū)的驅動程序架構設計的方法及系統(tǒng),該基于緩沖區(qū)的驅動程序架構設計的方法包括緩沖區(qū)層驅動程序、邏輯通道層驅動程序、物理通道層驅動程序。本發(fā)明的有益效果是:本發(fā)明設計的驅動程序架構為基帶業(yè)務處理提供了四類抽象的、統(tǒng)一的緩沖區(qū)接口,在跨平臺移植性、健壯性和可配置性等方面都比傳統(tǒng)的驅動程序接口有較大的提高。
【專利說明】基于緩沖區(qū)的驅動程序架構設計的方法及系統(tǒng)
【技術領域】
[0001]本發(fā)明涉及移動通信領域,尤其涉及基于緩沖區(qū)的驅動程序架構設計的方法及系統(tǒng)。
【背景技術】
[0002]在移動通信基帶業(yè)務的數(shù)字信號處理(嵌入式)領域,各種基帶業(yè)務(WIMAX、LTE、UMTS、TD-SCDMA、GSM等)運行在一套驅動程序平臺軟件上,或者一種基帶業(yè)務在一套驅動程序平臺軟件的支持下運行在多種硬件平臺上。在現(xiàn)有的處理技術中,為了達到對底層支持多種硬件平臺、對高層支持多種基帶業(yè)務的需求,軟件平臺需要為每種硬件平臺和每種業(yè)務處理提供完全定制的驅動程序。當業(yè)務需要更換硬件平臺時,軟件平臺(驅動程序軟件)中與硬件平臺相關的代碼就需要進行大幅度的修改。目前在嵌入式領域,還不存在既支持TI硬件平臺,又支持Freescale硬件平臺及其它硬件平臺的的軟件平臺。
[0003]在移動通信基帶業(yè)務的數(shù)字信號處理(嵌入式)領域,為了達到對底層支持多種硬件平臺、對高層支持多種基帶業(yè)務的需求,軟件平臺需要為每種硬件平臺和每種業(yè)務處理提供完全定制的驅動程序。當業(yè)務需要更換硬件平臺時,軟件平臺(驅動程序軟件)中與硬件平臺相關的代碼就需要進行大幅度的修改。這種修改對軟件設計、開發(fā)、測試、維護帶來較大的工作量和風險。由此可見,傳統(tǒng)的架構方式使得驅動程序軟件(軟件平臺)在可重用性、可移植性、可配置性、可維護性等方面存在一定的缺陷。
[0004]在移動通信基帶業(yè)務的數(shù)字信號處理(嵌入式)領域,各種基帶業(yè)務(WIMAX、LTE、UMTS、TD-SCDMA、GSM等)運行在一套驅動程序平臺軟件上,或者一種基帶業(yè)務在一套驅動程序平臺軟件的支持下運行在多種硬件平臺上。例如,通用DSP芯片(如TI DSP、FreescaleDSP,LSI DSP等)或帶有DSP處理器核或CPU核的S0C芯片等硬件平臺。在傳統(tǒng)的處理中,為了達到對底層支持多種硬件平臺、對高層支持多種基帶業(yè)務的需求,軟件平臺需要為每種硬件平臺和每種業(yè)務處理提供完全定制的軟件。例如,基帶業(yè)務的版本A運行在TI DSP上,相同基帶業(yè)務的版本B運行在Freescale DSP上,為了支持這兩套硬件平臺,軟件平臺常采用的架構方案是分別提供兩套驅動程序,而且兩套驅動程序接口函數(shù)也不一致(接口一般設計為依賴硬件,硬件不同,接口函數(shù)也不同)。這樣導致的后果是,業(yè)務版本A如果需要運行在Freescale DSP硬件平臺上或業(yè)務版本B需要運行在TI DSP硬件平臺上,業(yè)務版本A或業(yè)務版本B的軟件平臺中與硬件平臺相關的代碼就需要進行大幅度的修改,這種修改對軟件設計、開發(fā)、測試、維護帶來較大的工作量和風險。由此可見,傳統(tǒng)的軟件平臺架構方式使驅動程序軟件(軟件平臺)在可重用性、可移植性、可配置性、可維護性等方面存在一定的缺陷。
[0005]在通用計算機領域,目前有Windows、Linux、Unix等商用或開源操作系統(tǒng)提供統(tǒng)一界面的(比如Linux的VFS接口)、跨平臺(支持ARM/X86/MIPS/SPARC/SH等)的軟件平臺。但在嵌入式領域,例如TI提供的DSP/B10S平臺只支持TI系列的DSP,F(xiàn)reesacle的SmartDSP OS只支持Freescale系列DSP等,目前還不存在既支持TI硬件平臺,又支持Freescale硬件平臺及其它硬件平臺的的軟件平臺。

【發(fā)明內容】

[0006]為了解決現(xiàn)有技術中的問題,本發(fā)明提供了一種基于緩沖區(qū)的驅動程序架構設計的方法。
[0007]本發(fā)明提供了一種基于緩沖區(qū)的驅動程序架構設計的方法,包括緩沖區(qū)層驅動程序、邏輯通道層驅動程序、物理通道層驅動程序,基帶業(yè)務使用緩沖區(qū)驅動程序提供的函數(shù)接口 ;緩沖區(qū)驅動程序與邏輯通道驅動程序是繼承關系,邏輯通道實現(xiàn)緩沖區(qū)的函數(shù)指針指向的函數(shù),并在邏輯通道創(chuàng)建實例時給緩沖區(qū)的函數(shù)指針賦值;邏輯通道驅動程序與物理通道驅動程序是組合關系或聚合關系,在一個物理通道上能夠支持多個邏輯通道,邏輯通道層驅動程序使用物理通道層驅動程序的操作函數(shù),通過配置函數(shù)進行配置;物理通道驅動程序操作的是硬件,完成數(shù)據(jù)的接收和發(fā)送。
[0008]作為本發(fā)明的進一步改進,緩沖區(qū)包括循環(huán)緩沖區(qū)、塊緩沖區(qū)、幀緩沖區(qū)以及固定緩沖區(qū),該方法還包括循環(huán)緩沖區(qū)接口、塊緩沖區(qū)接口、幀緩沖區(qū)接口以及固定緩沖區(qū)接□。
[0009]作為本發(fā)明的進一步改進,所述循環(huán)緩沖區(qū)包括讀指針、寫指針、預讀指針、預寫指針,所述固定緩沖區(qū)每次讀寫時,指定源地址、目的地址和長度。
[0010]作為本發(fā)明的進一步改進,所述塊緩沖區(qū)具有如下特征:通過讀寫指針維護該緩沖區(qū);總的塊數(shù)目必須大于等于2 ;讀取每個塊的數(shù)據(jù)時,返回長度都為該塊內有效數(shù)據(jù)的長度;同一個塊,同一時刻支持多次寫操作,不支持多次讀操作。
[0011]作為本發(fā)明的進一步改進,所述幀緩沖區(qū)具有如下特征:
[0012]幀緩沖區(qū)使用隊列進行管理,隊列至少含有消息隊列和空閑隊列;
[0013]每個隊列元素指向的幀緩沖區(qū)大小是相同的;
[0014]每個隊列元素和每個幀緩沖區(qū)是綁定的。
[0015]本發(fā)明還提供了一種基于緩沖區(qū)的驅動程序架構設計的系統(tǒng),包括緩沖區(qū)層驅動程序、邏輯通道層驅動程序、物理通道層驅動程序,基帶業(yè)務使用緩沖區(qū)驅動程序提供的函數(shù)接口 ;緩沖區(qū)驅動程序與邏輯通道驅動程序是繼承關系,邏輯通道實現(xiàn)緩沖區(qū)的函數(shù)指針指向的函數(shù),并在邏輯通道創(chuàng)建實例時給緩沖區(qū)的函數(shù)指針賦值;邏輯通道驅動程序與物理通道驅動程序是組合關系或聚合關系,在一個物理通道上能夠支持多個邏輯通道,邏輯通道層驅動程序使用物理通道層驅動程序的操作函數(shù),通過配置函數(shù)進行配置;物理通道驅動程序操作的是硬件,完成數(shù)據(jù)的接收和發(fā)送。
[0016]作為本發(fā)明的進一步改進,緩沖區(qū)包括循環(huán)緩沖區(qū)、塊緩沖區(qū)、幀緩沖區(qū)以及固定緩沖區(qū),該方法還包括循環(huán)緩沖區(qū)接口、塊緩沖區(qū)接口、幀緩沖區(qū)接口以及固定緩沖區(qū)接□。
[0017]作為本發(fā)明的進一步改進,所述循環(huán)緩沖區(qū)包括讀指針、寫指針、預讀指針、預寫指針,所述固定緩沖區(qū)每次讀寫時,指定源地址、目的地址和長度。
[0018]作為本發(fā)明的進一步改進,所述塊緩沖區(qū)具有如下特征:通過讀寫指針維護該緩沖區(qū);
[0019]總的塊數(shù)目必須大于等于2 ;[0020]讀取每個塊的數(shù)據(jù)時,返回長度都為該塊內有效數(shù)據(jù)的長度;
[0021]同一個塊,同一時刻支持多次寫操作,不支持多次讀操作。
[0022]作為本發(fā)明的進一步改進,所述幀緩沖區(qū)具有如下特征:
[0023]幀緩沖區(qū)使用隊列進行管理,隊列至少含有消息隊列和空閑隊列;
[0024]每個隊列元素指向的幀緩沖區(qū)大小是相同的;
[0025]每個隊列元素和每個幀緩沖區(qū)是綁定的。[0026]本發(fā)明的有益效果是:本發(fā)明在分析現(xiàn)有的移動通信基帶業(yè)務(包括WIMAX、LTE、UMTS、TD-SCDMA、GSM等)數(shù)據(jù)處理特點的基礎上,得到四類基于緩沖區(qū)的基帶業(yè)務(包括基于循環(huán)緩沖區(qū)的業(yè)務、基于塊緩沖區(qū)的業(yè)務、基于幀緩沖區(qū)的業(yè)務、基于固定緩沖區(qū)的業(yè)務等)。根據(jù)這四類緩沖區(qū)業(yè)務,抽象出四類緩沖區(qū),并基于這四類緩沖區(qū)設計出嵌入式軟件平臺的設備驅動程序架構。本發(fā)明設計的驅動程序架構為基帶業(yè)務處理提供了四類抽象的、統(tǒng)一的緩沖區(qū)接口,在跨平臺移植性、健壯性和可配置性等方面都比傳統(tǒng)的驅動程序接口有較大的提高。
【專利附圖】

【附圖說明】
[0027]圖1是本發(fā)明的基于緩沖區(qū)的驅動程序架構圖。
[0028]圖2是本發(fā)明的循環(huán)緩沖區(qū)結構圖。
[0029]圖3是本發(fā)明的塊緩沖區(qū)結構圖。
[0030]圖4是本發(fā)明的幀緩沖區(qū)結構圖。
[0031]圖5是本發(fā)明的固定緩沖區(qū)結構圖。
【具體實施方式】
[0032]對移動通信基帶業(yè)務(11獻1、1^^.13、10-300獻、631等)數(shù)據(jù)處理進行分析后,可以發(fā)現(xiàn)基帶業(yè)務處理具有的如下特點:
[0033]①因為處理器和外設接口的數(shù)據(jù)處理速度不同、業(yè)務數(shù)據(jù)流量大等原因,業(yè)務數(shù)據(jù)包括控制流、媒體流、調測流等數(shù)據(jù)都使用緩沖區(qū)進行數(shù)據(jù)緩存;
[0034]②從處理速度、內存資源占用進行考慮,對緩沖區(qū)的操作可以分為先拷貝再處理的讀寫(帶拷貝的讀寫)方式和不拷貝直接在緩沖區(qū)上處理的讀寫這兩種方式;
[0035]③基帶業(yè)務類型決定了緩沖區(qū)的屬性,這些屬性包括緩沖區(qū)類型(包括循環(huán)緩沖區(qū)、塊循環(huán)區(qū)、幀緩沖區(qū)以及固定緩沖區(qū))、大小、level (在DDR RAM、片內Level 1RAM,片內Level2RAM等)、讀寫方式(帶拷貝讀寫還是直接讀寫)、是否需要使用DMA進行輔助傳輸?shù)龋?br> [0036]④基帶業(yè)務可抽象為四種緩沖區(qū)業(yè)務,即循環(huán)緩沖區(qū)業(yè)務、塊緩沖區(qū)業(yè)務、幀緩沖區(qū)業(yè)務和固定緩沖區(qū)業(yè)務。本發(fā)明設計了四類相似的緩沖區(qū)接口,它們是循環(huán)緩沖區(qū)接口、幀緩沖區(qū)接口、塊緩沖區(qū)接口和固定緩沖區(qū)接口。
[0037]本發(fā)明設計的基于緩沖區(qū)的驅動程序架構如圖1所示,架構可分為以下三層:
[0038]①緩沖區(qū)層(框架層)驅動程序:此層與設備無關,支持跨平臺、可重用等需求;
[0039]②邏輯通道層驅動程序:邏輯通道與硬件設備和基帶業(yè)務都相關,所以不同的硬件設備或不同的基帶業(yè)務,需實現(xiàn)繼承緩沖區(qū)特性的驅動程序;
[0040]③物理通道層驅動程序:物理通道與硬件設備相關,所以不同的硬件設備,需實現(xiàn)不同的驅動程序。
[0041]上述驅動程序的三層架構設計滿足依賴倒置原則,高層基帶業(yè)務程序和底層驅動程序都依賴緩沖區(qū)框架層,底層驅動驅動程序實現(xiàn)緩沖區(qū)框架要求的功能,而高層基帶業(yè)務使用緩沖區(qū)框架提供的功能,高層基帶業(yè)務和底層驅動程序互不相關,互相獨立(低耦合)。其中,本發(fā)明在架構中引入了邏輯通道的概念,一種邏輯通道對應一個緩沖區(qū)/應用實例。邏輯通道與物理通道的區(qū)別在于,一個物理通道可以支持多個邏輯通道,這種機制使每種業(yè)務處理可以使用獨立的邏輯通道,減少共享通道所帶來的互斥操作,提高效率和穩(wěn)定性。此外,該驅動程序架構可以采用C語言的面向對象設計,實現(xiàn)繼承模式,使緩沖區(qū)操作具有多態(tài)性,滿足各邏輯通道類的緩沖區(qū)讀寫、接收和發(fā)送等操作要求。
[0042]在圖1所示的驅動程序架構圖中,緩沖區(qū)分為循環(huán)緩沖區(qū)、塊緩沖區(qū)、幀緩沖區(qū)以及固定緩沖區(qū)。
[0043]其中,圖2所示的循環(huán)緩沖區(qū)具有如下特征:
[0044]①通過讀寫指針維護該緩沖區(qū)(實際上還有預讀和預寫指針),默認各種指針的更新單位為Byte ;
[0045]②應用每次填入的數(shù)據(jù)包長度可以不相等,由于數(shù)據(jù)長度不相等,一般在數(shù)據(jù)包中存在數(shù)據(jù)長度字段;
[0046]③每次填寫的數(shù)據(jù)包默認都是4字節(jié)對齊的(應用數(shù)據(jù)包可以不對齊,驅動程序完成對齊工作);
[0047]④當緩沖區(qū)(Buffer)尾部空間不足時,需要增加Pad包(默認Pad包格式:0xFFFF0000+Pad 長度)。假設 Pad 長度為 256,則 Pad 包為 0xFFFF0100。
[0048]圖3所示的塊(bank)緩沖區(qū)則具有以下特征:
[0049]①通過讀寫指針維護該緩沖區(qū);
[0050]②各種指針的更新單位為一個Bank Size ;
[0051]③應用每次填入的數(shù)據(jù)包長度可以不相等,但是每次填寫不能超過一個BankSize ;
[0052]④總的Bank數(shù)目必須大于等于2,即η≥2 ;
[0053]⑤讀取每個Bank的數(shù)據(jù)時,返回長度都為該Bank內有效數(shù)據(jù)的長度;
[0054]⑥同一個Bank,同一時刻支持多次寫操作,不支持多次讀操作;
[0055]⑦目前不能將此類型Buffer管理用于芯片間(由于接收端沒有接收到Bank寫指針,除非定時將這些寫指針發(fā)送到接收端)。
[0056]圖4所示的幀緩沖區(qū)具有如下特征:
[0057]①幀緩沖區(qū)(Frame Buffer)使用隊列進行管理,隊列一般來說至少含有消息隊列(MsgQue)和空閑隊列(FreeQue);
[0058]②每個隊列元素指向的Frame Buffer大小是相同的;
[0059]③每個Frame Buffer之間可以是連續(xù)的,也可以是不連續(xù)的;
[0060]④應用的數(shù)據(jù)包長度可變,但不能超過Frame Size, 一般在隊列元素中有字段表示數(shù)據(jù)包長度;
[0061]⑤每個隊列元素和每個Frame Buffer是綁定的。
[0062]圖5所示的固定緩沖區(qū)具有如下特征:[0063]①驅動不作任何的緩存;
[0064]②每次讀寫時,指定源地址、目的地址和長度;
[0065]③類似Copy函數(shù),將某種長度的數(shù)據(jù)從某地址Copy到另一地址開始的空間。
[0066]如圖1所示,本發(fā)明采用C語言的面向對象設計,其模塊之間的相互關系如下:
[0067]①基帶業(yè)務使用緩沖區(qū)驅動程序(緩沖區(qū)類)提供的函數(shù)接口 ;
[0068]②緩沖區(qū)驅動程序與邏輯通道驅動程序(邏輯通道類)是繼承關系,邏輯通道類繼承緩沖區(qū)類。邏輯通道實現(xiàn)緩沖區(qū)的函數(shù)指針指向的函數(shù),并在邏輯通道創(chuàng)建實例時給緩沖區(qū)的函數(shù)指針賦值;
[0069]③邏輯通道驅動程序與物理通道驅動程序(物理通道類)是組合關系/聚合關系,在一個物理通道上可以支持多個邏輯通道,驅動程序中邏輯通道類使用物理通道類的操作函數(shù),通過配置函數(shù)進行配置;
[0070]④物理通道驅動程序(物理通道類)操作的是硬件,完成數(shù)據(jù)的接收和發(fā)送。
[0071]應用本發(fā)明設計的驅動程序架構,驅動程序中移動通信基帶業(yè)務操作的過程分析如下:
[0072]①緩沖區(qū)的讀寫,包括帶拷貝的讀寫或直接讀寫,只需要最多1次回調函數(shù)。例如循環(huán)緩沖區(qū),需調用邏輯通道類的緩沖區(qū)讀寫函數(shù),這次回調是為了支持多種循環(huán)緩沖區(qū)格式的讀與;
[0073]②緩沖區(qū)的接收和發(fā)送,只需要進行2次函數(shù)調用即可進行接收或發(fā)送。這2次函數(shù)調用分別是緩沖區(qū)類(作為基類或父類)調用邏輯通道類(作為派生類或子類)接口,邏輯通道類接口調用物理通道類(硬件)接口,就能完成硬件的操作接收和發(fā)送。與Linux采用虛擬文件系統(tǒng)進行數(shù)據(jù)接收和發(fā)送(系統(tǒng)調用后還需要6次函數(shù)調用)相比,本發(fā)明中函數(shù)回調次數(shù)大大減少,程序運行效率提升。
[0074]由圖1可以看出,按照分層/模塊的思想,基于四類緩沖區(qū)的驅動程序架構可采用面向對象方法進行設計,包括以下三個內容:
[0075]①緩沖區(qū)結構及接口設計
[0076]首先進行緩沖區(qū)層(框架層)結構及接口設計,它包括下面兩個步驟:
[0077]第1步:參考圖2至圖5,按照循環(huán)緩沖區(qū)、塊緩沖區(qū)、幀緩沖區(qū)、固定緩沖區(qū)的結構圖,將緩沖區(qū)分別命名為 struct T_CyclicBuf, struct T_BankBuf, struct T_FrameBuf,struct T_FixBuf,并根據(jù)結構圖確定各緩沖區(qū)結構的結構成員;
[0078]第2步:進行緩沖區(qū)類的接口設計。針對緩沖區(qū)設計出各種框架函數(shù),例如xx_read (), xx_write (), xx_send()等,xx 代表緩沖區(qū)名。
[0079]②邏輯通道結構及接口設計
[0080]其次是邏輯通道層結構及接口設計,它也包括了兩個步驟,具體如下:
[0081]第1步:邏輯通道類的結構設計,邏輯通道類繼承緩沖區(qū)類,在C語言中,繼承關系需將緩沖區(qū)類的結構置于邏輯通道類的第1個結構成員,緩沖區(qū)類可以被多個邏輯通道類繼承,從而支持多種緩沖區(qū)操作。例如,基于循環(huán)緩沖區(qū)的Srio Directio通道的結構設計如下:
[0082]struct T—CyclicBuf—SrioDirectioCh ;
[0083]第2步:邏輯通道類的接口設計。邏輯通道類的大多數(shù)函數(shù)是實現(xiàn)緩沖區(qū)類相關函數(shù)指針,這些函數(shù)不對外開放,只有創(chuàng)建和關閉函數(shù),以及少量的邏輯通道類特有函數(shù)對外開放。例如,struct T_CyclicBuf_SrioDirectioCh 的創(chuàng)建和關閉函數(shù) yy_open ()和 yy_close (),yy是邏輯通道模塊名。
[0084]③物理通道結構及接口設計。
[0085]最后是物理通道層結構及接口設計。物理通道完全由硬件通道決定,包括結構和接口。例如,物理通道結構為:struct T_SrioDirectioCh ;物理通道接口為zz_open (), zz_close (), zz_transfer ()。
[0086]本發(fā)明還公開了一種基于緩沖區(qū)的驅動程序架構設計的系統(tǒng),包括緩沖區(qū)層驅動程序、邏輯通道層驅動程序、物理通道層驅動程序,基帶業(yè)務使用緩沖區(qū)驅動程序提供的函數(shù)接口 ;緩沖區(qū)驅動程序與邏輯通道驅動程序是繼承關系,邏輯通道實現(xiàn)緩沖區(qū)的函數(shù)指針指向的函數(shù),并在邏輯通道創(chuàng)建實例時給緩沖區(qū)的函數(shù)指針賦值;邏輯通道驅動程序與物理通道驅動程序是組合關系或聚合關系,在一個物理通道上能夠支持多個邏輯通道,邏輯通道層驅動程序使用物理通道層驅動程序的操作函數(shù),通過配置函數(shù)進行配置;物理通道驅動程序操作的是硬件,完成數(shù)據(jù)的接收和發(fā)送。
[0087]緩沖區(qū)包括循環(huán)緩沖區(qū)、塊緩沖區(qū)、幀緩沖區(qū)以及固定緩沖區(qū),該方法還包括循環(huán)緩沖區(qū)接口、塊緩沖區(qū)接口、幀緩沖區(qū)接口以及固定緩沖區(qū)接口。
[0088]所述循環(huán)緩沖區(qū)包括讀指針、寫指針、預讀指針、預寫指針,所述固定緩沖區(qū)每次讀寫時,指定源地址、目的地址和長度。
[0089]所述塊緩沖區(qū)具有如下特征:通過讀寫指針維護該緩沖區(qū);總的塊數(shù)目必須大于等于2 ;讀取每個塊的數(shù)據(jù)時,返回長度都為該塊內有效數(shù)據(jù)的長度;同一個塊,同一時刻支持多次寫操作,不支持多次讀操作。
[0090]所述幀緩沖區(qū)具有如下特征:幀緩沖區(qū)使用隊列進行管理,隊列至少含有消息隊列和空閑隊列;每個隊列元素指向的幀緩沖區(qū)大小是相同的;每個隊列元素和每個幀緩沖區(qū)是綁定的。
[0091]采用本發(fā)明的架構技術,可使設備驅動程序在可移植性、健壯性、效率、靈活性等方面取得較好的效果。首先是可移植性的提高,主要包括兩種可移植性。第一種可移植性是基帶業(yè)務的可移植性,在基于本發(fā)明的軟件平臺上,只需要修改相關配置,比如緩沖區(qū),任務及其它設備資源分配策略,軟件平臺就能輕松支持不同的基帶業(yè)務或同時支持多種基帶業(yè)務。第二種可移植性是硬件平臺的可移植性,通過實現(xiàn)新增的驅動程序(硬件設備相關的部分)來對新的硬件平臺的支持,而緩沖區(qū)接口保持不變,由于基帶業(yè)務只使用緩沖區(qū)接口,所以基帶業(yè)務程序不做任何改動,從而輕松達到高層基帶業(yè)務的跨平臺特性。正是由于這兩種可移植性,基于本發(fā)明架構設計的軟件平臺支持以下場景的操作:
[0092](1)基帶業(yè)務的切換。例如從UMTS基帶業(yè)務切換為基帶業(yè)務WIMAX或從基帶業(yè)務UMTS切換為基帶業(yè)務WIMAX和基帶業(yè)務LTE,除了修改資源配置、任務配置等配置文件外,底層驅動程序無需修改。
[0093](2)底層驅動程序的切換。例如從TI硬件平臺切換為Freescale硬件平臺,只需切換到Freescale硬件平臺的設備驅動程序,基帶業(yè)務及調用的軟件平臺接口即高層業(yè)務相關代碼不需修改。
[0094]本發(fā)明的架構技術也能提高基帶業(yè)務軟件部署的靈活性。例如兩模塊業(yè)務有信息交互,屬于循環(huán)緩沖區(qū)業(yè)務,使用循環(huán)緩沖區(qū)操作接口?,F(xiàn)將這兩個模塊從同一芯片的兩個核的部署切換成兩個芯片間的兩個核的交互,不管芯片間使用何種接口,對于基帶業(yè)務來說,仍然使用循環(huán)緩沖區(qū)操作接口完成數(shù)據(jù)的讀寫操作,硬件的修改在基帶業(yè)務看來是透明的,具體的與硬件相關的操作由依賴于緩沖區(qū)接口的邏輯通道實現(xiàn)。當然,初始化代碼和平臺相關的配置代碼還需要修改。
[0095]在健壯性的提高方面,本發(fā)明的架構技術對四種緩沖區(qū)操作進行標準化,提供四套相似的函數(shù)接口,包括讀、寫、接收、發(fā)送等操作。由于這些函數(shù)接口經過充分測試,并具有較高的可重用性,以及對函數(shù)參數(shù)進行判斷和保證,與傳統(tǒng)的直接使用數(shù)組或特殊的函數(shù)處理相比,這些標準化操作將會減少內存越界等異常,使得程序更加健壯。同時,采用模塊化的架構,減少模塊與模塊之間耦合性,在增加或修改硬件的時候,只需按照緩沖區(qū)接口進行本模塊驅動程序的設計、實現(xiàn)和測試,降低了修改對整個驅動程序所帶來的影響。
[0096]在效率提高方面,本發(fā)明的架構技術使用繼承機制(C語言使用函數(shù)指針)實現(xiàn)緩沖區(qū)的各種操作。從基帶業(yè)務調用緩沖區(qū)操作的層次來看,最多只需兩層就可以達到操作硬件的目的,完成數(shù)據(jù)的發(fā)送或接收。
[0097]本發(fā)明的架構技術為開發(fā)統(tǒng)一的、可重用的驅動程序測試平臺提供了基礎。緩沖區(qū)的抽象,使得不管硬件平臺如何變化,對外提供的緩沖區(qū)接口不會變化,這種變化與不變化,使基于緩沖區(qū)的驅動程序測試平臺的統(tǒng)一設計和測試例優(yōu)化變得比較容易。使用本發(fā)明,各種硬件平臺可重用一套測試例和測試平臺。
[0098]以上內容是結合具體的優(yōu)選實施方式對本發(fā)明所作的進一步詳細說明,不能認定本發(fā)明的具體實施只局限于這些說明。對于本發(fā)明所屬【技術領域】的普通技術人員來說,在不脫離本發(fā)明構思的前提下,還可以做出若干簡單推演或替換,都應當視為屬于本發(fā)明的保護范圍。
【權利要求】
1.一種基于緩沖區(qū)的驅動程序架構設計的方法,其特征在于,包括緩沖區(qū)層驅動程序、邏輯通道層驅動程序、物理通道層驅動程序,基帶業(yè)務使用緩沖區(qū)驅動程序提供的函數(shù)接口 ;緩沖區(qū)驅動程序與邏輯通道驅動程序是繼承關系,邏輯通道實現(xiàn)緩沖區(qū)的函數(shù)指針指向的函數(shù),并在邏輯通道創(chuàng)建實例時給緩沖區(qū)的函數(shù)指針賦值;邏輯通道驅動程序與物理通道驅動程序是組合關系或聚合關系,在一個物理通道上能夠支持多個邏輯通道,邏輯通道層驅動程序使用物理通道層驅動程序的操作函數(shù),通過配置函數(shù)進行配置;物理通道驅動程序操作的是硬件,完成數(shù)據(jù)的接收和發(fā)送。
2.根據(jù)權利要求1所述的方法,其特征在于:緩沖區(qū)包括循環(huán)緩沖區(qū)、塊緩沖區(qū)、幀緩沖區(qū)以及固定緩沖區(qū),該方法還包括循環(huán)緩沖區(qū)接口、塊緩沖區(qū)接口、幀緩沖區(qū)接口以及固定緩沖區(qū)接口。
3.根據(jù)權利要求2所述的方法,其特征在于:所述循環(huán)緩沖區(qū)包括讀指針、寫指針、預讀指針、預寫指針,所述固定緩沖區(qū)每次讀寫時,指定源地址、目的地址和長度。
4.根據(jù)權利要求2所述的方法,其特征在于,所述塊緩沖區(qū)具有如下特征:通過讀寫指針維護該緩沖區(qū);總的塊數(shù)目必須大于等于2;讀取每個塊的數(shù)據(jù)時,返回長度都為該塊內有效數(shù)據(jù)的長度;同一個塊,同一時刻支持多次寫操作,不支持多次讀操作。
5.根據(jù)權利要求2所述的方法,其特征在于,所述幀緩沖區(qū)具有如下特征:幀緩沖區(qū)使用隊列進行管理,隊列至少含有消息隊列和空閑隊列;每個隊列元素指向的幀緩沖區(qū)`大小是相同的;每個隊列元素和每個幀緩沖區(qū)是綁定的。
6.一種基于緩沖區(qū)的驅動程序架構設計的系統(tǒng),其特征在于,包括緩沖區(qū)層驅動程序、邏輯通道層驅動程序、物理通道層驅動程序,基帶業(yè)務使用緩沖區(qū)驅動程序提供的函數(shù)接口 ;緩沖區(qū)驅動程序與邏輯通道驅動程序是繼承關系,邏輯通道實現(xiàn)緩沖區(qū)的函數(shù)指針指向的函數(shù),并在邏輯通道創(chuàng)建實例時給緩沖區(qū)的函數(shù)指針賦值;邏輯通道驅動程序與物理通道驅動程序是組合關系或聚合關系,在一個物理通道上能夠支持多個邏輯通道,邏輯通道層驅動程序使用物理通道層驅動程序的操作函數(shù),通過配置函數(shù)進行配置;物理通道驅動程序操作的是硬件,完成數(shù)據(jù)的接收和發(fā)送。
7.根據(jù)權利要求6所述的系統(tǒng),其特征在于:緩沖區(qū)包括循環(huán)緩沖區(qū)、塊緩沖區(qū)、幀緩沖區(qū)以及固定緩沖區(qū),該方法還包括循環(huán)緩沖區(qū)接口、塊緩沖區(qū)接口、幀緩沖區(qū)接口以及固定緩沖區(qū)接口。
8.根據(jù)權利要求7所述的系統(tǒng),其特征在于:所述循環(huán)緩沖區(qū)包括讀指針、寫指針、預讀指針、預寫指針,所述固定緩沖區(qū)每次讀寫時,指定源地址、目的地址和長度。
9.根據(jù)權利要求7所述的系統(tǒng),其特征在于:所述塊緩沖區(qū)具有如下特征:通過讀寫指針維護該緩沖區(qū);總的塊數(shù)目必須大于等于2;讀取每個塊的數(shù)據(jù)時,返回長度都為該塊內有效數(shù)據(jù)的長度;同一個塊,同一時刻支持多次寫操作,不支持多次讀操作。
10.根據(jù)權利要求7所述的系統(tǒng),其特征在于,所述幀緩沖區(qū)具有如下特征:幀緩沖區(qū)使用隊列進行管理,隊列至少含有消息隊列和空閑隊列;每個隊列元素指向的幀緩沖區(qū)大小是相同的;每個 隊列元素和每個幀緩沖區(qū)是綁定的。
【文檔編號】G06F9/44GK103729187SQ201310753185
【公開日】2014年4月16日 申請日期:2013年12月31日 優(yōu)先權日:2013年12月31日
【發(fā)明者】蔡鐵, 唐飛, 伍星 申請人:深圳信息職業(yè)技術學院
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1