日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]Blackfin輕量級內核VDK及其文件系統設計

 Blackfin(BF)系列DSP是ADI公司和Intel公司共同開發(fā)的DSP,采用了一種新型結構MSA.BF系列中的BF537具有較塊的運算速度和豐富的接口資源,長于控制和視頻圖像處理,且其帶有符合IEEE 802.3規(guī)范的以太網控制器,如果在BF537中移植帶有LwIP協議棧的VDK工程,并利用網絡芯片對537進行擴展,就能便捷地實現嵌入式系統與因特網的通信。

由于低功耗、數據非易失、存儲速度快、存儲密度大等優(yōu)點,Nand Flash在閃存行列中脫穎而出,常被用作大容量數據的存儲媒質。隨著存儲系統容量和存取速度的不斷提升,構建嵌入式文件系統來實現存儲系統中數據的管理。

1 VDK與嵌入式文件系統

1.1 VDK簡介

VDK(Visual DSP Kernel)是ADI公司針對Blackfin系列DSP處理器特別開發(fā)的"小而健壯"的輕量級內核,特別適合編寫需要精確控制的代碼,是一個提供了豐富的API函數庫,同時支持輕量級IP協議棧(LwIP)的RTOS。
VDK功能全面,具有線程、信號量、事件與事件位、消息、關鍵域與禁止調度域等特征。內核通過協同多任務和時間片輪轉的方式來管理和協調線程,這種方式稱為"調度".VDK運用程序可分為兩部分:線程域和中斷域。線程域中的調度稱為"軟件調度",由內核完成;中斷域中的調度稱為"硬件調度",由中斷控制器完成。后者的優(yōu)先級高于前者,而設備驅動是兩者溝通的橋梁。

然而VDK只是一個"裸核",不提供文件系統的支持,如果需要基于VDK實現文件系統,用戶必須自己編寫各種接口函數的代碼。

1.2 基于Nand Flash的嵌入式文件系統簡介

Flash文件系統主要有開源的和商業(yè)的兩類。開源的Flash文件系統,有JFFS、JFFS2、YAFS等。JFFS采用高效的日志文件系統,具有掉電安全、臟塊回收、磨損均衡等特性,主要用于嵌入式Linux.Red Hat公司后來在JFFS基礎上進行升級,發(fā)展出JSSF2.JSSF2采用哈希表的日志節(jié)點結構,加快了節(jié)點的操作速度。YAFFS也是基于日志結構的文件系統,相比JFFS,YAFFS減少了一些功能,但降低了內存占用率,提高了訪問速度。
商業(yè)Flash文件系統主要有TrueFFS和TransactiONFFS.前者用于仿真硬盤驅動,利用冗余數據結構保證可靠的數據操作,并能均勻使用Flash.后者使用事務記錄方案,運用程序可通過FAL訪問文件系統。

2 嵌入式系統的硬件平臺

基于BF537的嵌入式系統硬件平臺的框圖如圖1所示。

圖1 嵌入式系統硬件平臺

LAN8187用于對BF537的以太網控制器進行擴展,使其能夠通過以太網絡與上位機進行通信。
BF537外掛了兩片Nor Flash芯片作為其異步外存。程序Nor Flash用于存儲運行程序代碼,數據Flash主要用于存儲文件系統運行所需的數據,例如文件目錄表、地址映射表等。XC4VFX100用于處理數據流的速度、解析和轉發(fā)BF537的命令,配合BF537對存儲陣列進行管理。

3 嵌入式文件系統設計

3.1 文件目錄表

考慮到存儲系統的存儲速度較快,且文件數目較少的特點,文件目錄表采用線性表的方式。格式如表1所示,其中的"更新次數"用于記錄存放文件目錄表數據Nor Flash的編程次數。

表1 文件目錄表格式

文件系統采用Nor Flash中的一個64 kB的數據塊實時記錄文件目錄表。出于磨損均衡的考慮,如果數據塊的編程次數超過規(guī)定的閾值,文件系統將自動跳到Nor Flash的下一個64 kB的數據塊記錄文件目錄表。

文件索引采用類似日志記錄的方式,每個文件索引作為文件目錄表的一個節(jié)點。文件系統進行文件操作時,可以根據具體操作要求,實時搜索、增刪和標記索引節(jié)點,文件索引格式如表2所示。

表2 文件索引格式

文件存儲時,主線程遍歷文件目錄表的節(jié)點信息,計算出當前存儲的起始塊地址,然后向存儲陣列發(fā)出開始存儲的命令,隨后將控制權交給中斷域。一旦接收到存儲陣列的地址請求信號,運用程序進入中斷,在中斷域中向文件存儲子線程發(fā)出信號,以發(fā)送當前地址信息,如此反復。如果主線程接收到用戶停止存儲的命令,將立即關閉中斷,取得控制權,接著將最新的文件信息更新到文件目錄表的最后位置,作為最新的節(jié)點。

文件下載時,主線程遍歷文件目錄表,找到相應的文件索引信息,然后發(fā)送消息給文件下載子線程,開始對指定文件進行下載。如果需要刪除某個文件,在遍歷目錄表找到指定文件的信息后,先發(fā)送地址將存儲陣列相應數據塊的信息擦除,然后將該文件索引信息的"文件標記"置為"刪除"標記。

3.2 地址映射表

