uIP其主要是為8位和16位系統(tǒng)設(shè)計的,程序在編寫時就考慮到了移植問題。uIP的主要文件包括uip.c和uip_arp.c。
(1)移植的基本過程。
針對所用編譯器的類型更改定義數(shù)據(jù)類型,底層RTL8019AS芯片的驅(qū)動和實現(xiàn)應(yīng)用層代碼,系統(tǒng)定時器接口等。下面分別予以說明。
數(shù)據(jù)類型的定義:
typedefunsignedcharu8_t;typedefunsignedshortu16_t;typedefunsignedshortuip_stats_t;由于KeilC編譯器默認情況下的編譯模式為small,變量的定義在內(nèi)部RAM中,編譯時編譯模式應(yīng)改為Large,即變量的定義在XDATA中。
(2)RTL8019AS的驅(qū)動。
主要包括以下內(nèi)容。
①etherdev_init()完成系統(tǒng)上電初始化,包括設(shè)定RTL8019的物理地址和IP地址等,設(shè)定收發(fā)緩沖區(qū)的位置和大小等。
②etherdev_send()完成數(shù)據(jù)的發(fā)送。
⑨etherdev_read()完成以太網(wǎng)數(shù)據(jù)的接收。底層網(wǎng)絡(luò)設(shè)備驅(qū)動程序與uIP協(xié)議棧通過兩個全局變量實現(xiàn)接口:變量uip_buf為收發(fā)緩沖區(qū)的首地址;uip_len為收發(fā)的數(shù)據(jù)長度。
etherdev_send函數(shù)將uip_buf里的uip_len長度的數(shù)據(jù)發(fā)送到以太網(wǎng)上。recv函數(shù)將接收到數(shù)據(jù)存儲到uip_buf中,同時返回uip—len的值。
④etherdev_timerO_isr()定時器1中斷函數(shù)為系統(tǒng)提供時鐘定時。
51系列單片機一般有2或3個定時器,本移植中選用定時器1產(chǎn)生定時時間,為ip_perioDIC()函數(shù)的執(zhí)行提供基準,另外還對ARP表項,TCP連接超時等提供時間基準。
RTL8019AS初始化、收發(fā)包的詳細過程在12.6節(jié)中已經(jīng)詳細介紹過,在此不再贅述。移植后的文件如下:
uIP的設(shè)置在uipopt.h頭文件中。在該文件中用戶根據(jù)具體的實際條件設(shè)置uIP的IP地址,MAC地址,網(wǎng)絡(luò)掩碼,網(wǎng)關(guān)地址。另外還包括可建立的最大連接數(shù),端口是否啟動UDP協(xié)議功能等,在具體的應(yīng)用中可以參考uIP的說明文檔,其中都有詳細的說明。
上一篇:用CH372實現(xiàn)U盤與單片機通信功能
下一篇:C語言中volatile關(guān)鍵字的使用
推薦閱讀
史海拾趣
Deutron Electronics Corp的創(chuàng)立之初,就致力于通過技術(shù)創(chuàng)新在電子行業(yè)中立足。公司創(chuàng)始人是一位資深的電子工程師,他帶領(lǐng)研發(fā)團隊開發(fā)出了當時市場上領(lǐng)先的半導(dǎo)體芯片。這一技術(shù)突破不僅為公司贏得了第一筆大額訂單,也為后續(xù)的產(chǎn)品線擴展奠定了堅實的基礎(chǔ)。隨著技術(shù)的不斷進步,Deutron Electronics Corp逐漸在半導(dǎo)體領(lǐng)域樹立了技術(shù)領(lǐng)先的形象。
隨著市場競爭的加劇和資金問題的持續(xù)困擾,菲斯克在某一時期不得不宣布停產(chǎn)六周。這一決定引發(fā)了外界的廣泛關(guān)注和質(zhì)疑。然而,菲斯克并沒有因此放棄,而是利用這段時間進行了深入的內(nèi)部反思和策略調(diào)整。通過優(yōu)化生產(chǎn)流程、降低成本以及加強與其他汽車制造商的合作,公司逐漸走出了困境,重新煥發(fā)出新的生機。
為了提高產(chǎn)品質(zhì)量,意華先后通過了ISO9001、ISO14001、IECQC080000等多項國際質(zhì)量管理體系認證。這些認證不僅證明了公司的質(zhì)量管理水平,也為客戶提供了更可靠的產(chǎn)品保障。通過持續(xù)的質(zhì)量改進和過程控制,意華的產(chǎn)品質(zhì)量得到了顯著提升,贏得了更多客戶的認可。
背景:20世紀末,隨著電子技術(shù)的飛速發(fā)展,Handok敏銳地捕捉到了半導(dǎo)體行業(yè)的崛起機遇。公司決定投入大量研發(fā)資源,專注于開發(fā)新型半導(dǎo)體材料和技術(shù)。
發(fā)展:經(jīng)過數(shù)年的潛心研究,Handok成功研發(fā)出一種具有更高導(dǎo)電性和穩(wěn)定性的新型半導(dǎo)體材料,這一創(chuàng)新成果迅速獲得了業(yè)界的廣泛關(guān)注。公司迅速將這項技術(shù)應(yīng)用于生產(chǎn),推出了一系列高性能的半導(dǎo)體產(chǎn)品,迅速占領(lǐng)了市場的一席之地。
影響:Handok的技術(shù)革新不僅推動了公司自身的快速發(fā)展,還對整個半導(dǎo)體行業(yè)產(chǎn)生了深遠的影響,促進了整個產(chǎn)業(yè)鏈的升級和轉(zhuǎn)型。
背景:近年來,隨著環(huán)保意識的提高和可持續(xù)發(fā)展理念的普及,電子行業(yè)也開始向綠色化、低碳化方向發(fā)展。Handok積極響應(yīng)這一趨勢,將綠色可持續(xù)發(fā)展作為公司的重要戰(zhàn)略之一。
發(fā)展:Handok加大了對環(huán)保技術(shù)的研發(fā)投入,推出了一系列綠色電子產(chǎn)品和解決方案。同時,公司還優(yōu)化了生產(chǎn)流程和管理體系,實現(xiàn)了資源的高效利用和廢棄物的減量化處理。
影響:Handok的綠色可持續(xù)發(fā)展戰(zhàn)略不僅贏得了市場的廣泛認可,還為公司樹立了良好的社會形象。此外,這一戰(zhàn)略還有助于公司在未來更加激烈的市場競爭中保持領(lǐng)先地位。
本帖最后由 paulhyde 于 2014-9-15 09:29 編輯 rt,老師布置的任務(wù),高手麻煩給講下思路,有分析報告或作品的更好。謝謝大家。 … 查看全部問答∨ |
在VS2005里,怎么用C#調(diào)用WinCE生成的dll? 在VS2005里,用C#怎么調(diào)用WinCE生成的dll? 用VS2005直接添加引用不行,總是提示“未能添加對‘sapi.dll’的引用”。 請教各位?… 查看全部問答∨ |
pocket pc 2003總是識別windows mobile5.0的CAB包??? 我制作了兩個CAB包,分別是*.armv4i.CAB和*.armv4.CAB,并制作了一個EXE包。在windows mobile5.0上安裝時,重啟后可以正常使用。但在Pocket pc 2003上安裝時,卻總是使用*.armv4i.CAB在安裝。請教高手,這是什么原因?是不是因為Pocket pc2003無法 ...… 查看全部問答∨ |
為什么我下載定制的內(nèi)核,在板子上沒有NANDFLASH設(shè)備啊 我把定制的內(nèi)核下載到開發(fā)板上,已經(jīng)下載到FLASH里了,但是在開發(fā)板上我的設(shè)備里面沒有NANDFLASH設(shè)備,這是怎么回事???哪位高手幫幫忙解決下啊。。。以前板子自帶的系統(tǒng)里都有的,是不是要配置什么啊… 查看全部問答∨ |
USB總線下層過濾驅(qū)動,如何去讀U盤物理扇區(qū)? 做一個USB總線的下層過濾驅(qū)動,我用構(gòu)造srb的方式去去讀U盤物理扇區(qū),在SCSI的派遣函數(shù)和IRP_MN_START_DEVICE里都沒有讀取到U盤物理扇區(qū), 但是相同的代碼在disk的下層過濾驅(qū)動里可以讀取到U盤的物理扇區(qū), 所以我想知道USB總線的下層過濾驅(qū)動如 ...… 查看全部問答∨ |
|
用430I/O口模擬IIC通訊,BQ20Z75作從設(shè)備,模擬總線的程序之前實踐過已確保正確,現(xiàn)在只是簡單地調(diào)用總線驅(qū)動從BQ20Z75的電壓寄存器中讀出數(shù)據(jù),可是總是失敗。在示波器觀察到,430發(fā)送從設(shè)備地址后,得不到應(yīng)答信號。再仔細看,每次發(fā)送完從設(shè)備地 ...… 查看全部問答∨ |
|
本人將MSP430F1611內(nèi)部機器碼程序讀出后,通過反編譯轉(zhuǎn)換為匯編代碼,發(fā)現(xiàn)其中有若干行跳轉(zhuǎn)指令跳轉(zhuǎn)到了0x3d4c等0x3xxx的地址,根據(jù)430f1611的地址空間分布,0X3XXX不是程序代碼空間,也就是說不是該地址不是指令,因為代碼空間是從0x4000開始的, ...… 查看全部問答∨ |
有這樣一個想法,建立一個開放的datasheet資源庫,這個庫整合所有電子元器件,依靠大家的力量上傳你常用的datasheet資源,方便大家檢索和查找,有木有人支持啊! 這個庫的最大特點是 1:按照元器件類型分類,這樣當你需要找一種元件時就不用跑好幾個官 ...… 查看全部問答∨ |
設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- 人形機器人馬拉松背后的思考,兆易創(chuàng)新如何賦能機器人產(chǎn)業(yè)
- 一種基于STM32的智能柜控制器設(shè)計
- 小型傾轉(zhuǎn)旋翼機的無刷直流電機驅(qū)動器設(shè)計
- 超高速攝影機電控系統(tǒng)設(shè)計
- 基于GPS自動授時的無線智能控制器的設(shè)計
- 基于PTR2000的無線氣象信息采集系統(tǒng)設(shè)計
- Microchip推出MEC175xB系列器件,為嵌入式控制器引入硬件 抗量子攻擊能力
- 無人飛行器機載穩(wěn)定云臺控制系統(tǒng)的設(shè)計
- 匠芯創(chuàng)推出面向具身智能高性能實時處理器M7000
- AI PC時代,英特爾和微軟引領(lǐng)PC產(chǎn)業(yè)翻開Windows 11 AI+ PC新篇章!
- 意法半導(dǎo)體推出針對消費類和工業(yè)電源轉(zhuǎn)換器和電機控制器 優(yōu)化設(shè)計的GaN半橋驅(qū)動器
- 德州儀器TI發(fā)布全球最小MCU,微型空間內(nèi)實現(xiàn)智能化
- 瑞聲科技+創(chuàng)昇半導(dǎo)體,能否撬動智能座艙格局?
- 又一全固態(tài)電池產(chǎn)業(yè)項目簽約!
- 重大突破!兩大車企啟動全固態(tài)電池路測
- 全球固態(tài)電池現(xiàn)重大進展!
- 比亞迪刀片電池領(lǐng)先通過新國標檢測,安全性能獲權(quán)威認證
- 一款國產(chǎn)車規(guī)智能隔離柵極驅(qū)動器得推薦
- 一文聊聊禾賽科技激光雷達技術(shù)
- 【GD32L233C-START評測】測評之三:使用定時器time5精確延時測量
- C#做單片機開發(fā)
- 有關(guān)嵌入式的pptp協(xié)議
- 【連載】【ALIENTEK 戰(zhàn)艦STM32開發(fā)板】STM32開發(fā)指南--第二十一章 待機喚醒實驗
- 【設(shè)計工具】最新版本FPGA輔助設(shè)計工具robei3.0(界面美觀,便攜,易學易懂。。。)
- C51智能反編譯器
- 初級問題請教? 8155芯片的PA口地址是怎么確定的呀?
- 【創(chuàng)龍TL570x-EVM】測評03 - 評估板測試手冊
- DLPNIRscan Nano評估模塊揭秘
- 了解一些放大器電路設(shè)計中問題(轉(zhuǎn))