www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 單片機(jī) > 單片機(jī)
[導(dǎo)讀] 硬件平臺(tái)基于應(yīng)用處理器PXA310,軟件平臺(tái)基于嵌入式Linux的Android操作系統(tǒng)。首先介紹了TF卡與應(yīng)用處理器的連接電路設(shè)計(jì)。然后介紹TF卡驅(qū)動(dòng)程序的設(shè)計(jì)和Android對TF卡的掛載方法。在TF卡驅(qū)動(dòng)程序設(shè)計(jì)

硬件平臺(tái)基于應(yīng)用處理器PXA310,軟件平臺(tái)基于嵌入式Linux的Android操作系統(tǒng)。首先介紹了TF卡與應(yīng)用處理器的連接電路設(shè)計(jì)。然后介紹TF卡驅(qū)動(dòng)程序的設(shè)計(jì)和Android對TF卡的掛載方法。在TF卡驅(qū)動(dòng)程序設(shè)計(jì)中采用了SPI工作模式和FAT32文件系統(tǒng),描述了FAT32文件系統(tǒng)的移植。最后介紹了系統(tǒng)調(diào)試,并展示了TF卡在視頻數(shù)據(jù)采集單元中應(yīng)用的設(shè)計(jì)結(jié)果。


嵌入式系統(tǒng)調(diào)試一般使用串口、JTAG、USB或網(wǎng)卡來下載系統(tǒng)鏡像到目標(biāo)機(jī)中。使用串口下載鏡像,協(xié)議簡單,接口通用,但傳輸速率太慢。使用JTAG下載鏡像,傳輸速率較高,但需要專用的JTAG調(diào)試器,價(jià)格較高,限制了調(diào)試環(huán)境。使用USB或網(wǎng)卡下載鏡像速度快、接口通用,但一般做成產(chǎn)品后的嵌入式設(shè)備不需要留出通用的USB或以太網(wǎng)接口,從而增加了設(shè)計(jì)的復(fù)雜性和開發(fā)成本。在移動(dòng)嵌入式產(chǎn)品開發(fā)過程中,如果使用TransFlash(TF)卡代替USB或以太網(wǎng)口,由于TF卡一般又都是移動(dòng)嵌入式產(chǎn)品的必要構(gòu)成部分,這樣做一般可以減小嵌入式系統(tǒng)調(diào)試的復(fù)雜性和成本。本文提出使用TF卡更新鏡像的方法,并在實(shí)際的嵌入式系統(tǒng)調(diào)試中成功應(yīng)用。使用TF卡下載系統(tǒng)鏡像,速度與通用性都很好,既省去了調(diào)試中對其他下載設(shè)備的設(shè)計(jì)需求,又解決了最終產(chǎn)品大容量存儲(chǔ)器的設(shè)計(jì)問題。

1 TransFIash卡與應(yīng)用處理器的連接電路設(shè)計(jì)

本文調(diào)試的嵌入式系統(tǒng),是一種視頻數(shù)據(jù)采集與傳輸單元,以PXA310為中央處理器,采集到的視頻數(shù)據(jù)由PXA310進(jìn)行壓縮編碼處理,之后發(fā)送到網(wǎng)絡(luò)中去,供用戶查看。系統(tǒng)調(diào)試過程中,視頻數(shù)據(jù)可以存儲(chǔ)到TF卡中。

TF卡模塊在系統(tǒng)中主要有兩個(gè)方面的作用:

一是在嵌入式系統(tǒng)開發(fā)調(diào)試過程中用于將系統(tǒng)鏡像到目標(biāo)版;二是作為最終嵌入式系統(tǒng)產(chǎn)品的大容量存儲(chǔ)器。

SD卡有兩個(gè)可選的通信協(xié)議:SD模式和SPI模式。SD模式是SD卡標(biāo)準(zhǔn)的讀寫方式,但要求主控制器帶有SD卡控制器。PXA310本身沒有TF卡控制器接口,選用SD模式通信就無形中增加了產(chǎn)品的硬件成本,選擇SPI模式可以說是一種最佳的解決方案,相對于SD模式,SPI模式接口與協(xié)議簡單、易于操作。這時(shí)TF卡在PXA3 10 MMC/SD/SDIO主控制器控制下工作。

2 Blob中TF卡的驅(qū)動(dòng)設(shè)計(jì)以及FAT32文件系統(tǒng)移植2.1 設(shè)計(jì)TF卡SPI模式驅(qū)動(dòng)

