ARM嵌入式系統開發之接收函式的實現

2021-08-22 20:21:20 字數 1976 閱讀 4902

接收函式的實現

接收函式主要完成幾個方面的工作:一是檢查接收到的資料報是否正確;二是根據資料報長度在核心空間為資料報申請乙個sk_buff;三是把資料報複製到sk_buff,填寫相關域段和統計資訊並且把sk_buff插入相應的輸入佇列;四是釋放資料報占用的晶元bufffer。下面就結合**片段講述其功能實現。

static void dm9000_rcv(struct net_device *dev)

變數定義部分:

status = inw( data_reg );

packet_length = inw( data_reg );

設定指標位置,讀取狀態和資料報長度資訊:

packet_length &= 0x07ff;

if ( !(status & rs_errors ) )

skb_reserve( skb, 2 );

skb->dev = dev;

insw( data_reg , data, packet_length >> 1);

skb->protocol = eth_type_trans(skb, dev );

netif_rx(skb);

lp->stats.rx_packets++;

}如果資料報接收正確,申請sk_buff空間,把資料複製到skb。insw為巨集指令,完成資料從晶元buffer到data起頭記憶體的複製。eth_type_trans(skb,dev)是核心函式,用於從乙太網資料報中提取網路協議內容,並把它放到skb結構的相應位置。netif_rx(skb)也是核心函式,作用是根據skb的資訊把它插入相應的輸入佇列。

資料報接收錯誤的處理:

outw( mc_release, mmu_cmd_reg );

傳輸命令給晶元,釋放已處理的接收資料報占用的buffer。

——以上內容選自《arm嵌入式linux系統開發技術詳解》一書

【書名】arm嵌入式linux系統開發技術詳解

【作者】楊水清 張 劍 施云飛 等編著

【isbn】978-7-121-07469-1

【出版社】電子工業出版社

【出版日期】2023年11月

【宣傳語】

繼《windows驅動開發技術詳解》之後又一本心血力作!

原創經典,嵌入式系統一線工程師傾力打造。

深入linux系統底層和核心,透析arm嵌入式linux系統開發的本質。

通過嵌入式系統開發例項,歸納arm嵌入式linux系統開發的整個過程。

【內容簡介】

本書由淺入深、通俗易懂地講解了嵌入式linux的系統設計與 開發。全書共25章,從嵌入式處理器arm開始,講解了arm處理器的資源、arm的指令集、ads開發工具、嵌入式系統硬體環境的構建、boot loader、linux核心移植、嵌入式檔案系統、嵌入式linux多工程式開發、嵌入式linux裝置驅動開發、嵌入式linux網路程式開發、 minigui圖形介面開發、裝置驅動開發案例、綜合案例等內容。書中通過大量的例程來講解知識要點,並提供了大量極有參考價值的開發案例,讀者可以通過 這些例程和開發案例對嵌入式linux開發有乙個系統的學習和提高。

本 書共有四個方面的內容。在嵌入式系統的硬體結構中講述了嵌入式處理器arm的特點、嵌入式系統硬體環境的構建和ads開發工具的使用。在嵌入式linux 系統移植中講述了目標板軟體環境的構建,主要包括boot loader、linux核心、檔案系統以及交叉開發環境的構建。在嵌入式linux軟體開發中講述了嵌入式linux c語言開發工具的使用、標準庫的使用、多工開發基礎和裝置驅動開發基礎。在嵌入式應用系統例項分析中講述了嵌入式linux的網路程式開發、 minigui圖形介面開發、can匯流排裝置驅動設計、dm9000網路驅動設計、sd卡驅動設計和嵌入式b超系統設計。

本書語言通俗易懂,內容豐富,注重理解與例項,知識涵蓋面廣。非常適合從事嵌入式linux系統開發的初級工程師、高校學生、linux程式開發人員閱讀和學習。

ARM嵌入式系統開發 第一章之嵌入式系統的軟硬體

本章的最後,通過描述arm為核心的嵌入式系統,來介紹了嵌入式系統的軟體和硬體構成和結構。這裡根據這部分的介紹以及其他的文章,描述下通用的嵌入式系統的軟體和硬體。首先來說下硬體,書中說,包含有處理器,控制器,外設和匯流排四個部分。這是一種比較籠統的說法,如果要更籠統點來說,應該是包含處理器,匯流排,外...

嵌入式系統開發流程

如果在乙個嵌入式系統中使用 linux技術開發 根據應用需求的不同有不同的配置開發方法,但是,一般情況下都需要經過如下的過程 配置開發主機,配置minicom,一般的引數為波特率115200 baud s,資料位8位,停止位為1,9,無奇偶校驗,軟體硬體流控設為無。在windows下的超級終端的配置...

嵌入式系統開發概要

嵌入式系統 在嵌入式系統中包含乙個能夠實現處理系統輸入並且生成系統輸出功能的微控器,通過寄存在處理器記憶體中的軟體演算法使系統的輸入和輸出得以聯絡起來。嵌入式系統設計必須考慮的因素 輸入 輸出裝置的電子介面 系統資源的限制 使用者介面概念 系統的操作環境 成本分析 相關標準等一系列制約因素。嵌入式系...