「正點原子FPGA連載」第三十五章tftp server實驗

2020-09-10 正點原子

1)摘自【正點原子】領航者 ZYNQ 之嵌入式開發指南

2)實驗平臺:正點原子領航者ZYNQ開發板
3)平臺購買地址:https://item.taobao.com/item.htm?&id=606160108761
4)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html
5)對正點原子FPGA感興趣的同學可以加群討論:876744900
6)關注正點原子公眾號,獲取最新資料

第三十五章基於lwip的tftp server實驗


文件傳輸是網絡環境中的一項基本應用,其作用是將一臺電子設備中的文件傳輸到另一臺可能相距很遠的電子設備中。TFTP作為TCP/IP協議族中的一個用來在客戶機與伺服器之間進行文件傳輸的協議,常用於無盤工作站、路由器以及遠程測控設備從主機上獲取引導配置文件,實現遠程升級。由於TFTP簡單且易實現,本實驗我們使用lwip協議棧實現TFTP Server的功能。本章包括以下幾個部分:
3535.1簡介
35.2實驗任務
35.3硬體設計
35.4軟體設計
35.5下載驗證
35.1簡介
一、TFTP簡介(基於RFC1350版本)
簡單文件傳輸協議TFTP (Trivial File Transfer Protocol) 是TCP/IP協議族中的一個用來在客戶機與伺服器之間進行簡單文件傳輸,基於UDP實現的應用層協議,提供不複雜、開銷不大的文件傳輸服務,埠號為 69。為了保證文件可靠傳輸TFTP有自己的差錯改正措施。TFTP 只支持文件傳輸、不支持交互、沒有龐大的命令集,也沒有目錄列表功能,以及不能對用戶進行身份鑑別。
與常用的文件傳送協議 FTP (File Transfer Protocol) 相比,FTP基於TCP協議,提供交互式的訪問,允許客戶指明文件的類型與格式、允許執行對目錄和文件的訪問,並且可以完成特定類型的目錄操作以及需要進行身份驗證。
可以說FTP是完整的、面向會話、常規用途的文件傳輸協議,而TFTP相當於用作特殊目的簡化版的FTP。
TFTP的主要優點有兩個。
第一,TFTP可用於UDP環境。例如,當需要將程序或文件同時向許多機器下載時就往往需要使用TFTP。
第二,TFTP代碼所佔的內存較小。這對較小的計算機或某些特殊用途的設備(如無盤工作站等)是很重要的。這些設備不需要硬碟,只需要固化了TFTP、UDP和IP的小容量只讀存儲器即可。當接通電源後,設備執行只讀存儲器中的代碼,在網絡上廣播一個TFTP請求。網絡上的TFTP伺服器就發送響應,其中包括可執行二進位程序。設備收到此文件後將其放入內存,然後開始運行程序。這種方式增加了靈活性,也減少了開銷。
TFTP的主要特點如下:
(1)每次傳送的數據報文中有512位元組的數據,但最後一次可不足512位元組。
(2)數據報文按序編號,從1開始。
(3)支持ASCII碼或二進位傳送。
(4)可對文件進行讀或寫。
(5)使用很簡單的首部。
(6)實現簡單而不是高的系統吞吐量
二、TFTP的五種報文
TFTP的報文格式如圖 35.1.1所示,可以看到TFTP有五種報文,每種報文有不同的操作碼,這五種報文分別是:RRQ、WRQ、DATA、ACK和ERROR報文。下面我們簡單的介紹下這五種報文。
RRQ/WRQ報文
模式欄位中,包含兩種字符串中的一種,&34;表示ASCII文件,&34;表示二進位文件。對於RRQ,客戶向TFTP伺服器發送讀請求後,伺服器返回一個塊編號為1的DATA報文。而對於WRQ,客戶向TFTP伺服器發送寫請求後,伺服器返回的是塊編號為1的ACK報文。總之,不管是RRQ還是WRQ,接收DATA數據的一方發送ACK確認,而發送DATA數據的一方只負責發送數據。

圖 35.1.1 TFTP報文格式


