女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式硬件

引 言

隨著嵌入式系統(tǒng)的迅速發(fā)展,其應(yīng)用環(huán)境的廣泛性,復(fù)雜性對(duì)構(gòu)建于系統(tǒng)上的Nor和Nand閃存設(shè)備提出更高要求,需要閃存設(shè)備傳輸速度更快,體積更小,容量更大,穩(wěn)定性更好。Flash 是一種創(chuàng)作工具,設(shè)計(jì)人員和開(kāi)發(fā)人員可使用它來(lái)創(chuàng)建演示文稿、應(yīng)用程序和其它允許用戶交互的內(nèi)容。FLASH 可以包含簡(jiǎn)單的動(dòng)畫(huà)、視頻內(nèi)容、復(fù)雜演示文稿和應(yīng)用程序以及介于它們之間的任何內(nèi)容。通常,使用 Flash 創(chuàng)作的各個(gè)內(nèi)容單元稱為應(yīng)用程序,即使它們可能只是很簡(jiǎn)單的動(dòng)畫(huà)。您也可以通過(guò)添加圖片、聲音、視頻和特殊效果,構(gòu)建包含豐富媒體的 Flash 應(yīng)用程序。Flash 特別適用于創(chuàng)建通過(guò) Internet 提供的內(nèi)容,因?yàn)樗奈募浅P?。Flash 是通過(guò)廣泛使用矢量圖形做到這一點(diǎn)的。與位圖圖形相比,矢量圖形需要的內(nèi)存和存儲(chǔ)空間小很多,因?yàn)樗鼈兪且詳?shù)學(xué)公式而不是大型數(shù)據(jù)集來(lái)表示的。位圖圖形之所以更大,是因?yàn)閳D像中的每個(gè)像素都需要一組單獨(dú)的數(shù)據(jù)來(lái)表示。

1 NandFLASH和NandFLASH對(duì)比

隨著存儲(chǔ)技術(shù)的高速發(fā)展,閃存設(shè)備因其在性能和成本方面的優(yōu)勢(shì),可擦除性以及更低廉的價(jià)格正逐步取代傳統(tǒng)記憶體。它們的技術(shù)性能差異顯著,表1是它們的技術(shù)對(duì)比。

NorFLASH是現(xiàn)在市場(chǎng)上兩種主要的非易失閃存技術(shù)。Intel于1988年首先開(kāi)發(fā)出NOR Flash 技術(shù),徹底改變了原先由EPROM(Electrically Programmable Read-Only-Memory電可編程序只讀存儲(chǔ)器)和EEPROM(電可擦只讀存儲(chǔ)器Electrically Erasable Programmable Read - Only Memory)一統(tǒng)天下的局面。緊接著,1989年,東芝公司發(fā)表了NAND Flash 結(jié)構(gòu),強(qiáng)調(diào)降低每比特的成本,有更高的性能,并且像磁盤(pán)一樣可以通過(guò)接口輕松升級(jí)。NOR Flash 的特點(diǎn)是芯片內(nèi)執(zhí)行(XIP ,eXecute In Place),這樣應(yīng)用程序可以直接在Flash閃存內(nèi)運(yùn)行,不必再把代碼讀到系統(tǒng)RAM中。NOR 的傳輸效率很高,在1~4MB的小容量時(shí)具有很高的成本效益,但是很低的寫(xiě)入和擦除速度大大影響到它的性能。NAND的結(jié)構(gòu)能提供極高的單元密度,可以達(dá)到高存儲(chǔ)密度,并且寫(xiě)入和擦除的速度也很快。應(yīng)用NAND的困難在于Flash的管理和需要特殊的系統(tǒng)接口。

NorFLASH使用方便,易于連接,可以在芯片上直接運(yùn)行代碼,穩(wěn)定性出色,傳輸速率高,在小容量時(shí)有很高的性價(jià)比,這使其很適合應(yīng)于嵌入式系統(tǒng)中作為 FLASH ROM。相對(duì)于NorFLASH,NandFLASH強(qiáng)調(diào)更高的性能,更低的成本,更小的體積,更長(zhǎng)的使用壽命。

然而FLASH閃存卻是保證數(shù)據(jù)正確性不太理想的設(shè)備,應(yīng)用中可能出現(xiàn)壞塊;這就給其在嵌入式系統(tǒng)中的應(yīng)用,如何更好地進(jìn)行數(shù)據(jù)存儲(chǔ)管理提出了更高要求。恰當(dāng)?shù)慕涌谠O(shè)計(jì)和驅(qū)動(dòng)開(kāi)發(fā)是解決問(wèn)題的關(guān)鍵。

2 FLASH接口設(shè)計(jì)

