久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > 基于ARM微處理器的嵌入式以太網接口設計

基于ARM微處理器的嵌入式以太網接口設計

作者: 時間:2008-11-26 來源:網絡 收藏

  1)OS_CPU.H 文件包括#define、定義與CPU相關信息。因不同的處理器有不同的字長,所以μC/OS Ⅱ的移植包括一系列的類型定義,以確保可移植性。如INT16U 數據類型總是代表16 位無符號整數,將μC/OS Ⅱ移植到32 位處理器上,也就意味著INT16U 實際上為無符號短整型數而不是無符號整型數。

  2)OS _CPU _C.C 文件OSTaskCreatHook()、OSTaskDelHook()、OSTaskSwhook()、OSTaskStatHook()、OSTaskCreakHook(),這些為用戶定義,實際需要修改的只有OSTaskStkIinit()。OSTaskStkIinint()用來初始化任務堆棧,初始狀態的堆棧模擬發生一次中斷后的堆棧結構。由于在ARM 中堆棧是按32 位數據類型來進行操作,所以堆棧數據類型OS _STK 聲明為32 位無符號整數。

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

  后,μC/OS Ⅱ啟動運行的第一個任務中初始化節拍中斷。

  (2)初始化RTL8019AS

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

  (3)傳輸數據包

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

  (4)接收數據包

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

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

上一頁 1 2 3 下一頁

評論


相關推薦

技術專區

關閉