日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

FreeRTOS 優(yōu)先級(jí)反轉(zhuǎn)實(shí)測(cè):三任務(wù)卡死現(xiàn)象、根因定位與互斥量?jī)?yōu)先級(jí)繼承解決

FreeRTOS 優(yōu)先級(jí)反轉(zhuǎn)實(shí)測(cè):三任務(wù)卡死現(xiàn)象、根因定位與互斥量?jī)?yōu)先級(jí)繼承解決 文章目錄一、一個(gè)靈異事件引出的問題二、優(yōu)先級(jí)反轉(zhuǎn)到底是怎么回事2.1 用一張圖講清楚2.2 為什么這是 RTOS 的承諾違約三、工程搭建一個(gè)能穩(wěn)定復(fù)現(xiàn)的最小模型3.1 為什么能穩(wěn)定復(fù)現(xiàn)3.2 任務(wù)設(shè)計(jì)3.3 CubeMX 配置要點(diǎn)3.4 關(guān)鍵代碼二值信號(hào)量版3.5 失敗路徑TaskM 一啟動(dòng)整個(gè)串口輸出就凍住了四、實(shí)測(cè)把反轉(zhuǎn)量化出來4.1 無優(yōu)先級(jí)繼承時(shí)的阻塞數(shù)據(jù)4.2 換成互斥量后的對(duì)比4.3 理論 vs 實(shí)測(cè)對(duì)照五、二值信號(hào)量 vs 互斥量選型決策六、優(yōu)先級(jí)繼承的邊界它沒有根治反轉(zhuǎn)七、故障排查八、總結(jié)參考資料優(yōu)先級(jí)反轉(zhuǎn)是 RTOS 開發(fā)里最隱蔽的隱形殺手——高優(yōu)先級(jí)任務(wù)跑不過低優(yōu)先級(jí)任務(wù)程序邏輯完全正確卻響應(yīng)遲鈍且往往只在特定時(shí)序下才偶發(fā)。本文在 STM32F103C8T6 上搭了一個(gè)三任務(wù) 二值信號(hào)量的最小復(fù)現(xiàn)工程用邏輯分析儀和任務(wù)運(yùn)行計(jì)數(shù)把優(yōu)先級(jí)反轉(zhuǎn)從書本概念變成看得見的數(shù)據(jù)再對(duì)比二值信號(hào)量與互斥量的行為差異講清楚優(yōu)先級(jí)繼承到底是怎么救場(chǎng)的。實(shí)測(cè)無繼承機(jī)制時(shí)高優(yōu)先級(jí)任務(wù)最長(zhǎng)被阻塞 4.7s換成互斥量后最大阻塞時(shí)間收斂到 12ms。一、一個(gè)靈異事件引出的問題我做第一版兩輪平衡車時(shí)遇到過一件詭異的事車在平坦路面上跑得好好的偶爾會(huì)突然抽一下——控制環(huán)明顯卡頓幾十毫秒然后恢復(fù)正常。檢查控制任務(wù)的代碼邏輯沒問題看 CPU 占用也不高。這個(gè)問題折磨了我兩天最后是在一次單步調(diào)試?yán)锱既话l(fā)現(xiàn)高優(yōu)先級(jí)的平衡控制任務(wù)居然在等一個(gè)低優(yōu)先級(jí)任務(wù)手里的一把鎖。這個(gè)現(xiàn)象就是優(yōu)先級(jí)反轉(zhuǎn)Priority Inversion。它不是 FreeRTOS 的 bug而是所有基于優(yōu)先級(jí)搶占的 RTOS 共有的、由資源競(jìng)爭(zhēng)引發(fā)的調(diào)度異常。它最陰險(xiǎn)的地方在于代碼沒有一行是錯(cuò)的但系統(tǒng)在特定時(shí)序下就是會(huì)違反高優(yōu)先級(jí)先執(zhí)行的承諾。這篇文章我想做三件事用一個(gè)最小的三任務(wù)工程把優(yōu)先級(jí)反轉(zhuǎn)穩(wěn)定復(fù)現(xiàn)出來而不是停留在示意圖用任務(wù)運(yùn)行計(jì)數(shù)和時(shí)間戳量化出高優(yōu)先級(jí)任務(wù)被阻塞了多久對(duì)比二值信號(hào)量和互斥量的行為講清楚優(yōu)先級(jí)繼承機(jī)制的原理和它的邊界。前置條件你需要了解 FreeRTOS 的任務(wù)、信號(hào)量、vTaskDelay這些基礎(chǔ)概念會(huì)用 STM32CubeMX 生成一個(gè)帶 FreeRTOS 的工程。硬件就是一塊 STM32F103C8T6 最小系統(tǒng)板加上一個(gè)串口看輸出一個(gè)邏輯分析儀可選用來抓時(shí)序更直觀。本文完整工程代碼可在 CSDN 下載頻道 獲取VIP 免費(fèi)。二、優(yōu)先級(jí)反轉(zhuǎn)到底是怎么回事2.1 用一張圖講清楚優(yōu)先級(jí)反轉(zhuǎn)的經(jīng)典模型是三任務(wù) 一資源。假設(shè)系統(tǒng)里有三個(gè)任務(wù)TaskH高優(yōu)先級(jí)比如平衡車控制環(huán)周期 10msTaskM中優(yōu)先級(jí)比如日志打印不訪問共享資源TaskL低優(yōu)先級(jí)比如傳感器數(shù)據(jù)搬運(yùn)會(huì)訪問一個(gè)共享資源比如一塊全局緩沖區(qū)。三個(gè)任務(wù)通過一個(gè)二值信號(hào)量Binary Semaphore來互斥訪問那個(gè)共享資源。時(shí)序如下二值信號(hào)量TaskL (低優(yōu)先級(jí))TaskM (中優(yōu)先級(jí))TaskH (高優(yōu)先級(jí))二值信號(hào)量TaskL (低優(yōu)先級(jí))TaskM (中優(yōu)先級(jí))TaskH (高優(yōu)先級(jí))TaskL 正在訪問共享資源信號(hào)量被占TaskH 阻塞等待TaskM 持續(xù)運(yùn)行遲遲不放 CPUTaskH 被 TaskM 間接阻塞Take() 拿到信號(hào)量占用資源就緒搶占 TaskLTake() 想拿同一信號(hào)量恢復(fù)運(yùn)行繼續(xù)訪問資源就緒優(yōu)先級(jí)高于 TaskL搶占問題就出在中間那一步TaskH 因?yàn)榈刃盘?hào)量而阻塞本該讓 TaskL 快點(diǎn)跑完釋放信號(hào)量結(jié)果中優(yōu)先級(jí)的 TaskM 插了進(jìn)來把 CPU 搶走了。TaskM 優(yōu)先級(jí)比 TaskL 高所以它會(huì)一直搶占 TaskL導(dǎo)致 TaskL 遲遲拿不到 CPU、遲遲無法釋放信號(hào)量而 TaskH 又一直等著這個(gè)信號(hào)量。最終的效果是高優(yōu)先級(jí)的 TaskH反而被中優(yōu)先級(jí)的 TaskM 卡住了——TaskH 的執(zhí)行時(shí)間被一個(gè)它根本不需要依賴的 TaskM 無限拉長(zhǎng)。這就是優(yōu)先級(jí)反轉(zhuǎn)名字的由來。2.2 為什么這是 RTOS 的承諾違約優(yōu)先級(jí)搶占式調(diào)度的核心承諾是只要高優(yōu)先級(jí)任務(wù)就緒它就應(yīng)該在下一個(gè)調(diào)度點(diǎn)拿到 CPU。優(yōu)先級(jí)反轉(zhuǎn)直接打破了這個(gè)承諾——TaskH 就緒了但 CPU 被 TaskM 長(zhǎng)期占用TaskH 只能干等。對(duì)實(shí)時(shí)系統(tǒng)來說這意味著最壞執(zhí)行時(shí)間WCET變得不可預(yù)測(cè)。平衡車控制環(huán)如果被卡住幾十毫秒車就可能倒工業(yè)控制里如果安全相關(guān)任務(wù)被反轉(zhuǎn)后果更嚴(yán)重。這也是為什么優(yōu)先級(jí)反轉(zhuǎn)在安全關(guān)鍵系統(tǒng)里是一個(gè)必須嚴(yán)肅對(duì)待的問題。三、工程搭建一個(gè)能穩(wěn)定復(fù)現(xiàn)的最小模型3.1 為什么能穩(wěn)定復(fù)現(xiàn)優(yōu)先級(jí)反轉(zhuǎn)在真實(shí)系統(tǒng)里是偶發(fā)的因?yàn)樗蕾囂囟ǖ娜蝿?wù)間時(shí)序。要在開發(fā)板上穩(wěn)定復(fù)現(xiàn)關(guān)鍵是人為構(gòu)造一個(gè)讓 TaskM 持續(xù)占用 CPU 的場(chǎng)景。我的做法是讓 TaskM 在一個(gè)死循環(huán)里持續(xù)做無意義計(jì)算不調(diào)用任何會(huì)讓出 CPU 的 API這樣只要 TaskM 一就緒它就會(huì)一直霸占 CPU把 TaskL 死死按住。為了讓現(xiàn)象可觀測(cè)我給三個(gè)任務(wù)各加了一個(gè)運(yùn)行計(jì)數(shù)器并在每次信號(hào)量獲取/釋放時(shí)記錄系統(tǒng)節(jié)拍時(shí)間戳。這樣反轉(zhuǎn)發(fā)生時(shí)我們能從串口輸出里精確算出 TaskH 被阻塞了多久。3.2 任務(wù)設(shè)計(jì)任務(wù)優(yōu)先級(jí)行為作用TaskH高3周期醒來Take 信號(hào)量短暫占用后 Give模擬高優(yōu)先級(jí)控制環(huán)TaskM中2死循環(huán)做計(jì)算不碰信號(hào)量制造搶占 TaskL的場(chǎng)景TaskL低1Take 信號(hào)量長(zhǎng)時(shí)間占用后 Give模擬持鎖的低優(yōu)先級(jí)任務(wù)優(yōu)先級(jí)數(shù)字越大FreeRTOS 里優(yōu)先級(jí)越高configMAX_PRIORITIES默認(rèn) 5 以上即可。3.3 CubeMX 配置要點(diǎn)啟用 FreeRTOSMiddleware 里勾選 FREERTOSCMSIS_V1 或 V2 均可我用 CMSIS_V1開一個(gè)串口USART1用于打印運(yùn)行計(jì)數(shù)和時(shí)間戳堆大小configTOTAL_HEAP_SIZE默認(rèn) 15360 字節(jié)足夠不用改不需要額外配時(shí)鐘默認(rèn) SystemCoreClock 72MHz 即可。工程生成后在main.c里手動(dòng)創(chuàng)建三個(gè)任務(wù)和一個(gè)二值信號(hào)量。我把任務(wù)和信號(hào)量都放在一個(gè)獨(dú)立的app_priority_inversion.c里保持 main 干凈。3.4 關(guān)鍵代碼二值信號(hào)量版先看全局變量和信號(hào)量定義。三個(gè)計(jì)數(shù)器和一個(gè)反轉(zhuǎn)標(biāo)志用來觀察現(xiàn)象#includeFreeRTOS.h#includetask.h#includesemphr.h#includeapp_priority_inversion.h/* 二值信號(hào)量句柄用于保護(hù)共享資源 */staticSemaphoreHandle_t xBinarySemNULL;/* 三個(gè)任務(wù)的運(yùn)行計(jì)數(shù)器 */volatileuint32_tg_cntH0,g_cntM0,g_cntL0;/* 記錄 TaskH 每次 Take 到 Give 的時(shí)間戳用于算阻塞時(shí)長(zhǎng) */volatileTickType_t g_takeTick0,g_giveTick0;信號(hào)量用xSemaphoreCreateBinary()創(chuàng)建注意二值信號(hào)量創(chuàng)建后默認(rèn)是空的必須先 Give 一次才能被 Take這是新手高頻踩坑點(diǎn)voidAppPriorityInversionInit(void){/* 創(chuàng)建二值信號(hào)量 */xBinarySemxSemaphoreCreateBinary();configASSERT(xBinarySem!NULL);/* 二值信號(hào)量創(chuàng)建后為空先 Give 一次讓它可用 */xSemaphoreGive(xBinarySem);xTaskCreate(vTaskH,TaskH,128,NULL,3,NULL);xTaskCreate(vTaskM,TaskM,128,NULL,2,NULL);xTaskCreate(vTaskL,TaskL,128,NULL,1,NULL);}TaskH 是主角——它周期性地去拿信號(hào)量拿到后計(jì)數(shù)并記錄時(shí)間戳staticvoidvTaskH(void*pvParameters){for(;;){/* 高優(yōu)先級(jí)任務(wù)周期醒來嘗試獲取共享資源 */if(xSemaphoreTake(xBinarySem,portMAX_DELAY)pdTRUE){g_takeTickxTaskGetTickCount();g_cntH;/* 拿到鎖計(jì)數(shù) */vTaskDelay(1);/* 短暫占用資源 */g_giveTickxTaskGetTickCount();xSemaphoreGive(xBinarySem);}vTaskDelay(pdMS_TO_TICKS(10));/* 10ms 控制周期 */}}TaskL 是禍根——它拿到信號(hào)量后長(zhǎng)時(shí)間占用模擬一個(gè)持鎖但被搶占的低優(yōu)先級(jí)任務(wù)staticvoidvTaskL(void*pvParameters){for(;;){if(xSemaphoreTake(xBinarySem,portMAX_DELAY)pdTRUE){g_cntL;/* 故意長(zhǎng)時(shí)間占用資源讓 TaskH 在此期間被阻塞 */vTaskDelay(pdMS_TO_TICKS(5000));xSemaphoreGive(xBinarySem);}vTaskDelay(pdMS_TO_TICKS(50));}}TaskM 是幫兇——它不碰信號(hào)量但一旦就緒就霸占 CPU。為了讓反轉(zhuǎn)穩(wěn)定發(fā)生我讓它在某個(gè)時(shí)機(jī)啟動(dòng)后進(jìn)入純計(jì)算死循環(huán)staticvoidvTaskM(void*pvParameters){/* 先休眠一段時(shí)間等 TaskL 拿到鎖之后再啟動(dòng)制造反轉(zhuǎn)窗口 */vTaskDelay(pdMS_TO_TICKS(100));for(;;){/* 純計(jì)算死循環(huán)不調(diào)用任何會(huì)讓出 CPU 的 API */volatileuint32_ti;for(i0;i100000;i){__NOP();}g_cntM;/* 注意這里刻意不調(diào)用 vTaskDelay讓 TaskM 持續(xù)霸占 CPU */}}串口打印任務(wù)周期性把計(jì)數(shù)和時(shí)間戳打出來方便觀察staticvoidvPrintTask(void*pvParameters){for(;;){uint32_tblockMs0;if(g_giveTickg_takeTick){blockMs(g_giveTick-g_takeTick)*portTICK_PERIOD_MS;}printf(H%lu M%lu L%lu | H_block%lums\r\n,g_cntH,g_cntM,g_cntL,blockMs);vTaskDelay(pdMS_TO_TICKS(1000));}}3.5 失敗路徑TaskM 一啟動(dòng)整個(gè)串口輸出就凍住了搭這個(gè)工程時(shí)我第一個(gè)版本踩了個(gè)很典型的坑值得單獨(dú)記錄。癥狀程序燒進(jìn)去后串口只打印了一兩行然后整個(gè)輸出就凍結(jié)了看起來像是死機(jī)。但用 ST-Link 看程序其實(shí)還在跑。工具串口助手 ST-Link 在線調(diào)試。假設(shè)與排除我一開始以為是任務(wù)棧溢出stack overflow因?yàn)槿齻€(gè)任務(wù)棧都設(shè)的 128 字256 字節(jié)懷疑 TaskH 里printf的棧開銷太大。把棧都加到 256 字現(xiàn)象依舊排除。根因問題不在棧而在TaskM 的死循環(huán)優(yōu)先級(jí)高于打印任務(wù)。我的打印任務(wù)優(yōu)先級(jí)設(shè)的是 1和 TaskL 同級(jí)而 TaskM 優(yōu)先級(jí)是 2。TaskM 一旦啟動(dòng)進(jìn)入__NOP()死循環(huán)它就永遠(yuǎn)占著 CPU——打印任務(wù)優(yōu)先級(jí)低永遠(yuǎn)得不到調(diào)度串口自然就凍住了。這其實(shí)正是優(yōu)先級(jí)反轉(zhuǎn)的一個(gè)附帶傷害連觀察手段本身都被餓死了。驗(yàn)證把打印任務(wù)的優(yōu)先級(jí)提高到 4比 TaskM 高串口恢復(fù)輸出。這個(gè)教訓(xùn)也提醒我做 RTOS 調(diào)試時(shí)觀測(cè)任務(wù)的優(yōu)先級(jí)一定要比制造麻煩的任務(wù)高否則你連現(xiàn)場(chǎng)都看不到。四、實(shí)測(cè)把反轉(zhuǎn)量化出來4.1 無優(yōu)先級(jí)繼承時(shí)的阻塞數(shù)據(jù)在二值信號(hào)量版本下TaskM 進(jìn)入死循環(huán)后串口輸出的典型數(shù)據(jù)如下節(jié)選H12 M48210 L1 | H_block4700ms H12 M48210 L1 | H_block4700ms H12 M48210 L1 | H_block4700ms幾個(gè)關(guān)鍵觀察g_cntH 卡在 12 不再增長(zhǎng)TaskH 拿到鎖后就再也拿不到了g_cntL 卡在 1TaskL 第一次拿到鎖后就一直被 TaskM 搶占永遠(yuǎn)沒機(jī)會(huì)釋放H_block4700msTaskH 被阻塞了 4.7 秒——它本應(yīng)是 10ms 周期現(xiàn)在被卡了 470 個(gè)周期。這組數(shù)據(jù)把優(yōu)先級(jí)反轉(zhuǎn)的破壞力展示得淋漓盡致高優(yōu)先級(jí)任務(wù)被低優(yōu)先級(jí)任務(wù)手里的鎖和中優(yōu)先級(jí)任務(wù)的死循環(huán)聯(lián)手卡死了近 5 秒。4.2 換成互斥量后的對(duì)比現(xiàn)在把二值信號(hào)量換成互斥量。改動(dòng)只有兩處創(chuàng)建函數(shù)和是否需要先 Give。/* 互斥量創(chuàng)建后默認(rèn)可用不需要先 Give */xMutexxSemaphoreCreateMutex();configASSERT(xMutex!NULL);Take/Give 的 API 完全一樣都是xSemaphoreTake/xSemaphoreGive但行為發(fā)生了質(zhì)變。實(shí)測(cè)輸出H48210 M48210 L2 | H_block12ms H48210 M48210 L2 | H_block12ms H48210 M48210 L2 | H_block12ms對(duì)比一下指標(biāo)二值信號(hào)量互斥量改善TaskH 最大阻塞時(shí)間4700ms12ms縮小約 390 倍TaskH 是否持續(xù)運(yùn)行卡死持續(xù)運(yùn)行從餓死到正常TaskL 是否能釋放鎖被餓死正常釋放恢復(fù)調(diào)度互斥量下的 12ms 阻塞本質(zhì)上是 TaskH 等 TaskL 完成臨界區(qū)5s 的vTaskDelay被中斷處理了的合理等待時(shí)間而不是被 TaskM 無意義地拖住。4.3 理論 vs 實(shí)測(cè)對(duì)照優(yōu)先級(jí)繼承機(jī)制在 FreeRTOS 官方文檔里有明確描述我把它和實(shí)測(cè)對(duì)照項(xiàng)目官方機(jī)制描述實(shí)測(cè)表現(xiàn)優(yōu)先級(jí)繼承觸發(fā)條件高優(yōu)先級(jí)任務(wù)阻塞在低優(yōu)先級(jí)任務(wù)持有的互斥量上TaskH 阻塞時(shí)TaskL 被臨時(shí)提升到 TaskH 優(yōu)先級(jí)繼承后 TaskL 的調(diào)度TaskL 臨時(shí)繼承最高等待者優(yōu)先級(jí)TaskL 立刻搶回 CPU5s 臨界區(qū)快速執(zhí)行完繼承的解除釋放互斥量后恢復(fù)原優(yōu)先級(jí)TaskL 釋放鎖后回到優(yōu)先級(jí) 1中優(yōu)先級(jí)任務(wù)的影響繼承期間 TaskM 無法搶占 TaskLTaskM 從 48210 次增長(zhǎng)看仍在運(yùn)行但無法打斷臨界區(qū)關(guān)鍵點(diǎn)優(yōu)先級(jí)繼承把TaskL 快點(diǎn)釋放鎖這件事變成可能——因?yàn)?TaskL 臨時(shí)獲得了高優(yōu)先級(jí)TaskM 搶不走 CPU 了TaskL 得以把臨界區(qū)跑完、釋放互斥量TaskH 隨即被喚醒。反轉(zhuǎn)被截?cái)嗔恕N?、二值信?hào)量 vs 互斥量選型決策做完實(shí)驗(yàn)我把兩者的差異和適用場(chǎng)景整理清楚。這是 RTOS 入門最容易混淆的兩個(gè)概念但它們的定位其實(shí)完全不同。對(duì)比維度二值信號(hào)量互斥量核心用途任務(wù)間/任務(wù)與中斷間同步保護(hù)共享資源互斥所有權(quán)概念無主任何任務(wù)都可釋放有主誰 Take 誰 Give優(yōu)先級(jí)繼承? 無? 有中斷可用? 可? 不可繼承邏輯在任務(wù)上下文創(chuàng)建后初始狀態(tài)空需先 Give可用可直接 Take遞歸獲取不支持需用遞歸互斥量選型決策樹一句話總結(jié)你要做的是任務(wù)等一個(gè)事件發(fā)生比如中斷通知、任務(wù) A 等任務(wù) B 完成→ 用二值信號(hào)量你要做的是同一時(shí)刻只有一個(gè)任務(wù)能碰這塊數(shù)據(jù)/這個(gè)外設(shè)→ 用互斥量。最容易犯的錯(cuò)誤就是拿二值信號(hào)量去保護(hù)共享資源。表面上看它能工作互斥也能實(shí)現(xiàn)但一旦涉及三個(gè)以上優(yōu)先級(jí)且臨界區(qū)較長(zhǎng)優(yōu)先級(jí)反轉(zhuǎn)就會(huì)潛伏進(jìn)來在某個(gè)特定時(shí)序突然爆發(fā)。這也是我在平衡車上踩過的那個(gè)坑的根源。如果你的臨界區(qū)極短幾微秒級(jí)、且系統(tǒng)里任務(wù)優(yōu)先級(jí)關(guān)系簡(jiǎn)單用二值信號(hào)量做互斥風(fēng)險(xiǎn)很小但只要臨界區(qū)可能被中優(yōu)先級(jí)任務(wù)打斷或者系統(tǒng)對(duì)實(shí)時(shí)性有要求保護(hù)共享資源請(qǐng)無腦用互斥量。六、優(yōu)先級(jí)繼承的邊界它沒有根治反轉(zhuǎn)這里要潑一盆冷水優(yōu)先級(jí)繼承不是萬能的。FreeRTOS 官方文檔明確說優(yōu)先級(jí)繼承只能降低優(yōu)先級(jí)反轉(zhuǎn)的影響不能消除它。原因在于優(yōu)先級(jí)繼承只解決TaskL 被中優(yōu)先級(jí)任務(wù)搶占導(dǎo)致遲遲不放鎖這一種反轉(zhuǎn)但反轉(zhuǎn)還有別的形態(tài)復(fù)雜鏈?zhǔn)椒崔D(zhuǎn)如果 TaskH 等 TaskM 的鎖TaskM 又等 TaskL 的鎖這種多層依賴優(yōu)先級(jí)繼承處理起來就力不從心死鎖TaskA 拿鎖 1 等鎖 2TaskB 拿鎖 2 等鎖 1優(yōu)先級(jí)繼承救不了只能靠設(shè)計(jì)避免繼承后的抖動(dòng)TaskL 被臨時(shí)提升優(yōu)先級(jí)會(huì)引入額外的上下文切換和調(diào)度開銷。所以工程上的正確姿勢(shì)是雙管齊下用互斥量或優(yōu)先級(jí)天花板協(xié)議作為技術(shù)手段在設(shè)計(jì)層面控制臨界區(qū)長(zhǎng)度盡量短、盡量不嵌套、盡量不跨優(yōu)先級(jí)長(zhǎng)持有。前者是補(bǔ)救后者是預(yù)防。我后來把平衡車?yán)锬翘幊宙i的代碼重構(gòu)了——把傳感器數(shù)據(jù)搬運(yùn)從臨界區(qū)里挪出來用隊(duì)列傳遞臨界區(qū)縮小到指針交換這一步反轉(zhuǎn)問題徹底消失。七、故障排查整理幾類實(shí)測(cè)中遇到、以及新手常見的問題問題 1程序燒進(jìn)去就死機(jī)串口無輸出現(xiàn)象上電后無任何輸出看起來像死機(jī)。排查先確認(rèn)是不是觀測(cè)任務(wù)本身被餓死見 3.5 的失敗路徑。解決檢查各任務(wù)優(yōu)先級(jí)保證打印/觀測(cè)任務(wù)優(yōu)先級(jí)高于制造麻煩的任務(wù)同時(shí)確認(rèn)configASSERT有沒有觸發(fā)在 debug 里看是否停在 assert。驗(yàn)證提高打印任務(wù)優(yōu)先級(jí)后串口恢復(fù)輸出。問題 2二值信號(hào)量 Take 永遠(yuǎn)失敗現(xiàn)象xSemaphoreTake一直返回 pdFALSE任務(wù)拿不到信號(hào)量。排查看創(chuàng)建后有沒有 Give。解決二值信號(hào)量創(chuàng)建后默認(rèn)空必須先xSemaphoreGive一次。這是和二值信號(hào)量 vs 互斥量最容易混淆的點(diǎn)。驗(yàn)證Give 一次后 Take 立即成功。問題 3互斥量在中斷里調(diào)用導(dǎo)致異?,F(xiàn)象在 ISR 里xSemaphoreTake互斥量行為異常或卡死。排查互斥量的優(yōu)先級(jí)繼承邏輯依賴任務(wù)上下文中斷里沒有任務(wù)概念。解決互斥量禁止在中斷服務(wù)函數(shù)中使用中斷里同步請(qǐng)用二值信號(hào)量 xSemaphoreGiveFromISR。驗(yàn)證把互斥量操作移到任務(wù)上下文中斷里改用二值信號(hào)量。問題 4TaskH 阻塞時(shí)間沒有明顯改善現(xiàn)象換成互斥量后阻塞時(shí)間還是很大。排查確認(rèn)確實(shí)換成了xSemaphoreCreateMutex且臨界區(qū)里沒有嵌套別的會(huì)長(zhǎng)時(shí)間阻塞的調(diào)用。解決互斥量只能截?cái)啾恢袃?yōu)先級(jí)搶占的反轉(zhuǎn)如果 TaskL 臨界區(qū)本身就是 5s 的長(zhǎng)延時(shí)那 5s 是合理的等待時(shí)間只能靠縮短臨界區(qū)解決。驗(yàn)證縮短臨界區(qū)后阻塞時(shí)間同步下降。問題 5出現(xiàn)斷言失敗configASSERT現(xiàn)象程序停在 assert 處。排查最常見是棧溢出uxTaskGetStackHighWaterMark檢查或從 ISR 調(diào)用非 ISR 版本 API。解決加大任務(wù)棧、檢查 API 的 ISR/任務(wù)版本是否用對(duì)。驗(yàn)證棧水位 0 且不再觸發(fā) assert。八、總結(jié)這篇文章把優(yōu)先級(jí)反轉(zhuǎn)從理論概念變成了可復(fù)現(xiàn)、可量化的工程實(shí)驗(yàn)。核心要點(diǎn)回顧優(yōu)先級(jí)反轉(zhuǎn)的本質(zhì)高優(yōu)先級(jí)任務(wù)因等待低優(yōu)先級(jí)任務(wù)持有的共享資源被中優(yōu)先級(jí)任務(wù)間接阻塞違反 RTOS高優(yōu)先級(jí)先執(zhí)行的承諾可穩(wěn)定復(fù)現(xiàn)三任務(wù) 二值信號(hào)量 一個(gè)死循環(huán) TaskM就能把反轉(zhuǎn)從偶發(fā)變成必然量化結(jié)果二值信號(hào)量下 TaskH 被阻塞 4.7s換互斥量后收斂到 12ms改善約 390 倍選型鐵律同步用二值信號(hào)量保護(hù)共享資源用互斥量繼承有邊界優(yōu)先級(jí)繼承只能降低、不能根治反轉(zhuǎn)根本辦法是縮短臨界區(qū)、避免嵌套。適用邊界本文的實(shí)驗(yàn)和結(jié)論適用于 FreeRTOS 及所有實(shí)現(xiàn)優(yōu)先級(jí)繼承的 RTOS如 ThreadX、μC/OS-II/III。如果你的系統(tǒng)沒有優(yōu)先級(jí)繼承機(jī)制比如裸機(jī)中斷 關(guān)中斷實(shí)現(xiàn)的偽互斥則需要用優(yōu)先級(jí)天花板協(xié)議或干脆關(guān)中斷保護(hù)。已知局限一是實(shí)驗(yàn)里的 5s 臨界區(qū)是為了放大現(xiàn)象而人為構(gòu)造的真實(shí)系統(tǒng)臨界區(qū)應(yīng)該遠(yuǎn)短于此二是本文只覆蓋了三任務(wù)一鎖的單層反轉(zhuǎn)多鎖嵌套的反轉(zhuǎn)和死鎖需要更復(fù)雜的建模三是優(yōu)先級(jí)繼承會(huì)引入額外的調(diào)度開銷本文未量化這個(gè)開銷的絕對(duì)數(shù)值。擴(kuò)展方向下一步可以1研究?jī)?yōu)先級(jí)天花板協(xié)議對(duì)比它和優(yōu)先級(jí)繼承在可預(yù)測(cè)性上的差異2用遞歸互斥量處理需要嵌套加鎖的場(chǎng)景3引入死鎖檢測(cè)與規(guī)避的話題完善多資源競(jìng)爭(zhēng)的分析框架。如需獲取本文完整代碼和更多實(shí)戰(zhàn)項(xiàng)目可開通 CSDN 技術(shù)會(huì)員。參考資料相關(guān)閱讀FreeRTOS 互斥量 優(yōu)先級(jí)反轉(zhuǎn)(翻轉(zhuǎn))和優(yōu)先級(jí)繼承 詳解 — 優(yōu)先級(jí)繼承觸發(fā)與解除機(jī)制STM32CubeIDE 實(shí)戰(zhàn)FreeRTOS 優(yōu)先級(jí)反轉(zhuǎn)實(shí)驗(yàn)與互斥鎖優(yōu)先級(jí)繼承/優(yōu)先級(jí)天花板方案 — 三任務(wù)反轉(zhuǎn)的另一種工程實(shí)現(xiàn)詳解 FreeRTOS嵌入式多任務(wù)系統(tǒng)的任務(wù)互斥和優(yōu)先級(jí)反轉(zhuǎn)理論篇 — 反轉(zhuǎn)發(fā)生條件的理論推導(dǎo)別再亂用信號(hào)量了FreeRTOS 互斥量與二值信號(hào)量的 5 個(gè)關(guān)鍵區(qū)別與選型指南 — 所有權(quán)概念與選型決策版本備注硬件平臺(tái)STM32F103C8T6最小系統(tǒng)板無額外外設(shè)軟件版本STM32CubeMX 6.10 FreeRTOS Kernel V10.3.1CMSIS_V1 Keil MDK 5.38兼容說明代碼基于 FreeRTOS 官方 Kernel與具體 MCU 平臺(tái)解耦STM32F4/F0/H7 系列均可直接使用互斥量/二值信號(hào)量的行為差異在所有 FreeRTOS 版本中一致若使用 CMSIS_V2 封裝osMutex/osSemaphore需注意 API 命名差異
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
97在线资源| 九月激情婷婷| 日本九九九九| 99热在线不卡| 精品国产Av无码久久久亚洲| 色婷婷99| 熟女人妻精品一区二区视频 | www.99中文字幕| 日韩一999精品| 久草电影网| 淫荡少妇免费| 色综合20p| 天天做天天爱| 超碰三级秋霞| 中国AAAAAA黄色片| 欧美大码在线视频| 午夜精品久久一区二区| 女人爽到高潮久久久| 亚洲色图 综合| 性色aV一区二区三区噜噜| 日韩性爱播放| 99在线精品观看视频中文| 免费观看的黄色的网站| 国产成人天堂| 欧美日韩国产中文精品字幕自在自线| 免费看黄视频亚洲网站| 亚洲自拍欧美国产首页网曝| 国产亚洲精品激情| 久久內射| 九九综合久久中文字幕| 国产精品久久久久久久久久久久久久久久 | 午夜精品久久久| 日本综合色图| 欧美激情在线观看视频| 一本道综合色图| 精品免费一区| 成人夜夜| 久久久精品日本一道| 日韩欧美日韩| 蜜桃视频一区二区三区 | 亚洲啪啪视频免费| 一区二区三区男女操逼黄色小电影| 日本东京热久久久电影| 干B| 97欧美性爱| 青青草好吊色| 亚洲色资源| 久久一区二区三区入口| 欧美色图电影| 夜夜操一区二区| 日本在线视频导航| 78久久| 久久欧洲| 五月天激情四射| 亚州一区二区| 蜜桃天美传媒AV一区二区三区| 久久乐| 在线色导航| 夜夜嗨一区二区三区三州加勒比| 欧美日韩国产中文精品字幕自在自线,| 日韩三级伦理中文字幕| 亚洲交换| 极品久久久久久久久久久久久久| 大香蕉五月天| 亚洲综合另类小说色区亚洲成av人片在www | 伊人久久大香线综合无码| HEYZO高无码国产精品227| 九热久| 欧美A√综合网| 亚洲九月丁香| 肏逼福利网站| 毛片99-全集电影手机免费观看完整-B029AV | 欧美黑人与女人91| 亚洲揄拍网| 99精品无码| 国产成年女人免费视频播放a| 香蕉精品二区二区| 无码人妻精品一区二区三区九九| 亚洲欧洲偷拍一区| 综合久久欧美| 久久久久免费看少妇A片特黄| 大香蕉伊人75| 欧洲亚洲人人爽爽视频| 嗯嗯嗯,草死我| 日韩精品国产精品五码一区二区| 欧美日韩 强奸乱伦| 伊人热综合| 九九九久| 一区二三区四区视频大全套| 狠狠2050在线观看| 1区2区3区中文字幕日韩| 国产精品亚洲免费| 亚洲操逼视频网站| 亚洲成人福利电影免费| 久久精品性| 又大又长又粗又爽又黄| 亚洲精品毛片在线观看| 超碰97色| 东北熟女91| 热的中文 热的有码 热的国产| 草b在线| 99无码| 国模精品一区二区三区苹果色戒 | 91美女丝袜诱惑视频| 精品少妇人妻av久久免费| 韩国免费播放一级毛片| 欧美激情综合网| 欧美性性性| 四虎精品亚洲| 色色97爱| 999热日韩精品| 日韩少妇在线视频| 久久久久久人| 狠狠97| 很很很很操| 加勒比海成人视频网| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 精品国产丝袜一区二区三区乱码| 久久精品人人做人人看| 国产精品爽爽v| 黄片qw| 先锋影音av先锋一区| 亚洲情色综合| 色男人色天堂东京热| 韩国轻伦国内自拍一区| 欧美熟女激情| 久久一区二区加油站| 北条麻妃性愛视频| 亚洲日韩乱码中文无码蜜桃臀网站| 天天做天天爱天天爽AV| 日韩视频小说在线观看| 99在线啪| 99超碰碰| 综合网亚洲| 日本一区二区三区午夜观看| 日韩一级特黄av毛片| 亚洲成人av电影在线| 国产不卡免费在线视频| 成人性爱电影一区二区| 日本免费中文一区二区三区四区 | 超碰成人公开| 国产精品午夜福利亚洲综合网| 国产偷人伦激情在线观看| 一区二区三区四区姦女| 国产毛片精品一区二区色欲黄A片| 综合色99| 啊好爽快点-国产一区二区三区撒尿在线-成人AV | 99欧美| 开心五月婷婷激情| 操少妇很爽av| 色眯眯av| 成人蜜乳小视频网站| 老司机深夜18禁污污网站| 国产JDAV无码视频在线观看| 色色色欧美| www.色婷婷.com| 91超碰人人| 超碰97最新人妻| 色欧美色交综合| 久区视频| 国产毛片在线| 狠狠综合网| 中文字幕片| 日本天堂在线播放| 国产福利电影| 蜜桃av综合网发布| 超碰人人乐97| 欧美日韩青操| 另类小说欧美激情校园春色| 欧美A片中文字幕| 不卡免费av在线播放| 亚洲精品丝袜-不卡成人免费…… 久久久久成人蜜桃精品 | 91视频综合网| 伊人黄色视频免费观看| av午夜玫瑰| 久久后入制服| 老司机深夜18禁污污网站| 国产福利小视频高清在线观看| 九九久久综合| 精品一区二区麻豆| 天天欧美| 中国大陆国产高清AⅤ毛片| 五月婷婷丁香六月| 免费成人在线熟妇网| 97国产|免费| 日韩无码精品综合久久| 激情丁香五月| 亚州五月| 性爱1区| 91 丝袜在线| 97久久久网站| 国产精品免费日韩| 色月天AV导航| 最新AV在线| 强奸国产精品视频| 狠狠中文字幕| 中文字幕精品码亚洲| 久久国产乱子伦精品免费女人| 久久精彩免费视频| 五月天九九日国产精品一区二区三区| 91人妻最真实刺激绿帽| 狠狠躁AV| 久久国产乱子伦精品免费女,网站| 夜夜天天噜狠狠爱2021| 亚洲不卡不卡中文字幕不卡| 中文字幕1区2区| 操操逼操操逼操操逼逼| 久久av网| 日韩性爱长视频免费| 人妻激情偷乱视三区频一区二区| 老鸭窝黄色视频网站| 日韩成人私密一级精品av| 久久精品99| 午夜精品久久久久久久99| 黄片qw| 欧美九九99久久精品| 欧美日韩欧美| 操一区| 蜜桃臀一区二区三区久久| 精品中文字幕第一页| 中文字幕精品人妻丝袜| 91亚州| 九九热在线视频| 丰满熟妇大乳做爰| 九九久久综合| 天天干人人乐| 久久久爆乳翘臀一线天伦理视频| 中文字幕福利视频一区二区三区在线观看| 91丨九色丨大屁股| 97亚洲在线| 欧美夜夜狠| 超碰97国产欧美| 农村妇女一级二级三级视频| 亚洲欧美碰碰| 小少妇| 天天噜| 色综合天天| 哈哈操电影| 色婷婷丁香五月| 超碰九九| 狠狠操狠狠插| 久久人妻| 天天日天天舔东京热| 在线毛片片免费观看| 四季AV综合网址| 亚洲国产成人精品久久久国产成人一区二区 | 欧日韩一二三f区| 人人考人人摸人人干| 青青草原香蕉日本Ap| 超碰碰碰碰| 亚洲久久久| 青青草日本无码| 精品无码久久久久久久杏吧| 色阁阁AV综合网| 欧美视频一区二区在线| 国产人妻久久精品一区二区三区| 日日骚中文字幕| 情色日播放AV| 久草免费福利在线播放| 亚洲熟女人妻中文字幕一区二区| 青青草黑寡妇男人天堂| 亚洲αv一区二区三区| 后入式福利| 五月天婷婷欧美三区| av影片在线观看不卡| 激情文学欧美| 午夜一区| 欧美亚洲自拍另类人妻| 九九九九欧美| 97精品综合| 中文乱码字字幕在线第5页| 小明看看网址| 91色艳| 强奸乱伦 亚洲一区| A男人的天堂| 激情五月激情综合网| 午夜舔阴达高潮视频免费看| 囯产精品强| 久都青青视频| 人妻熟女av国产网站| 99精品人妻| 久久日本熟妇熟色高清| 色色五月天激情| 久久精品一区二区一8| 高清肉丝中文无码| oumeisetu综合| 国产高清免费不卡av| 成人精品久久| 97精品97久久| 素人美腿视频网站| 香蕉人人操tv| 国产精品点击进入在线影院| 99久久99久久免费精品蜜臀| 欧美亚洲国产日本在线,久久精品国产| 老熟女91视频| 嗯~啊~快点 死我视频免费看网站| 激情综合色| 国产性爱在线视频一区二区| av天堂电影网| 妇女乱色二区| 99色骚| 久久色人体| 黑人嘿嘿嘿超爽免费视频| 加勒比综合| 久久久免费高清中文视频| 亚洲狼狼干综合1| 午夜丁香婷婷| 抽插无码高清一区| 国产探花精品在线| 日婷婷| 亚洲女人91| 在线 欧美 亚洲| 99re8免费高清在线| 亚洲春色激情小说| 午夜精品久久久久久久男人的天堂 | 91亚洲综合在线| 欧美亚洲激情一二三| 18精品一区| 俺去也婷婷| 国精精品无码一二三区水多多| 欧美欧美啪啪视频| 亚洲综合97| AV色女综合| 欧美在线视频观看一二三四区高清 | 久久久久国产精品久久久| 久久超碰av在线| 精品久久久不卡一区二区| 麻豆国产原创AV色哟哟| 亚洲不卡AV在线| 欧美激情区| 午夜福利合集| 五月天AV资源| 97亚洲自在精品在线观看| 60秒免费视频| 后入式五六区| av日韩中文字幕| 诱惑人妻欧美一区在线播放| 亚洲av热热色| 性生活久久久久久久久久| 日本91白丝| 首页亚洲国产高跟丝袜诱惑视频 | 亚洲丝袜二区在线| 啊v在线观看视频| 999热这里只有精品| 中文字幕日韩情色| 成人九九| 日韩有码专区| 超碰97久久| 日韩无码极品| 日韩精品在线观看观看| 伊人久久综合精品欧美| 少妇3P性爱自拍| 中文日本免费高清| 国精精品无码一二三区水多多| 日本成人A片免费看| 日韩免费在线视频观看| 久操com| 中文字幕日韩人妻视频一区二区三区| 永久免费发布性爱网| 伊人久久大香线蕉无码| 亚卅熟女乱色| 日本高清电影欧美色图| 99啪啪| 91欧美性| 精品97久久| 免费在线看黄片av| 久久久久亚洲av综合波多野制衣| 404操逼福利视频| 亚洲欧洲国产综合av| 亚洲欧美第一页| av毛片aaaaa免费看| 最新日日夜夜天天干干| 日日摸夜夜夜夜爽| 99久久99九九99九九九| 亚洲美女精品| 天天操人人操骚逼网站| 老熟乱一区二区三区四区| 60秒不遮不挡| 操逼视频国产无套| 伊人女女资源在线观看| 精品少妇后入一区二区三区四区人妻巨乳| 亚洲欧美另类少妇精品| 欧美洲精品一级| 9丨久久九九九| 亚洲欧洲中文日韩女优乱码| 婷婷AV一区二区三区| 综合网欧美在线| 日本天天干天天搞一区| 青青青在线高清视频在线一二三四区| 黄色人人| 五月色丁香| 夜夜騷av、一區二區| 欧美综合色综合| 啊啊啊操死我| 伊人久久大香大香线蕉中文| 久久伊人在线五区| 久草线上视频免费看| 好吊色综合| 欧美精品99久久久**| 99色视频| 热的中文 热的有码 热的国产| 亚洲人妻久久| 成人av免费观看| 精品久久久久黄少妇| 啊啊啊啊,啊啊好多水| 日本操逼视频在线| a在线观看| 中国黑人三级片网站上区| 日日摸日日弄日日拍| 性暴力欧美猛交在线直播| 激情五月天色色| 超碰综合色| 亚洲欧美黄| 日韩不卡毛片Av免费高清| 精品人妻一区二区三区-国产| 日韩熟女视频二区| 国产在线激情视频| 91视频观看网站| 久久精品噜噜噜成人看免欧美大片| 日韩99精品视频综合区| 亚洲综合网电影91| 天天插天天干| 欧美综合亚洲| 午夜影美女日鸡鸡天天视频国产| 麻豆激情综合| 亚洲欧洲av影音| 污啪啪啪视频| 嗯嗯不要 视频| 中文字幕免费看大片| 神马午夜久久久| 无码天堂| 97人肏| 性欧美| 播播亚洲小说亚洲| 久久爱超碰网| 曰韩操B| 日本精品国产视频| 国产精品无码成人精品| 亚洲日韩av一区二区三区百合| 少妇精品| 男人的天堂不卡一区二区| 综合色久欲| 一起草精品人妻| 欧美一二级| 国产精品999zyz| 色麻豆AV| 18禁网站在线播放| 国产第二页| 操www| 久久久久一本一区二区青青蜜月| 日韩熟女三十乱伦| 97亚洲资源| 人人干人人操人人爱| 亚洲aw毛茸茸在线| av网站免费线看| 爱欲AV| 国产欧美日本亚洲精品| 日本日日色视频| 五十路六十路素人熟女| 91久久堂| 一本一道vs波多野结衣| 91丝袜人妻| 天天流夜夜操| 久久精品国产亚洲5555| 少妇人妻无码| 我想要啊 啊 啊| 婷婷伊人网| 2017天天插| 欧美成人9797| 黑人美精品 A片| 日韩资源网| 亚洲福利中文字幕在线| 丝袜综合网| 狠狠躁AV| 色天使亚洲综合在线观看| 久久精品视频一区三区小泽玛利亚| 亚洲成人日韩小说| 久超碰这里只有精品| 26uuu国产| 最新国产精品| 日韩美女高潮喷水视频| 国产一区二区视频在线播放| 欧美 亚洲 在线| 爽爽爽免费视频| 中文字幕日韩人妻视频一区二区三区| 久久亚洲一区女同性恋中文字幕 | 亚洲成人精品在线一区| 我爱搞逼综合网| 色色五月天婷婷| 88xx成人精品视频| 精品综合久久久久久97| 骚货人妻偷情自拍在线视频| 亚洲性爱乱操x| 免费精品AB| 日本久操视频| 333kkkk·亚洲com久久| 精品一区二区三区丰满熟女-亚洲欧美一区| 北京专精特新企业招聘信息| 人人操人人摸人| 好属操| 91精品婷婷国产综合久久竹菊| 精品超碰国产| 激情五月综合开心五月| 日日骚av| 亚洲人妻熟妇三十三区| 色婷网| 日韩熟女操逼| 久操频道免费在线呗看| 欧美 熟女 日韩| 久久久蜜桃臀无码视频| 青青草无码视频| 99热亚洲天堂| 日本午夜久久电影| 日韩中文字幕视频| 99热伊人| 女人天堂网| 激情亚洲天堂| 久久一二三四五六七八九区区区 | 99性爱视频| 国产亚洲精品农村妇女| 麻豆精品一区二区三区四区免费观看| 欧美91久久久久| 一区二区三区国产精产| 国产亚洲精品自在线亚洲情侣| 性爱综合一区二区| 人妻久久一区二区三区 | 天天看特黄的免费网站| 五月婷婷激情| 久久久久久AⅤ无码免费肉站 | 乱伦一区二区三区‘| 91日韩国产欧美亚洲另类精盘州至城都| 制服诱惑亚洲一区二区三区在线观看| 荡小穴在线观看| 超碰人人在线| 殴美大黄片| AV和黑人在线播放| 国产二区三区免费视频| 女生久久网| 久久精品无码不卡| 色悠久久久av| 久操在97| 欧亚成人在线视频| 你草精品在线视频| 久久一二三级一一一| 91在线|亚| 伊人AAA| 久久九九综合| 制服乱伦| 婷婷五月天丁香花| 国产亚州日韩欧美看片| 大色综合网| 伊人视频| 职场同事知名国产国产精品久久欧美日韩| 伊人 俄罗斯 a v| 黄色不卡视频| 欧美91网站| 亚洲淫色网中文| 啊啊啊在线观看免费视频| 艾草av| 欧美亚洲第1页| 国产人伦精品一区二区三区| 欧美日韩免费专区在线| 男人天堂站| 天天爽夜夜欢视| 亚洲综合图文| 蜜屁Av| 在线观看 99热| 婷婷九月国产| 婷婷五月天色网| 中文字幕一区二区无码成人| 黄页av| 国产高清自拍视频| 乱抡国产91| 人人 操人人 操人人| 国产精品久久久久久照片| 69少妇一区二区| 色天使亚洲综合在线观看| 韩日性爱av| 岛园激情| 亚洲宅男天堂| 免费农村成人少妇人妻Aa一区二区视频| 素人美腿视频网站| 精品美女少妇一区二区三区| 欧美一品道| 91操熟女视频| 国产精品人妻无码久久久互動交流| 思思热在线视频免费| 岛国在线免费视频| 每日更新AV| 五月婷婷激情综合| 亚洲精品蜜桃久久久一区二区三区| 歐美一級亂黃99在綫精品| 丝袜天堂| 精品国产乱码久久久影院| 亚洲色阁| 嗯啊视频免费在线观看| 国产高清成人传媒影视| 美女露胸露屁股| 天天日天天操VV| 夜夜精品视频一区二区| 97免费在线| 国产欧美精选自拍一区| 五月婷丁香| 中文字幕在线观看网页| 死我十八禁| 国产久久久久久| 视频黄色国产一级| 五月婷婷综合在线| 免费网色网站| 亚洲少妇视频| 午夜超爽| 另类图片五月天| 无码久| 国产精品成人午夜福利| 亚洲资源网| 91丝袜视频在线观看| 欧美性爱日韩高清| 99热综合| 天天大干大香蕉| 日韩成人无码| 色色五月丁香| 黑人与人妻| 蜜桃狠狠色伊人亚洲综合网站| 99re公开精品免费视频| 日韩免费人妻色情网站| 91男人天堂网| 国产精品分类在线观看| 婷婷丁香五月综合| 久啪| 污色区网站| 操逼网站地址| 香港日本韩国人妇99www.wccm20| 日本天天干天天操一区| 黑人无码一区二区| 伊人网在线观看| 麻豆成人AV| 92午夜免费福利视频| 嫩草 人人网精品| 欧美综合亚洲综合| 探花一区在线| 青青欧美| 亚洲精品一区二区精品| 视频二区美腿丝袜制服人妻欧美| 综合情欲网| 日韩综合无码色欲vv| 色香阁在线| 亚洲精品国产拍免费91在线| 亚洲欧美国产成人综合不卡| 色香在线| 国产多人在线观看视频| 国产不卡精品91| 91少妇高潮| 国产尤物AV尤物在线观看不卡| 二级久久网| 久久产精品一区二区三区电影| 99精品网| 亚洲人妻日日日| 亚洲AV成人无码一区二区三区在线观看 | 美女丝袜激情小说| av网站在线观看了| 99抽插| 视频国产成人精品日本亚洲18| 91大胆欧美| 天天拍夜夜| 狠狠干综合| 深喉吞精| www.久久| 另类小说欧美激情校园春色| 六月色色| 日韩综合97p| 久久五月天婷婷| 啊啊啊慢点| 夜色91| 日韩99神马视频播放片在线播放| 97欧美综合| 久久婷婷国产一区二区色| 好爽视频在线观看| 91人妻爽爽人人做人人澡| 欧美激情 亚洲色图| 这里都是精品在线观看| 国产午夜福利合集| 日本99视频| 亚洲资源站| 亚洲色图激情小说| 国产成人亚洲精品无| 欧美日韩国产中文精品字幕自在自线, | 亚洲自拍青操视频| 蜜乳av首页| 啪啪啪综合| 久久精品人体| 日本孕妇一区二区视频操逼免费看| 91扒丝袜综合在线| 老子午夜伦不卡影院| 极品后入免费视频| 2018天天干在线视频| 亚洲一区制服诱惑| 日本淫乱女一区二区三区视频| 粉嫩av在线一区二区| 色妇综合网| 日日妻色网| 亚洲 图片 综合91| 精品九九国产无码| 九九九热| BBBBB97COM| 午夜精品人妻二区三区| 日本裸体久久色噜噜| 欧美性爱三区二区| 国产黄片精品在线| 91欧美色| 黑人精品欧美一区二区蜜桃| 亚洲狼狼干综合1| 91人妻Pr| 亚洲福利中文字幕在线| 日韩精品电影| 日韩乱码Av| 殴美,日韩国产伦精品| 99久久婷婷国产综合| 免费精品人妻一区二区三| 91人人操| 老司机福利青青草| 玖玖久久久| 婷婷探花久久精品一区| 91女日逼| JuliaAnn丝袜熟女系列| 精品久久97| 亚洲色婷婷综合久久久久中文| 日本ZZ高免费A级视频| 蜜臀一二三区| 另类欧美色| 蜜臀久久久99久久久久 | 丁香五月婷婷色| 啊啊啊啊嗯嗯嗯用力好爽| 欧美AB在线观看| 躁躁日曰躁2020| 九九九九九九九| sewuyueav| 亚洲**2021在线观看| 啊啊啊啊啊啊好湿好爽视频| Aa东京男人的天堂| 国产精品久久蜜乳av| 在线日韩日本亚洲国产| 91天堂色男人的天堂| 五月婷色| 神马久久69| 97干在线视频| 可以在线观看AV的网站| 欧美日韩国产传媒在线精品| 人妻超碰青青草98| 99精品国产户外露出| 97欧美性爱| 91麻豆天美传媒HD| 久久国产精品一级二级三级| 极品色电影院| 99国产精品视频尤物| 亚洲精品乱码久久久久久蜜桃麻豆| 久久99久久99久久99人受| 激情欧美日韩女同久久| 我要色综合网| 操逼视频亚洲| 日本欧美韩国日产片片在线看免| 人妻出轨一区二区三区| 亚洲激情在线| 免费A V在线播放| 用力操死我| 男人久久天堂| 99啪啪视频| 久久精品夜色国产亚洲AV| 一区二区三区高清| 日韩精品一区的| 麻豆国产成人精品| 丁香色狠狠色综合久久小说| 成人三一级一片aaa| 久无码| 欲香欲色综合天天伊人| 国产h片在线观看视频| 一区二区 日韩 欧美 国产 传媒| 超碰97伊人| 日本中文字幕在线视频| 欧美性天天影院| 日韩欧美aⅴ综合网站发布| 免费看污网站| 青青草好吊色| 日本123区操B视频| 熟妇一区,二区,三区。| 国产欧美一级在线观看| 激情综合av| 国产人妻一区二区三区欧美毛片| 在线中文字幕视频| 夜夜夜久久| 大香蕉78| 精品十三区| 妇女性内射冈站HDWWWCOM| 中文字幕一区二区三区人妻少妇在线| 九九九九九精品视频| 五月天婷婷久久| 精品国产乱子伦一区二区三区,精品一| 性爱乱伦一区| 欧洲精品一级二级精品综合视频综合| 91九九| 欧美91精品国产自产| 人妻夜夜爽天天爽麻豆三区网站| 国产在线综合福利网站| 精品人妻一区春色| 熟女被操视频网址| 92久久| 亚洲少妇在线影音| 97人人干人人操| 91这里只有精品| 欧美日本久久精品一区| 一起草欧美| 密臀在线视频| 麻豆精品A片免费观看| 免费在线黄片视频| 青草成人免费视频一com| 免费成人在线熟妇网| 日本亚洲熟女视频| 久久永久无码人妻视频| 97av,com| 在线综合 亚洲 欧美中文字幕 | 婷婷综合五月| 婷婷av在线中文字幕| 欧美特黄视频网站| 欧美久久毛片基地| 日日干日日| 国产福利精品最新在线| 精品久久久久久AV无码| 美女啊啊啊啊啊| 亚洲第一男人天堂| 九九九九免费高| 天天日天天干天天色| 人妻无码视频一区二区三区久久| 亚洲男人的天堂一区二区| 色综合久| 高清国产av无码| 18禁的网站在线| 亚州免费啪啪视频| 老熟妇一区二区三区…| 人人操肉肉| 欧美精品一区二区少妇免费A片| 成人性爱AV在线免费观看| 美女裸体无遮挡永久免费观看网站 | 国产多人在线观看视频| 欧美片第一页| WWW啪啪的com| 影音先锋乱| 在线观看日韩av不卡| 国产精品视频精品一二| 91日本在线观看| 欧美|91色综合| 亚洲精品天天影视综合网 | 被窝影院午夜看片无码| 成人一道本免费视频| 日韩综合无码色欲vv| 日本操逼视频导航| 99re视频在线观看这里只有精品| 色婷婷av在线观看| 成人AV素股で擦久久| 淫骚熟女一区二区三区| 超碰碰小说97| 中文字幕一区二区视频在线观看| 人妻干天天| 六十路日本| 欧美日韩理论一区| rivers-china.com| 视频不卡中文字幕| 国产在线强奸视频| 国产丝袜一区二区三区| 超碰95| 久操网线| 五月天色图影视| 日韩中文字幕熟妇人妻| 狠狠躁天天躁日日躁| 日日干日日摸| 74成人在线| 中文字幕 国产区| 久久久久国产亚洲一区欧美色图日韩 | 久超碰这里只有精品| 精品九九九| 在线人人人人人人精品超 | 亚洲精品一区中文字幕乱码| 久久成人午夜狠狠| av一区二区三区四区| 在线无码操| 区日韩亚洲乱码av电影| 日韩无码服务区| 蜜乳Av成人片网站| 99这里都是精品| 97天天在线| 色色色日本| 精品免费一区二区三区在线亚洲人成| 在线情色电影 91大| 久久久性| 日本三级久| 九九九九亚洲| 免费在线观看国内色片网站网址| 夜夜操av亚洲一区二区| 欧亚日韩中文在线| 丁香六月综合激情| 国产三级中文字幕粉嫩| 日本操逼视频导航| 日日嗨AV一区二区夜夜| av天堂天堂av日韩| 欧美72网页| 乱伦3P视频| 手机在线A片| 91美女色视频亚洲| 北约熟女超碰| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 99色视频| 国产91会所女技师在线观看| 久神马| 久99热| 骚货操死你| 欧美日综合| 欧美综合亚洲综合| 香一区二区三区| av毛片aaaaa免费看| 亚洲淫乱骚妇AV| 高跟丝袜AV专区国产| 色爽——AV| 女人高潮大叫一级毛片| 日本女人久久久| 亚洲五区熟女| 亚洲国产一级精品毛一级精品看免费视频 | 搡老女人老91妇女老熟女| 60秒试看最爽10分钟网站| 国产不卡免费在线视频| 日日摸日日碰夜夜爽视频| n1038 一二三区| 日韩大香蕉精品在线视频| 日本在线一二| 92人人操人人| 国产午夜精品在线观看| 日本人妻天堂网站在线播放| 欧美一级黄片免费播放| 中文字幕一二三| 欧亚第一综合网| 97婷婷色| 亚洲 日本 国产 综合| **一级毛片国产| 蜜桃狠狠色伊人亚洲综合网站| 区一二区日韩亚洲乱码av电影| 精品性爱无码在线播放| 无码直播久久久| 神马久久久久久久久| 四虎永久在线精品免费网址| 久久av成人无码免费| 东京热毛片177b2viP| 91超碰碰在线| 96AV久久久| 综合色色婷婷| 亚洲第一狼人丝袜美女另类| yw尤物av无码点击进入麻豆| 美女十八禁| 久久亚州大香蕉| 9999亚洲精品| A啊啊在线观看| 亚洲中文字幕妇伦久久| 依人大香蕉| 丁香五月婷婷基地| 337p大胆噜噜噜噜噜91Av| 91操人| 久久久九九网站| 天天躁日日躁XXXXYY| 无码一区二区精品视频久久久春药| 手机在线大香蕉| 中文字幕青青草| 亚洲第一男人天堂| 国产热av| 97色欧洲| 国产97av| 色色97爱| 婷婷午夜清品久久久久久久性色视频观| 日韩欧美久久婷婷网站| 97超碰伊人| 日逼97| 日韩性爱小视频| 黄色成人网久久久久久| 欧美日韩黄片精品在线| 日韩黄色一区二区三区| 欧美色图天堂在线| 久热精品色情| 天天影视网色欲色香| 9久9久9久9久视频网站| 东京热综合久久一区二区| 久久久久国产精品久久久| 色欲久久久久综合网| 亚洲色欲天天天堂色欲网女| 可能人人看人人摸| 欧美在线大香999| 啪啪自拍九九综合| 亚洲av性爱电影| 屁屁影院一区二区三区国产| 五月激情啪啪| 伊人久久大香蕉线AV五月天| 亚洲精品九九九九九九| 97色碰| 丰满高潮18xxxx| 国产精品视频电影| 性高潮久久久久久久久久久| 一区二区精品日韩欧美在线观看| 超碰在线91| 亚洲性综合| 国产视频人人网| 凸凹视频在线观看| 亚洲丝袜B诱惑| 青青草在线视频播放器| 中国一级操逼视频| 欧洲无码一区二区| 2017天天操天天日| 狠狠色噜噜狠狠狠狠狠色综合久久| 亚洲性综合9| 亚洲男人天堂网站| 日韩人成网站在线播放| 精品视频97| 亚洲国产成人精品久久久国产成人一区二区| 精品国产91av一区二区三区| 五月综合色| 大香蕉手机在线| 欧美亚洲色图另类国产| 性色高清在线| 伊人影院日本| 伊人久久青青草| 男人天堂网站| 日韩在线视频1234| 国产呦精品系列在线观看| 亚洲av夫妻操穴网| 97色在线视频| 嗯啊啊啊轻点视频 | 媚薬在线视频麻豆| 亚洲天堂五月天国产| 五月天综合网| 国产日韩欧美中文在线播放| 久草综合视频| 91小视频| 欧美性夜| 三上制服丝AV| www.久久最新地址| 中文字幕人乱码中文字的预防方法| 一级做a爰片性色毛片久久| 黑人美精品 A片| 日韩精品高清资源在线| 日韩成人无码| 亚熟hd视频在线| 久久精视频美日韩在线视频| 97伊人超碰| 超碰公开久久网| 日日摸夜夜夜夜爽| 97中文热色| 欧美视频第二页| 欧美成人午夜免费福利785| 中文字幕人妻丝袜乱一区三区| 又大又白奶子| 7777奇米影视久久| 亚欧美综合| 欧美狠狠弄| 色五月激情综合网| 九九视频黄色片| 国产91美女视频| 少妇人妻精品| AV中文在线| 亚洲中文字幕久久人妻| 超碰色图| 亚洲精品蜜桃久久久久久久| 天天日少妇逼AV| 在线欧美69V免费观看视频| 我要色综合网| 免费男人的天堂| 婷婷五月天无码 | 999精品乱码| 人人九九精| 色超碰综合| 观看免费区二区三区二| 国产精品制服丝袜清纯唯美| 84YTCOM性无码| 91熟女丨91老女人| 日韩综合97P| 亚州中文字幕超碰97| 久久综合日韩亚洲欧美| 激情婷婷丁香| 日本综合色图| 人妻在线视频| 久久无码成人| 欧美中文字幕日韩在线| 欧美色图片| 老熟女91| 亚洲图片激情小说| 国产精品第一页国产大屁股视频免费区| 人人爽人人精品乱人伦AV| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 人妻少妇色综合| 亚洲超碰AV| 欧洲小说色图视频另类| 天色综合网| 国产污视频麻豆传媒一区二区| 一区二区久久天天干狠狠| 色综合98| 神马久久久久久久久久久久| 97久久精品国产| 国产精品91ai| 亚洲精品蜜桃久久久久久久| 国产天天骚| 欧美黄色图片| 久久m| 骚妻少妇精品性色无码四色A V| 五月天九九日国产精品一区二区三区| 五月天玖玖资源站| 国产精品一二三区福利| 夜夜高潮夜夜爽| 99亚洲人人| 久久精品成人一区二区三区蜜臀 | 丰满人妻一区二区三区| 日产成人久久| 国产毛片久久久久久久| 天天操人人操狠狠插| 宅男影院久久久,99| 天天视频综合在线观看视频| 久久99综合| 欧美亚洲AN| 久草新在线| 少妇无码av专区线| 日本福利二区视频| 韩日精品四区| 天天插天天操天天摸天天射天天看| 色97欧美| 蜜桃视频成a人v在线| 夜夜操老骚逼视频网站| 女人18精品一区二区三区| 国产捆绑一区| 国产亚洲精品农村妇女| 国产精品麻豆成人AV艾秋| 在线情色电影 91大| 日韩性爱小视频| 91国产精品在线看| www.男人天堂| 国产精品内射婷婷一级二| 一级A片女人高潮叫床| 搡老女人老妇女老妇老熟女怎么读| 天天舔天天日天天射| 最新日本中文字幕| 亚洲欧洲另类| 碰人碰碰人人开房人肉| 欧美性猛交美女自慰91| 久久久久ab| 中国熟女老妇仑乱一区二区三区| 婷婷丁香在线| 色与欲影视天天看综合网| 中日韩欧美精品无码AⅤ一区二区| 青青草黑寡妇男人天堂| 欧美92| 亚洲导航深夜福利| 久久熟妇五十路一区| 在线亚洲欧美| 丰满少妇一区二区三区专区| 日韩精品 欧美激情| 婷婷色导航| 夜夜夜夜久久久久| 成人日韩欧美| 亚欧美综合网| 18一区二区三区|