TF卡操作遵循SD卡協(xié)議,TF卡的操作完全與SD卡相同。相對于SD模式,SPI模式接口與協(xié)議簡單、易于操作。PXA310帶有MMC/SD/SDIO主控制器,但由于Blob中沒有提供SD卡與主控制器的具體驅(qū)動(dòng),實(shí)現(xiàn)完整驅(qū)動(dòng)的難度較大,故本文采用GPIO口模擬的SPI模式讀寫TF卡,運(yùn)行到Linux內(nèi)核后再加載主控制器驅(qū)動(dòng)運(yùn)行SD模式的方式,性能與實(shí)現(xiàn)難度都可兼顧。


SPI模式TF卡總線采用主從問答式協(xié)議。主機(jī)發(fā)送命令Command,TF卡應(yīng)答回復(fù)Response。SD卡命令有兩種,CMDx和ACMDx。ACMD是應(yīng)用指令集,屬于擴(kuò)展指令集,在發(fā)送任何的ACMD之前,必須先發(fā)送CMD55激活,才可以使用ACMD指令集。發(fā)送完一個(gè)ACMD,并且卡響應(yīng)了此指令之后,CMD55的作用就消失了,所以要發(fā)送多個(gè)或多次發(fā)送一個(gè)ACMD,需要循環(huán)發(fā)送CMD55+ACMD。

2.2 SPI模式初始化TF卡流程

TF卡默認(rèn)的通信模式是SD模式,本文要在SPI模式下設(shè)計(jì)TF卡驅(qū)動(dòng),需要從SD模式切換到SPI。為此,先將TF卡上電,延時(shí)74個(gè)時(shí)鐘周期后發(fā)送復(fù)位命令CMD0,同時(shí)將SD卡的CS片選信號(hào)置低,若此時(shí)接收到應(yīng)答信號(hào)為0x01,說明TF卡進(jìn)入了SPI模式。

TF卡與MMC卡都可用SPI模式驅(qū)動(dòng),故在初始化時(shí)可考慮與MMC卡的兼容性。在發(fā)送CMD0成功接收到應(yīng)答信號(hào)后,連續(xù)發(fā)送CMD55+ACMD41,若CMD55回復(fù)0x01而ACMD41回復(fù)0x00,則TF卡初始化成功。若沒有完整的應(yīng)答,則改發(fā)CMD1,若CMD1成功回復(fù)0x00,則MMC卡初始化成功。

在SPI模式下,TF卡的初始化時(shí)鐘頻率不能超過400 kHz。初始化成功后,就可以配置高速時(shí)鐘下TF卡的讀寫操作了。圖2為TF卡初始化流程圖。

在Blob中完成TF卡初始化,還需要初始化PXA310的GPIO口,并根據(jù)對應(yīng)TF卡的引腳配置其輸入輸出關(guān)系。

在Blob中,PXA3 10的PXA_SD_D2、PXA_SD_D3、PXA_SD_CMD、PXA_SD_CLK、PXA_SD_D0、PXA_SD_D1這幾個(gè)I/O口并沒設(shè)置為GPIO口,不能在軟件上進(jìn)行讀寫操作,要使用SPI模式,必須將這幾個(gè)IO口設(shè)置為GPIO。通過在MFP寄存器中配置IO口的功能號(hào),再配置相應(yīng)參數(shù)即可實(shí)現(xiàn)。

2.3 通過SPI讀寫TF卡的程序設(shè)計(jì)

TF卡的讀寫以塊為單位,初始化完成后,使用CMD16設(shè)置SD卡讀寫塊長度(512 B),發(fā)送CMD17和CMD24讀單塊寫單塊,發(fā)送CMD18和CMD25讀多塊和寫多塊。實(shí)現(xiàn)TF驅(qū)動(dòng)層中讀寫函數(shù)的邏輯流程如圖3所示。

2.4 FAT32文件系統(tǒng)移植

在文中,F(xiàn)AT32文件系統(tǒng)移植主要包括系統(tǒng)初始化和文件管理程序修改(主要是文件讀取)。FAT32的初始化就是找到各個(gè)部分的起始扇區(qū)位置。首先查找MBR的分區(qū)表,獲取分區(qū)信息,然后找到每個(gè)分區(qū)的DBR,再根據(jù)DBR中的BPB得到分區(qū)的起始扇區(qū)、結(jié)束扇區(qū)、文件系統(tǒng)類型、FAT表個(gè)數(shù)、每簇占用扇區(qū)數(shù)等信息。最后根據(jù)下面的算法得到文件分配表FAT、文件目錄表FDT和數(shù)據(jù)區(qū)DATA的起始扇區(qū)。FAT32讀取文件流程如圖4所示。



2.5 設(shè)計(jì)Blob命令下載系統(tǒng)鏡像

Blob啟動(dòng)之后,首先初始化一些基本的硬件設(shè)備如串口等,然后檢測系統(tǒng)內(nèi)存映射,設(shè)置CPU運(yùn)行頻率等一些參數(shù),接著就進(jìn)入了命令行模式。

