<前言>
嵌入式開發是一個交叉開發的模式,需要將宿主機上的文件燒寫到目標機上。
方式:
JTAG
USB
串口
網絡
<tftp下載>
首先需要將宿主機架成一個TFTP的服務器,其次開發板需要具有從tftp服務下載數據的能力。一般可以用串口調試工具進行調試
<tftp交互過程>
(1)客戶機向服務器發送請求包
(2)服務器向客戶機發送數據包(每個數據包字節數不能超過512個字節)
(3)客戶機向服務器發送應打包,表示已經接受到數據(如果不發送應打包,則服務器則不停的發送數據包,直到獲應答包或者超過某個時間)
<tftp數據報文格式>
由上圖分析:
TFTP(Trivial File Transfer Protocol文件傳輸協議)協議屬於UDP(User Datagram Protocol用戶數據協議)協議
而UDP協議又數據IP(Internet Protocol網絡地址協議)協議
操作碼:用於區分報文是請求報文還是數據報文
OP = 1 請求報文
OP = 2 上傳數據
OP = 3 數據報文
OP = 4 相應報文
OP = 5 出錯報文
模式:用於決定下載或上傳模式多少位的形式下載或以ASCII碼的形式下載
<TFTP客戶端的實現>
(1)向目標機(服務器)發送ARP請求包以獲取目標機的(服務器)的mac地址
(2)目標機(服務器)發送應答包,客戶機從中獲取mac地址
(3)由獲取目標機的mac地址發送tftp IP請求包
(4)目標機(服務器)發送數包
(5)客戶機接受數據包后發送應答包
(6)目標機(服務器)接受應答包后繼續發送數據包,如此循環將數據全部發送完成
IP協議格式
UDP 協議格式