日韩精品一区二区三区在线视频放-无码中文字幕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
返回資訊列表
秋霞怕怕片| 精品日日人妻| 国产91 丝袜在线播放| 黄色电影观看久久9| www.狠狠干.coom | 操逼网站视频漫画国产| 黄色片G G G| 中文字幕久热视频在线| 日日AV加勒比| 狠狠爱夜夜干| 激情网色| 99少妇| 亚洲高清国产理伦片| 色鬼在线综合| 神马久久久久| 9久精品| 东京热AV男人的天堂| 国产精品无码av| 97超碰巨乳| 俄罗斯一区二区视频在线观看| 狠狠色丁香| 伊人久久亚洲色欲综合网站 | 午夜120视频在线观看| 射丝袜高跟鞋99| 在线 欧美 亚洲| 加勒比伊人| 亚洲成人久久一区二区| 99国内熟女露脸视频| 日韩卡一卡二卡三在线| 亚洲骚女一区二区三区| 黑人美精品 A片| 99国产女人| 天天综合色电影| 色超碰综合| 午夜亚洲WWW湿好大| 岛国成人av在线播放网址| 激情综合网激情五月天| 成人精品在线免费视频| 欧美 亚洲 另类 综合| 日韩国产不卡在线视频| 人妻另类| 97在线免费视频| 欧美在线啊啊啊| 五月天久久婷婷亚洲 | 天堂av2019| 国产女同在线观看视频| 狠狠操一区二区| 免费一级精品啪啪视频| 久久精品高清无码一区| AAAA级日本片免费视频| 艹比视频国产精品| 狠狠久久手机视频精品| 天天综合网国产| 国产色图乱伦| 久久久久国产精品人妻aⅴ天堂| 在线观看日韩av不卡| 美女AV一区二区| 亚洲欧美国产其他二区| 欧美高清色| 欧美一区二区亚洲天堂| 在线a亚洲视频播放在线| 有码人妻系列| 久精品无码av一区二免费国产在线观看| com 首页 18岁 禁区 女优 免费 精选 同城| 婷婷综合五月天| 国产sv美女内射| 久久色情| 能在线播放的国产三级| 97精品综合久久网| 成人aⅴ一区二区三区| 97综合久第一页| 黄页av| 91白嫩| 97超级久久强资源| 超碰亚洲97| 欧美一区二区日韩三区| 国产美女精品| 动漫爆乳3D奶水一区在线观看| 99re这里只有精品2| 日韩熟女精品无码专区一区二区 | 五月丁香综合| 中文久久爆乳| 无码人妻精品一区二区中文 | 豆花视频操逼网址| 午夜视频久久久| 日本精品第一视频在'| 九九九久久久W精品| 97超碰色屌| 国产久久男人天堂| 亚州中文字幕超碰97| 国产精品熟女丝袜一区二区| 国产美女在线精品免费看| 青女在线| 中文字幕在线观看AV| 插欧洲美女欧美精品| 日韩欧美亚洲自拍偷拍| 国产91影院| 男女国产精品| 欧美日韩狠狠爱| 狼人综合婷婷激情四射 | 亚洲午夜免费狠狠干| 自拍偷拍 高清无码| 天天淫人人妻日日色| 色综合久| 国产a级精品| 99ri在线视频| 欧美视频在线视频免费va| 五月婷婷色| 91操熟女| 日韩亚洲美女一区久久| 啊啊啊好爽快点啊啊啊嗯嗯| 色区久久| 超碰三级秋霞| 精精夜夜| 亚洲国产一区二区三区在线| 六月丁香五月婷婷| 日本在线一二| 五月天综合网| 免费啪啪av| 欧美日韩插逼视频| 欧美 亚洲 在线| 久久精品老司| 玖玖在线视频| 2019AV天堂| 97天天搞在线| A男人的天堂| 欧美v日韩欧亚洲电影天堂色诱,国产传媒| 精品少妇后入一区二区三区四区人妻巨乳| 五月天婷婷基地| 99久久久无码精品国产人| 99精品九九九九九九| 老色鬼成人精品视频下载大在线观看| 婷婷精品国产欧美精品亚洲人人爽| 精品女同一区| 色99999| 八人操人人摸人人看| 色97欧美| 国产毛片久久久久久久| 江都AV在线| 黄色成人网久久久久久| 97视频网站在线观看| 欧美精品三级黄片| 熟妇熟女一区二三区| 啊啊啊好多水| 超碰色美女| 国产精品久久久久无码AV会牛| 自拍亚洲综合| 亚洲精品色| 富女玩鸭子一级毛片| 伊人久久婷婷| 十八禁啪啦拍视频无遮挡| 操人妻逼91| 性综合网| 丰满丝袜少妇AV| 国产尹人在线视频免费| 东北女人高潮视频| 色九九九综合| 欧美人妻色| 粉嫩国产精品久久粉嫩| 在线观看黄色电话| 欧美性爱18观看| 啊啊啊啊好多水| 天天做天天爱天天高潮| 99久久婷婷丁香| 天天cao在线| 亚洲怡春院| 亚洲有薄码区日本系列中文字幕| 色人久久| 伊人精品久久网站| 又粗又长又爽在线观看| 亚洲无线码欧洲精品区别| 韩国三级色呦呦| 亚洲资源吧| 国产第11页| 一本正道久久熟女| 丝袜喷水在线| 大香蕉免| 996热| 久热91| 国产视频一区二区免费| 极品白嫩美女白浆成人福利在线看| 日韩无码视频黄色| 国产精品亚洲色婷婷久久久| 另类图片五月天| 亚州乱码中文字幕综合久久久| 久久久不能久久久久| 18禁无码永久免费无限制| 亚洲天天在线| 亚洲欧美自拍偷拍| 日韩欧美亚洲一区二区三区影院| 99久久久| 亚洲欧美另类少妇精品| 亚洲激情综合| 日本熟妇浓毛hdsex| 无码久久亚洲高清,| 国模无码人体一区二区三| 男人的天堂VA| 91久久国产综合精品| 日韩欧美偷拍美女视频| 强上我不卡卡| 日本高清一本二本免费不卡| 国产精品扒开腿做爽爽爽视频| 久久久久久九| 久久久久久久久久va| 秋霞无码av鲁丝片一区| 亚洲性爱高潮影院| 中文幕97| 国产美女裸体秘 永久无遮挡| 久久黄人人爽视频| AV中亚| 人人操人人操人人人操| 一区二区三区免费岛国片| 国产按摩一区二区三区| 国产精品丝袜久久亚洲不卡| 婷婷久月| 国语对白在线播放视频| AV九九| 欧美综合网在线| 人人做天天爱| 色色色色网站| 欧美白嫩在线放| 青青草依人大香蕉| 操操碰| 亚洲综合113页| 国产视频大全| 久久丁香久草综合网| 人妻熟女字幕一区二区| 女人香蕉久久毛毛片精品| 午夜舔阴达高潮视频免费看| 手机在线人成免费视频| 日韩 成人 有码| A一区片| 人人看黄色视频| 久久久久久夜夜夜夜夜| 久久女同性恋一二区| 制度丝袜99| 天天色欧美| 天天色踪合| 97视频在线视频| 91在线国产后入风骚翘臀美女素人| 99热99在线播放激情| 在线免费观看日韩一区| 国产精品一二三在线看| 欧美亚洲国产91在线| 久久久久久久伊人精品| 免费看A片毛毛片在线播| 一本色道综合久久欧美| 伊人专区一区二区三区| 免费看黄视频亚洲网站| 久久人人爽爽人人爽人人片αV| 欧美性爱十八禁| 成人精品一区二区91毛片不卡| 色悠久| 色五月激情AV在线| 五月婷婷hd| 久久国产精品91| 欧美v亚洲v综合v国产v妖精| 韩日精品福利视频一区不卡在线免| 婷婷五月天影院| 中国小夫妻勾搭露脸淫荡对白| 97超碰磁| 五月婷婷综合网| 天天色香欲综合网| 人妻少妇久久| 亚洲av热热色| 六月婷婷综合| 日韩欧美综合激情| 蜜臀久久在线视频| 一本大道久| 青青久久久| 国产无码三级视频在线观看| 久久免费少妇| 婷婷10月天青娱乐| 久久黄色视频一区二区三区| 色97干| 欧美日韩国内不卡| 干B视频伊人网| 青娱乐av在线| 96久久久久| 日韩激情小说一区二区| 天天日天天操天天射河南省| 色五月综合网| 97在线亚洲| 日本免费一级AAA大片器| 超碰成人国产| 久久m| 美女黄站| 欧美不卡二区| 99热超碰在线| 秋霞色色影院| 国产久久男人天堂| 99热8| 天天综合亚洲综合| 亚洲欧美在线观看无码| 久久一二三四五六七八九区区区 | 干b在线性社区| 亚洲欧美一区二区网址| 欧美视频激情久久久久久| 懂色中文一区二区三区| 加勒比五月天| 国产精彩女在线观看视频| 日日躁狠狠躁天天躁精品| 91人妻少妇| 精品少妇一区二区| 俺去久久| 青青青青操国内视频在线| 青青草日逼视频| 伊人久久在线视频观看| 78m啪啪啪| 九九碰九九爱97| 亚洲AV成人精品网站在AV| 日韩一级特黄av毛片| 欧美亚洲手机在线| 一级黄碟在线看| 五月天婷婷欧美三区| 国产性久久久| 综合影院永久入口国产| 天天综合站| 欧美偷偷网| 青青草啪啪网| 校园春色综合| 天天色综亚洲91污| 岛国片在线视频网站| 久久久91| 欧美色97| AND人妻系列| 伊人性在线视频| 五月婷在线| 免费强奸av| 亚洲欧洲自拍图片专区满春格| 久久一二三四五六七八九区区| 精品久热| 99热9| 爽爽淫人网| 丁香五月婷婷五月| 日操粉逼逼| 国产成年免费大片黄在线观看| av影片在线观看不卡| 情色五月天网| 久啪视频| 思思热在线| 伊人精品视频| 国产综合操逼高清| www.99视频| 久久久国产成人一区二区三区在线| 日韩国产乱子伦App| 日韩毛片9| 亚洲第一狼人丝袜美女另类 | 91亚洲影视| 91色综合激情| 色女综合| 神马久久久久久久久久| 久久久一区二区| 天天影视色香色欲| 色老大| 欧美精品久久久久久久丰满| 激情婷婷| 国产精品成人AV片免费看网站| 男人的天堂va| 色综合五月天| 神马精品视频| 伊人久久亚洲色欲综合网站 | 久热伊人| 操逼网免费无码视频| 99九九精品| 久久婷婷五月| 裸体美女久久久| 97久久超碰日韩精品| 操屄日韩| 啊啊啊网站| 强被迫伦姧在线观看无码网站| 97超碰9| 大学生口爆吞精| 欧美亚洲综合色| 夜夜高潮夜夜爽高清视频一| 青草园大香蕉| 7777奇米影视久久| 视频分类 国内精品| 99re8免费高清在线| 骚妻少妇精品性色无码四色A V| 无码人妻毛片丰满熟妇精品区| 国产2.3.4区| 午夜亚洲国产理论秋霞| 久久亚洲影院一区二区| 久艹免费| 香蕉久久国产AV一区二区| surenchaopeng| 国产激情在线| 2018色综合天天操| 男人成人黄色视频在线观看免费下载| 96久久久久久久| 亚洲自拍小说| 操逼逼无码| 丁香六月婷婷| 国产精品点击进入在线影院高清 | 日韩精品人妻中文字幕有码午| av资源在线播放天堂| 天天日天天插| 日韩午夜国产| 91AV老熟女视频| 熟女久久久| 欧美日韩国产中文超碰| 大香蕉婷婷| 日欧亚洲二三区大片不卡| 久久蜜色情在线视频xxx免费观看| 亚洲AV乱码专区国产噜噜亚洲| 天天干人妻视频| 亚洲小电影免费涩涩成人在线高清 | 91电影色诱| 欧美性性性| 久久综合婷婷| 国产美女高潮视频| 澳门黄片一香蕉视频| 久久久精品91八戒| 亚洲猛交| 中文字幕日本久久| 欧美性爱一区二区三区四区| 深爱五月婷婷| 搡老熟女老女人老熟妇免费视频| 天天综合-91入口| 91欧美经典| 校园春色亚洲色图| 欧美精品1区2区3区| 精品国产AV一区天美传媒| 国产99久久99热这里只有精品15| 97精品国产97久久久久久户外免费| 制服乱伦| 欧美 色 亚洲| 十八禁黄色成人网站观看| 韩国一级婬片A片AAAAA| 中文字幕,人妻,日韩| 欧美制服另类丝袜| 日本午夜精品理论片A级APP发布| 精品人妻一区二区三区蜜桃视频| 99热啪啪| 亚洲成人黄色在线观看| 久草综合网| 人人摸人人舔一区二区| 超碰性爱97| 欧美九9 9 9| 色五月激情综合网| 日本操嫩b网| 日韩操逼性鲍| 日本成人免费一区二区三区| 果冻传媒A片一二三区| 中文字幕97色| AV一区观看| av网站免费看| 人妻精品视频一区二区三区| 91丝袜美腿片| 学生妹天天看| 免费超碰97久久| 日韩精品第3页| 牛牛久久国产精品视频一二三| 欧美日不卡| 国产探花日韩援交| 家庭乱伦国产| 特级毛片特黄久久免费看| 伊人久久大香线蕉无码| 欧美啪啪色吧在线| 亚洲综合首页| 9丨亚洲一区二区在线| 99久久婷婷丁香| 在线观看黄色电话| 乱色视频中文字幕| 黄色一级视| ,国产乱人伦精品一区二区三区| 蜜臀无码一区二区| 国产怡红院| 日韩精品一区的| 在线一道啪| 久久精品操| 国产免费一区二区三区最新不卡| 久午视频| 日韩精品人妻一| 九九热在线视频| 日本不卡二三区| 亚洲人91| 91人妻Pr| 99精品人妻| 欧美日韩国产高清在线一二三区| 黄色av网站在线播放| 日韩乱中文 | 五月丁香激情四射| 国产AB视频| 午夜福利在线视频1000| 91爱剪切久久| 97色碰| 人妻久久久| 午夜αv| 99久在线精品99re8热| 中文字幕一区二区无码成人 | 视频国产欧美在线播放| 日韩精品在线视频在线观看| 欧美精品精品一区二区| 欧美在线综合| 啊啊啊97视频| 无码免费一区二区三区啪啪| 亚洲AV操| 亚洲AV无码乱码在线观看性色| 强奸乱伦Av网| 国产女人和拘做爰视频| 性色生活片久久毛片婬片免费放女人一级毛片 | 午夜一区| 麻豆福利视频导航| 人妻少妇无码 | 人妻天天夜夜爽一区二区| 免费av在线播放二区| 综合网色| 激情五月婷| 久热伊人| av资源在线播放天堂| 国产成人无码久久精品| 欧州色图区| 在线观看亚洲专区| 欧美日韩国产三级黄色| 色欲三区| 中文字幕丰满子伦无码专区在线视频最新 | 日逼五月天| 亚洲人在线成线成人| 少妇专区一二三四五| 九九九草| 久久成年片色大黄全免费网站| 天天内射| julia ann久久| 热思思免费视频| 在线看片国产精品每日更新| 亚洲男人久久综合天堂| 91天堂| 亚洲一区二区 麻豆传媒| 欧美操人视频| 国产真乱mangent| 成人在线视频网| 丰满熟妇大乳做爰| 久久精品国产Aⅴ| 超碰碰碰碰| 日韩少妇丰满亚洲| 色老久久| 91足交| 精彩国产视频播放1区2区| 丰满美女一级毛片在线播放| 操亚州| 蜜乳性色无码专日粉嫩骚逼AV| 亚洲自拍欧美色综合| 免费看黄片现成| 无套内射性感少妇视频| 亚洲高清无码在线桃色| 亚洲天堂人人妻| 国产二区三区免费视频| 亚洲综合贴图91 | 好属操| 天天摸夜夜摸| 日韩午夜啪啪视频| 一区二区中文| 97国产精品久久久久| 九九热国产| 亚洲日本韩国极品一区二区| {男男暴菊gay无套网站| 中文字幕女同在线| 久久成年精品| 性爱动态120秒| 亚州色综合| 9久久美女首页| 国产一级舔足在线观看| 91久久国产精品| 欧美国产日韩清纯唯美| 91人妻尻屄视频| 久久久九九| 色婷婷丁香五月| 91无码西班牙视频在线| 九九热精品免费视频| 综合久久六月久久婷婷| 国产日韩手机视频在线| 熟妇人妻丰满久久久久久久无码| 狠狠夜色午夜久久综合在线| 亚洲激情网一二三四区| 久久久久久久9| 精品人妻一区二区三区-国产精品| 中文字幕丝袜国产第一页不卡| 高树玛利亚无码流出| 一块操欧美性爱| 老熟女搡BBBB搡BBBB视频| 亚洲少妇视频| 床戏久久久av一区二区麻豆| 亚洲情色在线| 欧美成人午夜免费福利785| 欧美成人黄网色网站| 最新国产精品久久精品| 吖在线不卡一区二区国产剧情| 亚洲男人的天堂va亚洲男人社| 蜜臀Av一区二区三区| 五十路二区在线| 免費人妻夜夜爽天天爽爽一区| 亚洲熟妇图片| 一区二区三区 丝袜高跟| 91一区二区| 性色乱AV一区二区| 99热超碰| 蜜臀久久久国产| 亚洲五月婷婷| 一区二区三区亚洲| 亚洲系列第一页| 99热这里只有精品99| 99热综合| 在线黄色污污网站| 91 综合 色| 97国产超碰| 人妻色偷色噜| 亚洲最大成人a毛毛片| 久久性爱城| 精品国产无码中文| 色五月激情网| 香港日本韩国人妇99www.wccm20| 日韩午夜国产| 精品制服美女中文一区二区三区| 青青草在线视频美女| 久草毛片| 亚洲日韩美国人妻| 成人影 天天操 亚洲| 午夜精品人妻二区三区| 无码人妻精品酒店| 久久78| 在免费jIzzjIzz在线视频| 国产18精品亚洲精品| 色色色色日本| 99热久| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 欧美视频在线视频免费va| 人妻在线臀日韩| 五月丁香黄色网| 99超碰色| 六月丁香婷| 人妻在线臀日韩| 人人操人人摸超碰| jk白丝没脱就开始啪啪| 夫妻四区五区六区| 国产精品ⅴ无码大片在线看.| 日本丝袜美腿人妻九九| 久欲AV| 2020国产精品| 中文乱码字幕观看视频| 免費人妻夜夜爽天天爽爽一区| 国产精品熟女一区二区三区| 伊人久久国产免费观看视频| AV中文字幕三四五| AV中文在线可看| 日韩美女高潮喷水视频| 国产AAAAAABBBBB| 精品无码久久久久| ,成人免费啪啪视频| 熟女自慰久久久| 岛国大片在线观看网站入口| 蜜臀th| 精品黑人一区二区| 国产尤物在线三区| 一区二区三区 丝袜高跟| 午夜寂寞欧美| CCYY草草影院地址入口| 秋霞午夜视频一区二区| 无码最新| 丰满人妻aA一区二区三区| 大干人妻| 日本福利社| 狠狠综合| 中文字幕视频免费| 亚洲综合在线视频| 国产精品电| 日本www操操操| 久久久不能久久久久| 97超色| 三级网色| 新久久AV| 一级婬片120分钟试看| 国产精品熟女九九九| 天堂蜜桃无码视频一区二区| 久久久国产亚洲精品系列| 9国产超碰| 90后后入| 91亚洲黄色网| 日日嗷| 欧美97免费| 亚洲丝袜B诱惑| 久精品无码av一区二免费国产在线观看 | 久久爽爽精品| 久久九九一区二区三区成人| 少妇 综合| 老司机射| 久久久久9| 口爆吞精在线观看| 日本视频一区二区三区| 口爆吞精在线观看| 免费黄色片。| 2024年最新色情网站在线观看| 精彩久久中文| 神马久久久久久久久久久久| 黑丝少妇| 天天弄欧美| 欧美一区二区三区黄色影视| 91AV天美在线视频| 日韩欧美三级| 亚洲欧美日韩激情不卡| 91春色| 思思热久久成人| 狠狠操夜夜| 亚洲九区| 伊人AAA| 黑人与人妻| 91成人精品| 日韩精品碰碰| 蜜桃色色网站视频三区| 性色av一区二区| 1204金沙人妻懂旧版免费| 久久久性少妇| 欧美一区二区三区互相| 九九黄色网| 99国产精品免费| 2020中文字幕在线观看| 亚洲第一精品在线视频| 久久久久久午夜男人的天堂| 久久久专区| 襙一襙| 91人妻视频| 亚洲天堂区| 97人人模人人爽人人| 91AV入口| 911av网站免费观看| 日韩电影中文字幕| 超碰在线综合97| 美女久久久久久久| 亚洲精品97| 精品国产一区二区三区av在线资源| 亚洲另类色综合网站| 韩国午夜理伦三级好看| julia高潮后不停追击中出| 人妻娇喘 激情视频| 久热伊人| 影音先锋每日最新资源在线观看 | 超碰精品人妻狠狠干| 蜜臀久久99精品久久久久久成人小说 | 亚洲精品人妻吞精av| 日日干夜夜欢| 精品成人女人久久| 久久在肏| 日韩国语字幕| 欧美丝袜中文字幕07在线| 中文字幕亚洲在线一区| 久久偷偷色综合蜜桃| 新婚人妻扶着粗大强行坐下| 久久久精品久久| 亚洲第2页| 国产熟女自拍| 婷婷丁香六月| 超碰在线1234区| 天天操天天舔| 亚洲九九九| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 青青草国产一区二区三区| 日韩av一级黄片| 91色宗合| 大香蕉 222| 色呦呦呦在线观看视频| 久久久久久久久9| 2025亚洲男人天堂| 精品人体无圣光凹凸| 美女爽到高潮91| 蜜桃精久三区| 人人做人人妻人人夜视频| 老熟妇91| 久久动漫精品视频这里只有精品| 玖玖爱免费观看视频| 国产精品操| 超碰伊人在线| 蜜桃久久综合视频| 午夜电影在线观看无码专区| 992视频一区| x97av| 91大神电影天堂| 亚洲图片欧洲图片aⅴ| 天天噜| 性色高清..……| 亚洲永久AV无码精品秋霞| 国产真实野战在线视频| 台湾一区国产高清在线| 97久久久久久久久久| 日本一片一区| 老鸭窝亚洲毛片| 99在线精品观看99| 热99这里只有精品| 国产91乱伦| 啊啊啊好多水| 最新制服中文第一页| 毛片麻豆91糖心精品毛情片| 少妇内射www在线观看视频| 色91综合网| 青青草密桃在线播放| 97在线视频免费看| 色妇91| 精品国产91内射久久| 久久人妻视频网| 婷婷丁香人妻| 美女露胸露奶头| 无码区蜜乳| 性生活无遮挡纯毛片在线看| 欧美 精品国产制服第一页| 欧美在线干| 秋霞一级视频在线观看免费| 中国乱伦一区二区| 男男H黄动漫啪啪无遮挡网站| 性色AV蜜色av色欲av| 26uuu久久| 图片区小说区| 麻豆人妻少妇在线免费观看| 97欧美色| 乱抡国产91| 国产区91柔拿会所技师| 精品 码产区一区二-1080P高清在线www-B029AV | 黑丝少妇在线观看| 亚洲综合影视| 中文字幕奈奈美被公侵犯| 97人亚洲综合字幕| 色狠狠 - 百度| 操逼视频亚洲| 中文字幕 码 自拍 视频 区| 青娱乐 成人娱乐在线| 亚洲欧洲无码97久久精品| 国产免费一区| 亚洲无992tv| 波多野结衣被操50分钟免费视频| 欧美日韩中文亚洲v在线综合| 人妻嗯啊啊在线播放| 97香蕉人人乳| 日本欧美不卡| 久久男人精品| 免费在线黄片视频| 欧美一二三区四五区| 香蕉精品二区二区| 高清成年美女黄网站免费大全| 99无码视频| 日本高清一本二本免费不卡| 亚洲第一页第二页激情| 在线v中文字幕一区二区三区 | 密臀在线一区尤物| 色婷婷激一区二区三区| 国产精品久久久蜜臀| 亚洲色婷婷综合久久久久中文| 日韩在线一区二区| 欧美很很操视频| 日韩美女久久一区二区三区| 99超碰网| 97操碰| 亚洲国产97在线精品一区| 大色综合网| 97超碰中文字幕| 亚洲成人美女无吗| 超碰午夜| 91性色| 一级久久久久久久久久久| 蜜臀久久99精品久久久久久久久| 欧美欧美少妇| 天天综合91在线| 啪啪啪综合| 91xingse| 国产精品视频91久久| 德国一二三不卡| 亚洲另类色综合网站| 免费观看国产小粉嫩喷水精品午| 欧美毛片在线网| 白丝av| 青女在线| 久久国产逼| 一本久久精品中文字| 免费看久久久性性| 99夜夜操| 久久一区,青青青青草视频在线播放| 精品人妻中文字幕高清| 夜夜狼人妻| 亚洲av影音先锋| 人妻蜜桃臀| 人人综合| 一级性爱啪啪视频| 久久久性少妇| 99热精品在线播放| 天天澡天天爽日日AV| 足交视频老司机| 99这里有精品| 夜夜夜久久| 精品午夜福利国产一区二区在线观看 | 综合久久欧美| 中文字幕日韩国产传媒欧美精品| 九X超碰| 91人妻在线视频| 中日韩熟女| 日韩欧美女优电影| 欧美色道啊| 精品玖九九久| 羞答答AV中文字| 人人操人人操草草| 亚洲97综| 亚洲不卡一| 天天天天做夜夜夜夜做| 久久黄黄| 狠狠色婷婷| 一区二区三区在线资源| 男啪女色黄无遮挡免费观看| 狠狠干2020| 亚州精品人妻一二三区| 国产一区96在线| 97爱亚洲| 91少妇人妻| 91超碰碰在线| 国产精品另类一区大香蕉| 激情五月综合网| 翔田千里无码一区| 中文字幕无码不卡啪啪| 首页亚洲国产高跟丝袜诱惑视频| 无码精品啪啪啪一区二区三区三州| 亚州色图第三区| 中文有码第五页| 在线观看精品国产免费| 午夜福利无毒不卡| 欧美综合天天| 欧美亚洲情色| 超碰97首页| 久久人妻少妇| 久久久久久久久久精| 亚洲少妇色| 噜噜在线| 欧洲综合视频| 男人的天堂在线有码| 久久草草欧美精品| 口爆吞精在线观看| 国产在线能看的你懂的| 中文字幕精品探花视频| 91精品国产91久久青草| 96久久久久| 97无码视频在线播放| 久久久久9999| 老子午夜伦不卡影院| 色路综合| www国产无码| 韩国一级婬片A片无码天美| 免费黄色片。| 亚洲第一成人影院色播| 长长久久曰曰夜夜成人网| 夂久色| 久操大香蕉手机视频在线看| 欧美色一二三| 久久精品视频一区三区小泽玛利亚| 五十路人妻在线| 欧美在线天堂| 99e久久国产精品| 欧美系列在线一区二区| 深夜国产一区二区三区在线看| 99综合免费视频| 日日夜夜国产综合| 后入式福利| 91东京热男人的天堂| 8050无码八戒| 久久久av爱| 日韩啪啪视频| 精品少妇人妻av久久免费| 日韩丰满熟妇| 九月AV| 青青草大香蕉视频| 大香蕉伊人网| 日本亚洲熟女视频| 亚洲国产精品乱码在线观看| 91女优在线观看| 伊人网青青| 国产伦精品一区二区三区在线观 | 久久婷婷电影网| 黄色av一区二区在线| 九热大香蕉| 男人的天堂VA| 精品一区二区亚洲国产| 亚州高清色综合| 综合网欧美| 无码区蜜乳| 日本女厕偷拍| 2017天天插| 亚洲操操操| 久日综合网| 亚洲精品官网在线观看| 亚洲熟女国产综合另类| 人人操人人肉久久精品| 性久久久| 丝袜综合| 在线播放一级无码视频| 色婷婷导航| 国产天天噜一噜久久久| 无码抄逼网| 97超碰超| 97国产色综合| 懂色中文一区二区三区| 午夜精品99久久久久传媒| 啊啊啊啊好疼| 久草视频分类在线| 丝袜无码a片| 操婢日韩| 亚洲人人夜夜澡人人爽| 精品久久久久av影院| 97精品国产精品免费观看| 老熟女乱子伦中文字幕一区二区| 日日做夜狠狠爱欧美黑人| 凹凸视频在线观看伊人| 91青青在线视频| 美国人人操人人操| 美女天天干| 最新啪啪视频| 亚洲人天堂| 97亚洲资源| 偷拍综合网| 亚洲色图欧美色图制服诱惑| 亚洲精品久久久久毛片A片拉屎 | 亚91网| 欧美成人午夜免费福利785| 97爱综合| 激情图片伦理国产一区二区日韩| 免费的黄片有限公司| 91性网| 婷婷四五区| www亚洲免费| 97亚洲色图| 超碰调教97| 国产精品色片一区二区| 97欧美视频| 蜜桃臀一区二区三区久久| 欧美日韩性爱视屏免费看了| 热思思免费视频| 欧美青青视频| 国产亚卅97| 综合熟女| 欧美日韩操逼嗦吊| 中文字幕av亚洲精品| 91九色丨风韵犹存| 久热99999| 美女91色黄18| 亚州色图欧美| 久操99| 超碰亚洲欧美日韩无| 免费综合亚洲中文| 欧美黑人精品一区二区| 操操逼操操逼操操逼逼| 9Ⅰ超碰| 国产精品乱码久久| 人妻少妇精品久久久久久| ,国产乱人伦精品一区二区三区| 五月丁香婷婷啪啪| 五月天精品| 骚逼高潮久久精品| 性欧美另类高清| 天天操夜夜嗨| 国产精品视频白浆免费| 青青草日韩无码| 快播久久人人aV| 小日子操bb在线看| 五月天综合| 色天堂综合| 午夜亚洲| 性色av蜜臀av色欲aV| 91在线精品| 久久露脸国产老熟女| 97在线免费看| 新精精品久久精品| 欧美97av| 成人毛片免费| 亚洲欧洲国产综合av| 人人喜人人妻| 干美女人妻| 免费操逼91| 围产精品一区二区三区视频播放| 国产久久久久久久久一区二区| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 精品人妻1237| 欧美91在线+|+欧美| 爱干爱射网啊啊啊| 极品美女嘿咻| 超碰精品国产无码| 亚洲另类小说卡通动漫| 色五月婷婷在线| 日日噜噜夜夜久久亚洲一区二区| 少妇特黄一区二区三区| 久久久无码精品人妻二区| 国产精品一二三区18| www.av在线观看| 亚州成人A√| 日韩欧美偷拍美女视频| 福利天堂| 波多野42部激情无码喷潮| 日本韩欧美在线播放a| 在线天堂999| 亚洲91色| 欧美精品一区二区少妇免费A片 | 好吊妞转入那个网| www.男人天堂| 好涩综合| 国产精品久久久久久 百度| 99久久无色码| 国产综合日韩伦理| 欧美日动态视频| 激情五月综合| 国产精品人妻一区二区| 少妇特黄一区二区三区| 99热久| 日韩兔费看黄片| 91 国产丝袜在线放观看| 俺去啦俺来也久久综合| 久久久久久少妇| 激情综合97| 亚洲国产综合图区中文字幕| 91超碰在线观看| 91精品无码人妻系列| 99www.bibizy香蕉资源国产一区二区三区高清 | 色婷婷五月天| 日韩性爱小视频| 欧美淫乱视频| 欧美成人精品一区二区三区| 99久久精品无码一区二区毛片免费| 91欧洲入口| 啊啊啊啊啊啊啊啊啊啊在线观看| 伊人色综合网电影| 一本色道久久天天射天天干| 综合网亚洲1| 久久视网78| 九九无码视频| 久久精品区| 久9久9久9久9久9久9| 综合久久中文字幕综合日韩精品| 日韩亚洲国产视频| 国产强奸乱伦第1页| 加勒比综合88| 成人女人国产| 日韩啪啪视频| 懂色中文一区二区三区| 国产亚洲99久久精品熟| 中国黑人三级片网站上区| 92福利社视频| 嫖老熟女A片一二三区| 欧美一级国产一级| 日韩av不卡在线观看| 成·人免费午夜在线观看| 亚洲第一页色网| 96久久久久| 欧亚日韩一区在线| 天天射夜夜操| 三级日本一区二区三区| 热99这里有精品综合久久 | 亚洲第一无码播放立川理惠| 小视频国产| 国产亚洲色婷婷久久99精品91 - 百度| 97精品人妻一二三四| 丰满人妻-区二区三区免费看| 天天噜| 国产精品一区在线播放| 超碰99在线| 中文字幕精品探花视频| 亚洲国产精品V?在线播放| 人看人人摸人人操| 天天草夜夜草高潮片| 人人干人人操人人..com|