a)DATA報文
發送方用於傳送數據塊。所有的塊都用數字順序編碼,從1開始。在所有的DATA報文中,這個塊必須準確地等於512Byte,但最後一個塊可以小於或等於512Byte。當發送的DATA報文中數據部分的長度小於512Byte,表示DATA報文發送完畢,所以小於數據部分512Byte的DATA數據報可以作為文件結束的標誌。特殊的情況是,當文件中的數據正好是512Byte的整數倍時,那麼發送端必須再發送一個具有數據部分為0Byte的額外的DATA數據塊以表示傳輸的結束。數據可以採用ASCII碼或二進位來傳送。
b)ACK報文
塊號表示它所收到的塊號(不是下一個期待的塊號,這與TCP中的ACK序號不同)。特殊情況是,當客戶向伺服器發送一個WRQ請求後,伺服器返回給客戶的是一個塊號為0的ACK報文,表示伺服器已經準備好了接收來自客戶的數據報。
c)EEROR報文(差錯報文)
ERROR報文既可以由客戶發送,也可以由伺服器發送,當一條連接(如讀連接或寫連接)不能建立或在數據傳輸中出現問題時使用。差錯碼定義了差錯的類型,差錯信息是一個可變字節,包含原文中的差錯數據。
從上面的報文格式中可以看出,TFTP報文沒有差錯檢驗和欄位,所以接收端檢驗數據是否出現差錯的唯一方法是通過該TFTP數據報的UDP首部中的檢驗和欄位。
三、TFTP傳輸過程
以TFTP客戶端向 TFTP 伺服器發送寫請求為例,說明整個過程。
1)伺服器使用默認埠號69被動打開連接;
2)客戶主動打開連接,向伺服器進程發送WRQ報文,報文中包含寫入文件的文件名;
3)TFTP伺服器進程選擇一個新的埠和TFTP客戶進程進行通信,並向TFTP客戶進程發送塊編號為0的的ACK報文;
4)客戶端收到伺服器的ACK報文後發送DATA報文,數據段為512Byte,少於512Byte表明是文件的最後的數據,塊編號逐次遞增;
5)TFTP伺服器校驗收到的DATA報文的塊編號,如果校驗正確則將數據寫入文件,並發送ACK報文表明已接收到數據,ACK報文的塊編號為本次接收的DATA報文的塊編號。另外還判斷數據段長度是否小於512 Byte,小於則表明文件傳輸完成,關閉連接,如果等於512Byte,則重複步驟4-5,直到所有請求的數據發送完畢。
從上面的傳輸過程可以看出,TFTP 是一種類似於停止等待協議(不是真正的停止等待協議,在停止等待協議中,接收方發送的 ack 表示期望收到的下一個分組,而在 TFTP 的 ACK 報文中,ACK的塊號表示的是本次成功收到的數據塊,而不是下一個期望的下一個數據塊)。TFTP 客戶端只有收到伺服器的確認報文ACK後才會接著向伺服器發送新的數據。
另外需要注意的是TFTP 協議中,用於讀文件的連接和用於寫文件的連接的建立方式不同:建立讀連接的時候,客戶首先向伺服器發送 RRQ 讀報文,伺服器收到該報文後,直接發回給該客戶 DATA 報文,並且包含第一個數據塊(塊號為 1)。而建立寫連接的時候,客戶首先先伺服器發送 WRQ 寫報文,伺服器收到該報文後,則發回給客戶 ACK 報文,使用的塊號為 0;當然上面兩種情況如果遇到請求報文出錯時,均會發回 ERROR 報文作為響應。
35.2實驗任務
本章的實驗任務是使用LWIP協議棧搭建TFTP伺服器,PC電腦上的客戶端可以從TFTP伺服器讀取文件也可向TFTP伺服器寫入文件,文件存放在SD卡中。
35.3硬體設計
根據實驗任務我們可以畫出本次實驗的系統框圖,如下圖所示:

圖 35.3.1 系統框圖