在Blob中提供tfdownload命令,主函數(shù)的形參就是接收到的命令內(nèi)容和參數(shù)。若參數(shù)為“init”,則調(diào)用TF卡驅(qū)動(dòng)的初始化,否則將此參數(shù)作為文件名傳給FAT32文件系統(tǒng)打開并讀取文件內(nèi)容。最終實(shí)現(xiàn)“tfdownloadinit”調(diào)用TF卡驅(qū)動(dòng)初始化TF卡。使用“tfdownload”+文件名可以調(diào)用FAT32文件系統(tǒng)和TF卡的驅(qū)動(dòng)下載該文件名的鏡像到內(nèi)存中。

2.6 MakeFile文件修改與交叉編譯

(1)TF卡驅(qū)動(dòng)與FAT32文件系統(tǒng)編譯

按照Blob中驅(qū)動(dòng)程序的結(jié)構(gòu),TF卡驅(qū)動(dòng)與FAT32文件系統(tǒng)源文件保存在/SRC/blob/Platform/Common/Source目錄下,而FAT32文件系統(tǒng)頭文件在/src/blob/Platform/Common/include目錄下,要在編譯Blob的時(shí)候?qū)⑻砑拥尿?qū)動(dòng)一起編譯,需要更改相應(yīng)的Makefile。

在/src/blob/Platform/Source下有三個(gè)Makefile文件,分別是Makefile.a(chǎn)m,Makefile和Makefile.in,修改Makefile.a(chǎn)m即可,Makefile和Makefile.in會(huì)自動(dòng)修改。主要增加Makefile的頭文件尋找目錄和編譯文件。

(2)Blob命令編譯

src/commands下的命令編譯由同目錄的Makefile確定,同樣需要修改Makefile使添加的命令編譯到Blob中去。另外,要使該命令在Blob中生效,還需要修改Blob的configure.in文件,在configure.in中添加:blob_commands=“$blob_commands,tfdownload”;。

(3)編譯Blob

linux-2.6.25中集成了Blob,用linux-2.6.25的工具鏈編譯好之后,在…/pxalinux/MHN-LINUX-PLATFORM/rel/target/bin中,boot_nontrust.bin就是生成的Blob鏡像。

2.7 系統(tǒng)鏡像下載的實(shí)現(xiàn)

先用tfdownload init命令初始化TF卡驅(qū)動(dòng),然后使用tfdownload下載系統(tǒng)鏡像到內(nèi)存中,再使用Nandwrite命令寫入NandFlash中。

3 Android下掛載TF卡實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)

在Android系統(tǒng)中使用TF卡做儲(chǔ)存器,必須先將TF卡掛載到Android上。要啟用void,需要在Android啟動(dòng)配置文件init.rc中關(guān)閉mountd并開啟void服務(wù)。通過對配置文件init.rc進(jìn)行下面的修改完成此項(xiàng)功能。

servICe void/system/bin/void //vold服務(wù)開啟socket void stream 0660 root mount

……

#service mountd/system/bin/mountd//mountd服務(wù)關(guān)閉(被注釋了)#socket mountd stream 0660 root mount

void.conf文件是void程序掛載設(shè)備的配置文件,里面記載了掛載設(shè)備的設(shè)備路徑、設(shè)備類型以及掛載的目標(biāo)位置(掛載點(diǎn))。需要在該文件中加入TF卡的掛載信息,然后,將void.conf加入到system/etc目錄下,void程序就可以直接讀取該配置文件了。

FAT32屬于Windows分區(qū),因?yàn)閃indows分區(qū)里面的文件是沒有權(quán)限這個(gè)概念的,所以在Linux系統(tǒng)中使用此分區(qū)時(shí)要手動(dòng)指定默認(rèn)權(quán)限。掛載TF卡之后Android的/sdcard目錄不能直接通過chmod命令來修改對于system組的讀寫權(quán)限,在system下是無法直接訪問TF卡的,需要在掛載的時(shí)候添加權(quán)限。在void中,真實(shí)掛載TF卡的操作如下:

rc=mount(deVpath,vol->mount_point,“vfat”,flags,“utf8,uid=1000,gid=1000,F(xiàn)Mask=711,DMAsk=700,shortname=mix ed”);其中uid代表屬主,uid=1 000代表system用戶,fmask和dmask分別對應(yīng)文件和目錄的權(quán)限8進(jìn)制碼的反碼。

4 設(shè)計(jì)結(jié)果展示

本文調(diào)試的數(shù)據(jù)采集與傳輸單元實(shí)物如圖5所示,TF卡位于PCB板右上角。使用該單元錄制視頻并保存在TF卡中,設(shè)定錄制時(shí)間為30 s,30 s后關(guān)閉,取出TF卡,將TF卡與PC

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

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