<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于A(yíng)RM微處理器的嵌入式以太網(wǎng)接口設計

基于A(yíng)RM微處理器的嵌入式以太網(wǎng)接口設計

作者: 時(shí)間:2008-11-26 來(lái)源:網(wǎng)絡(luò ) 收藏

  1)OS_CPU.H 文件包括#define、定義與CPU相關(guān)信息。因不同的處理器有不同的字長(cháng),所以μC/OS Ⅱ的移植包括一系列的類(lèi)型定義,以確??梢浦残?。如INT16U 數據類(lèi)型總是代表16 位無(wú)符號整數,將μC/OS Ⅱ移植到32 位處理器上,也就意味著(zhù)INT16U 實(shí)際上為無(wú)符號短整型數而不是無(wú)符號整型數。

  2)OS _CPU _C.C 文件OSTaskCreatHook()、OSTaskDelHook()、OSTaskSwhook()、OSTaskStatHook()、OSTaskCreakHook(),這些為用戶(hù)定義,實(shí)際需要修改的只有OSTaskStkIinit()。OSTaskStkIinint()用來(lái)初始化任務(wù)堆棧,初始狀態(tài)的堆棧模擬發(fā)生一次中斷后的堆棧結構。由于在A(yíng)RM 中堆棧是按32 位數據類(lèi)型來(lái)進(jìn)行操作,所以堆棧數據類(lèi)型OS _STK 聲明為32 位無(wú)符號整數。

  3)OS _CPU _A.ASM 文件這里要實(shí)現4 個(gè)匯編改寫(xiě):多任務(wù)啟動(dòng)函數中調用OSSTartHightRdy()、任務(wù)切換函數OSCtxSw()、中斷任務(wù)切換OSIntCtxSw()和時(shí)鐘節拍服務(wù)函數OSTickISR()。任務(wù)切換函數OSCtxSw(),由任務(wù)切換函數OS _TASK _SW()進(jìn)入。如果任務(wù)執行了某個(gè)函數,其結果改變了當前任務(wù)的狀態(tài)[如OSTaskSuspend()、OSTimeDly()],或者是改變了別的任務(wù)的狀態(tài)[OSTaskResum()、O S T i m e D l y R e s u m e ( ) ]都要引起新的任務(wù)調度函數[OSSched()]執行OS _TASK _SW()。OSIntCtxSw()是在ISR中被調用的,其代碼與OSCtxSw () 類(lèi)似。OSStartHightRdy()由OSStart ()函數調用,功能是運行優(yōu)先級最高的任務(wù)。OSTickISR()是時(shí)鐘節拍中斷,用戶(hù)應該在OSStart()運行

  后,μC/OS Ⅱ啟動(dòng)運行的第一個(gè)任務(wù)中初始化節拍中斷。

  (2)初始化RTL8019AS

  初始化部分完成RTL8019AS 在使用之前的初始化工作,設置相關(guān)工作模式的寄存器,分配和初始化接收和發(fā)送緩沖區,初始化網(wǎng)卡接收地址。

  (3)傳輸數據包

  發(fā)送部分只要把數據寫(xiě)入緩沖區, 啟動(dòng)執行命令,RTL8019AS 自動(dòng)發(fā)送。一般在RAM 內開(kāi)辟2 個(gè)以太網(wǎng)數據包的空間作為發(fā)送緩沖區。作為一個(gè)集成的以太網(wǎng)芯片,數據的發(fā)送校驗,總線(xiàn)數據包的碰撞檢測與避免是由芯片自己完成的。只需要配置發(fā)送數據的物理層地址、源地址、目的地址、數據包類(lèi)型以及發(fā)送的數據就可以了。

  (4)接收數據包

  它是完成數據接收任務(wù),RTL8019AS 接收到以太網(wǎng)數據包后自動(dòng)將其存在接收緩沖區并發(fā)出中斷信號,S3C44BOX在中斷程序里通過(guò)D M A 就可接收到數據,即通過(guò)遠端D M A把數據從RTL8019AS 的RAM 空間,讀回ARM 中處理。這里主要是對一些相關(guān)的寄存器進(jìn)行操作。RTL8019AS 芯片具有性?xún)r(jià)比高,連接方便等特點(diǎn),是進(jìn)行以太網(wǎng)設計時(shí)的首選的控制芯片。本文介紹了以S3C44BOX 處理器為核心,用RTL8019AS 作為網(wǎng)絡(luò )芯片的以太網(wǎng)的具體軟硬件方法。產(chǎn)品的性能高,價(jià)格適中,不僅可用于工業(yè)現場(chǎng)實(shí)現現場(chǎng)節點(diǎn)的自動(dòng)上網(wǎng)功能,而且可以用于信息家電的以太網(wǎng),可以實(shí)現遠程控制,在網(wǎng)上就可以控制家中的電器,具有很好的發(fā)展前景。

linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)

上一頁(yè) 1 2 3 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>