在圖 5.3.1中,UART用於列印程序相關的信息,LWIP通過乙太網傳輸數據,SD用於存放文件,包括伺服器創建的文件和客戶端寫入的文件。
step1:創建Vivado工程
本次實驗的硬體設計可以在《LWIP echo server》實驗的基礎上添加SD卡。
1-1 我們先打開《LWIP echo server》實驗的Vivado工程,打開後將工程另存為 「lwip_tftp_server」工程,然後點擊「OK」按鈕。
step2:使用IP Integrator創建Processing System
2-1 在Vivado界面左側的Flow Navigator中,點擊IP INTEGRATOR下的Open Block Design以打開Diagram窗口。
2-2 在打開的下圖Diagram窗口,雙擊打開ZYNQ7 Processing System重定義窗口。

圖 35.3.2 重定義ZYNQ7 Processing System


2-3 在下圖所示的重定義窗口,如同《SD卡讀寫TXT文本實驗》那樣配置SD卡。點擊左側的MIO Configuration,在右側的界面中展開「I/O Peripherals」,勾選「SD 0」,在「IO」列選擇SD 0的IO為「MIO40…45」,如下圖所示。

圖 35.3.3 PS乙太網接口配置界面


2-4 由於不需要添加其它IP,按Ctrl+S快捷鍵保存Diagram。此時我們的第二步完成,進入第三步
step3:生成頂層HDL
在sources面板中,右鍵點擊Block Design設計文件「system.bd」,然後依次執行「Generate Output Products」和「Create HDL Wrapper」。
step4:生成Bitstream文件並導出到SDK
由於本實驗未用到PL部分,所以無需生成Bitstream文件,只需導出到SDK即可。如果使用到PL,則需要添加引腳約束以及對該系統進行綜合、實現並生成Bitstream文件。
4-1 導出硬體。
在菜單欄中選擇 File > Export > Export hardware。
並在彈出的對話框中,取消勾選「Include bitstream」,直接點擊「OK」按鈕。
因為是在前一工程的基礎上建立的,還保留著前一工程的結果,所以會彈出「Module Already Exported」對話框,我們點擊「Yes」按鈕。
4-2 硬體導出完成後,選擇菜單File->Launch SDK,啟動SDK開發環境。
35.4軟體設計
下面步驟操作比較麻煩,實際意義也不大,可以直接使用我們提供的例程裡的SDK軟體工程。
此處我們刪除《LWIP echo server》實驗的應用工程,保留bsp工程。下面我們開始第五步——創建應用工程。下面我們開始第五步——創建應用工程
step5:在SDK中創建應用工程
5-1在菜單欄中選擇「File->New->Application Project」,
在彈出的界面中,輸入工程名「lwip_tftp_server」,然後選擇「Next >」,在下一界面選擇「Empty Application」,然後點擊「Finish」按鈕。
5-2 在Project Explorer中,滑鼠右鍵點擊「lwip_tftp_server _bsp」,在彈出的菜單中選擇「Board Support Package Settings」,如下圖所示:
彈出對BSP的設置界面,勾選「lwip202」和「xilffs」以啟用lwip和文件系統,如圖 35.4.1所示。
如果沒有開啟DHCP服務可以開啟DHCP服務,點擊standalone下的lwip202,在右側界面中到「dhcp_options」,將其下的兩個選項的「Value」設置為「true」,如圖 35.4.2所示。

圖 35.4.1 BSP的設置界面


圖 35.4.2 開啟DHCP
5-3 由於Xilinx提供的lwip例程裡有TFTP server的原始碼,所以我們無需自己手動編寫,直接添加即可。
雙擊打開「lwip_tftp_server」目錄下的system.mss文件。在system.mss文件的底部單擊「Import Example」,如下圖所示。

圖 35.4.3 Import lwip Example


5-4 在彈出的下圖所示界面中,點擊下方的「Examples Directory」。

圖 35.4.4 platform_config.h文件內容


5-5 打開例程所在文件的目錄,裡面有Xilinx關於lwip的全部例程源文件。我們選擇本次實驗需要的源文件,如圖 35.4.6所示,並單擊滑鼠右鍵選擇複製。複製完成後,在打開的圖 35.4.5界面中,點擊「Cancel」退出。

圖 35.4.6 例程所在文件的目錄


