欧美日韩亚州综合,国产一区二区三区影视,欧美三级三级三级爽爽爽,久久中文字幕av一区二区不卡

你的位置:首頁 > RF/微波 > 正文

如何使用AT32F407以太網通信接口實現在應用中編程(IAP)

發布時間:2022-10-10 責任編輯:lina

【導讀】在應用中編程(IAP)是一種在現場通過 MCU 通信接口(例如 USART、USB、CAN 和以太網)進行固件升級的方式。無論是IAP代碼還是應用程序代碼都位于微控制器的內置FLASH中,IAP代碼通常存儲在MCU FLASH的第一頁,而用戶應用程序代碼則占據剩余的FLASH區域。


工作原理


在應用中編程(IAP)是一種在現場通過 MCU 通信接口(例如 USART、USB、CAN 和以太網)進行固件升級的方式。


啟動微控制器時,可以選擇讓其在以下任一模式運行:


IAP模式,用于執行IAP代碼


正常模式,用于執行應用程序代碼


無論是IAP代碼還是應用程序代碼都位于微控制器的內置FLASH中,IAP代碼通常存儲在MCU FLASH的第一頁,而用戶應用程序代碼則占據剩余的FLASH區域。


圖1介紹了IAP操作流程


如何使用AT32F407以太網通信接口實現在應用中編程(IAP)

使用MCU以太網接口實現IAP


如果有以太網可用,則它通常是嵌入式系統中實現IAP功能的首選接口,其優勢包含:


高速通信接口(10/100 Mbps)


通過網絡(LAN或WAN)進行遠程編程


可以使用FTP、TFTP、HTTP等基于TCP/IP棧的標準應用協議實現IAP


通過以太網在AT32F407上實現IAP


本應用筆記將介紹兩種使用以太網通信外設在AT32F407上實現IAP的解決方案:


使用TFTP(簡單文件傳輸協議)的IAP


使用HTTP(超文本傳輸協議)的IAP


這兩種解決方案均基于LwIP棧(2.1.2), 它是輕量級的TCP/IP協議棧


使用TFTP實現IAP方法


使用TFTP實現IAP的方法廣泛應用于需要具有固件升級功能的嵌入式系統應用中(例如,嵌入式Linux bootloader中)。


TFTP是一種在UDP傳輸層上執行的簡單文件傳輸協議。此協議非常適合在局域網環境中使用。它基于客戶端/服務器架構,在這種架構中,客戶端會向服務器發出文件傳輸請求(讀取或寫入操作)。為實現IAP,需要在LwIP協議棧上實現一個簡單的TFTP服務器,服務器只須處理來自PC的TFTP客戶端的寫入請求即可。


使用HTTP實現IAP方法


使用HTTP協議進行固件升級沒有使用TFTP常見,但是在需要通過Internet進行遠程編程時,這種解決方案就顯得極為有用。這時,需要使用TCP傳輸協議來實現HTTP服務。


HTTP基于TCP協議運行,它提供了一個一種以HTML表單形式從Web客戶端(Mozilla Firefox或Microsoft Internet Explorer)發送一個二進制文件的方式。這稱為HTTP文件上傳(RFC1867)。


本文檔中的后續章節將詳細介紹這兩種IAP方法的實現,并會對如何使用軟件進行說明。


使用TFTP實現IAP


TFTP概述


TFTP是一種基于UDP的簡單文件傳輸協議。文件傳輸由TFTP客戶端發起,會向TFTP服務器發送讀取或寫入請求。服務器確認請求后,即開始進行文件數據傳輸。數據將以固定大小的塊盡情發送(例如每塊含512個字節)。


必須在每個發出的數據塊都得到接收方確認后,才可以發送下一個數據塊。這種確認機制通過隨各個數據塊一同發送的編塊號來實現。數據塊小于固定塊大小表示文件傳輸的結束。


圖2描述了各種TFTP數據包的格式:


如何使用AT32F407以太網通信接口實現在應用中編程(IAP)