地址映射是文件系統的核心。文件系統將整個存儲陣列作為一個獨立的地址空間,統一編址。通過定義一個地址緩沖區(qū),將其相應的偏移地址作為Nand Flash的物理地址,并根據壞塊信息對緩沖區(qū)相應偏移地址的單元做壞塊或有效塊的標記。文件系統在實際操作中,可"查詢"地址緩沖區(qū),如果地址緩沖區(qū)某偏移地址為壞塊標記,則拋棄,繼續(xù)查詢下一個偏移地址的標記,如為有效塊標記,則將此偏移地址作為存儲陣列的有效物理塊地址。[!--empirenews.page--]

為提高存儲效率和方便管理,地址緩沖區(qū)的內容會被記錄在數據Nor Flash中,作為一個"地址映射表".地址映射表體積不大,燒寫到Nor Flash時,可將燒寫代碼推入到VDK的"關鍵域"中,因為燒寫時間小于兩次中斷間隔,這樣既不會照成中斷延時,又能保證燒寫工作一次完成。

硬件平臺上電后,系統啟動線程首先讀取Nor Flash中的地址映射表到地址緩沖區(qū),隨后基于地址緩沖區(qū)進行文件管理;如需更新壞塊信息,首先更新地址緩沖區(qū),然后將地址緩沖區(qū)內容記錄到Nor Flash中。故而名為"映射",實質是一種"標記"的方法。地址映射機制如圖2所示。

圖2 地址映射機表的設置與使用

3.3 壞塊回收

Nand Flash芯片在出廠時就存在隨機壞塊,同時隨著使用時間的推移,一些有效塊也會因為編程的原因成為新的壞塊,故而存儲陣列在使用一段時間后,應當更新壞塊信息。考慮到陣列中文件的安全性和完整性,系統設置為存儲陣列為空時方能更新壞塊信息。

格式化整個陣列后,存儲陣列中的FPGA芯片依次讀取每個數據塊的第一頁數據,如果發(fā)現非0xFF數據的個數超過設定閾值,就認為此數據塊為壞塊。之所以設定閾值而不是一有非0xFF數據就視為壞塊,是為了克服數據讀取的不穩(wěn)定性。

BF537讀取存儲陣列傳送來最新壞塊信息后,按照圖2中地址映射表設置的辦法,首先更新地址映射緩沖區(qū),隨即將地址映射緩沖區(qū)的內容實時更新到數據Nor Flash中,保持兩者的同步。

由于壞塊信息更新的時間可能較長,更新工作放在主線程中可能造成較大時延,影響主線程對用戶命令的響應,所以壞塊回收與標記可放在子線程中。

3.4 磨損均衡

Nand Flash芯片的編程次數有限,如果對某個數據塊操作過于頻繁,將迅速縮短其使用壽命,最終成為壞塊,乃至影響整個芯片的使用。如果均衡地使用Flash芯片的每個數據塊,對其操作的概率在較長時間內大體相當,這樣不僅能減少芯片壞塊的比例,也能延長存儲陣列的使用壽命。

開源和商業(yè)的文件系統,都有較為完備的臟塊回收和磨損均衡的機制,但是其算法往往較復雜,同時需要將運行信息實時更新到Flash芯片中。在存儲速率要求很高的情況下,復雜的機制對存儲速率將不可避免地造成影響。

文件系統關于磨損均衡的解決方案主要是順序存儲和陣列整理。文件存儲時,并不使用"鏈式存儲",填充文件刪除所留下的"空洞",而采用"連續(xù)存儲"的方式,將最新的文件存儲到當前所有文件的末尾。這樣不僅編程簡單,而且存儲陣列在一段時間后可能會被耗盡,此時如果刪除尾部的某些文件,那么下個的文件可以存儲在這些空余出來的位置;如果利用陣列整理功能將當前文件"壓縮"為連續(xù)緊湊的文件序列,去除文件刪除時留下的空洞,這樣整理出來的空間也可以繼續(xù)用于下次存儲。

3.5 掉電保護

嵌入式系統硬件平臺的工作環(huán)境一般較為惡劣,電源模塊隨時會有停止供電的可能。故而掉電保護是嵌入式文件系統設計的重點和難點。

微軟的FNT文件系統的掉電保護主要針對FAT表,本文件系統也是基于這個理念。開始文件存儲時,子線程對發(fā)送的塊地址數目做一個計數,當計數量達到設定的閾值N后,將新文件的信息更新到文件目錄表緩沖區(qū)中,并立即將文件目錄表更新到Nor Flash中,兩個更新的操作不能被中斷,故而將這段代碼推入到關鍵域中。隨后將計數值清零,重新開始前一過程。如果在存儲過程中掉電,重新上電啟動后,開始新的存儲,系統會自動查詢存儲陣列最后一個文件的狀態(tài)標記,如果標記為暫存,則判定最后一個文件在存儲時遇到了掉電的情況,那么系統自動擦除該文件接下來N個數據塊的信息,然后最后一個文件開始新的存儲。

文件刪除操作是在刪除動作完成后才更新文件目錄表,如果在刪除過程中掉電,那么上電后,用戶可以對該文件重新刪除。文件的拷貝和剪切是在操作前更新文件目錄表,如果在操作過程中出現斷電,重新上電后,用戶可先刪除拷貝后的新的文件,去除殘塊,然后開始新的操作。

4 結束語

介紹的嵌入式文件系統已在項目中成功投入使用,當然仍有許多方面需要改進。例如文件目錄表如果較長,線性遍歷耗時也會相對較長;文件目錄表沒有備份,如果更新文件列表時存儲系統出現掉電,該如何應對等。VDK是ADI公司為自己的集成開發(fā)環(huán)境量身打造的內核,相對于Linux等開源系統來說,使用范圍可能較窄,但基于ADI的DSP使用自然有其得天獨厚的優(yōu)勢。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統 散熱

根據LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統,而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