2.1 處理器內(nèi)存分配情況

在分析FLASH的接口以及工作模式前,先分析處理器的內(nèi)存分配情況。內(nèi)核ARM920T是32位處理器,尋址空間4 GB,3 GB被處理器內(nèi)部的寄存器和一些其他設(shè)備占用,只有1 GB用于外部尋址;這1 GB的空間S3C2410分為8個(gè)部分以支持不同的設(shè)備,每個(gè)空間為128 Mb,被命名為BANK。S3C2410給每個(gè)BANK一個(gè)片選即nGCS0~nGCS7來(lái)方便對(duì)BANK的操作,將CPU上相應(yīng)的BANK連線接到外設(shè)芯片的片選引腳上就可以根據(jù)相應(yīng)的地址對(duì)存儲(chǔ)器進(jìn)行控制。

2.2 FLASH在系統(tǒng)中的架構(gòu)

FLASH模塊通過(guò)系統(tǒng)總線與處理器相連,如圖1所示。

隨著深亞微米工藝技術(shù)日益成熟,集成電路芯片的規(guī)模越來(lái)越大。數(shù)字IC從基于時(shí)序驅(qū)動(dòng)的設(shè)計(jì)方法,發(fā)展到基于IP復(fù)用的設(shè)計(jì)方法,并在SOC設(shè)計(jì)中得到了廣泛應(yīng)用。在基于IP復(fù)用的SoC(System on Chip的縮寫(xiě),稱為系統(tǒng)級(jí)芯片,也有稱片上系統(tǒng))設(shè)計(jì)中,片上總線設(shè)計(jì)是最關(guān)鍵的問(wèn)題。為此,業(yè)界出現(xiàn)了很多片上總線標(biāo)準(zhǔn)。其中,由ARM公司推出的AMBA片上總線受到了廣大IP開(kāi)發(fā)商和SoC系統(tǒng)集成者的青睞,已成為一種流行的工業(yè)標(biāo)準(zhǔn)片上結(jié)構(gòu)。AMBA規(guī)范主要包括了AHB(Advanced High performance Bus)系統(tǒng)總線和APB(Advanced Peripheral Bus)外圍總線。為了擁有高速的數(shù)據(jù)交換通道,F(xiàn)LASH經(jīng)由控制器模塊通過(guò)AHB總線與處理器通信。NandFLASH控制器、NorFLASH控制器和DMA控制器都是高速總線AHB上的Master模塊,都包含符合AMBA標(biāo)準(zhǔn)的總線接口模塊與AHB交互工作。

2.3 NorFLASH的接口設(shè)計(jì)

系統(tǒng)用的NorFLASH芯片是Atmel公司開(kāi)發(fā)的AT49BV1614A,存儲(chǔ)空間為16 MB,在系統(tǒng)中常用于存放代碼,系統(tǒng)上電或復(fù)位后獲得指令開(kāi)始執(zhí)行,因此,應(yīng)將其配置到Bank0,將AT49BV1614A的片選端nCE接至 S3C2410的nGCS0;AT49BVl614A的輸出使能端nOE接S3C2410的nOE;寫(xiě)使能端nWE接S3C2410的nWBE0;將模式選擇nBYTE上拉,使AT49BV1614A工作在 16 位數(shù)據(jù)模式。

2. 4 NorFLASH在系統(tǒng)中的具體操作

以AT49BV1614A芯片時(shí)序圖為例,具體說(shuō)明NorFLASH的寫(xiě)操作,如圖2所示。

CLE信號(hào)有效時(shí)系統(tǒng)通過(guò)I/O口向命令寄存器發(fā)送命令00H,此時(shí)WE為低電平,寫(xiě)操作有效,NandFLASH處于寫(xiě)狀態(tài)。發(fā)送命令后,接著發(fā)送要讀的地址,該操作將占用WE的1,2,3,4四個(gè)周期,發(fā)送地址信息時(shí),CLE為低電平,ALE為高電平。地址信息發(fā)送完畢后,不能立刻讀取數(shù)據(jù),因?yàn)榇藭r(shí)芯片正處于BUSY(忙)狀態(tài),需要等待2~20 ms,之后,才能開(kāi)始數(shù)據(jù)讀取。

3 FLASH驅(qū)動(dòng)程序開(kāi)發(fā)

3.1 Linux系統(tǒng)下的驅(qū)動(dòng)程序