圖2 TFTP數據包


表1列出了TFTP操作碼。


如何使用AT32F407以太網通信接口實現在應用中編程(IAP)

表1 TFTP操作碼


使用TFTP為AT32F407實現IAP


此IAP實現由基于LwIP TCP/IP棧的TFTP服務器組成。


此服務器會對遠程TFTP客戶端(PC)發來的寫請求做出響應。


TFTP讀請求會被忽略。


TFTP通常會將接收到的文件寫入到文件系統,但是該服務器卻并非如此,它會將接受到的數據塊寫入到MCU FLASH(用戶FLASH區域中)。


注:在這個實現過程中,數據塊大小固定為512個字節。


圖3概述了使用TFTP實現IAP操作的過程。


如何使用AT32F407以太網通信接口實現在應用中編程(IAP)

圖3 使用TFTP實現IAP流程圖


使用軟件


要通過TFTP對IAP進行測試,需執行以下步驟:


1. 在iap.h文件中,取消USE_IAP_TFTP選項的注釋。


2. 重新編譯軟件。使用生成的映射文件,確保IAP代碼區域之間沒有重疊(從地址0x0開始),而且用戶FLASH區域從以下地址開始:APP_START_SECTOR_ADDR(在iap.h中定義)。


3. 在AT32 FLASH中編寫并運行軟件程序。


4. 要進入IAP模式,需要在按住開發版上的USER Key。


5. 分配完IP后(可以是靜態或動態地址),用戶即可啟動IAP流程。


6. 在PC側,打開TFTP客戶端(例如Tftpd64),然后配置TFTP服務器地址(Tftpd64中的主機地址)


7. 單擊Tftpd64實用程序中的Put(寫入)按鈕,啟動文件寫請求


8. 在IAP操作結束時,可以復位開發板并在AT32 FLASH中運行剛剛編寫的應用程序


如何使用AT32F407以太網通信接口實現在應用中編程(IAP)

圖4 TFTP64對話框


使用HTTP實現IAP


HTTP文件上傳概述


RFC1867中定義了使用HTTP進行文件上傳。此文件上傳方法是基于HTTP表單。發送原始二進制數據時,要使用HTTP POST方法而不是GET方法。


以下是一個HTML代碼示例,用于實現基于表單的文件上傳:


如何使用AT32F407以太網通信接口實現在應用中編程(IAP)

圖5 文件上傳HTML表單的瀏覽器畫面


注:在發送文件數據前,Web客戶端會首先發送HTTP頭文件數據,其中包含諸如文件名稱和內容長度等信息,Web 服務器必須對其中的一些信息進行解析。


Web客戶端使用的HTTP頭文件格式并不總是相同。圖6顯示的是Internet Explorer在POST請求中的HTTP頭文件格式。圖7顯示的是Mozilla Firefox的HTTP頭文件格式。


HTTP Web服務器必須能夠處理這些不同的格式。


如何使用AT32F407以太網通信接口實現在應用中編程(IAP)

圖6 IE11 HTTP頭文件格式


如何使用AT32F407以太網通信接口實現在應用中編程(IAP)

圖7 Mozilla Firefox HTTP頭文件格式


使用HTTP在AT32F407上實現IAP


此IAP實現由基于LwIP棧的HTTP Web服務器組成。


在瀏覽器中輸入的AT32的IP地址后,將顯示登錄Web頁面(圖8)。此登錄Web頁面只有已獲授權的用戶才能使用IAP文件上傳功能。


如何使用AT32F407以太網通信接口實現在應用中編程(IAP)

圖8 登錄web頁面


注:1. 默認的User ID(用戶ID)為user, Password(密碼)為at32

2. 如果User ID(用戶ID)或Password(密碼)不正確,登錄Web頁面會重新加載。


登錄成功后,瀏覽并選擇要上傳到AT32 FLASH的二進制文件


注:確保二進制文件大小不超過AT32用戶FLASH區域的總容量。