5-6 單擊SDK軟體的lwip_tftp_server/src目錄,按下粘貼快捷鍵「Ctrl-v」,將複製的文件粘貼到該src目錄下,如下圖所示。

圖 35.4.7 src目錄


5-7 為了方便分析,我們將剛才複製到src目錄的源文件重命名,主要是刪除不需要的前綴,其中「lwip_example_tftpserver_common.h」改為「lwip_tftp_server.h」,如下圖所示:

圖 35.4.8 刪除不相關文件後的src文件夾內容


5-8 修復錯誤。
由於重命名了「lwip_example_tftpserver_common.h」,所以需要將lwip_tftp_server.c源文件的 34;lwip_tftpserver_common.h&include &34;,如下圖所示:

圖 35.4.9 修改為34;lwip_tftp_server.h&include &34;

  • 2 34;xil_printf.h&34;0:/&34;Volume is not FAT formated; formating FAT\r\n&34;Unable to format FATfs\r\n&34;Unable to mount FATfs\r\n&34;File system initialization successful\r\n&34;Unable to create test file\r\n&34;Error creating PCB. Out of Memory\r\n&34;Unable to bind to port %d; err %d\r\n&.txt,其中「34;Error creating PCB. Out of Memory\r\n&34;Unable to bind to port %d; err %d\r\n&34;TFTP RRQ (read request): %s\r\n&34;TFTP WRQ (write request): %s\r\n&34;TFTP unknown request op: %d\r\n\r\n&34;Unable to open file %s for writing %d\r\n&34;Unable to allocate memory for tftp conn\r\n&34;TFTP_WRQ: Tftp server does not support &34;chained pbufs\r\n&34;TFTP_WRQ: Write to file error\r\n&34;TFTP_WRQ: Transfer completed\r\n\r\n");
  • 217 return tftp_cleanup(upcb, args);
  • 218 }
  • 219
  • 220 pbuf_free(p);
  • 221 }


  • 從該回調函數可以看到,TFTP服務端對客戶端發送的數據報文的塊編號進行校驗,如果不是我們期望的塊編號就重發上一次發送的ACK報文,如果是期望的塊編號,就將數據寫入文件中,然後遞增塊編號,並發送ACK報文給客戶端以確認收到數據。
    在該函數的最後判斷接收到的數據段長度是否小於指定的字節數TFTP_DATA_PACKET_MSG_LEN,如果是,則表明已經接收了整個文件,因此可以結束連接。TFTP_DATA_PACKET_MSG_LEN在lwip_tftp_server.h宏定義為512。
    以上大概的講解了TFTP Server接收客戶端寫入文件的實現。下面我們進行實際操作,看看TFTP客戶端是否能向伺服器寫入文件。
    35.5下載驗證
    首先我們將下載器與領航者底板上的JTAG接口連接,下載器另外一端與電腦連接。然後使用Mini USB連接線將USB UART接口與電腦連接,用於串口通信。使用網線一端連接領航者開發板的乙太網接口,另一端與電腦或路由器連接。連接完成後,在開發板上插入SD 卡或者插入帶卡套(適配器)的 TF 卡(SD 卡插槽位於開發板背面)。最後連接開發板的電源,並打開電源開關。如下圖所示:

    圖 35.5.1領航者ZYNQ開發板實物圖


    現在進入最後一步。
    step6:板級驗證
    6-1 在SDK軟體的下方的SDK Terminal窗口中點擊右上角的加號連接串口。
    6-2 下載程序。下載完成後,可以看到串口列印的結果如下:

    圖 35.5.2 顯示列印結果


    其中「File system initialization successful」表明SD卡可以正常工作。列印的最後一句表明了該實驗如何使用。由於是TFTP伺服器實驗,所以我們需要TFTP客戶端,可以從網上下載,也可以使用Windows系統的CMD命令行界面,如果開啟了TFTP客戶端,開啟方法見步驟6-6。
    6-3 下面我們先創建一個文件用來傳輸到TFTP伺服器。文件存放位置任意,文件內容任意。
    我們在Vivado工程目錄新建一個名為「test」的文件夾,裡面新建一個名為testfile.txt的文件,文件內容為「這只是一個測試文件。」,如下圖所示:

    圖 35.5.3 新建一個名為test_file.txt的文件


    6-4 我們打開電腦的CMD(按win+r鍵後輸入cmd),然後輸入命令「cd /D F:\ZYNQ\Embedded_System\lwip_tftp_server\test」切換到 「F:\ZYNQ\Embedded_System\lwip_tftp_server\test」目錄下,如下圖所示:

    圖35.5.4 切換到上傳文件所在的目錄


    然後輸入「tftp -i 192.168.1.10 PUT testfile.txt」命令,回車,會顯示傳輸成功字樣,如下圖所示:

    圖 35.5.5 進行tftp連接


    此時SDK串口終端也會列印如下信息:

    圖 35.5.6 串口終端列印寫入完成信息


    如果回車後出現像下圖所示界面所示「tftp不是內部或外部命令,也不是可運行的程序或批處理文件」,則表明未開啟Windows的tftp客戶端功能,開啟方式見6-5。

    圖 35.5.7 未啟用tftp客戶端時的界面


    向伺服器寫入文件剛才測試完成了,現在測試從伺服器端讀取文件,可以讀取剛才寫入的文件,也可以讀取伺服器程序創建的測試文件。下面我們以讀取伺服器程序創建的測試文件為例,進行讀取文件測試。
    在CMD中輸入「tftp -i 192.168.1.10 GET sample1.txt」命令,然後回車,會顯示傳輸成功字樣,如下圖所示:

    圖 35.5.8 輸入讀取文件命令


    此時SDK串口終端也會列印如下信息:

    圖 35.5.9 讀取成功


    此時我們打開test文件夾,會看到其中新增了sample1.txt,雙擊打開,其內容如下:

    圖 35.5.10 讀取的sample1.txt文件


    可以看到讀取文件測試成功。現在我們把SD卡插到電腦上,查看其內容如下:

    圖 35.5.11 SD卡上的文件


    可以看到客戶端上傳給TFTP伺服器的文件確實寫到SD卡中。
    6-5 下面我們介紹一下如何開啟Windows的tftp客戶端功能。在Win10或Win7系統中,按「Win+r」快捷鍵後,在下圖所示界面中輸入「control」。

    圖 35.5.12 打開控制面板界面


    進入下圖所示控制面板界面,將查看方式設置為「類別」,單擊「程序」下的「卸載程序」,如下圖所示:

    圖 35.5.13 點擊進入「程序和功能」界面


    在彈出的界面中,單擊「啟用或關閉Windows功能」,如下圖所示:

    圖 35.5.14 點擊「啟用或關閉Windows功能」


    在彈出的「Windows功能」界面中,找到「Tftp Client」,並勾選,如下圖所示:


    圖 35.5.15 勾選tftp client


    單擊確定後,如果出現「Windows需要重啟電腦才能完成安裝所請求的更改」字樣,重新啟動電腦即可。現在 Windows的tftp客戶端服務已啟用。
    至此,本實驗完成。

    相關焦點

    • 「正點原子FPGA連載」第十八章Linux內核移植
      1)摘自【正點原子】領航者 ZYNQ 之linux驅動開發指南2)實驗平臺:正點原子領航者ZYNQ開發板3)平臺購買地址:https://item.taobao.com/item.htm?&id=6061601087614)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html5)對正點原子FPGA感興趣的同學可以加群討論:8767449006)關注正點原子公眾號,獲取最新資料
    • 「正點原子FPGA連載」第二十九章OV7725照相機實驗
      1)摘自【正點原子】領航者 ZYNQ 之嵌入式開發指南2)實驗平臺:正點原子領航者ZYNQ開發板3)平臺購買地址:https://item.taobao.com/item.htm?&id=6061601087614)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html5)對正點原子FPGA感興趣的同學可以加群討論:8767449006)關注正點原子公眾號,獲取最新資料
    • 「正點原子FPGA連載第三十六章遠程QSPI Flash實驗
      1)摘自【正點原子】領航者 ZYNQ 之嵌入式開發指南2)實驗平臺:正點原子領航者ZYNQ開發板3)平臺購買地址:https://item.taobao.com/item.htm?&id=6061601087614)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html5)對正點原子FPGA感興趣的同學可以加群討論:8767449006)關注正點原子公眾號,獲取最新資料
    • 「正點原子FPGA連載」第二十八章Linux蜂鳴器驅動實驗
      1)摘自【正點原子】領航者 ZYNQ 之linux驅動開發指南2)實驗平臺:正點原子領航者ZYNQ開發板3)平臺購買地址:https://item.taobao.com/item.htm?&id=6061601087614)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html5)對正點原子FPGA感興趣的同學可以加群討論:8767449006)關注正點原子公眾號,獲取最新資料
    • 「正點原子FPGA連載」第四章呼吸燈實驗
      1)摘自【正點原子】領航者ZYNQ之HLS 開發指南2)實驗平臺:正點原子領航者ZYNQ開發板3)平臺購買地址:https://item.taobao.com/item.htm?&id=6061601087614)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html5)對正點原子FPGA感興趣的同學可以加群討論:8767449006)正點原子資料更新和新品發布,請加正點原子公眾號:正點原子關注方法:微信→添加好友→公眾號→輸入:正點原子
    • 「正點原子FPGA連載」第三十一章Linux按鍵輸入實驗
      1)摘自【正點原子】領航者 ZYNQ 之Linux驅動開發指南2)實驗平臺:正點原子領航者ZYNQ開發板3)平臺購買地址:https://item.taobao.com/item.htm?&id=6061601087614)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html5)對正點原子FPGA感興趣的同學可以加群討論:8767449006)關注正點原子公眾號,獲取最新資料
    • 「正點原子FPGA連載」第二十五章設備樹下的LED驅動實驗
      1)摘自【正點原子】領航者 ZYNQ 之linux驅動開發指南2)實驗平臺:正點原子領航者ZYNQ開發板3)平臺購買地址:https://item.taobao.com/item.htm?&id=6061601087614)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html5)對正點原子FPGA感興趣的同學可以加群討論:8767449006)關注正點原子公眾號,獲取最新資料
    • 「正點原子FPGA連載」第三章按鍵控制LED實驗
      1)摘自【正點原子】領航者ZYNQ之HLS 開發指南2)實驗平臺:正點原子領航者ZYNQ開發板3)平臺購買地址:https://item.taobao.com/item.htm?&id=6061601087614)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html5)對正點原子FPGA感興趣的同學可以加群討論:8767449006)正點原子資料更新和新品發布,請加正點原子公眾號:正點原子關注方法:微信→添加好友→公眾號→輸入:正點原子
    • 「正點原子FPGA連載」第二十七章gpio子系統下的驅動實驗
      1)摘自【正點原子】領航者 ZYNQ 之linux驅動開發指南2)實驗平臺:正點原子領航者ZYNQ開發板3)平臺購買地址:https://item.taobao.com/item.htm?&id=6061601087614)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html5)對正點原子FPGA感興趣的同學可以加群討論:8767449006)關注正點原子公眾號,獲取最新資料
    • 「正點原子FPGA連載」第三十四章TCP伺服器性能測試
      1)摘自【正點原子】領航者 ZYNQ 之嵌入式開發指南2)實驗平臺:正點原子領航者ZYNQ開發板3)平臺購買地址:https://item.taobao.com/item.htm?&id=6061601087614)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html5)對正點原子FPGA感興趣的同學可以加群討論:8767449006)關注正點原子公眾號,獲取最新資料
    • 「正點原子FPGA連載」第二章LED閃爍實驗
      1)摘自【正點原子】領航者ZYNQ之HLS 開發指南2)實驗平臺:正點原子領航者ZYNQ開發板3)平臺購買地址:https://item.taobao.com/item.htm?&id=6061601087614)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html5)對正點原子FPGA感興趣的同學可以加群討論:8767449006)正點原子資料更新和新品發布,請加正點原子公眾號:正點原子關注方法:微信→添加好友→公眾號→輸入:正點原子
    • 「正點原子FPGA連載」第五章彩條顯示實驗
      1)摘自【正點原子】領航者ZYNQ之HLS 開發指南2)實驗平臺:正點原子領航者ZYNQ開發板3)平臺購買地址:https://item.taobao.com/item.htm?&id=6061601087614)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html5)對正點原子FPGA感興趣的同學可以加群討論:8767449006)正點原子資料更新和新品發布,請加正點原子公眾號:正點原子關注方法:微信→添加好友→公眾號→輸入:正點原子
    • 「正點原子FPGA連載」第二十三章新字符設備驅動實驗
      1)摘自【正點原子】領航者 ZYNQ 之linux驅動開發指南2)實驗平臺:正點原子領航者ZYNQ開發板3)平臺購買地址:https://item.taobao.com/item.htm?&id=6061601087614)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html5)對正點原子FPGA感興趣的同學可以加群討論:8767449006)關注正點原子公眾號,獲取最新資料
    • 「正點原子FPGA連載」第七章使用XSDK開發Linux應用
      1)摘自【正點原子】領航者 ZYNQ 之Linux驅動開發指南2)實驗平臺:正點原子領航者ZYNQ開發板3)平臺購買地址:https://item.taobao.com/item.htm?&id=6061601087614)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html5)對正點原子FPGA感興趣的同學可以加群討論:8767449006)關注正點原子公眾號,獲取最新資料
    • 「正點原子FPGA連載」第九章Linux顯示設備的使用
      1)摘自【正點原子】領航者 ZYNQ 之Linux驅動開發指南2)實驗平臺:正點原子領航者ZYNQ開發板3)平臺購買地址:https://item.taobao.com/item.htm?&id=6061601087614)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html5)對正點原子FPGA感興趣的同學可以加群討論:8767449006)關注正點原子公眾號,獲取最新資料
    • 「正點原子FPGA連載」第三十章Linux並發與競爭實驗
      1)摘自【正點原子】領航者 ZYNQ 之linux驅動開發指南2)實驗平臺:正點原子領航者ZYNQ開發板3)平臺購買地址:https://item.taobao.com/item.htm?&id=6061601087614)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html5)對正點原子FPGA感興趣的同學可以加群討論:8767449006)關注正點原子公眾號,獲取最新資料
    • 「正點原子FPGA連載」第十四章U-Boot移植
      1)摘自【正點原子】領航者 ZYNQ 之linux驅動開發指南2)實驗平臺:正點原子領航者ZYNQ開發板3)平臺購買地址:https://item.taobao.com/item.htm?&id=6061601087614)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html5)對正點原子FPGA感興趣的同學可以加群討論:8767449006)關注正點原子公眾號,獲取最新資料
    • 「正點原子FPGA連載第二十六章基於OV5640的二值化實驗
      1)摘自【正點原子】領航者 ZYNQ 之嵌入式開發指南2)實驗平臺:正點原子領航者ZYNQ開發板3)平臺購買地址:https://item.taobao.com/item.htm?&id=6061601087614)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html5)對正點原子FPGA感興趣的同學可以加群討論:8767449006)關注正點原子公眾號,獲取最新資料
    • 「正點原子FPGA連載」第三十三章基於lwip的echo實驗
      1)摘自【正點原子】領航者 ZYNQ 之嵌入式開發指南2)實驗平臺:正點原子領航者ZYNQ開發板3)平臺購買地址:https://item.taobao.com/item.htm?&id=6061601087614)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html5)對正點原子FPGA感興趣的同學可以加群討論:8767449006)關注正點原子公眾號,獲取最新資料
    • 「正點原子FPGA連載」第八章Linux基礎外設的使用
      1)摘自【正點原子】領航者 ZYNQ 之linux驅動開發指南2)實驗平臺:正點原子領航者ZYNQ開發板3)平臺購買地址:https://item.taobao.com/item.htm?&id=6061601087614)全套實驗源碼+手冊+視頻下載:http://www.openedv.com/docs/boards/fpga/zdyz_linhanz.html5)對正點原子FPGA感興趣的同學可以加群討論:8767449006)關注正點原子公眾號,獲取最新資料