Linux系統(tǒng)將所有的設(shè)備都看作具體的文件,通過(guò)文件系統(tǒng)對(duì)設(shè)備進(jìn)行管理。所以在Linux架構(gòu)中,和設(shè)備相關(guān)的處理分成兩層:文件系統(tǒng)層和設(shè)備驅(qū)動(dòng)層。設(shè)備驅(qū)動(dòng)層用來(lái)屏蔽具體設(shè)備的細(xì)節(jié),文件系統(tǒng)層向用戶提供一組統(tǒng)一的接口。這種設(shè)備管理方法可以很好的實(shí)現(xiàn)設(shè)備無(wú)關(guān)性,使Linux系統(tǒng)可以隨著外部設(shè)備的發(fā)展進(jìn)行擴(kuò)展。

Linux系統(tǒng)里將FLASH設(shè)備歸屬到MTD設(shè)備下管理,相對(duì)于常規(guī)塊設(shè)備驅(qū)動(dòng)程序,MTD設(shè)備驅(qū)動(dòng)程序能更好的支持和管理閃存。具體講,基于MTD的 FLAsH驅(qū)動(dòng)程序,對(duì)上層可以很好的支持JFFS(針對(duì)NorFLASH)和YAFFS(針對(duì)NandFLASH)等文件系統(tǒng),對(duì)下層FLASH的讀寫(xiě),擦除,壞塊處理都能進(jìn)行很好的管理,它在硬件設(shè)備和上層文件系統(tǒng)間提供一個(gè)抽象接口。

3.2 FLASH驅(qū)動(dòng)程序開(kāi)發(fā)流程

FLASH驅(qū)動(dòng)程序有兩種編程方式。一種是直接編程進(jìn)內(nèi)核(Kernel),另一種是編程成模塊(Modules),如果編程進(jìn)內(nèi)核,會(huì)增加內(nèi)核的大小,還要改動(dòng)內(nèi)核源文件,不能動(dòng)態(tài)卸載,不利于調(diào)試。

FLASH驅(qū)動(dòng)開(kāi)發(fā)流程要經(jīng)過(guò)四步:模塊化設(shè)計(jì),編譯,加載,調(diào)用驗(yàn)證。如圖4所示。

3.2.1 驅(qū)動(dòng)程序的模塊化設(shè)計(jì)

構(gòu)成FLASH驅(qū)動(dòng)程序的所有子程序,要進(jìn)行模塊化設(shè)計(jì),必須加入兩個(gè)函數(shù):入口函數(shù)module init()和出口函數(shù)module_exit()。在執(zhí)行程序時(shí)module_init()會(huì)調(diào)用int_init cfi probe_init(void),負(fù)責(zé)初始化MTD芯片,同時(shí)這個(gè)函數(shù)還調(diào)用register_mtd_chip_driver(),將cfi_chipdrv加入至 MTD驅(qū)動(dòng)器列表chip_drvs_list中。初始化成功返回0,否則返回負(fù)值。實(shí)現(xiàn)代碼為:

另一個(gè)函數(shù)module_exit()執(zhí)行時(shí),會(huì)調(diào)用staticvoid_exit cfi_probe_exit(void),負(fù)責(zé)清除MTD芯片驅(qū)動(dòng)工作。同時(shí)這個(gè)函數(shù)還調(diào)用unregister_mtd_chip_driver(),將cfi_chipdrv從MTD芯片驅(qū)動(dòng)器列表chip_drvs_list中刪除。實(shí)現(xiàn)代碼為:

其中:-O指定代碼優(yōu)化的級(jí)別;-D內(nèi)核模塊必須按照特殊定義的參數(shù)進(jìn)行編譯,這些參數(shù)跟在選項(xiàng)-D后;MODULE通知頭文件要給出適當(dāng)?shù)膬?nèi)核模塊定義;-KERNEL-通知頭文件形成的目標(biāo)代碼在內(nèi)核態(tài)運(yùn)行。得到的文件*.O就是一個(gè)FLASH驅(qū)動(dòng)程序的目標(biāo)文件,這樣FLAsH驅(qū)動(dòng)程序編譯好。

3.2.3 驅(qū)動(dòng)程序的加載

加載模塊要用到兩個(gè)命令:insmod(加載),rmmod(卸載)。加載時(shí),module_init()函數(shù)被調(diào)用,這個(gè)函數(shù)向系統(tǒng)設(shè)備表登記 FLAsH設(shè)備。卸載時(shí),module_exit()函數(shù)被調(diào)用,它釋放FLASH設(shè)備在系統(tǒng)設(shè)備表中占有的表項(xiàng)。注冊(cè)成功后就可以用mknod命令將 FLASH設(shè)備映射為一個(gè)特別文件,其他程序使用FLASH設(shè)備時(shí),只要對(duì)此文件進(jìn)行操作就行。Linux在/dev目錄中為每個(gè)設(shè)備建立了一個(gè)文件,用 ls-1命令列出函數(shù)返回值,若小于O,表示注冊(cè)失??;否則表示注冊(cè)成功。注冊(cè)以后,Linux將FLAsH設(shè)備名與主、次設(shè)備號(hào)聯(lián)系起來(lái)。當(dāng)對(duì) FLASH訪問(wèn)時(shí),Linux通過(guò)請(qǐng)求訪問(wèn)FLASH設(shè)備名得到主、次設(shè)備號(hào);然后把此訪問(wèn)發(fā)送到FLASH設(shè)備驅(qū)動(dòng),F(xiàn)LASH驅(qū)動(dòng)再根據(jù)次設(shè)備號(hào)調(diào)用不同的函數(shù)。