單擊Upload(上傳)按鈕后(參見圖x),將向服務器發出POST請求。這時,服務器開始擦除用戶FLASH區域的全部內容,等待接受二進制文件原始數據。然后將街收到的數據寫入用戶FLASH區域。


注意,要接收的數據總長度信息將從傳輸開始時發出的HTTP頭文件數據中提取。


在IAP操作結束后,Web頁面將只是IAP操作成功,同時顯示一個可用于復位MCU的按鈕。


如何使用AT32F407以太網通信接口實現在應用中編程(IAP)

圖9 文件上傳完成web頁面


圖10對使用HTTP實現IAP方法進行了總結


如何使用AT32F407以太網通信接口實現在應用中編程(IAP)

圖10 使用HTTP實現IAP的流程圖


使用軟體


要使用HTTP對IAP進行測試,需執行以下步驟:


1. 在iap.h文件中,取消選項USE_IAP_HTTP的注釋。


2. 重新編譯軟件,使用生成的映射文件,確保IAP區域代碼之間沒有重疊(從地址0x0開始),而且用戶FLASH區域從以下地址開始:APP_START_SECTOR_ADDR(在iap.h中定義)。


3. 在AT32 FLASH中編寫并運行軟件程序。


4. 要進入IAP模式,需要再按住開發版上的USER Key。


5. 分配完IP地址后(可以是靜態或動態地址),用戶即可啟動IAP流程


6. 打開Web客戶端(Mozilla Firefox或Internet Explorer),輸入AT32 IP地址


7. 會顯示登錄Web頁面。在User ID(用戶ID)字段中輸入”user”,在Password(密碼)字段中輸入”at32”,然后按下Login(登錄)按鈕。


8. IP操作結束后,將加載新的Web頁面,只是文件上傳操作已經成功完成。


9. 可以按下Reset MCU(復位MCU)按鈕復位MCU,然后在AT32 FLASH中運行剛剛編寫的應用程序。


注:使用以下Web客戶端對軟件進行測試:Microsoft Internet Explorer 11和Mozilla Firefox 80.0


已知限制


二進制文件中添加的額外字節


Internet瀏覽器(Microsoft Internet Explorere或Mozilla Firefox)會在上傳的二進制文件的末尾添加一個隨機邊界標記(根據RFC1521規定,此標記不得超過72個字節)。在最新的IAP軟件版本中,并沒有刪除此邊界標記,而是在空間足夠的情況下將其存儲在FLASH中。如果沒有足夠空間,則不會在FLASH中寫入額外字節,也不會返回錯誤。


環境


硬件配置


1. DM9162以太網模塊


2. AT-START-F407開發板


3. 以太網線


軟件源碼


utilities\at32f407_emac_iap_demo\source_code\bootloader, emac iap源程序,運行iap升級程序


MAC地址和IP地址設置


在netconf.h文件中對MAC地址進行了定義。


默認的MAC地址固定為:00:00:44:45:56:01。


在netconf.h文件中對IP地址進行了定義。


IP地址可以設置為靜態地址,也可以設置為由DHCP服務器分配的動態地址。默認的靜態地址為:192.168.81.37。


可以通過在lwipopts.h文件中使能LWIP_DHCP來選擇DHCP模式。


軟件文件組成


如何使用AT32F407以太網通信接口實現在應用中編程(IAP)

表2 介紹了項目源文件


注:表格中沒有列出標準固件庫和LwIP棧中所使用的文件。


構建IAP映像


為了構建IAP映像(將會使用IAP軟件加載),應確保以下幾點:


1. 編譯/鏈接的軟件必須從用戶FLASH區域的起始地址開始運行(此地址應與iap.h的

APP_START_SECTOR_ADDR 中所定義的地址相同)。


2. 將向量表的起始地址配置為用戶FLASH區域的起始地址:

A. 在應用程序代碼中,使用misc.h/.c驅動程序的NVIC_SetVectorTable函數來重新定位應用程序加載地址的向量表。


