DM9000C網絡卡驅動

2022-05-04 22:57:09 字數 1087 閱讀 5376

目的:通過學習,掌握如何移植、編寫dm9000c網絡卡驅動

一、概述:

dm9000是一款高度整合低功耗快速乙太網處理器,該晶元整合了mac和phy。dm9000可以和cpu直接連線,支援8位、16位和32位資料匯流排寬度。該晶元支援10m和100m自適應乙太網介面,內部有16k的fifo以及4k雙位元組sram,支援全雙工工作。內部整合了接收緩衝區,可以在接收到資料的時候把資料存放到緩衝區中,鏈路層可以直接把資料從緩衝區取走

1.1 dm9000c原理圖

訊號線(#表示低電平有效):

1.2 dm9000的基位址

cmd為高電平時,訪問dm9000的資料埠,資料埠位址為0x20000004

cmd為低電平時,訪問dm9000的位址埠,位址埠位址為0x20000000

片選訊號cs#與ngcs4相接,即選中bank4,其區間位於: 0x20000000~0x28000000,

當我們訪問這個區間的位址,記憶體控制器便會使能網絡卡dm9000c的使能腳,所以我們的dm9000c的io基位址=0x20000000

dm9000收發資料過程

當dm9000c收到外部的資料後,會暫存到內部位址中,然後產生乙個上公升沿中斷,等待2440讀取資料

當dm9000c將2440的資料**出去後,也會產生乙個上公升沿中斷給2440

如下圖所示,dm9000c的中斷引腳位於pin34腳,接在2440的gpf7引腳上,使用的中斷為eint7

二、dm9000網絡卡驅動框架及原始碼分析

參見:

三、修改廠家提供的dm9000c源**

參見:

移植DM9000C驅動

核心自帶的dm9000驅動程式不能用於dm9000c上,把廠家提供的驅動程式移植到開發板上。dm9000 是乙個記憶體介面的晶元,兩個同樣接有 dm9000 的開發板,最小差異 基位址 位寬和中斷引腳。1,基位址 位址線和資料線上掛有網絡卡晶元 記憶體和 norflash。如何訪問乙個網絡卡裝置而不...

網絡卡(dm9000)驅動移植

網絡卡 dm9000 驅動移植 看到網上有很多的部落格分享,比如 在此,描述一下自己的製作過程 1.修改arch arm plat s3c24xx common smdk.c檔案 在包含標頭檔案的區域增加以下 在smdk devs結構體之前新增以下 if defined config dm9000 ...

linux核心移植 DM9000C移植筆記

一 開發環境 1 核心 linux2.6.22.6 2 jz2440 3 ubuntu 9.10 4 dm9dev9000c.c。二 移植過程 1 修改驅動dm9dev9000c.c。1 1610行 ifdef module和最後一行 endif注釋掉。2 最後幾行新增修飾命令,並修改入口和出口函式...