在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<s id="cmphk"><label id="cmphk"></label></s>
    <span id="cmphk"><var id="cmphk"></var></span>
    <dfn id="cmphk"><var id="cmphk"></var></dfn>
    <menu id="cmphk"><thead id="cmphk"></thead></menu>

    <address id="cmphk"></address>

      <dfn id="cmphk"></dfn>
      
      
      <span id="cmphk"></span>

      <object id="cmphk"><tt id="cmphk"></tt></object>
      1. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 2440裸機學習心得(下)

        2440裸機學習心得(下)

        作者: 時間:2016-11-29 來源:網(wǎng)絡(luò) 收藏
        NOR和NAND是現(xiàn)在市場上兩種主要的非易失閃存技術(shù)。Intel于1988年首先開發(fā)出NOR flash技術(shù),徹底改變了原先由EPROM和EEPROM一統(tǒng)天下的局面。
        NOR比較好操作,因為集成了系統(tǒng)地址線和數(shù)據(jù)線在芯片內(nèi),而NAND只有8個I/O,要操作,還需要結(jié)合相應(yīng)硬件,如2440里有的NAND控制器。
        14、基于OHCI的USB主機(僅做了枚舉)
        發(fā)現(xiàn)了一個很好的博客講這個的:http://lancelot.blog.51cto.com/393579/328233
        部分經(jīng)典內(nèi)容摘要:
        在OHCI規(guī)范中,最重要的幾個概念是端點(EndPoint - ED)、傳輸描述符(Transport Descriptor - TD)、主機控制器通信區(qū)(HCCA)。其中ED負責確定傳輸類型(控制傳輸、批量傳輸、同步傳輸和中斷傳輸)。TD確定傳輸參數(shù)。HCCA用于確定數(shù)據(jù)傳輸是否完畢。
        OHCI(基本流程)
        進行控制/批量傳輸?shù)闹饕幚砹鞒倘缦拢?/div>
        1、創(chuàng)建控制/批量傳輸?shù)腅D列表;
        2、創(chuàng)建ED下的TD列表;
        3、設(shè)置命令到相應(yīng)寄存器開始數(shù)據(jù)傳輸;
        4、在中斷處理程序中判斷數(shù)據(jù)傳輸是否結(jié)束;
        在OHCI層,主要完成如下功能:
        l通過控制端口讀寫數(shù)據(jù)(包含SETUP、DATA、STATUS等3個TD);
        l通過控制端口發(fā)送設(shè)置命令(沒有DATA的TD);
        l通過批量端口讀數(shù)據(jù);
        l通過批量端口寫數(shù)據(jù);
        l中斷處理程序;
        在OHCI的體系下,判斷數(shù)據(jù)是否傳輸完畢是需要通過中斷程序來判斷的,當USB主機設(shè)置了HcControl和HcCommandStatus寄存器開始傳輸數(shù)據(jù)后,AM9200自動開始數(shù)據(jù)傳輸,并且定期的檢查HcDoneHead寄存器的內(nèi)容,并且將其轉(zhuǎn)移到HCCA.DoneHead。然后產(chǎn)生中斷,觸發(fā)中斷處理程序。
        在中斷處理程序中需要判斷當前結(jié)束的TD是否是當前命令的最后一個TD,這樣才能確保整個ED處理完畢。
        進行U盤的數(shù)據(jù)傳輸時需要通過批量傳輸端口收發(fā)數(shù)據(jù),所使用的協(xié)議為Mass Storage協(xié)議
        要學習的一種數(shù)據(jù)結(jié)構(gòu)與結(jié)構(gòu)體結(jié)合應(yīng)用的模式:
        聲明時:
        typedef struct _ED {
        …………
        } ED,*P_ED;
        __inline void CreateEd(unsigned int EDAddr,………….)
        {
        P_ED pED = (P_ED) EDAddr;//這個在函數(shù)中創(chuàng)建結(jié)構(gòu)體pED來初始化
        pED->Control =…………………….
        }
        調(diào)用時,因16字節(jié)對齊:
        __align(16) EDed;(聲明)
        CreateEd(
        (unsigned int) &ed,// ED Address
        ………….
        );
        簡單的USB設(shè)備枚舉,讀取描述符:(控制傳輸步驟)
        搞好最重要的3個數(shù)據(jù)結(jié)構(gòu):
        端點描述符ED,傳輸描述符TD和共享數(shù)據(jù)域HCCA
        由于HCCA只是創(chuàng)建一個空間域,不需要初始化
        而ED和TD在設(shè)備枚舉時需要不同初始化,故還要創(chuàng)建兩個
        初始化結(jié)構(gòu)體函數(shù):CreateEd和CreateGenTd
        初始化OCHI寄存器(僅限枚舉部分,不涉及中斷)
        復位,設(shè)置幀間隔,初始化HcDoneHead,設(shè)置HC為運行狀態(tài)
        寫HCCA(開拓一片域)
        檢測是否有USB設(shè)備
        設(shè)一定的時間檢測,如for(i=0;i<100000;i++)
        設(shè)備枚舉的5個過程:第一步,主機得到設(shè)備描述符
        第二步為設(shè)備分配地址
        第三步,主機用新的地址再次獲取設(shè)備描述符
        第四步,主機讀取設(shè)備全部配置描述符
        第五步,主機發(fā)送SETUP數(shù)據(jù)包,用以設(shè)置配置,允許所有端點進入工作狀態(tài)。
        注意:控制寫傳輸需要3個TD:第一個發(fā)送Setup包,第二個用于接收握手或零長度的數(shù)據(jù)包,第三個用于發(fā)送狀態(tài);
        控制讀傳輸需要4個TD:第一個發(fā)送Setup包,第二個用于接收數(shù)據(jù),第三個用于發(fā)送一個零長度的數(shù)據(jù)包,,第四個用于接收狀態(tài)
        具體有兩種方法判斷TD是否傳送完成:
        中斷法
        初始化好中斷寄存器rHcInterruptEnable |= (1<<1)|(1<<31);
        rHcInterruptStatus |= (1<<1);
        pISR_USBH = (int)USBH_interrupt;
        rINTMSK = ~BIT_USBH;
        當有TD完成時,便進入中斷。
        如何判斷枚舉過程中每一步是否最后一個TD完成呢?
        可以通過TD創(chuàng)造函數(shù)中DelayInterrupt即DI變量設(shè)置來巧妙解決
        當DI=0x7時,即使TD完成也不會進入中斷的,故可以只在每一階段最后的TD設(shè)為非0x7,其余的設(shè)為0x7,這樣進入中斷就代表是最后數(shù)據(jù)發(fā)送完成了
        2、狀態(tài)檢測法:
        可以通過rHcCommandStatus寄存器中第二位是否1來判斷Controllistfilled。
        當其為1時,表示還有TD在隊列,沒發(fā)送完成
        為0時,表示無TD在隊列,全部發(fā)送完
        可以這樣檢測:while(rHcCommandStatus&&0x02)
        {
        Delay(50);
        }
        具體的UFI讀寫設(shè)備參考網(wǎng)上的吧(弄了很久,還沒弄成功)
        1、查詢
        2、讀余量
        3、讀寫扇區(qū)
        好啦,到這里,算是結(jié)束了,開始帶LINUX系統(tǒng)的真正學習啦,GO
        一切都會有新的開始。。。。。。。。。。

        上一頁 1 2 3 下一頁

        關(guān)鍵詞: 2440v裸機學

        評論


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

        關(guān)閉