例如,將向量表基本位置設置為0x08010000:


NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x10000);


B. 通過修改system_at32f4xx.c文件中定義的VECT_TAB_OFFSET常量的值。


例如,將向量表基本位置設置為0x08010000:


#define VECT_TAB_OFFSET 0x10000


3. 編譯后的軟件大小不超過用戶FLASH區域的總容量。


(來源:AT32 MCU 雅特力科技)



免責聲明:本文為轉載文章,轉載此文目的在于傳遞更多信息,版權歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權問題,請聯系小編進行處理。



推薦閱讀:

電源線噪聲:共模干擾、差模干擾

由運放和電壓調節器構成的恒流源電路

運放的信號疊加電路與求差電路

鎖相環環路計算中用到的波特圖

SPARC:用于先進邏輯和 DRAM 的全新沉積技術


特別推薦
技術文章更多>>
技術白皮書下載更多>>
熱門搜索

關閉

?

關閉

欧美日韩亚州综合,国产一区二区三区影视,欧美三级三级三级爽爽爽,久久中文字幕av一区二区不卡
亚洲观看高清完整版在线观看| 欧美va亚洲va在线观看蝴蝶网| 国产麻豆成人精品| 久久er99精品| 国产一二精品视频| 国产美女久久久久| 国产999精品久久久久久绿帽| 国产1区2区3区精品美女| 成人av免费网站| 色一区在线观看| 欧美人妖巨大在线| 56国语精品自产拍在线观看| 日韩视频一区二区在线观看| 精品国产一区二区三区不卡| 国产午夜久久久久| 亚洲精品视频在线| 午夜精品福利在线| 国模冰冰炮一区二区| 成熟亚洲日本毛茸茸凸凹| 91在线国产福利| 欧美欧美午夜aⅴ在线观看| 日韩欧美一区二区在线视频| 久久精品亚洲一区二区三区浴池 | 国产成人av影院| 99精品热视频| 日韩欧美高清dvd碟片| 国产视频在线观看一区二区三区| 国产精品高潮呻吟久久| 天堂午夜影视日韩欧美一区二区| 激情图片小说一区| 欧美亚州韩日在线看免费版国语版| 欧美日韩国产a| 国产午夜久久久久| 天堂av在线一区| 成人免费视频国产在线观看| 欧美日韩精品综合在线| 亚洲欧洲日韩一区二区三区| 玖玖九九国产精品| 欧美自拍偷拍一区| 国产目拍亚洲精品99久久精品| 亚洲狠狠爱一区二区三区| 丁香婷婷深情五月亚洲| 日韩三级高清在线| 伊人色综合久久天天| 国产精品综合一区二区三区| 在线欧美一区二区| 亚洲欧洲精品一区二区精品久久久 | 国内成人精品2018免费看| 91小视频在线| 欧美国产精品一区| 激情综合网av| 91精品在线免费观看| 亚洲精品第1页| 波多野结衣在线一区| 久久伊99综合婷婷久久伊| 丝袜诱惑制服诱惑色一区在线观看 | 精品国产一区二区在线观看| 亚洲成人免费视频| 色哟哟欧美精品| 亚洲欧洲日产国产综合网| 国产麻豆视频精品| 精品动漫一区二区三区在线观看| 日本成人中文字幕| 9191久久久久久久久久久| 亚洲综合999| 在线观看视频一区二区欧美日韩| 亚洲欧美福利一区二区| 99r国产精品| 亚洲黄色尤物视频| 欧美亚洲一区三区| 亚洲成年人网站在线观看| 欧美少妇xxx| 日本欧美一区二区三区乱码| 91精品婷婷国产综合久久竹菊| 亚洲成人av中文| 91麻豆精品91久久久久同性| 麻豆视频观看网址久久| 精品日韩一区二区三区免费视频| 国内精品免费在线观看| 久久精品视频一区二区| 成人sese在线| 亚洲一区二区三区四区五区中文| 欧美日韩免费电影| 久久精品久久久精品美女| 久久综合精品国产一区二区三区| 国产麻豆视频精品| 亚洲伦在线观看| 欧美人妖巨大在线| 国产一区二区三区| 中文字幕一区二区不卡| 欧美日韩精品一区二区| 九九**精品视频免费播放| 国产视频一区二区三区在线观看| 不卡电影免费在线播放一区| 午夜视频在线观看一区| 2014亚洲片线观看视频免费| 91小视频免费看| 蜜芽一区二区三区| 中文字幕免费不卡| 欧美精品99久久久**| 国产精品18久久久久久久久| 亚洲精品高清在线观看| 欧美电视剧免费全集观看| 成人av影视在线观看| 爽好久久久欧美精品| 国产精品久久免费看| 91精品国产一区二区三区蜜臀| 高清国产午夜精品久久久久久| 亚洲自拍欧美精品| 国产欧美综合在线观看第十页| 在线观看一区日韩| 国产精品主播直播| 视频一区二区国产| 亚洲六月丁香色婷婷综合久久| 精品久久99ma| 欧美日韩精品福利| 色偷偷88欧美精品久久久| 国产一区二区三区免费看| 日韩在线一区二区| 精品亚洲免费视频| 一级日本不卡的影视| 国产欧美日韩中文久久| 91麻豆精品国产91久久久更新时间 | 五月天激情综合网| 国产精品久久久久久久久动漫 | 91精品国产手机| 色狠狠一区二区三区香蕉| 国产成人av网站| 加勒比av一区二区| 日韩电影在线一区二区| 亚洲一区二区五区| 一区二区三区四区激情| 亚洲欧洲三级电影| 国产精品久久精品日日| 国产偷国产偷精品高清尤物| 精品国产免费一区二区三区香蕉| 欧美日韩精品欧美日韩精品一综合| 91网上在线视频| 91在线视频18| 一本久久a久久免费精品不卡| av一区二区三区在线| 国产不卡免费视频| 成人avav影音| 99视频一区二区| 99精品国产一区二区三区不卡| 风流少妇一区二区| 成人国产视频在线观看| 99精品欧美一区| 色噜噜狠狠色综合中国| 日本道免费精品一区二区三区| 色欧美乱欧美15图片| 在线亚洲一区观看| 欧美日韩久久久久久| 欧美久久一二三四区| 91精品国产综合久久久久久久久久| 3d成人动漫网站| 久久欧美一区二区| 国产精品美女久久久久久久久| 国产精品久久久久久久久搜平片| 国产精品不卡一区二区三区| 一区二区三区在线视频免费观看| 亚洲一区二区三区美女| 人人超碰91尤物精品国产| 国产毛片精品国产一区二区三区| k8久久久一区二区三区| 欧美亚洲国产一区二区三区| 欧美一区二区在线播放| 久久久国产午夜精品| 自拍偷拍欧美精品| 日本麻豆一区二区三区视频| 精品亚洲aⅴ乱码一区二区三区| 大白屁股一区二区视频| 欧美午夜精品一区二区蜜桃| 欧美大胆人体bbbb| 亚洲人成网站在线| 韩国欧美国产一区| 在线看不卡av| 精品国产一区久久| 亚洲小说春色综合另类电影| 韩国精品在线观看| 欧美色综合久久| 国产精品美女久久久久久2018| 午夜电影网一区| a美女胸又www黄视频久久| 在线不卡欧美精品一区二区三区| 男女男精品视频| 成人av高清在线| 欧美va亚洲va| 一区二区国产视频| 成人性生交大片免费看中文网站| 欧美日产在线观看| 亚洲少妇中出一区| 国产一区二区三区在线观看精品| 91美女在线看| 国产日韩综合av| 久久se精品一区精品二区| 欧美视频日韩视频在线观看| 最新不卡av在线| 成人小视频免费观看| 久久久亚洲欧洲日产国码αv|