自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

聊聊STM32網(wǎng)絡(luò)之中斷

網(wǎng)絡(luò) 通信技術(shù)
網(wǎng)絡(luò)中斷向量:一個用于正常的網(wǎng)絡(luò)操作,另一個當(dāng)它映射到EXIT線路19的時候,用于以太網(wǎng)喚醒事件(帶有喚醒幀或魔術(shù)數(shù)據(jù)包檢測)

[[380734]]

01簡介

網(wǎng)絡(luò)中斷向量:一個用于正常的網(wǎng)絡(luò)操作,另一個當(dāng)它映射到EXIT線路19的時候,用于以太網(wǎng)喚醒事件(帶有喚醒幀或魔術(shù)數(shù)據(jù)包檢測)

第一個網(wǎng)絡(luò)中斷保留為MAC和DMA產(chǎn)生的中斷,正如在MAC中斷和DMA中斷部分。

第二個中斷保留為喚醒事件時PMT產(chǎn)生的中斷。喚醒事件對EXIT線路19的映射是造成STM32F20X和STM32F21X退出低功耗模式,并且產(chǎn)生中斷。

當(dāng)映射到EXIT線路19的以太網(wǎng)喚醒事件發(fā)生和,MACPMT中斷使能并且有一個上升沿的EXIT線路19中斷也被使能,他們都能喚醒中斷。

可使用看門狗定時器(請參見ETH_DMARSWTR 寄存器)靈活控制RS 位(ETH_DMASR寄存器)。當(dāng)此看門狗定時器使用非零值編程時,看門狗定時器激活,只要RXDMA完成發(fā)送一個接收的數(shù)據(jù)幀到系統(tǒng)存儲,在沒有觸發(fā)接收狀態(tài),因為它不是使能的在相應(yīng)的接收描述符(RDES1[31])(也就是:未在相應(yīng)接收描述符(RDES1[31])使能接收狀態(tài))。當(dāng)定時器按照編程值運行時,RS位被置1并且中斷發(fā)生,如果ETH_DMAIER寄存器中相應(yīng)位使能??撮T狗定時失效在運行前,當(dāng)數(shù)據(jù)幀被發(fā)送到內(nèi)存,并且RS置1,因為定時器被使能為描述符。

注意:

讀取PMT 控制和狀態(tài)寄存器會自動將接收的喚醒幀和接收的魔術(shù)數(shù)據(jù)包PMT 中斷標(biāo)志清零。但是,由于用于這些標(biāo)志的寄存器位于 CLK_RX域,因此在固件能發(fā)現(xiàn)此更新前可能有顯著的延遲。當(dāng) RX 時鐘很慢(在10 Mbit 模式)和當(dāng)AHB 總線為高頻時,該延遲會特別長。

由于從PMT 到CPU 的中斷請求基于CLK_RX 域中的相同寄存器,所以即使在讀取PMT_CSR 之后,CPU也可能錯誤地第二次調(diào)用中斷例程。因此,可能需要固件輪詢接收的喚醒幀和接收的魔術(shù)數(shù)據(jù)包位,并僅在發(fā)現(xiàn)它們都為‘0’時退出中斷服務(wù)程序。

02代碼

STM32的網(wǎng)絡(luò)中斷,其實準(zhǔn)確來說應(yīng)該是網(wǎng)絡(luò)專用的DMA的中斷,網(wǎng)絡(luò)中的數(shù)據(jù)包符合1518規(guī)則,也就是說是1460字節(jié),MAC接收的數(shù)據(jù)包是2K字節(jié),網(wǎng)絡(luò)上每一個數(shù)據(jù)包MAC接收完都會產(chǎn)生中斷。

官方代碼是這樣的

 

明顯是使用查詢的方式,沒有使用到中斷。

中斷的使用方式如下:

配置網(wǎng)絡(luò)中斷

 

注釋掉官方提供的查詢部分的代碼。

 

我們使用中斷形式之后,代碼是

 

這樣的代碼,我們在接收小于一個DMA描述符數(shù)據(jù)大小的數(shù)據(jù)沒有問題,很流暢。

DMA描述符部分內(nèi)容請看《STM32網(wǎng)絡(luò)之DMA控制器》。

在接收大量數(shù)據(jù)的時候就會出現(xiàn)錯誤,接收的會緩慢,接收的過多會死機(jī)

解決辦法是:

把if修改成while

 

 

這樣就把整個數(shù)據(jù)包接收完之后再跳出中斷,這樣就解決了這個問題。

本文轉(zhuǎn)載自微信公眾號「知曉編程」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系知曉編程公眾號。

 

責(zé)任編輯:武曉燕 來源: 知曉編程
相關(guān)推薦

2021-01-20 09:51:25

STM32網(wǎng)絡(luò)接口

2021-02-03 13:04:24

STM32網(wǎng)絡(luò)控制器

2021-05-20 07:26:22

DMASTM32數(shù)據(jù)

2021-05-06 08:54:39

串口DMASTM32

2021-08-26 06:29:47

STM32DWT數(shù)據(jù)觀察點觸發(fā)

2022-10-10 08:24:15

編程數(shù)據(jù)邏輯語句

2021-12-22 06:56:07

STM32C語言內(nèi)存

2021-08-31 08:01:40

STM32DSP指令

2022-01-07 08:24:13

STM32枚舉結(jié)構(gòu)體

2021-04-22 08:39:23

哈佛結(jié)構(gòu)馮洛伊曼結(jié)構(gòu)ARM架構(gòu)

2022-07-25 14:31:55

LiteOS開發(fā)工具

2021-06-26 07:50:20

STM32串口開發(fā)環(huán)形緩沖區(qū)

2021-02-26 08:46:46

PHY寄存器網(wǎng)絡(luò)

2020-12-22 14:03:07

網(wǎng)絡(luò)安全物聯(lián)網(wǎng)

2020-12-03 06:32:21

STM32單片機(jī)通信

2019-01-24 16:27:28

2011-08-19 11:50:56

IPv6網(wǎng)絡(luò)

2020-08-06 08:15:02

網(wǎng)絡(luò)安全新基建技術(shù)

2011-12-07 15:24:11

英特爾萬兆網(wǎng)卡數(shù)據(jù)中心

2023-12-29 14:44:55

網(wǎng)絡(luò)安全人工智能勒索軟件
點贊
收藏

51CTO技術(shù)棧公眾號