欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

FreeRTOS中斷管理實(shí)戰(zhàn):從FromISR API到優(yōu)先級(jí)配置避坑指南

FreeRTOS中斷管理實(shí)戰(zhàn):從FromISR API到優(yōu)先級(jí)配置避坑指南 1. 從“裸奔”到“有章法”為什么FreeRTOS中斷管理是分水嶺如果你是從51單片機(jī)或者STM32標(biāo)準(zhǔn)庫(kù)的“裸機(jī)”世界剛剛踏入FreeRTOS的大門(mén)那么“中斷管理”這個(gè)概念很可能是你遇到的第一個(gè)真正意義上的“坎”。在裸機(jī)編程里中斷處理函數(shù)ISR就是一塊“飛地”你沖進(jìn)去處理完再?zèng)_出來(lái)世界還是那個(gè)世界頂多注意一下變量要加volatile。但到了FreeRTOS里情況就復(fù)雜了。你寫(xiě)的ISR不再是那個(gè)可以為所欲為的“獨(dú)行俠”它必須遵守操作系統(tǒng)的“交通規(guī)則”否則輕則任務(wù)調(diào)度紊亂、數(shù)據(jù)不同步重則直接死機(jī)出現(xiàn)那些讓人頭疼的“堆棧溢出”、“優(yōu)先級(jí)反轉(zhuǎn)”或者“configASSERT”斷言失敗。我見(jiàn)過(guò)太多初學(xué)者把裸機(jī)中斷的代碼原封不動(dòng)搬到FreeRTOS任務(wù)里或者直接在ISR里調(diào)用printf、操作隊(duì)列而不加保護(hù)結(jié)果程序運(yùn)行起來(lái)像抽風(fēng)一樣時(shí)好時(shí)壞。問(wèn)題的根源就在于沒(méi)有理解FreeRTOS中斷管理的核心思想中斷服務(wù)程序是最高優(yōu)先級(jí)的“緊急事件響應(yīng)者”但它不能也不應(yīng)該直接去做“系統(tǒng)管理員”內(nèi)核該干的活兒比如切換任務(wù)、操作內(nèi)核對(duì)象隊(duì)列、信號(hào)量等。它需要一種安全、高效的機(jī)制來(lái)通知“系統(tǒng)管理員”有緊急事件發(fā)生然后由“管理員”在合適的時(shí)機(jī)通常是在任務(wù)上下文去處理后續(xù)事宜。這就是為什么xQueueSendFromISR、xSemaphoreGiveFromISR這些以“FromISR”結(jié)尾的API如此重要。它們就是中斷與內(nèi)核之間約定的、安全的“通信協(xié)議”。而portYIELD_FROM_ISR這個(gè)宏則是這個(gè)協(xié)議中的一個(gè)關(guān)鍵“開(kāi)關(guān)”它決定了中斷是否要立刻觸發(fā)一次任務(wù)切換。弄懂它們你才算真正理解了FreeRTOS如何協(xié)調(diào)硬件實(shí)時(shí)性與軟件多任務(wù)性。本教程將徹底拆解這套機(jī)制讓你不僅知道怎么用更明白為什么必須這么用以及那些搜索熱詞背后的錯(cuò)誤如portmacro.h的編譯錯(cuò)誤、LVGL跑不起來(lái)究竟該如何避免。2. FreeRTOS中斷處理的兩條鐵律與一個(gè)核心機(jī)制在深入API之前我們必須確立兩個(gè)在FreeRTOS下編寫(xiě)ISR的“鐵律”這是所有實(shí)踐的基石。2.1 鐵律一快進(jìn)快出絕不拖延這條和裸機(jī)編程一脈相承但在FreeRTOS中更為關(guān)鍵。中斷的使命是響應(yīng)硬件緊急事件記錄關(guān)鍵狀態(tài)然后盡快退出。任何耗時(shí)的操作如復(fù)雜計(jì)算、軟件延時(shí)、等待外部設(shè)備等都必須堅(jiān)決剝離出ISR。為什么因?yàn)镕reeRTOS內(nèi)核的很多內(nèi)部計(jì)時(shí)和調(diào)度都依賴于一個(gè)硬件定時(shí)器產(chǎn)生的中斷通常是SysTick。如果你的ISR執(zhí)行時(shí)間過(guò)長(zhǎng)可能會(huì)阻塞其他同等或更低優(yōu)先級(jí)的中斷更嚴(yán)重的是它可能延遲甚至阻塞內(nèi)核的SysTick中斷導(dǎo)致整個(gè)系統(tǒng)的時(shí)間片計(jì)算、任務(wù)延時(shí)和超時(shí)判斷全部錯(cuò)亂。表現(xiàn)出來(lái)就是系統(tǒng)“卡頓”任務(wù)調(diào)度不再準(zhǔn)時(shí)。實(shí)操心得一個(gè)簡(jiǎn)單的判斷方法是如果你的ISR代碼超過(guò)了20行非簡(jiǎn)單的變量賦值或者里面包含了for、while等循環(huán)你就要高度警惕思考是否違反了這條鐵律。正確的做法是ISR只做“標(biāo)記”和“通知”把“處理”交給任務(wù)。2.2 鐵律二與內(nèi)核交互必須使用“安全通道”這是FreeRTOS中斷管理與裸機(jī)最根本的區(qū)別。在裸機(jī)中ISR可以直接修改全局變量主循環(huán)while(1)去查詢這些變量。在FreeRTOS中任務(wù)和ISR之間通信強(qiáng)烈推薦使用內(nèi)核對(duì)象如隊(duì)列Queue、信號(hào)量Semaphore、事件組Event Group等。因?yàn)樗鼈冏詭胶突コ鈾C(jī)制。但是絕對(duì)不能在ISR中直接調(diào)用普通任務(wù)環(huán)境下使用的內(nèi)核API例如xQueueSend、xSemaphoreGive。必須調(diào)用其對(duì)應(yīng)的FromISR版本如xQueueSendFromISR、xSemaphoreGiveFromISR。為什么普通版本的內(nèi)核API內(nèi)部可能包含需要掛起調(diào)度器、進(jìn)行任務(wù)切換等復(fù)雜操作這些操作在中斷上下文中是非法的會(huì)導(dǎo)致未定義行為通常是各種奇怪的崩潰。FromISR版本的API是經(jīng)過(guò)特殊裁剪的它們?nèi)サ袅诉@些在中斷中不能執(zhí)行的操作是內(nèi)核為ISR準(zhǔn)備的“安全接口”。2.3 核心機(jī)制pxHigherPriorityTaskWoken與portYIELD_FROM_ISR這是理解FreeRTOS中斷管理精髓的關(guān)鍵。當(dāng)你從一個(gè)ISR中調(diào)用xQueueSendFromISR或xSemaphoreGiveFromISR去喚醒一個(gè)任務(wù)時(shí)一個(gè)關(guān)鍵的問(wèn)題產(chǎn)生了被喚醒的任務(wù)優(yōu)先級(jí)比當(dāng)前正在運(yùn)行的任務(wù)被中斷的任務(wù)更高嗎如果是要不要立刻切換到這個(gè)高優(yōu)先級(jí)任務(wù)FromISR系列的API通過(guò)一個(gè)參數(shù)來(lái)回答這個(gè)問(wèn)題BaseType_t *pxHigherPriorityTaskWoken。這個(gè)參數(shù)的作用它是一個(gè)出參。你在調(diào)用前將其初始化為pdFALSE。API內(nèi)部會(huì)判斷如果本次操作比如發(fā)送數(shù)據(jù)到隊(duì)列使得一個(gè)任務(wù)解除阻塞并且這個(gè)被解除阻塞的任務(wù)優(yōu)先級(jí)高于當(dāng)前被中斷的任務(wù)的優(yōu)先級(jí)那么API就會(huì)把這個(gè)參數(shù)設(shè)置為pdTRUE。這個(gè)參數(shù)的意義它告訴你存在一個(gè)更高優(yōu)先級(jí)的任務(wù)就緒了。知道了有更高優(yōu)先級(jí)任務(wù)就緒接下來(lái)就是決定何時(shí)切換。這就是portYIELD_FROM_ISR(xHigherPriorityTaskWoken)宏的職責(zé)。它的邏輯如果xHigherPriorityTaskWoken等于pdTRUE那么portYIELD_FROM_ISR會(huì)觸發(fā)一次中斷退出時(shí)的任務(wù)切換。當(dāng)中斷服務(wù)程序執(zhí)行完畢CPU不會(huì)返回原先被中斷的那個(gè)低優(yōu)先級(jí)任務(wù)而是直接切換到那個(gè)剛剛就緒的、更高優(yōu)先級(jí)的任務(wù)。這實(shí)現(xiàn)了最小延遲的響應(yīng)。如果不用它如果你在ISR中雖然設(shè)置了pxHigherPriorityTaskWoken為pdTRUE但沒(méi)有調(diào)用portYIELD_FROM_ISR那么任務(wù)切換會(huì)等到下一個(gè)系統(tǒng)時(shí)鐘節(jié)拍SysTick中斷時(shí)才會(huì)發(fā)生。這可能會(huì)引入最多一個(gè)時(shí)鐘節(jié)拍周期例如1ms的延遲。一個(gè)完整的ISR通信范式如下void USART1_IRQHandler(void) { BaseType_t xHigherPriorityTaskWoken pdFALSE; // 初始化 char cReceived; if(USART_GetITStatus(USART1, USART_IT_RXNE) ! RESET) { cReceived USART_ReceiveData(USART1); // 使用 FromISR 安全API發(fā)送到隊(duì)列 xQueueSendFromISR(xUartQueue, cReceived, xHigherPriorityTaskWoken); USART_ClearITPendingBit(USART1, USART_IT_RXNE); } // 根據(jù)是否需要切換執(zhí)行端口特定的中斷退出前操作 portYIELD_FROM_ISR(xHigherPriorityTaskWoken); }3. 實(shí)戰(zhàn)拆解以UART接收中斷驅(qū)動(dòng)數(shù)據(jù)流處理任務(wù)讓我們通過(guò)一個(gè)嵌入式開(kāi)發(fā)中最常見(jiàn)的場(chǎng)景——串口接收不定長(zhǎng)數(shù)據(jù)來(lái)串聯(lián)上述理論。目標(biāo)是實(shí)現(xiàn)一個(gè)穩(wěn)定、高效的數(shù)據(jù)接收機(jī)制ISR負(fù)責(zé)接收字節(jié)任務(wù)負(fù)責(zé)組包和解析。3.1 系統(tǒng)架構(gòu)設(shè)計(jì)我們?cè)O(shè)計(jì)兩個(gè)任務(wù)和一個(gè)中斷服務(wù)程序硬件中斷USART1_IRQHandler優(yōu)先級(jí)最高由NVIC配置。只做一件事將接收到的單個(gè)字節(jié)快速送入一個(gè)隊(duì)列xUartRxQueue。數(shù)據(jù)收集任務(wù)vTaskUartCollect中等優(yōu)先級(jí)。它阻塞在xUartRxQueue上。一旦ISR送來(lái)字節(jié)它就被喚醒從隊(duì)列中取出字節(jié)存入一個(gè)環(huán)形緩沖區(qū)Ring Buffer并嘗試根據(jù)協(xié)議例如換行符\n判斷一個(gè)完整數(shù)據(jù)包是否接收完成。數(shù)據(jù)處理任務(wù)vTaskUartProcess較低優(yōu)先級(jí)。它被數(shù)據(jù)收集任務(wù)通過(guò)一個(gè)二進(jìn)制信號(hào)量xUartPacketReadySem通知。當(dāng)收集任務(wù)組好一個(gè)完整包后給出信號(hào)量。處理任務(wù)則從環(huán)形緩沖區(qū)中取出完整數(shù)據(jù)包進(jìn)行解析、響應(yīng)等耗時(shí)操作。這樣設(shè)計(jì)的優(yōu)勢(shì)在于耗時(shí)的協(xié)議解析和業(yè)務(wù)處理完全在任務(wù)中完成不影響中斷響應(yīng)。即使處理任務(wù)被阻塞也不影響中斷接收和數(shù)據(jù)收集數(shù)據(jù)不會(huì)丟失。3.2 關(guān)鍵代碼實(shí)現(xiàn)與注釋首先在程序初始化部分創(chuàng)建所需的內(nèi)核對(duì)象// 定義隊(duì)列深度根據(jù)你的數(shù)據(jù)流量調(diào)整 #define UART_RX_QUEUE_LENGTH 128 QueueHandle_t xUartRxQueue; SemaphoreHandle_t xUartPacketReadySem; // 環(huán)形緩沖區(qū)用于數(shù)據(jù)收集任務(wù)暫存數(shù)據(jù) #define RING_BUF_SIZE 512 static uint8_t ucRingBuffer[RING_BUF_SIZE]; static size_t uxWriteIndex 0, uxReadIndex 0; void SystemInit(void) { // ... 硬件初始化包括串口、NVIC等 NVIC_InitTypeDef NVIC_InitStructure; NVIC_InitStructure.NVIC_IRQChannel USART1_IRQn; NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority 5; // 設(shè)置一個(gè)合適的搶占優(yōu)先級(jí) NVIC_InitStructure.NVIC_IRQChannelCmd ENABLE; NVIC_Init(NVIC_InitStructure); // 創(chuàng)建隊(duì)列用于傳遞單個(gè)字節(jié) xUartRxQueue xQueueCreate(UART_RX_QUEUE_LENGTH, sizeof(uint8_t)); // 創(chuàng)建二進(jìn)制信號(hào)量初始值為0 xUartPacketReadySem xSemaphoreCreateBinary(); // 創(chuàng)建任務(wù) xTaskCreate(vTaskUartCollect, UartCollect, 256, NULL, 2, NULL); // 優(yōu)先級(jí)2 xTaskCreate(vTaskUartProcess, UartProcess, 512, NULL, 1, NULL); // 優(yōu)先級(jí)1 // ... 啟動(dòng)調(diào)度器 }接下來(lái)是中斷服務(wù)程序嚴(yán)格遵守“快進(jìn)快出”和“使用安全API”void USART1_IRQHandler(void) { BaseType_t xHigherPriorityTaskWoken pdFALSE; uint8_t ucData; // 檢查是否是接收中斷 if(USART_GetITStatus(USART1, USART_IT_RXNE) ! RESET) { ucData USART_ReceiveData(USART1); // 讀取數(shù)據(jù)清除RXNE標(biāo)志 // 嘗試發(fā)送到隊(duì)列。如果隊(duì)列滿根據(jù)需求處理這里選擇阻塞但I(xiàn)SR中實(shí)際不會(huì)阻塞會(huì)立刻返回errQUEUE_FULL if(xQueueSendFromISR(xUartRxQueue, ucData, xHigherPriorityTaskWoken) ! pdPASS) { // 隊(duì)列滿這是一個(gè)嚴(yán)重錯(cuò)誤需要處理??梢渣c(diǎn)亮錯(cuò)誤LED或者丟棄最舊的數(shù)據(jù)。 // 例如可以選擇從隊(duì)列頭部接收一個(gè)數(shù)據(jù)丟棄再發(fā)送新的實(shí)現(xiàn)上更復(fù)雜此處僅提示 // Error_Handler(); } // 注意STM32標(biāo)準(zhǔn)庫(kù)的USART_ReceiveData會(huì)清除RXNE有些HAL庫(kù)需要手動(dòng)清除 // USART_ClearITPendingBit(USART1, USART_IT_RXNE); // 如果庫(kù)函數(shù)沒(méi)清需要手動(dòng)清 } // 如果有更高優(yōu)先級(jí)任務(wù)被喚醒則請(qǐng)求切換 portYIELD_FROM_ISR(xHigherPriorityTaskWoken); }然后是數(shù)據(jù)收集任務(wù)它在任務(wù)上下文中安全地處理數(shù)據(jù)void vTaskUartCollect(void *pvParameters) { uint8_t ucRxByte; BaseType_t xStatus; for(;;) { // 阻塞等待隊(duì)列中的字節(jié)無(wú)限期等待 if(xQueueReceive(xUartRxQueue, ucRxByte, portMAX_DELAY) pdPASS) { // 成功收到一個(gè)字節(jié)存入環(huán)形緩沖區(qū) ucRingBuffer[uxWriteIndex] ucRxByte; uxWriteIndex (uxWriteIndex 1) % RING_BUF_SIZE; // 簡(jiǎn)單協(xié)議以換行符 \n 作為包結(jié)束符 if(ucRxByte \n) { // 一個(gè)完整數(shù)據(jù)包接收完畢通知處理任務(wù) xSemaphoreGive(xUartPacketReadySem); } // 環(huán)形緩沖區(qū)溢出檢查重要 if(uxWriteIndex uxReadIndex) { // 緩沖區(qū)滿了處理錯(cuò)誤例如丟棄最舊數(shù)據(jù)uxReadIndex前進(jìn)一位或復(fù)位 uxReadIndex (uxReadIndex 1) % RING_BUF_SIZE; // 可以記錄錯(cuò)誤計(jì)數(shù) } } } }最后是數(shù)據(jù)處理任務(wù)它執(zhí)行相對(duì)耗時(shí)的操作void vTaskUartProcess(void *pvParameters) { uint8_t ucPacketBuffer[128]; size_t uxPacketLen 0; for(;;) { // 阻塞等待數(shù)據(jù)包就緒信號(hào)量 if(xSemaphoreTake(xUartPacketReadySem, portMAX_DELAY) pdTRUE) { // 從環(huán)形緩沖區(qū)中取出直到換行符的數(shù)據(jù)注意處理環(huán)形 uxPacketLen 0; while(uxReadIndex ! uxWriteIndex ucRingBuffer[uxReadIndex] ! \n uxPacketLen sizeof(ucPacketBuffer)-1) { ucPacketBuffer[uxPacketLen] ucRingBuffer[uxReadIndex]; uxReadIndex (uxReadIndex 1) % RING_BUF_SIZE; } // 跳過(guò)換行符本身 if(uxReadIndex ! uxWriteIndex ucRingBuffer[uxReadIndex] \n) { uxReadIndex (uxReadIndex 1) % RING_BUF_SIZE; } ucPacketBuffer[uxPacketLen] \0; // 字符串結(jié)束符 // 現(xiàn)在 ucPacketBuffer 里就是一個(gè)完整的數(shù)據(jù)包可以進(jìn)行解析、響應(yīng)等操作 // 例如解析命令、控制外設(shè)、通過(guò)其他接口發(fā)送等 // processPacket(ucPacketBuffer, uxPacketLen); // 注意此處的處理時(shí)間不宜過(guò)長(zhǎng)以免影響其他任務(wù)。如果非常耗時(shí)可以考慮再分出一個(gè)任務(wù)。 } } }4. 那些搜索熱詞背后的“坑”與解決方案當(dāng)你搜索FreeRTOS中斷相關(guān)問(wèn)題時(shí)會(huì)碰到很多高頻詞匯。它們往往對(duì)應(yīng)著具體的錯(cuò)誤或困惑。我們來(lái)逐一拆解。4.1..\freertos\port\portmacro.h(73): error: #35: #error directive: configtick_t這個(gè)編譯錯(cuò)誤非常典型。它直指FreeRTOS移植的核心——portmacro.h文件。這個(gè)文件是FreeRTOS與具體CPU架構(gòu)的橋梁里面全是和硬件尤其是中斷、臨界區(qū)、堆棧相關(guān)的底層宏和函數(shù)。錯(cuò)誤原因configTICK_TYPE_WIDTH_IN_BITS這個(gè)宏沒(méi)有正確定義。這個(gè)宏決定了系統(tǒng)節(jié)拍計(jì)數(shù)器TickType_t的位寬是32位還是16位。在FreeRTOSConfig.h中你需要根據(jù)你的處理器和需求來(lái)定義它。解決方案打開(kāi)你的FreeRTOSConfig.h文件。找到或添加以下定義/* 對(duì)于32位處理器通常定義為32 */ #define configTICK_TYPE_WIDTH_IN_BITS 32 /* 或者對(duì)于某些資源緊張的16位機(jī)可以定義為16 */ /* #define configTICK_TYPE_WIDTH_IN_BITS 16 */確保這個(gè)定義出現(xiàn)在#include “FreeRTOS.h”之前因?yàn)閜ortmacro.h會(huì)依賴它。清理并重新編譯工程。注意這個(gè)錯(cuò)誤經(jīng)常在從舊版本FreeRTOS升級(jí)或者在不同編譯器、不同芯片平臺(tái)間移植時(shí)出現(xiàn)。FreeRTOSConfig.h是高度可配置的移植時(shí)必須仔細(xì)核對(duì)所有configXXX宏的定義是否與新版本或新平臺(tái)匹配。4.2 “freertos堆棧溢出檢測(cè)”與中斷嵌套堆棧溢出是FreeRTOS開(kāi)發(fā)中最常見(jiàn)的崩潰原因之一。任務(wù)堆棧溢出檢測(cè)configCHECK_FOR_STACK_OVERFLOW機(jī)制會(huì)在任務(wù)切換時(shí)檢查堆棧指針是否越界。但這里有一個(gè)與中斷密切相關(guān)的坑中斷嵌套使用的堆棧。問(wèn)題場(chǎng)景假設(shè)你使能了中斷嵌套即高優(yōu)先級(jí)中斷可以打斷低優(yōu)先級(jí)中斷。當(dāng)任務(wù)A運(yùn)行時(shí)一個(gè)低優(yōu)先級(jí)中斷ISR1發(fā)生。在ISR1執(zhí)行過(guò)程中一個(gè)更高優(yōu)先級(jí)的中斷ISR2發(fā)生并打斷了ISR1。此時(shí)CPU使用的是中斷堆棧對(duì)于Cortex-M可能是主堆棧MSP也可能是進(jìn)程堆棧PSP取決于配置而不是任務(wù)A的堆棧。關(guān)鍵點(diǎn)FreeRTOS的堆棧溢出檢測(cè)只檢測(cè)任務(wù)堆棧。如果中斷嵌套層次太深或者某個(gè)ISR內(nèi)局部變量過(guò)大導(dǎo)致中斷堆棧溢出FreeRTOS的檢測(cè)機(jī)制是捕捉不到的這會(huì)導(dǎo)致極其難以排查的內(nèi)存踩踏和隨機(jī)崩潰。避坑指南估算中斷堆棧需求分析你的中斷嵌套最大深度以及每個(gè)ISR中局部變量的大小。為整個(gè)系統(tǒng)預(yù)留足夠的中斷堆??臻g在啟動(dòng)文件或鏈接腳本中設(shè)置。限制中斷嵌套除非必要盡量避免中斷嵌套。合理配置NVIC的搶占優(yōu)先級(jí)和子優(yōu)先級(jí)。ISR內(nèi)節(jié)約??臻g避免在ISR內(nèi)定義大型數(shù)組或復(fù)雜結(jié)構(gòu)體。使用全局變量或靜態(tài)變量需注意重入問(wèn)題來(lái)替代大的局部變量。使用工具輔助一些IDE如IAR、Keil和調(diào)試器有堆棧使用分析功能可以監(jiān)控運(yùn)行時(shí)堆棧的最大使用深度幫助你合理設(shè)置堆棧大小。4.3 “l(fā)vgl開(kāi)啟freertos運(yùn)行不了”LVGL一個(gè)流行的嵌入式GUI庫(kù)與FreeRTOS結(jié)合使用時(shí)經(jīng)常出現(xiàn)初始化失敗、卡死或顯示異常。這通常不是LVGL或FreeRTOS單獨(dú)的問(wèn)題而是兩者協(xié)作時(shí)對(duì)中斷和任務(wù)同步的要求沒(méi)有滿足。常見(jiàn)原因一LVGL的心跳tick來(lái)源錯(cuò)誤。LVGL需要周期性的心跳lv_tick_inc()來(lái)驅(qū)動(dòng)動(dòng)畫(huà)、定時(shí)器等。這個(gè)調(diào)用絕對(duì)不能放在SysTick中斷服務(wù)程序xPortSysTickHandler中直接調(diào)用因?yàn)閘v_tick_inc()內(nèi)部可能調(diào)用lv_timer_handler()而后者可能執(zhí)行重繪等操作這些操作可能不是中斷安全的并且耗時(shí)較長(zhǎng)違反ISR“快進(jìn)快出”原則。正確做法在FreeRTOS中創(chuàng)建一個(gè)高優(yōu)先級(jí)定時(shí)器任務(wù)使用xTaskCreate或軟件定時(shí)器xTimerCreate在這個(gè)任務(wù)中周期性地調(diào)用lv_tick_inc(1)和lv_timer_handler()。確保這個(gè)任務(wù)的優(yōu)先級(jí)高于LVGL的主任務(wù)lv_task_handler所在任務(wù)以保證GUI響應(yīng)的及時(shí)性。常見(jiàn)原因二LVGL的顯示display和輸入設(shè)備indev驅(qū)動(dòng)與中斷沖突。如果你的顯示驅(qū)動(dòng)如SPI DMA傳輸完成中斷或觸摸驅(qū)動(dòng)外部中斷中需要調(diào)用LVGL的刷新或讀取函數(shù)必須確保這些調(diào)用是通過(guò)FromISR安全API通知LVGL任務(wù)去執(zhí)行而不是在ISR中直接調(diào)用LVGL的API。解決方案模板// 1. 創(chuàng)建LVGL相關(guān)任務(wù)和通信對(duì)象 QueueHandle_t xLvglRefreshQueue; TaskHandle_t xLvglTaskHandle; // 2. 在顯示驅(qū)動(dòng)DMA完成中斷中 void DMA2_Stream3_IRQHandler(void) { BaseType_t xHigherPriorityTaskWoken pdFALSE; if(DMA_GetITStatus(DMA2_Stream3, DMA_IT_TCIF3)) { // 發(fā)送一個(gè)刷新請(qǐng)求到隊(duì)列而不是直接調(diào)用 lv_disp_flush_ready uint8_t dummy 1; xQueueSendFromISR(xLvglRefreshQueue, dummy, xHigherPriorityTaskWoken); DMA_ClearITPendingBit(DMA2_Stream3, DMA_IT_TCIF3); } portYIELD_FROM_ISR(xHigherPriorityTaskWoken); } // 3. LVGL主任務(wù) void vTaskLvgl(void *pvParameters) { // LVGL初始化... lv_init(); // 顯示和輸入設(shè)備初始化... for(;;) { // 處理來(lái)自中斷的刷新事件 uint8_t refreshReq; if(xQueueReceive(xLvglRefreshQueue, refreshReq, 0) pdPASS) { // 在任務(wù)上下文中安全地通知LVGL刷新完成 lv_disp_flush_ready(disp_drv); } // 執(zhí)行LVGL任務(wù)處理器 lv_task_handler(); vTaskDelay(pdMS_TO_TICKS(5)); // 延遲一段時(shí)間比如5ms } } // 4. 高優(yōu)先級(jí)的Tick任務(wù) void vTaskLvglTick(void *pvParameters) { const TickType_t xFrequency pdMS_TO_TICKS(1); // 1ms心跳 TickType_t xLastWakeTime xTaskGetTickCount(); for(;;) { lv_tick_inc(1); // 提供1ms心跳 vTaskDelayUntil(xLastWakeTime, xFrequency); } }4.4 “freertos移植標(biāo)準(zhǔn)庫(kù)”與中斷向量表處理將FreeRTOS移植到使用標(biāo)準(zhǔn)外設(shè)庫(kù)StdPeriph的STM32項(xiàng)目時(shí)中斷向量表的管理是一個(gè)關(guān)鍵點(diǎn)。核心問(wèn)題FreeRTOS為了管理PendSV和SysTick中斷需要提供自己的SVC_Handler、PendSV_Handler和SysTick_Handler實(shí)現(xiàn)。但標(biāo)準(zhǔn)庫(kù)的啟動(dòng)文件如startup_stm32fxxx.s已經(jīng)用Weak符號(hào)定義了這些中斷向量并鏈接到了庫(kù)中的默認(rèn)函數(shù)可能是空函數(shù)。解決方案方法一推薦修改啟動(dòng)文件。找到啟動(dòng)文件中的這三行.weak SVC_Handler .thumb_set SVC_Handler,Default_Handler .weak PendSV_Handler .thumb_set PendSV_Handler,Default_Handler .weak SysTick_Handler .thumb_set SysTick_Handler,Default_Handler將它們注釋掉。這樣鏈接器就會(huì)使用FreeRTOS移植層port.c中提供的強(qiáng)符號(hào)實(shí)現(xiàn)而不是Weak的Default_Handler。方法二確保正確鏈接。如果你不想修改啟動(dòng)文件必須確保在鏈接時(shí)FreeRTOS的port.c其中包含了這些處理函數(shù)的強(qiáng)定義的編譯單元被正確鏈接并且其符號(hào)優(yōu)先級(jí)高于啟動(dòng)文件中的Weak符號(hào)。這通常取決于編譯鏈接的順序不如方法一可靠。移植后驗(yàn)證成功移植后在調(diào)試器中你應(yīng)該能看到SVC_Handler、PendSV_Handler和SysTick_Handler的地址指向FreeRTOSport.c文件中的函數(shù)而不是啟動(dòng)文件中的Default_Handler。5. 中斷優(yōu)先級(jí)配置NVIC與FreeRTOS的優(yōu)先級(jí)映射這是另一個(gè)容易混淆的重災(zāi)區(qū)。Cortex-M內(nèi)核的NVIC中斷優(yōu)先級(jí)和FreeRTOS的任務(wù)優(yōu)先級(jí)是兩套獨(dú)立的系統(tǒng)但它們通過(guò)一個(gè)關(guān)鍵的宏configMAX_SYSCALL_INTERRUPT_PRIORITY或configMAX_API_CALL_INTERRUPT_PRIORITY產(chǎn)生了交集。5.1 兩套優(yōu)先級(jí)體系NVIC中斷優(yōu)先級(jí)數(shù)字越小優(yōu)先級(jí)越高。它決定了硬件中斷之間的搶占關(guān)系。通常分為搶占優(yōu)先級(jí)和子優(yōu)先級(jí)。FreeRTOS任務(wù)優(yōu)先級(jí)數(shù)字越大優(yōu)先級(jí)越高。0是空閑任務(wù)優(yōu)先級(jí)configMAX_PRIORITIES-1是最高優(yōu)先級(jí)。5.2 臨界區(qū)保護(hù)與中斷屏蔽FreeRTOS通過(guò)taskENTER_CRITICAL()和taskEXIT_CRITICAL()來(lái)實(shí)現(xiàn)臨界區(qū)一段不能被中斷的代碼。它的實(shí)現(xiàn)原理是提升中斷屏蔽優(yōu)先級(jí)。configMAX_SYSCALL_INTERRUPT_PRIORITY或configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY定義了一個(gè)優(yōu)先級(jí)閾值。所有優(yōu)先級(jí)數(shù)值高于即邏輯優(yōu)先級(jí)低于這個(gè)閾值的中斷會(huì)被FreeRTOS的臨界區(qū)API屏蔽。而優(yōu)先級(jí)數(shù)值低于即邏輯優(yōu)先級(jí)高于這個(gè)閾值的中斷不會(huì)被屏蔽稱為“不受FreeRTOS管理的高優(yōu)先級(jí)中斷”。為什么這么設(shè)計(jì)為了保證極硬實(shí)時(shí)性。比如電機(jī)控制的PWM中斷、緊急故障檢測(cè)中斷必須保證其響應(yīng)延遲是確定且極短的不能被任何軟件操作包括操作系統(tǒng)內(nèi)核所延遲。因此它們被配置為高于configMAX_SYSCALL_INTERRUPT_PRIORITY的優(yōu)先級(jí)FreeRTOS動(dòng)不了它們。5.3 配置實(shí)戰(zhàn)與常見(jiàn)錯(cuò)誤假設(shè)你使用STM32NVIC使用4位優(yōu)先級(jí)分組16個(gè)優(yōu)先級(jí)。FreeRTOS常見(jiàn)的配置如下// 在 FreeRTOSConfig.h 中 #define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY 5這意味著NVIC優(yōu)先級(jí)數(shù)值從5到15共11個(gè)優(yōu)先級(jí)的中斷可以被FreeRTOS的臨界區(qū)屏蔽并且可以在其中安全調(diào)用FromISR的API。而優(yōu)先級(jí)數(shù)值從0到4共5個(gè)優(yōu)先級(jí)的中斷是“不受管理”的高優(yōu)先級(jí)中斷絕對(duì)不能在其中調(diào)用任何FreeRTOS的API包括FromISR版本。配置步驟確定你的系統(tǒng)中哪些中斷需要“不受管理”的硬實(shí)時(shí)性如PWM、緊急停止。將它們配置為NVIC優(yōu)先級(jí)0-4。將與FreeRTOS通信的中斷如UART、定時(shí)器、外部按鍵配置為優(yōu)先級(jí)5-15。通常SysTick和PendSV中斷的優(yōu)先級(jí)會(huì)由FreeRTOS端口自動(dòng)設(shè)置在一個(gè)合適的值比如最低優(yōu)先級(jí)15。在NVIC初始化時(shí)注意優(yōu)先級(jí)數(shù)值的轉(zhuǎn)換。NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority字段填寫(xiě)的是優(yōu)先級(jí)數(shù)值不是位段。例如配置為優(yōu)先級(jí)5就直接填5。一個(gè)典型錯(cuò)誤將UART中斷優(yōu)先級(jí)設(shè)置為2一個(gè)高優(yōu)先級(jí)然后在它的ISR中調(diào)用了xQueueSendFromISR。在臨界區(qū)中這個(gè)中斷不會(huì)被屏蔽如果此時(shí)任務(wù)正在操作隊(duì)列而中斷也來(lái)操作就造成了數(shù)據(jù)競(jìng)爭(zhēng)可能導(dǎo)致隊(duì)列內(nèi)部數(shù)據(jù)結(jié)構(gòu)損壞引發(fā)各種詭異崩潰。這種錯(cuò)誤在壓力測(cè)試下才會(huì)暴露非常難查。排查口訣凡是調(diào)用了FromISR系列API的中斷其N(xiāo)VIC優(yōu)先級(jí)數(shù)值必須大于等于configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY。這是保證FreeRTOS中斷管理安全運(yùn)行的黃金法則。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色私五月婷婷| 欧美久热| 性无码专区无码| 亚洲激情免费视频| 五月丁香天天| 亚洲色婷婷| 国产干逼片| 亚韩在线视频| 五月婷婷六月情| 成人视频九九| 九九综合伊人| 五月色婷婷激情| 久久精典| 九月婷婷色色| 久草丁香婷婷五月天婷| 狠狠干狠狠操狠狠爱| www.国产色| 日日噜狠狠色| 五月激情婷婷开心| 99r这里| 大香蕉五月天| 97超碰人人操| 婷婷色九月| 五月天色软件| 丁香狠狠色婷婷久久无码视频| 色播五月网| 色婷婷亚洲六月婷婷中文字幕| 久久五月天色婷婷| 国产乱码久久| 成人va在线观看视频| 久草丁香婷婷五月天婷| 视频1区2区| 黄网在线免费观| 99色色网| 欧美叉叉叉BBB网站| 亚州操人在线视频| www.yw尤物| 九月丁香亭亭| 激情五月综合网| 天天做天天爱天天爽| 狠狠操狠狠干综合| 人人干人人操人人摸| 深爱激情网婷婷| 天天综合网、天天综合色 | 色五月丁香总合网| 精品无码av丁香五月激情| 亚洲天堂大香蕉| www网站在线观看| 丁香六月成人| 久久网婷婷| 射满了还射免费在线观看 -午夜版全集-新视觉影院 | 色欲天天综合| 欧美色婷婷| 五月婷婷六月婷| 五月丁香激情六月| 丁香五月天激情视频| 精品一区二区三区木瓜| 婷婷五月丁香伊人| 色婷另类| 色色色热| 综合在线观看99| 中字幕视频在线永久在线观看免费| 99视频只有精品| 67194国产| 日本在线视频www色| 亚洲99综合| 综合网色| 婷婷五月激情四射手| 1024成人免费看| www.第四色99| 黄色激情久久| 狠狠久久婷五月综合色| 九九99视频| 夜夜干天天干| 淫视馆aV二区一区| 韩国中文字幕91| 影音先锋男人av资源站| 九九色色色| 在线视频你懂得| 熟女色专区| 99热久久这里只有精品| 丁香婷婷老司机久操| 天天射天天插天天干| 色五月婷婷777| 天天视频精品9| 99久热精品在线| 97婷婷丁香| 五月婷婷亚洲| 深爱激情网婷婷| 这里只有九九精品| 啪啪激情网| 色婷婷99| WWW.HENHENL.| 7777激情基地| 丁香五月在线观看完整版| 蜘蛛女侠2003满天星免费观看| 婷婷五月天网址| 午夜五月天| 色情综合网| 在线观看视频1区| 婷婷五月丁香A∨| 日日撸夜夜操| 国产99久| 99精品无码视频| 深爱五月天 开心网| 五月丁香六月综合激情无码软件亮点| 婷婷天天日婷婷| 蜜臀AV在线观看| 色444综合网| 91一起操| 久久婷婷五月综合| 大香焦啪啪啪| 99热思思久| 九九无码视屏| 婷婷丁香久久| 亚洲中文字幕AV| 五月婷六月丁| 97人人射| 草草操操| 婷婷色导航| 五月婷婷五月| 九九热10| 天天色天天日天天舔| 丁香六月天| 色色婷婷丁香五月天| 无码少妇高潮喷水A片免费| 狠狠干狠狠操狠狠爱| 精品久久99码| 色色色热| 七七色综合| 天天色天天搡| 色五月成人| 五月天啪啪网| 婷婷五月天伊人网在线观看视频| 婷婷五月天堂| 妇激情基地| 99热这里只有精品最新网址| 在线中文AV| 日本 欧美在线| 五月婷婷在线观看| 五月天激情色色| 国产成人网址| 免费黄色视频网址| 久久精品4| 天天夜夜爽| 99热这里是精品| 五月婷婷三级| 色色五月天婷婷| 国产a视频| 俺去也在线www色官网| 色色五月婷婷| 99操逼| 99热这里只有精品4| 五月色丁香| 丁香五月欧美激情| 五月丁香六月婷| 五月狠狠| 91大神操美女| 五月婷中文字幕| 亚洲av骚货| 天天色2017| 婷婷五月天日逼| 天天色天天日| 日本人妻丁香婷婷久久寝取熟女五月| 99精品网| 五月综合亚洲| 久久婷婷五月综合色和| 99热在线观看精品免费| 婷婷自拍| 亚洲AV网站| 婷婷五月丁香欧洲| 久九色| 香蕉大综综综合久久| 综合一本道| 五月丁香在线观看国产| 天天透天天爱| 亚洲在线资源| 亚洲操B| AV在线免费播放| 精品久久9| 丁香婷婷九月| 久久98| 国内裸舞二区| 香蕉影院色| 婷婷六月久久| 看逼中文字幕| 超碰免费人人| 五月香蕉婷婷| 婷婷久久爱| 99热成人在线观看| 五月丁香综合影院| 99爱视频| 色婷婷六月天在线| 五月婷婷综合久久| 亚洲A片成人无码久久精品青桔| 激情五月婷婷在线区| 九九九九九999999| 91九色精品| 色停停香蕉视频| 色播五月| 婷婷五月天香蕉| 91亚洲天堂| 婷婷色色丁香五月天| 午夜天堂啪啪| 开心五月婷婷伊人| 97操视频| 人妻操操色| 91在线看片| 99免费在线视频| 色婷婷免费视频| 人人草人人爱| 四月婷婷丁香五月| 欧美欧盟性爱网| 亚洲经典三级| 亚洲免费观看高清完整版AV线| 色色五月婷| 久久精品凹凸分类| 大香蕉久久久久| 丁香五月婷婷啪| 色五月婷婷在线观看第一页舔| 亚洲色优| 狠狠色丁婷婷日日,伊人激情综合网| 日本黄 色 片| 五月婷婷av| 内射激情在线| 91精品无码| 一本大道伊人AV久久综合| 成人五月天视频播放| 激情五月,激情综合网| 人人草人人舔| 色五月欧美| 婷婷成人网五月天| 久久精品日| 天天噜噜| 欧美色频| 日本AAAAAAAAAAAAAA片| www.激情.com.| 韩日另类| 五月天激情图片| 99热最新| Jh7Uf088VHafNm| 久久婷婷丁香| 超级碰碰碰久久网站| 久久久久9999| 狠狠干综合| 婷婷色香六月综合激情| 在线另类| 六月丁香色色| 91日综合欧美| 久cao香蕉影院| 五月亭大香蕉| 久热这里精品免费| a色色色色色| 91伦| 欧美日本免费一道免费视频 | 开心五月天激情网站| 精品视频这里只有精品| 五月婷啪啪| www.金莲av| 97色色色| 欧美色色色色色| 欧美日本99| 久久久天堂国产精品女人| 99久在线观看| 激情图片久久| www.五月丁香| 婷婷色五月天在线观看| 这里只有精品免费视频在线观看 | 婷婷丁香视频在线观看免费| 色五月琪琪| 日韩三及成人AV片| 丁香97综合| 五月丁香婷婷钟和色图| av中文网| 婷婷色色综合| 狠狠干最新地址| 亚洲午夜AV| 五月婷婷AV| 极品另类| 婷婷五月天激情小说| 涩婷婷五月天在线精品视频| 开心激情婷婷| 亚洲婷婷五月| 色5月婷婷色| 久热免费| 99久精品视频| 婷婷综合网站| 91久久久久久久久18| 久久婷婷啪啪视频| 九九亚洲视频| 99久视频| 亚洲精品又粗又大又爽A片 | 狠狠干五月| 久久精品国产精品| 91久久网站| 日本久久激情| 久久丁香九| 婷婷六月久久| 日本黄色在线观看| 久9热| 色性综合| 四虎婷婷五月天| 丁香女人五月天| 中海油常州环保涂料有限公司| 欧美极品999| 天天操天天日天天爱| 大香蕉久久伊人婷婷五月丁香| 日本色色图| 欧美性二区| 婷婷五月亚洲激情| 久久深爱激情网| 巴基斯坦粉嫩无码视频| 丁香六月婷| 高清无码网址| 99在线观看精品视频| 香蕉久久国产AV一区二区| 91精品久久久久久77777| 久操热线| 91久久国产自产拍夜夜91久久精品文字>91麻豆精品国产 | 日本女色人人| 超碰网站在线观看| 婷婷五月丁香综合亚洲 | 大香蕉久久伊人网| 99操逼视频| 99色视| 啪啪干伊人婷婷| 思思热久久久在线| 五月丁香六月香香蕉| 天天日天天插| 国产精品A片在线| www.五月天色色色| 亚洲天天免费| 亚洲天天操| 久久五月网| 五月婷婷色色| 综合九九久久| 日本va欧美va精品发布视频| 丁香五月在线观看| 啪啪啪综合网| 久久婷婷激情四射五月天| 天天射综合网站| 同性gv国产精品一区二区| 人人视频色| 久久综合中文字幕| 久久色六月| 综合网网欲色| 天天插天天日天天爽| 五月婷婷色五月| 五月天综合在线| 无码成人播放器| 久久婷婷五月激情综合| 91视屏在线观看com.wwwvv| 少妇激情五月天| 亚洲日日操| 精品9久| 丁香激情网| 久久网思思| 天天肏高清在线| 五月婷婷色色| 色久女| 国产在线另类五月婷婷| 六月婷婷综合| 激情综合国产| 天天婷婷色六月| 97色色色| 综合99综合久久久久久久| 啪啪啪五月天| 天天干天天操天天爽| 在线播放成人| 操嫩逼电影| 色色丁香五月天| 91九色超碰| 91Chinese在线| 色婷五月天综合网| 国产肥白大熟妇BBBB视频| 成人在线综合| 99热这里只| 丁香五月婷婷基地| 丁香综合婷婷开心激情网| 五月婷婷之综合激情| 色五月网址| 五月天婷婷綜合院| 丁香色五月天| av五月天婷婷丁香| 99aese| 久久人人妻| 热热99爱爱| 日日做天天操夜夜爽| 丁香色婷婷| av在线免费网站 | www.综合久久.com| 五月丁香六月婷婷姐| 99国产精品久久久久久久久久久 | 五月天成人综合| www.韩日视频| 涩涩涩.com| 日本人妻伦在线中文字幕 | 9999三级片| 91干网| 五月天激情中文字幕| 99久re热视频精品98| 99久热在线精品| 五月久久婷婷成人网| 天堂在线伊久| 丁香五月婷婷色| 国产免费性爱| 99热视精品| 大战熟女丰满人妻AV| 深爱五月综合网| 日韩啪啪视频| 伊人久久婷婷| 五月天婷婷基地| 99精品热视频只有精品10| www九九| 五月天婷婷香蕉狠狠超碰综合| 99久在线精品99re8热| 大香伊人婷婷影院| 操逼巨乳91| www.激情com| 99精品热| 国产熟女一区二区三区五月婷| 另类 在线| 精品99视频| 亚洲色另类| 婷婷玖玖丁香| 久9久9热久热| 色婷婷婷av| 操碰97| 久久99热这里| 日本操B视频在线观看| www.久久66| 99网址在线观看| 激情五月深爱婷婷| 91丁香| 亚洲av网站| 九九色逼| 日韩AV在线影片| 五月激情婷婷开心| 五月丁香色综合| 久久精品9| 丁香九月婷婷| 欧美成人AAA片一区国产精品| 亚洲五月天狠狠| 婷婷黄色网| 色五月婷婷九月| 五月丁香六月综合基地| 天天天天操| 五月丁香另类网| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 丁香五月欧美激情| 深爱激情AV| 丁香五月天AV在线 | 九九九九综合| 国产亚洲精品久久久久久久久动漫 | 天天激情5月天亚洲| 强壮的公次次弄得我高潮A片日本 | 精品色色网| 亚洲激情六月| 色五月丁香婷婷| 五月丁香婷婷激情| 538任你爽视频不一样的| 日韩成人电影AV| 色之综合网| 182.t午在线观看| 9热在线观看| 色丁香五月天射婷婷爱婷婷| H亚洲| av在线观看免费| 色六月丁香婷婷狠狠干| 91日韩美女被插视频| 亭亭玉月丁香| 欧美婷婷综合| 99久久国产宗和精品1上映| 97成人操| 99热久| 丁香婷婷视频一区二区| 入口五月婷婷六月香| 99色在线观看视频者| 久久女人天堂| 性日本精品| 色五月综合网| 人妻操日日| 久久婷婷影院| 99色五月| 五月丁香六月婷婷综合网缴情| 91丨九色丨熟女| 日韩AV中文在线观看| 91丁香五月| 婷婷成人五月天一区| 玖玖婷婷五月| 超碰无码老师| 国产做A爰片毛片A片美国| 精品久久这里热66| 五月丁香狠狠| 国产阿姨日皮艹逼内射视频| 五月天久久综合| 日韩久久系列| 日本天天操| 丁香五月激情啪| 婷婷五月六月丁香综合| 天天肏屄夜夜爽| 婷婷玖玖五月天| 国产成人综合亚洲| 久热免费视频| 五月丁香影视| 91色色色| 荷兰av一级| 伍月婷婷六月丁香| 丁香五月狠狠综合欧美| 人人色婷婷五月天| 亚洲五月婷婷| 五月久久婷婷| av在线观看网站| 99干在线| 美女爆乳18禁www久久久久久| 嫩草AV久久伊人妇女超级A | 99热6色| 国产精品久久久丁香五月八戒视频| 婷婷丁香五月天婷婷| 久久最新色| 午夜日韩久久久网站| 婷婷碰碰| 黄色片avv| 国产欧美熟妇另类久久久| 综合网亚洲| 五月丁香婷婷色色色| 99热在线播放| 天天综合精品| 日日干天天| 精品五月天| 天天天天色天天天天天干| 开心五月丁香婷婷| 男女久久婷婷五月天| 日日婷婷不卡| 思思热久久久久思思热| 99久久成人| www好屌操| 色情五月天se| 五月丁香婷庭在线| 97婷婷五月天| 色播五月婷婷| 色欲婷婷五月天丁香| 亭亭五月丁香五月天激情| 五月天婷婷在线播放| 色婷婷基地| 色五月婷婷丁香五月| 日本va欧美va欧美va| 99视频热| 天天爽夜夜爽夜夜爽精品视频| 日日夜夜狠狠操| 色五婷婷开心缴| 国内外色色色色色成人视频| 久热黄色| 久热91| 国产高潮A片羞羞视频涩涩| 免费无码毛片一区二区A片| 天天射影院| 免费看欧美成人A片无码| 内射在线CHINESE| 丁香激情综合| 亚洲色婷婷五月天| 久久婷婷青草五月天| 国产在线6| site:feetmall.com| 五月婷在线播放| 丁香六月综合| 狠狠干,狠狠操| 中文字幕无码人妻少妇免费视频| 99干在线视频| 性欧美日本| 六月色日韩| 热99re| 天天爱天天做天天| 可以直接看的AV| 欧美成人精品A片免费一区99| 激情五月婷婷色综合| 丁香六月综合激| 激情久久五月天| www.91.com处女在线直播| 99热只有精品在线观看| 五月丁香六月婷婷色日| 综合网五月| 婷婷欠久少妇| 日本美女上人| 思思热热久久| 丁香六月啪啪啪| 无码人妻少妇色欲AV一区二区| 91av视频| 99热久| 色婷五月| 日本欧美在线| 丁香五月婷婷av影院| 九九人人精品| 五月婷婷插一插| 五月丁香六月| 免费看欧美成人A片无码| 久久九九囯产| 五月天伊人av| 色婷婷久久| 99色视频| 婷婷欧美综合| 深爱激情六月| 大香网伊人久久综合| 热久久婷婷| 五月天色婷好好| 久久丁香五月天| 99精品免费| 97操碰在线视频| 五月婷庭丁香在线| 婷婷天堂综合| 婷婷五月丁香激情图片| 5月婷婷6月丁香aV| 久热中文字幕| 五月天婷婷丁香人人操91| 色情·com| 99精品在线| 超碰97在线操| 九九视频免费| 激情人妻综合| 人人草碰| 色五月婷婷婷婷| 激情五月天色播| 激情五月天色婷婷综合| 天天爽天天摸| 亚洲亚洲人成综合网络| 六月99天天婷婷激情综合| 99热都是精品| 亲子乱AV-区二区三区| 99热这里只有精品10| 五月天婷婷免费| 日韩AV在线免费| 夜夜噜夜夜奇| 天天做天天爽| 久久中文人妻系列| 另类在线| 色婷婷777狠狠| 久久精品视频在这里有| 激情图片亚洲| 人人色AV| 精品无码久久久久久久久| 99re在线视频精品,这里只有精品18,| 26UUU欧美激情一区二区| 一本九九色| 五月丁香激情六月| 丁香五月婷婷啪啪视频| 九九热区一区二区三区| 26uuu欧美| 深爱激情中文五月天av| 超碰人妻在线| 婷婷丁香熟妇综合网| 在线天堂9| 国产44页| 丁香六月综合| 91九色精品| 日亚二欧美| 激情婷婷九月| 9l视频自拍9l视频自拍九色学生| 婷婷性爱视频在线| 激情五月综合婷婷| 久久视频婷婷| 中文字幕精品在线观看| 婷婷久久丁香五月| 99热在线播放| WWW色综合| 五月丁香| 久久只这里有精品| 婷婷的五月天另类视频| 中文字幕色色| www久久久久| 99热在线观看免费精品| 久久综合伊人77777蜜臀| 亚洲一区二区无遮挡A片| 99热网址| 99热6这里只有精品| 色婷婷五月影视| 综合五月婷婷| 亚洲性图一区二区| 1024在线视频| 五月天婷婷伊人| 97人人操在线| 91性高潮久久久久久久久| 99热精品网| 日韩在线观看网址| 99乱视频| 婷婷丁香97| 久久性视频| 日日射天天射| 欧美婷婷精品激| 996er热| 美女天天艹人人爽| 射满了还射免费在线观看 -午夜版全集-新视觉影院 | 五月丁香六月婷婷,婷| 99在线精品免费视频| 激情性五月天免费小说视频| 婷婷的色色五月天| 99热这里只有精品55| 欧美毛片www| 中文av在线观看| 成人 在线 日韩| 婷五月丁香| 3DAV亚洲香蕉久久 一区二区| 大婷婷色呦呦噜噜色呦呦噜噜| 99热在线观看精品| 乱岳熟女50岁| 99热这里只有精品9| 超碰99在线观看| 屁股翘好撅高迎合跪趴| 99热成人| 天天激情视频| 五月天另类图片区99| 五月婷婷五月| 欧美成人网99网| 九九伊人网| 五月婷婷很很色| 人人综合久| 婷婷六月丁香激情综合| 99人人操人人操人人精| 强辱丰满人妻HD中文字幕| 婷婷五月丁香五月综合网| 九九99久久| 久久涩视频| 在线成人网站| 五月丁香婷婷俺| 色婷婷WWW| 丁香五月婷婷综合激情啪啪啪啪啪啪啪| 97干97色| 天天天天天日| 成人婷婷桔色| 丁香色成人| 潘金莲AAAAAAAAAA| 六月丁香网| 可以看的av网站| 天天日日天天| 婷婷五月天黄色| 中文字幕人妻一区二区| 中文字幕在线日亚洲9| 26uuu精品一区二区| 2025最新亚洲激情在线| 琪琪色热色色| 丁香五月熟女| 少妇人妻丰满做爰XXX| 亚韩在线视频| 婷婷五月天综合久久| 亚洲视频丁香网va| 啪啪啪综合网| 九九视屏| 亚洲av综合在线| 综合激情五月天| 人人操插| 丁香六月婷| 亚洲va欧美va国产综合久久久| 婷婷丁香社区网| www一起操| 黄色aa观看aaguochan| 九九无码| 狠狠操综合| yellow视频在线观看91| 91婷婷五月天嫩女| 5月丁香六月婷婷| 六月激情婷婷综合| 99丁香五月婷| 九九精品在线视频观看| 激情久久肏屄视频| 狠狠色噜噜狠狠| 婷婷97C| 一级黄在线| 性做爰1一7伦| CHINESE熟女老女人HD视频| 九月婷婷久久| 操久久网| 99ri精品| 大香蕉五月丁香| 午夜九九九九九九九九九九九九九| 狠狠干综合网| 五月天久久网站| 丁香综合网| 丁香五月激情性色郤| 成人婷婷五月| 丁香激情六月天婷婷| 婷婷五月花| 国内一级片| 久久您您综合网| 影音先锋AV男人站| 久久这里只有精品视频15 | 日日懆天天懆| 久久这里有精品视频在线免费观看| 狠狠色无码| 婷婷五月天伊人网在线观看视频| 婷婷久久夜| 丁香五月aV| 五月丁香六月婷婷免费| 婷婷五月丁香五月天| 欧美综合激情五月| 一级二级香港秋霞欧美欧美秋霞| 丁香五月六月激情| 五月天六月婷| 少妇综合网| 手机旧版看人妻1025| 久久9精品视频| 丁香五月婷婷亚洲综合精品| 婷婷视频网| 很很干天天干| 97人人干| 99九九这里有免费视频| 五月色丁香婷婷综合| 色99无码| 六月丁香综合| 久久机热这里只有精品免费视频| 开心丁五月| 六月婷婷影院| 深爱五月激情| 久久色婷婷| 精品久热| 婷婷狠狠综合网入口| 激情五月天婷婷丁香| 日韩综合久| 色婷婷丁香| 欧美激情Va| 日韩色色视频www| 婷婷 丁香 精品| 久久伊人大香蕉| 亚洲中文字幕在线观看| 色婷婷狠狠久久综合五月| 大香蕉九九操| 婷婷丁香色五月亚洲| 一二三区视频韩国| 99热官网| 99九九精品| 91呦呦呦| 婷婷99中文字幕| 久久亚洲色导航| 这里只有精品网| 亚洲成人影视在线观看| 久久精品99国产精品日本| 日本欧美999久久久三级片| 99激情网| 色婷婷激情视频| 91干在线| AA片在线观看视频在线播放| 国产精品岛国片在线观看免费| 91精品久久久久久| 久久九九在线视频| 九九碰九九爱97| 丁香六月丁香婷婷激情| 天天综合网91| 天天摸天天高潮天天爽| 婷婷中文无码| 香蕉婷婷五月| 91男同| 天天干天天爽天天爽| 色婷婷狠| 99干免费视频| 99色色爰| 婷婷va| 激情五月激情综合网| 99热在线观看99| 热久久77777| 久久婷婷五月综合色丁香| 五月综合激情婷婷六月色窝| 午夜丁香综合婷婷| 色情久久久| 久久机热/这里只有精品| 夜色.cnm| 天天看片日日夜夜| 热久国产| 熟妇天天综合| 六月色婷婷欧美| 久久香蕉丁香| 久久密臀婷婷| 婷婷婷色五月| 亚洲高清在线| 一级黄色操B| 2020夜夜操天天爽| 天天色宗合| 五月婷婷草| 日日操,夜夜爽| 综合色99| BT综合在线视频观看| av操一操| 国产人妻777人伦精品HD| 国产成人网| 丁香五月天视频| www.婷婷久久五月天| 精品人妻伦| 99热啪啪| 国产激情在线| 久久丁香五月婷| 亚洲春色奇米影视| 激情五月深爱五月| 成人日韩欧美| 欧美色99| 午夜婷婷久久| 久热精品在看| 日本颜色视频人人爱| 超碰人妻公开在线| 天天爽天天弄| 五月天丁香网| 九九精品网站| 色综合com| 操97免费超级视频| 婷婷色综合| 综合激情九月婷婷,激情综合婷婷中文字| yazhouzonghesese| 日本色婷婷| 激情桃色网| 中文字幕永久在线| 久久性爱视频| 婷婷午夜| 97色婷| 激情综合色| Av大香蕉| 九九九九这里只有精品| 五月婷在线| 99热久| 久久丝丝热| 99热免费在线| 亚洲另类婷婷五月丁香在线播放| 色色性爱视频| 五月婷丁香花| 婷婷五月色天| 五月婷婷丁香啪啪| 国产乱子轮XXX农村| 日本www五月婷婷| 99精品偷自拍| 丁香五月婷婷成人网| 天天干天天干天天| 五月婷婷综合色拍| Www.sesese丁香| 思思国产99| 第1影院之五月婷婷| 激情五月天婷婷在线网址发给我| 欧美久人人| 色色五月婷婷久久| 99精品热视频| 色婷五月| 成人天天爽| 极品人妻VIDEOSSS人妻| 五月停停丁香| 94干大香蕉| 欧美日韩成人免费在线| 亚洲精品视频在线| 影音先锋女人AA鲁色资源| 色五月婷婷开心| 超级碰碰99| 天天操夜夜操| 九九热这里只有精品7| 99色色网| 五月天色婷婷伊人网| 五月丁香婷婷色播无码| 久青操| 噜噜色五月| 超碰亚洲欧美| 人人摸人人| 色情五月丁香| 人妻丰满精品一区二区A片| 精品草原久久视频| 丁香 久久| 91久久久久久| 国产,欧美,日韩,性爱| 激情九九六月激情免费视频| 成人在线日韩| 极品人妻videosss人妻| 六月婷婷最新网址| 激情综合网五月丁香| 二人电影免费版在线观看| 久久综合站| 五月丁香婷婷色色色| 亚洲精品欧洲精品| 综合婷| 国产99久久久| 亚洲久久婷婷| 婷婷月综合| 大地资源色婷婷视频在线| 色婷婷成人五月| 亚洲区,视频区,视频区免费| 婷婷五月天天| www.婷婷六月天| www,婷婷五月天777me,com| 91啪啪啪啪| 丁香五月性| 色色AV色色色东莞| 色五月婷婷五月丁香五月激情五月视频| 天天干天天日蜜臀av| 伊人久久大香蕉网| 手机AVAV天堂看网| 午夜爱插插| 九九操屄| 91精品综合久久久久久五月丁香| 99热久草| 亚洲综合字幕色色| 艹色18p| 99久久综合网| 天天色天天日| 婷婷丁香五月激情中文字幕版| 26uuu偷拍亚洲欧洲综合| 最近中文字幕大全免费版在线| 可以免费观看的AV| 亚洲亚洲人成综合网络| 亚洲最大五月六月丁香婷婷| 精热在线综合网| 色开心五月丁香| 国产肥白大熟妇BBBB视频| 玖玖婷婷色五月| 亚洲五月天婷婷综合| 丁香六月啪| 日韩精品99久久| www.色五月| 五月花激情| 激情五月激情综合网| 天天插天天干天天舔| www.久久| 久久玖玖综合| 久草免费福利视频| www五月| 另类图片色五月| 亚洲va欧美va天堂v国产综合| 婷婷瑟五月天久久综合| 日本三级中国三级99人妇网站| 日本理论久久| 天天色中文字幕女优AV| 婷婷亚洲天堂| 激情婷婷色色| 美欧成人视频| 99热这里只要精品免费| 婷婷丁香人妻| 做爱夜夜干天天操| 婷婷五月丁香六月| 99碰| 色射7856五月天激情四射| 成人无码免费一区二区中文| 91欧美| 五月婷在线| 免费黄色视频网址| 伊人网大香| 美国十月色婷婷在线观看| 色丁香影院| 丁香五月激情性色郤| 天天综合图片| site:picc-up.com| 丁香激惜男女| 去干网av| 丁香五月婷婷深爱综合激情 | 亚洲天天| 九九热经典视频在线观看| 婷婷五月天亚洲图片| 综合激情五月丁香| 五月天播播综合| 丁香六月亚洲| 亚洲激情淫网| 操人妻90p| 欧洲婷婷五月天| 久久亚洲婷婷综合色五月| 久久久思思热| 婷婷五月天伊人在线| 色久婷婷五月| 色频玖玖五月天| 丁香六月婷婷综合激情欧美 | 99热福利| 美女天天艹人人爽| 亚洲综合激| 狠狠va| 五月婷婷免费| 快色t v在线入口| 特级片神马电影| 久久色这里只有精品| 99热精品在线播放| 五月婷婷在线免费观看| 色五月五月天色婷婷色五月| 亚洲综合另类| 午夜成人天堂久久无码日韩久久| 九九激情综合| 国产67194| 大地资源色婷婷视频在线| 五月天久久色| 色噜婷婷| 97五月婷婷| 超碰91av| 婷婷五月成人色综合| 五月激情网五月综合网| 毛片新网地| 天天日本夜夜谢| 97在线刺激| 五月丁香综合在线| 国产AV一区二区三区日韩| 丁香,开心成人,久久| 一区中文字幕电影| 熟女网站久久| 九月丁香婷婷综合激情| 五月天色婷婷图片| 逼里香不卡| 大香蕉网站,大香蕉综合| 天天色天天日| 婷婷丁香九色| 69综合在线| 快乐激情五月色婷婷| 国产日日夜夜操| 久久婷婷成人综合色怡春院| 99热这里都是精品| 97色干| 丁香五月 性爱| 色丁香五月| 欧洲婷婷五月天| 开心五月天激情| 97精品自拍视频| 久久99精品视频| aaaa久久| 亚洲激情婷婷| 国产五月天激情小说| 久久六月综合| 久久99网| 国产性爱大片久久| 日本三级日本三级三级人妇四虎| 色情丁香五月天| 人妻啪啪啪| 五月丁香亭亭| 免费V片在线| 午夜丁香丁香婷婷| 狠狠五月综合在线| 五月激情视频| 色五月婷婷7777| www.91.com黄| 久久66精品| 九色视频91| 性爱网五月婷婷| 无码人妻电影| 婷婷丁香五月天中文字幕| 色婷婷久久综合| www99精品日韩| 日韩成人网址| 婷婷久久亚洲| 丁香色五月 97干| 亚洲爱婷婷| 午夜丁香六月婷| WWW.17C亚洲精品| 日日躁夜夜躁狠狠久久AV| 免费看成人747474九号视频在线观看| 天天AV导航网| 久久色五月天| 九九综合影音先锋| 丁香婷婷大香蕉| 五月天综合婷婷| 婷婷五月天基地| 丁香五月综合激情性爱| 天天插天天干天天舔| 综合色播| www:99热视频| 婷婷丁香五月六月激情| www.五月婷婷| 九九九九无码| 伊人五月人妻精品| 精品乱码久久久久| www.久久9| 久久婷婷五月天激情唯美| 狠狠操天天干| 色色色五月婷| 六月丁香婷婷五月| 被男人添B超爽视频| 久久多色| 五月激情婷婷丁香天堂| 97caop| 综合丁香婷婷五月天| 婷婷丁香花五月天| av人人操| 婷婷综合激情五月综合| 天天草天天爽| 久久激情五月婷婷| 性色五月天| 99久久国产综合精品五月天喷水\| 色五月丁香总合网| 亚洲天堂热| 操97免费超级视频| 欧美综合激情丁香五月六月婷| co超碰在线观看| 婷婷五月天激情偷拍| 久久免片| 天天操无码| 国产综合婷婷| 亚洲Av成人在线观看| 色婷婷色婷婷五月| 91无码一起草| 99精品爱| 黄色热99| 色婷婷综合五月| 最近中文字幕大全免费版在线| 综合狠狠伊人| 六月丁香激情网| 丁香综合网| 我爱大香蕉| 激情九月婷婷| 97福利视频| 伊人久久婷婷| 久久五月婷| 欧美久热| 99热久| 久久欧洲久久| www.狠狠| 99热这里只有精品国产免费| 色婷久久| 91精品熟女| 2018国产大陆天天弄| 婷婷丁香五月天在线视频| 丁香网站| 婷婷永久在线| 国产69精品久久久久999小说| 黄色片avv| www.激情com| 狠狠摸狠狠摸| 亚洲婷婷激情综合激情999精品| 开心五月婷婷婷美女| 亚洲第二AV| 人人爽天天爽| 久久色五月天| 99久久久免费| 丁香五月激情综合| 一级黄色影片| 婷婷一本和五月丁香| 久久一级AV| 色五婷婷| 激情 婷婷| 激情丁香九九五月综合网| 97精品欧美91久久久久久久| 99热精品中文字幕| 色小说婷婷五月天天天| 激情人妻蜜夜系列区| 精品久久66| 久久激情天堂| 欧美日韩999| 人妻乱码久久久| 亚洲丁香花五月丁香花| 亚洲成人五月天| 婷婷五月综合久久中文字幕| 色色色色五月| 欧美一区二区三区不卡影视| 有码一区二区三区| 欧美va在线观看| 91丨九色丨大屁股| 午夜69成人做爰视频| 久久丁香久久| 久久婷狠狠色| 九九热免费视频| 色播五月丁香| 亚洲天99| 婷婷综合五月天| 天天爽天天摸| 任你擦免费视频| 色婷婷网| www.成人婷婷综合| 亚洲成人AV在线播放| 99精彩视频| 激情五月,色播五月| 99日本黄站| 少妇搡BBBB搡BBB搡毛茸茸| 久久一热| 超碰在线91| 狠狠干.com| 97九色视频| 啪啪啪啪五月天| 激情丁香久久| 免费观看的av| 狠色色狠网| 大香蕉啪啪| 日韩艹比| 色五月天丁香婷婷| 精品九九视频在线观看| 九月av| 国产国产乱老熟女视频网站97|