3.2.4 驅(qū)動(dòng)程序的調(diào)用驗(yàn)證

模塊加載到內(nèi)核后,然后就要調(diào)用驗(yàn)證。在Linux根目錄下有dev子目錄,這里面是節(jié)點(diǎn)名,這些結(jié)點(diǎn)是通過(guò)mknod建立的,里面有MTD字符設(shè)備節(jié)點(diǎn)和MTD塊設(shè)備節(jié)點(diǎn),通過(guò)訪問(wèn)這些節(jié)點(diǎn)來(lái)訪問(wèn)設(shè)備驅(qū)動(dòng)程序。Open一般是設(shè)備節(jié)點(diǎn)上的第一個(gè)操作,訪問(wèn)設(shè)備時(shí)其實(shí)就是系統(tǒng)調(diào)用open()函數(shù),然后 open()函數(shù)打開(kāi)設(shè)備準(zhǔn)備進(jìn)行I/O操作,該函數(shù)注冊(cè)進(jìn)mtd_fops結(jié)構(gòu)中。

上面就是NorFLASH和NandFLASH驅(qū)動(dòng)程序架構(gòu),具體開(kāi)發(fā)驅(qū)動(dòng)程序時(shí),就要填充架構(gòu)里的程序代碼,來(lái)完成驅(qū)動(dòng)程序。這個(gè)框架中有一個(gè)函數(shù)表,具體到Linux系統(tǒng)里,需要提供一個(gè)結(jié)構(gòu)來(lái)向系統(tǒng)說(shuō)明FLASH驅(qū)動(dòng)程序所提供的一組入口點(diǎn),這個(gè)結(jié)構(gòu)就是fop函數(shù)表。

FLASH驅(qū)動(dòng)程序運(yùn)行時(shí),向內(nèi)核注冊(cè),告訴系統(tǒng)fop函數(shù)表是跟FLASH驅(qū)動(dòng)程序相關(guān)聯(lián)的。當(dāng)用戶去訪問(wèn)驅(qū)動(dòng)程序時(shí),系統(tǒng)就告訴文件系統(tǒng)的管理程序,調(diào)用fop函數(shù)表就可以,然后調(diào)用函數(shù)表里的函數(shù),完成用戶要求。當(dāng)從設(shè)備來(lái)收發(fā)數(shù)據(jù)時(shí),系統(tǒng)不是調(diào)用read(),write()這兩個(gè)函數(shù),fop結(jié)構(gòu)里沒(méi)這兩個(gè)函數(shù),而是要用到一個(gè)函數(shù)blk_init_queue(),這個(gè)函數(shù)向上注冊(cè)了一個(gè)請(qǐng)求處理函數(shù)request,對(duì)FLASH設(shè)備的讀取和發(fā)送數(shù)據(jù),都是從請(qǐng)求隊(duì)列發(fā)出一個(gè)請(qǐng)求,請(qǐng)求調(diào)用請(qǐng)求處理函數(shù),由請(qǐng)求處理函數(shù)執(zhí)行具體的讀寫(xiě)操作。

4 結(jié) 語(yǔ)

基于Samsung公司的s3c2410處理器平臺(tái),分析和設(shè)計(jì)NorFLASH和NandFLASH的接口和驅(qū)動(dòng),詳細(xì)介紹兩種FLASH的硬件結(jié)構(gòu)、性能差異、讀寫(xiě)時(shí)序、以及驅(qū)動(dòng)開(kāi)發(fā)。NorFLASH和NandFLASH因其在存儲(chǔ)數(shù)據(jù)和程序以及性價(jià)比方面的優(yōu)勢(shì),占據(jù)的存儲(chǔ)器市場(chǎng)份額越來(lái)越多,并在嵌入式系統(tǒng)中得到廣泛應(yīng)用。



QICK

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

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

關(guān)鍵字: 驅(qū)動(dòng)電源

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

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

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

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

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

關(guān)鍵字: 電動(dòng)汽車 新能源 驅(qū)動(dòng)電源

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

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

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

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

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

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

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

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