色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合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è)靈異事件引出的問(wèn)題二、優(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)量化出來(lái)4.1 無(wú)優(yōu)先級(jí)繼承時(shí)的阻塞數(shù)據(jù)4.2 換成互斥量后的對(duì)比4.3 理論 vs 實(shí)測(cè)對(duì)照五、二值信號(hào)量 vs 互斥量選型決策六、優(yōu)先級(jí)繼承的邊界它沒(méi)有根治反轉(zhuǎn)七、故障排查八、總結(jié)參考資料優(yōu)先級(jí)反轉(zhuǎn)是 RTOS 開(kāi)發(fā)里最隱蔽的隱形殺手——高優(yōu)先級(jí)任務(wù)跑不過(guò)低優(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ū)本概念變成看得見(jiàn)的數(shù)據(jù)再對(duì)比二值信號(hào)量與互斥量的行為差異講清楚優(yōu)先級(jí)繼承到底是怎么救場(chǎng)的。實(shí)測(cè)無(wú)繼承機(jī)制時(shí)高優(yōu)先級(jí)任務(wù)最長(zhǎng)被阻塞 4.7s換成互斥量后最大阻塞時(shí)間收斂到 12ms。一、一個(gè)靈異事件引出的問(wèn)題我做第一版兩輪平衡車時(shí)遇到過(guò)一件詭異的事車在平坦路面上跑得好好的偶爾會(huì)突然抽一下——控制環(huán)明顯卡頓幾十毫秒然后恢復(fù)正常。檢查控制任務(wù)的代碼邏輯沒(méi)問(wèn)題看 CPU 占用也不高。這個(gè)問(wèn)題折磨了我兩天最后是在一次單步調(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)的地方在于代碼沒(méi)有一行是錯(cuò)的但系統(tǒng)在特定時(shí)序下就是會(huì)違反高優(yōu)先級(jí)先執(zhí)行的承諾。這篇文章我想做三件事用一個(gè)最小的三任務(wù)工程把優(yōu)先級(jí)反轉(zhuǎn)穩(wěn)定復(fù)現(xiàn)出來(lái)而不是停留在示意圖用任務(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è)邏輯分析儀可選用來(lái)抓時(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í)比如日志打印不訪問(wèn)共享資源TaskL低優(yōu)先級(jí)比如傳感器數(shù)據(jù)搬運(yùn)會(huì)訪問(wèn)一個(gè)共享資源比如一塊全局緩沖區(qū)。三個(gè)任務(wù)通過(guò)一個(gè)二值信號(hào)量Binary Semaphore來(lái)互斥訪問(wèn)那個(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 正在訪問(wèn)共享資源信號(hào)量被占TaskH 阻塞等待TaskM 持續(xù)運(yùn)行遲遲不放 CPUTaskH 被 TaskM 間接阻塞Take() 拿到信號(hào)量占用資源就緒搶占 TaskLTake() 想拿同一信號(hào)量恢復(fù)運(yùn)行繼續(xù)訪問(wèn)資源就緒優(yōu)先級(jí)高于 TaskL搶占問(wèn)題就出在中間那一步TaskH 因?yàn)榈刃盘?hào)量而阻塞本該讓 TaskL 快點(diǎn)跑完釋放信號(hào)量結(jié)果中優(yōu)先級(jí)的 TaskM 插了進(jìn)來(lái)把 CPU 搶走了。TaskM 優(yōu)先級(jí)比 TaskL 高所以它會(huì)一直搶占 TaskL導(dǎo)致 TaskL 遲遲拿不到 CPU、遲遲無(wú)法釋放信號(hào)量而 TaskH 又一直等著這個(gè)信號(hào)量。最終的效果是高優(yōu)先級(jí)的 TaskH反而被中優(yōu)先級(jí)的 TaskM 卡住了——TaskH 的執(zhí)行時(shí)間被一個(gè)它根本不需要依賴的 TaskM 無(wú)限拉長(zhǎng)。這就是優(yōu)先級(jí)反轉(zhuǎn)名字的由來(lái)。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)來(lái)說(shuō)這意味著最壞執(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ì)待的問(wèn)題。三、工程搭建一個(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í)序。要在開(kāi)發(fā)板上穩(wěn)定復(fù)現(xiàn)關(guān)鍵是人為構(gòu)造一個(gè)讓 TaskM 持續(xù)占用 CPU 的場(chǎng)景。我的做法是讓 TaskM 在一個(gè)死循環(huán)里持續(xù)做無(wú)意義計(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周期醒來(lái)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開(kāi)一個(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)志用來(lái)觀察現(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ù)周期醒來(lái)嘗試獲取共享資源 */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í)間戳打出來(lái)方便觀察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é)了看起來(lái)像是死機(jī)。但用 ST-Link 看程序其實(shí)還在跑。工具串口助手 ST-Link 在線調(diào)試。假設(shè)與排除我一開(kāi)始以為是任務(wù)棧溢出stack overflow因?yàn)槿齻€(gè)任務(wù)棧都設(shè)的 128 字256 字節(jié)懷疑 TaskH 里printf的棧開(kāi)銷太大。把棧都加到 256 字現(xiàn)象依舊排除。根因問(wè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)量化出來(lái)4.1 無(wú)優(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)沒(méi)機(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 無(wú)意義地拖住。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 無(wú)法搶占 TaskLTaskM 從 48210 次增長(zhǎng)看仍在運(yùn)行但無(wú)法打斷臨界區(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 入門(mén)最容易混淆的兩個(gè)概念但它們的定位其實(shí)完全不同。對(duì)比維度二值信號(hào)量互斥量核心用途任務(wù)間/任務(wù)與中斷間同步保護(hù)共享資源互斥所有權(quán)概念無(wú)主任何任務(wù)都可釋放有主誰(shuí) Take 誰(shuí) Give優(yōu)先級(jí)繼承? 無(wú)? 有中斷可用? 可? 不可繼承邏輯在任務(wù)上下文創(chuàng)建后初始狀態(tài)空需先 Give可用可直接 Take遞歸獲取不支持需用遞歸互斥量選型決策樹(shù)一句話總結(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)來(lái)在某個(gè)特定時(shí)序突然爆發(fā)。這也是我在平衡車上踩過(guò)的那個(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)無(wú)腦用互斥量。六、優(yōu)先級(jí)繼承的邊界它沒(méi)有根治反轉(zhuǎn)這里要潑一盆冷水優(yōu)先級(jí)繼承不是萬(wàn)能的。FreeRTOS 官方文檔明確說(shuō)優(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í)繼承處理起來(lái)就力不從心死鎖TaskA 拿鎖 1 等鎖 2TaskB 拿鎖 2 等鎖 1優(yōu)先級(jí)繼承救不了只能靠設(shè)計(jì)避免繼承后的抖動(dòng)TaskL 被臨時(shí)提升優(yōu)先級(jí)會(huì)引入額外的上下文切換和調(diào)度開(kāi)銷。所以工程上的正確姿勢(shì)是雙管齊下用互斥量或優(yōu)先級(jí)天花板協(xié)議作為技術(shù)手段在設(shè)計(jì)層面控制臨界區(qū)長(zhǎng)度盡量短、盡量不嵌套、盡量不跨優(yōu)先級(jí)長(zhǎng)持有。前者是補(bǔ)救后者是預(yù)防。我后來(lái)把平衡車?yán)锬翘幊宙i的代碼重構(gòu)了——把傳感器數(shù)據(jù)搬運(yùn)從臨界區(qū)里挪出來(lái)用隊(duì)列傳遞臨界區(qū)縮小到指針交換這一步反轉(zhuǎn)問(wèn)題徹底消失。七、故障排查整理幾類實(shí)測(cè)中遇到、以及新手常見(jiàn)的問(wèn)題問(wèn)題 1程序燒進(jìn)去就死機(jī)串口無(wú)輸出現(xiàn)象上電后無(wú)任何輸出看起來(lái)像死機(jī)。排查先確認(rèn)是不是觀測(cè)任務(wù)本身被餓死見(jiàn) 3.5 的失敗路徑。解決檢查各任務(wù)優(yōu)先級(jí)保證打印/觀測(cè)任務(wù)優(yōu)先級(jí)高于制造麻煩的任務(wù)同時(shí)確認(rèn)configASSERT有沒(méi)有觸發(fā)在 debug 里看是否停在 assert。驗(yàn)證提高打印任務(wù)優(yōu)先級(jí)后串口恢復(fù)輸出。問(wèn)題 2二值信號(hào)量 Take 永遠(yuǎn)失敗現(xiàn)象xSemaphoreTake一直返回 pdFALSE任務(wù)拿不到信號(hào)量。排查看創(chuàng)建后有沒(méi)有 Give。解決二值信號(hào)量創(chuàng)建后默認(rèn)空必須先xSemaphoreGive一次。這是和二值信號(hào)量 vs 互斥量最容易混淆的點(diǎn)。驗(yàn)證Give 一次后 Take 立即成功。問(wèn)題 3互斥量在中斷里調(diào)用導(dǎo)致異常現(xiàn)象在 ISR 里xSemaphoreTake互斥量行為異常或卡死。排查互斥量的優(yōu)先級(jí)繼承邏輯依賴任務(wù)上下文中斷里沒(méi)有任務(wù)概念。解決互斥量禁止在中斷服務(wù)函數(shù)中使用中斷里同步請(qǐng)用二值信號(hào)量 xSemaphoreGiveFromISR。驗(yàn)證把互斥量操作移到任務(wù)上下文中斷里改用二值信號(hào)量。問(wèn)題 4TaskH 阻塞時(shí)間沒(méi)有明顯改善現(xiàn)象換成互斥量后阻塞時(shí)間還是很大。排查確認(rèn)確實(shí)換成了xSemaphoreCreateMutex且臨界區(qū)里沒(méi)有嵌套別的會(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í)間同步下降。問(wèn)題 5出現(xiàn)斷言失敗configASSERT現(xiàn)象程序停在 assert 處。排查最常見(jiàn)是棧溢出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)沒(méi)有優(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)度開(kāi)銷本文未量化這個(gè)開(kāi)銷的絕對(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)目可開(kāi)通 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)板無(wú)額外外設(shè)軟件版本STM32CubeMX 6.10 FreeRTOS Kernel V10.3.1CMSIS_V1 Keil MDK 5.38兼容說(shuō)明代碼基于 FreeRTOS 官方 Kernel與具體 MCU 平臺(tái)解耦STM32F4/F0/H7 系列均可直接使用互斥量/二值信號(hào)量的行為差異在所有 FreeRTOS 版本中一致若使用 CMSIS_V2 封裝osMutex/osSemaphore需注意 API 命名差異
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色综合久| 操人妻逼91| 亚洲中文字幕有码视频一区二区三区| 97视频播放| 国产精品日韩在线一区| 成人贴图日韩欧美| 秘书高跟黑色丝袜国产91在线| 中文字幕,人妻,日韩| 91老熟女91老女人| 91操人| 狠狠亚洲| 久久九九视频九九视频| 大香蕉啪啪啪啪在线| 青娱乐国产剧情av一区| 亚洲男人天堂网久久| 岛国爱情动作片在国产AV无码专区亚洲AV漫画| 久久人妻丝袜一区二区三| 老妇女91| 夜夜狠狠躁日日躁色视频| 香蕉人欧美综合| 91超碰人人| AA级电影三区| 9.1小视频| 色综合天天| 欧美少妇色综合| 免费中文在线| 大香蕉伊人网| 伊人视频| 牛牛aV| 久久精品店| 欧美一区二区传媒| 久久婷婷亚洲| 亚洲日韩视频二区| 91中文字幕在线观看| 情色日播放AV| 免费一级毛片在线视频观看| 丝袜性亚洲| 亚洲av国产av综合av卡| 国产丝袜高跟美女av免费观看| 大香蕉专区| 欧美综合亚洲综合| 欧美日韩不卡传媒| 日韩美女,国产传媒,视频一区| 91欧美巨乳| 韩国久久97| 盗摄女人妻在线| 酒色综合网| 在线情色电影 91大| 夜夜操狠狠操| 国产吞精a级片激情电影| 亚洲欧美国产va在线播放频| 97中文字幕一区| 欧洲Au麻豆| 人人操人人摸人人骑| site:sinbotex.com| 天天干夜夜一操| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 久久AV色| 97天堂| 久久9精品| 亚州伊人色综台| 日韩欧美亚欧在线视频| 九九国产| 久久久com| 96久久久久久久| 亚洲av在线免费观看| 国产精品ww久久| 人妻社区男人天堂| 操逼日韩无码 | 色九九九九| JIZZJIZZ国产精品喷水| 超碰日韩人妻| 亚洲第一男人天堂| 免费成人在线熟妇网| 91精品丝袜久久久久久| 99这里只有精品国产| 精品二区三四区五电影 | 色综合99999| 亚欧高清在线| 免费在线看黄片av| 国产精品国产| 中美日韩毛片| 嗯嗯啊在线视频| 91 亚洲 欧美 日韩 国产 综合| 91精品久久久久久| 人妻素股| 精品一区二区三区四区外站| 97香蕉人人乳| 九九九九88| 亚洲日韩美女中文字幕乱| 91被操| 操国产高清| 综合网亚洲在线| 在线色资源| 在线黄色污污网站| 亚洲精品1区| 精品无人区麻豆乱码久久久| 中文字幕久久精视频久久大全| 天天综合在线4| 欧美一区二区亚洲天堂| 99只有精品| 国产精品制服丝袜中文字幕日韩一区二区三区| www色色色com| 五月婷婷大香蕉| 天天综合香 ld视频| 国产精品香蕉热久久新品| 免费一级精品啪啪视频| 一二三四视频中文字幕在线看| 男啪女色黄无遮挡免费观看| 九九九九九九九九九五码| 91超碰人人| 精品人人| 亚洲色资源| 丁香五月天社区| 日本一卡二区在线| av影院十区| 亚洲综合色图欧美| 91亚洲欧美| 97久久网| 91超级碰碰碰| 一区 欧美 日韩 麻豆| 欧美天天综| 欧美 亚洲 另类 综合| 日韩中文字幕精品一二三事国产精品| 日本精品高清一二区一本到| 色成人Www精品永久观看| 思思视频免费看网站| 色婷婷国产精品一区在线观看| 男人的天堂va| 伊人操你| 色婷婷导航| 日本九九久久99播| 加勒比久久av| 九九九九免费| 日韩视频啪啪| 无码99| 亚洲男人的天堂一区二区| 日本午夜福利视频| 亚洲免费97免费| 亚洲欧美内射| 黄片视频,下载| 男人的天堂2010| 欧美亚洲韩国视频十五区 | 欧美久久人体| 最新av网站在线观看| 无码聚合| 啊啊啊啊啊舒服| 日本高清免费一本视频在线观看| 一区二区三区网站日日骚| 亚州五月| 九九色色| 无码人妻一区二区三区免费九色| 亚洲色综合| 久久久久久久9最新免费视频观看| 百度百度日本操逼| 天天添天天干电影| 日韩97在线| 全免费a敌肛交毛片免费| 美女淫穴| 欧美大香蕉同搞| 台湾大香蕉99热| 欧美天天| 2001天天操| 久热热| 裸体美女国产免费久久久网站| 日韩天天综合| 熟女突然公开看18禁影片| 国产无马在线| 国内精品999| 婷婷五月天色网| 欧美性爱三区二区| 91色插| 97在线国产精品| 大香蕉一级黄色片久久| 青青草黑寡妇男人天堂| 国产精品亚洲天堂网址| 伊人嫩草| 亚洲国产剧情少妇激情| 成人八戒网站| 欧美资源| 中文字幕伊人| 日日狠狠久久偷偷色综合免费| 四虎免费在线观看| 欧美熟妇亚洲版| 欧美日韩操逼嗦吊| 日韩无码极品| 色综合99999| 国产无马av| 91视频综合| 日本不卡二三区| 免费伦费视频在线观看| 亚洲久9| 天天看特黄的免费网站| 免费啪啪一级视频| 91夜色| 青木玲在线不卡| 日本国产二线女色| 超碰调教97| 国产欧美在线观看免费观看| 色综合99999| 日韩精品.久久精品.AV女优.天美传媒| 四虎影视永久在线免费| 啊啊啊好多水| 欧美日韩精品久久久久东北老熟妇| 97操97色| 99色悠悠| 99久久com免费视频′| 立川理惠无码一区二区| 日本免费人成视频播放120秒| 亚洲欧美不卡线| 97射欧美| 91久久国产精品| 亚州大图综合色图| 超碰97在线色男人??| 国产专区路线| 91伊人影视综合| 特污免视频| 日韩999| 人妻精品一区二区在线| 精品欧美А∨无码黑人大荫蒂 | 精品久一区免费| 男人天堂一区二区| 中文字幕五区| 超碰久久中文| 欧美亚综合色图| 老熟女91av| 日韩人妻操B| 日本 欧美 亚中文字幕| 丰满人妻-区二区三区免费| 欧美精品99久久久| 国产精品亚洲美女久久久久| 26uuu国产免费观看| 美国aaaaa一级黄片| 欧亚乱色熟女一区二区| 中日韩久久久| 超碰在线成人| 久久黄黄| 性爱AV天堂| 青青久久久| 嗯嗯不要视频| 91人妻精华帖| 97人人操人人干| 人人爽天天爽| 欧美偷| 97超碰超碰| 波多野42部无码喷潮在线观看| 色成人Www精品永久观看| 欧美在线视频99| 成人天天看站长推荐| 一二视频神马久久传媒| 国产一区在线播放| 日韩欧美中文| 九月AV| 久久久久九九九九九| henhen91| 日本道久久综合色色| 狼人综合婷婷激情四射 | 97视频网站在线观看| 樱花草社区www中国| 久久久亚洲熟妇资源| 天美传媒精品一区二区| 国产精品无码av嫩草| www色色色com| 超碰97首页| 強姦亂倫a| 自拍偷拍2025在线观看| 99re这里| 99色热国产视频精品| 久久精品欧美一区蜜桃| 国产AV线| 亚欧韩av| 青青久日| julia高潮后不停追击中出| 9ⅰ久久久天天| 中国大陆国产高清AⅤ毛片| 欧美成不卡网| 中文AV制服乱伦| 欧美性天天影视| 天堂亚洲精品| 婷婷午夜| 超碰在线一区| 亚洲。日韩。欧美| 久久久久九九九| 久久久久成人蜜桃精品| 天天影视综合色| 91动漫操逼视频| 尤物视频偷拍免费| 国产69精品久久久久99尤物| 日本高清熟女久久一区| 中文操嬖片。| 97超碰精品图片| 国产一区二区在线电影| 2019男人的天堂| 韩国一级做A片免费的| 国产又大又粗又长视频| 国产A v无码专区| 殴美日韩m| 欧美狠狠干| 成人色女网| 99老司机精品视频在线观看| 蜜桃AV天堂| 先锋色眉乱伦资源| 超碰欧美COM| 日日干日日操五月天伦理视频| 人妻久久一区二区三区 | 超清中文乱码字幕| 欧洲亚洲人妻无码中字久久三区四区| av日韩在线观看电影| 999久久久国产精品| 日韩传媒在线| 久久久久免费少妇| 久久精品国产亚洲AV高级北京| 中文 人妻 制服| 久日91在线| 大香蕉伊人色偷偷在线| 免费作爱一级视频| A级片日韩欧美国产欧美视频精选观看 | 亚洲精品第一| 女人精品内射国产99| 99精品伊人| 欧美强奸乱| 亚川综合视频| 99999re| 男人的天堂欧美| 亚洲精品三区在线观看| 老女人综合| 色五月激情AV在线| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 99只有精品| 91人妻超碰| 欧美亚洲系列| 久久激情视频| 精品无码一区二区人妻久久蜜桃| 97日视频| 色欲人妻一区二区在线| 嗯啊啊啊轻点视频 | 免费一级特黄特色大片在线观看看| 九九久精品| 麻豆一区二区三区精品| 97 国产一区| 欧美激情总合网| 91一起操| 色色色999| 国岛片视频| 丁香九月 婷婷| 国产成年女黄特黄| 精品人妻一二三| 精品一区二区三区麻豆| 啊啊啊好想要| 精品国产Av无码久久久伦古装| 天堂综合网| 99热婷婷一区二区三| 96一区二区三区| 中韩中文字幕在线观看| 9久9久| 一区二区三区探花在线观看| 草草网站影院白丝内射| 黄色一区二区秘书性感| 中文字幕在线高清男人的天堂| 日韩欧美午夜视频在线| 国产69精品久久久久99尤物| 色久桃花影院在线观看| 亚洲人妻在线一区| 性爱视频免费网址| 韩国成人精品久久久免费看| 在线观看亚洲专区| 久久精视频美日韩在线视频| 柠檬AV导航| 免費黃色視頻觀看一| 志村玲子视频一区二区| 天天日日舔舔| 国产精品久久9| 精品视频123区小说区| 久久综合18p| 亚洲欧美另类少妇精品| 色九九九综合| 裸体美女久久久| 日本2020一区二区| 成人怡红院| 热99这里有精品综合久久| 五月婷婷啪啪| 欧美一区二区三区互相| 亚洲码在线中文在线观看| 亚洲国产成人7777| 操逼片中文| 五月香婷婷| 久久久久久九九九| 色制服丝袜夫妻av一区| 99精品在线| 国产捆绑一区| xxx亚洲午夜天堂| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 综合网色| 91成人久久| 成熟熟女国产精品一区二区| 精品日日人妻| 大香蕉综合久久| 嗯嗯啊中文字幕| 久久超碰com| 一区 欧美 日韩 麻豆| 国产婷婷一区| 不卡日本一区二区| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 98一区二区精品| 久久天天摸| 在线97视频| 久久久久无码| 亚欧性爱在线无码| 韩三级a视频在线观看| 桑老女人九区| 1956日韩精品| 91精品婷婷国产综合久久| 亚洲高清综合网| 国产成年女人免费视频播放a| 日韩少妇一区二区三区| 超碰在线974| 久久久精品视频欧州站| 亚洲不卡三级手机播放| 国产精品一区二区 尿失禁| 国产女人高潮视频| 亚洲丰满很很操| 天天看天天日天天操| 丁香五月综合| 日本97久久久精品| 5252色欧美在线男人的天堂| 尹人免费观看视频在线| 91狠狠色丁香婷婷综合久久精品| 精品小视频在线| www.男人的天堂| 人人操人人搞人人草| 天天淫人人妻日日色| 色香91| 久久性爱视频99| 丝袜大香蕉| 夜夜影视四色| 超碰夫妻97| 亚洲色欧美| AV污污污污| 亚洲第一页欧美| 蜜臀久久99精品久久久久久-DVD | 九九九九AV| 无码人妻丰满热妇又大又粗| 日本蜜桃| 久久久久久69国产一区二区| 日本青青草在线| 男人天堂 天天射| 亚洲天堂另类| wwwcaobibi| 色香伊人| 日本三级一区二区 在线| 91男人天堂网| 国产精品午夜福利视频| 成人97人人超碰人人| 精品久久在线区一区| 97chaopengongkai| 99色在线| 天天色欧美| 丁香五月激情综合| 色约约一区=区三区| 国产又粗又长又爽又色| 67914在线兔费成人视频| 国产Aα| 好舒服视频| 中文字幕国产在线天堂| 丰满人妻一区二区三区在线| 亲子敌伦对白在线播放| 精品免费1| 亚洲无码 国产无码| 一区二区三区 丝袜 高跟 美腿| 一级性爱网| 色香阁在线| V A在线| 蜜桃中文字日产乱幕4区| 午夜精品久久一区二区| 精品国产污一区二区三区| 亚洲国产精品无码AV久久| 欧美第一页性| 国产色综合亚洲色综合吹潮| 搞中出视频在线观看| 亚洲无码太久| 欧美日韩天堂| 久久精品国产亚洲AV片多多| 综合自拍| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 中文字幕一区电影在线观看| 黄片不用下载在线观看| 九九热精品视频六| 精品四五区| 欧美组图日韩亚洲中文字幕| 亚洲综合影片| 日操粉逼逼| 色噜噜人妻av中文字幕| 日本人体九九九九九九| 内射夫妻三片| 日本精品九九九| 久久婷婷伊人| 偷拍 欧美 日韩| 91草草草| 成人电影一区| 亚洲av无码国产精品字幕| 加勒比海成人视频网| 伊人久久大香大香线蕉中文| 96久久久久| 三级三级三级日本99| 成人性爱免费播放| 国产热av| 殴美牲| 日韩精品在线观看观看| 九九热av| 亚州中文字幕超碰97| 亚洲国产无码精品首页久久久| 亚洲风情在线观看| 男人天堂综合| 激情五月综合网| 日韩中文字幕国产| 久久久亚洲精品中文字幕人妻| 欧美日韩夜夜| 亚洲AV无码国产精品久久久久| 91亚洲人| 十八禁一区二区无码观看| 激情五月综合网| 国产精品久久妻无码网站| 人妻喷水| 国产精品视频播放| 九九在线视频| 看黄片视频免费| 男啪女色黄无遮挡免费观看| 97久久久久久久久久| 亚洲天堂色图| 久久露脸国产老熟女| 中文字幕AV片| 久久久999日本大片| 91高清无码下载| 99色网| 青青操日韩| 精品精品精品| 久久久成人国产精品无码| 熟女乱3伦999| 日本二三四区| 日韩特一级久久| 久久蜜色情在线视频xxx免费观看| 人人操人人狠狠操| 黄片aaaaa一区| 亚洲精品免费中文字幕| 欧美精品97| 久久久久久免费电影| 最新av在线| 久久五月综合| 囯产乱伦一区二区三女 | 青青草国产一区二区三区| 蜜桃精久三区| 久久一区无码| 亚洲天堂综合AV| 亚洲欧美日韩综合在线尤物| av无码av无码专区| 久久一区二区三区四区五区| 亚殴在线| 亚洲色婷婷久久91| 啊啊啊好湿国产一二| 五月婷婷六月丁香网址| 99无码狠狠久久| 我想要 啊 啊 啊| 97 国产精品| 国产精品3| 大香蕉 222| 国产伦精品一区二区三区在线观| 久久久久久久亚洲Av无码| 久久久久久久强迫| 欧美综合综合| 久夜操| 91熟女视频网| 人人妻人人色一区二区三区| 免费国产| 国产中文字幕在线| 久久久久久无码人妻中文字幕| 日本新免费二区三区| 亚州久久9| baiduhicn.com。| 亚洲AV不卡在线观看尤物| 亚洲黄日韩无码专区| 99久久久久| 亚洲中文字幕网| 91九色网| 人人乐大香蕉| 97在线免费看| 国产综合久久久鬼色| 熟女色图在线| 久超超碰| julia ann久久| 久久久久96| 中文字幕福利视频一区二区三区在线观看| 亚洲综合色图欧美| 蜜臀久久99精品久久久久久-DVD| 日本不卡五区| 亚州熟女乱伦| 日本天天操| 麻豆啪啪啪视频| 超碰在线看| 伊人97超碰| 成人日韩中文字幕| 久日综合网| 人人妻人人色一区二区三区| 日韩图色| 乱伦日本中文自拍| 欧美精品成人在线播放| 91人妻Pr| 丰满欧美少妇| 97操在线| 亚洲 欧美 第一页| 在线日韩日本亚洲国产| 少妇啪啪自拍| 国产又大又硬又长又粗| 亚洲性爱无码乱伦av| 少妇超碰在线| 精品96久久| 97超碰影音| 精品国产Av无码久久久伦古装| 免费福利视频中文字幕| 新版天堂中文资源8在线| 天天干美少妇一区| 久草新免费| 久久影视二区三区行押| 91精片| 五月天加勒比啪| 久久性爱网站| 发朗少妇买婬全视频中文| 澳门人妻久久| 嫩草 我啊~嗯~在线| 懂色Av一区二区三区| 青青操网| 婷婷深爱五月| 国产一区二区三区不卡手机在线| 加勒比伊人综合| 久久久久久久唑| 亚洲一曲日韩精品| 丁香婷婷色五月| 日韩国产十八禁| 日韩成人小视频| 日韩操p| 婷婷99狠狠躁天天躁| 精品亚洲俞拍视频一区| 亚洲图片欧美偷拍| 国产 日韩 欧美高清| 嗯嗯啊中文字幕| 99re在线视频| 黄片免费视频2019| 成人五月香网在线| 国产精品国产| 日韩三A大片在线观看| 99热91| 中文一区在线日| 五月亭亭六月丁香| 五月天大香蕉| 亚洲人妻熟妇三十三区| 青草成人免费视频一COm| 亚洲天堂人妻熟妇视频| 国产AV天美| 少妇无码999| 久久一区二区三区入口| 伊人青青草久久| 91丝袜在线观看| 巨爆乳肉感一区二区三区竹菊影视 | n1038 一二三区| 久久久久久久久久9| 国产成人免费观看在线视频| 校园春色制服丝袜中文字亚洲| 亚洲男人天堂视频| 日韩精品人妻一| 国产人伦精品一区二区三区| 欧美懂色综合网| 综合久| 久欲AV| 午夜男人av| 亚洲日韩青青草色月| 一区二区高清视频| 亚洲精品视频二区| 这里只有97精品| 99热在线观看| 免费视频观看60秒| 亚洲国产欧美中日韩成人综合视频| 欧美 日韩 婷婷 五月| 久久性生大片免费观看性| 天天综合色| 97美日韩视频| 91久久99久久91熟女精品| wuyechaopeng| 国产精品免费视频人成| 亚洲极品| 亚洲图片偷拍视频区| 国产精品69久久久久久久| 国产综合永久精品日韩鬼片| 欧洲精品久久| 亚欧性爱ab| 久久久久国产| 抽插亚洲无码| 一本一道vs波多野结衣| 丝袜性亚洲| 欧美爱三级日韩久久| 日韩影片中文字幕一区二区三区| 男人的天堂 在线一区| 热久久91婷婷| 神马麻豆福利院| 久久亚洲影院一区二区| 高潮精品| 亚洲综合影视| 成人无码在线超碰网| 狠狠图片青青草| 中文字幕国产| 超碰久草| 国产少妇肉丝在线观看| 思思热一热婷婷热一热| 青青草在线成人视频| 成人蜜乳小视频网站| 亚洲视频小说| 欧美视频一区二区在线| 任你干在线视频| 亚洲中文字幕网| 在线观看中文字幕| 国产毛片精品一区二区色欲黄A片| 99re在线视频这里只有精品| 啊v视频在线观看| 伊人网高清| 桃色六月天| 天堂俺去俺来也www久久婷婷| 日本东京热大香蕉a片| 最新日产中文在线麻豆| 四虎在线播放| 三级三久久线久久99久目本WW| 国产一区二区在线看| 天天日老熟妇| 欧美性爱无码一区二区三区| 久久r精品| baisiav| 欧美丰满少妇xx高潮| 骚日日av| 一区麻豆 高清中文字幕| 无码逼| 射久久| h色99999| 亚洲天天艹| 黑丝自慰喷水网站| 1240青青草一区二区三区视频天爱| 春色校园综合网| 国产精品自拍欧美在线| 91色综合| 亚洲在钱| 九九久久久久久爱| 69精品久久久久中文字幕| 97手机日韩| 在线情色电影 91大| 深爱激情五月天| 人妻一区视频| 国产精品女aA片爽爽视频| 国产久久久久影院老熟女| 久操大香蕉手机视频在线看| 免费观看国产小粉嫩喷水精品午| 欧美自拍网| 偷拍欧美激情| 欧美色视频在线| 欧美综合亚洲综合| 一区二区三区四区在线不卡| 夜夜爽妓女| 亚洲国产日韩欧美熟妇在线| 在线岛| 91精片| 99在线精品观看视频中文| 天天享受天天看| 亚洲精品男人的天堂| 欧美操逼熟女| 美国日韩黄片| 玖玖久久久| 日日骚一区二区三区| 国产AV天美| 精品精品精品| 激情专区综合| 日韩一级特黄av毛片| 亚洲影院无码在线| 天天天肏屄肏屄肏屄欧美欧美| 不卡九肏| 9/A片| 99热网站| 久久久久婷婷| 色乱二区| 免费一级a毛片久久久久久鸭绿欲| 九九九免费视频| 水滴偷拍| 亚洲图片 欧美电影| 97网址97| 九区国产| oumeizonghese,www| 久久嫩草国产成人一区| 女同在线视频一区| 91综合在线| 国内毛片无码一级毛片| 可以在线观看AV的网站| 五月婷婷六月丁香网址| 久久黄片国产一区二区| 午夜国产综合视频在线观看| 日夜伊人网| 亚洲资源站| 超碰97男女| 欧美性爱五月天| 天堂种子在线www网资源| 国产69精品久久久久99尤物| 日本东京热加勒比久久| 中国一级特黄大片护士| 国产精品原创巨作?v网站| 综合第一页| 在线洲亚线| 亚洲同性aV综合| 亚洲综合射| 国产美女激情| 精彩国产视频播放1区2区| 精品久久久av无码免费| 亲子敌伦对白在线播放| 久久久亚洲熟妇熟女| 欧美少妇色图| 91肉丝| 伊人超碰97| 亚洲综合20p| av中亚| a亚洲欧美色欲| 国产呦精品系列在线观看| WWW.操逼.COM| 欧美日韩大香蕉| ,成人免费啪啪视频| 自拍偷拍亚洲熟女妇人精品| 天天干天天舔| 成人av影院在线观看| 国产理论视频在线播放| 在线中文字幕极品av| 欧亚在线视频| 色五月综合网| 久久婷婷一区二| 粉嫩国产精品久久久| 另类亚洲图色| 欧美综合网1| 91视频女生| 啊啊啊草死我| 亚洲一区操| 色哟哟511老熟女| 亚洲五月婷婷| 天天综合AV| 神马午夜久久久| 欧美综合制服在线| 熟女网站最新| 色五月AV在线| 久久精品国产97欧美精品亚洲| 五月丁香色色网| 一区二区三区精品视频| 国产成人自拍视频在线| 秋霞视频一区二区| 婷婷成人五月天| 亚洲天堂,男人| 婷婷成人久久久精品| 强上我不卡卡| 伊人天堂在线| 超碰人妻中文在线| 少妇内射视频| 99re99| 亚洲无码国产探花在线观看| 日韩综合无码色欲vv| 欧美综合区| 91亚洲不卡一区| 土豪酒店各种姿势玩弄极品幼稚| www男人天堂| 国产精品九九九| 国产一级137片内射麻豆| aaaa少妇高潮大片| 国产精品激情久久久久久久| 色爱综合网| 97爱免费插| 亚洲视频一二区| 99色在线| 国产又黄又爽| 中文字幕精品一区二区精| 欧美午夜精品久久久久久3D| 使劲用力艹少妇视频一区二区| 极品少妇久久久| 二男一女成人A片| 亚洲少妇色| 嫩草 我啊~嗯~在线| 东北少妇高潮zzzz| 韩国一级婬片A片AAAAA| 欧美激情一区二区| av久日| 人人澡人人干| 亚洲国产一级精品毛一级精品看免费视频 | 九久久九九久视频| 2021国产成人精品久久| 日韩免费在线观看不卡| 国产精品一区av在线| 五月天婷婷久久| 丁香五月综合| 久久人妻少妇| 黄色AAAAAAAAAAA大片| 日韩av不卡在线看| av日韩在线观看电影| 欧美在线色图| 久96热在线观看视频| 亚洲偷拍自拍在线视频| 久9热| 91九色网| 91大胆欧美| 久久久9品一区二区三区| 99黄页网站| 欧美精品久久久久久久丰满| 9久热| 久久久艹艹艹| suv精产一二三区| 国产丝袜视频| 四虎AV在线播放| 综合久久欧美| 久久人体一区二区| 成 人 影视 一区 二区 三区 四区| 91视频综合在线| 新怡红院| 丁香婷婷九月| 另类图片综合| 欧美一区91大爱| 国产美女91| 亚洲天天综合| www.人人cao| 亚洲中文字幕久久无码精品| 蜜乳AV网址| 91美女視頻| 看免费一级在线播放毛片| 欧美爆操91| 国产精品白丝在线播放 | 男女激情黄色网址| 日韩精品三级片长长久久| 国产精品人人爽人人做可爱福利| 天天做天天爱天天爽AV| 成人av毛片在线观看| 午夜精品一区二区三区三上悠亚| 后入综合久久| 伊人婷婷五月天| 亚洲图片激情小说| 久久这里都是精品| 久久透逼视频| 试看福利| 999岛国大片| 91亚洲综合在线| 熟妇人妻一区二区三区| 国产精品 视频| 黑操B| 热99这里有精品综合久久 | 亚洲 日本 不卡| 亚洲精品日日夜夜52| 99re视频这里只有精品| 伊人综合色网| 国产一区在线观看无码AV| 久湿久久| 长长久久88视频| 精品人妻一区二区三区在| 亚洲一本色码中文字幕| 囯戸精品高潮呻吟旡码| 日产国产精品中文久久婷婷| 后入式免费视频| 久久久久久99AV无码免费网站| 操逼内射干逼白丝91| 久久无码成人| 精人妻一区二区三区| 天天射网| A一区片| 中文字幕午夜精品久久久| 国产精品一区二区 尿失禁| 极品少妇久久久| 毛片视频白嫩| 操逼逼中文字幕| 天天操福利视频综合网站| 国模一区二区三区| 影音先锋日本乱伦| 天天干1区2区在线| 2020视频1区2区3区| 亚欧色图在线激情| 天堂精品| 99热这里只有精品9| 国模私拍一区二区三区神乳| 一区二区三区在线日韩影院观看| 六月激情网| 国产无码精品成人| 欧美综合传媒| 欧美天天拍| 精品人妻中文字幕高清| 亚洲色图第四色| 日本人体九九九九九九| 园内精品自拍视频在线播放| 久久久久久久| 91精品免费| 九九视品黄色| 啊视频在线| AV乱伦国产| av麻豆啪啪| 久久本道| 自拍偷拍 日韩无码| 亚洲欧美成人网站AAA| 日韩人妻精品| 加勒比日本在线| 激情五月综合| 性色AV蜜色av色欲av| 欧美激情黑人| 台湾大香蕉99热| 国产精品无套内谢| 亚洲色91| 精品女同一区| 熟女乱伦二区| 能在线播放的国产三级| 精品二区三四区五电影 | 美女写真| 日本精品一级二级三级| 久久99久久99精品天美传媒棢·纸:.| 亚洲天堂自拍| 水澄无码AV| 欧美一区二区观看在线| 精品国产Av无码久久久亚洲| 久久久久女教师免费一区| 97 九色| 天天综合色| 欧美v亚洲v日韩v最新在线二区| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 在线观看色视频| 91视频精品| 偷拍综合网| 蜜臀Av一区二区三区| 俺也射| 啊啊啊不要好爽日韩无码一区| 91N欧美| 六月丁香婷| 欧美日韩性爱无码| 熟妇xxxxx性春色| 97天天综合| 91中文字幕制服丝袜免费视频| 国产精品久久久久久久免牛肉蒲团| 偷拍 精品 另类 四区| 五月天黄色激情视频| 思思视频免费看网站| 麻豆久久一区二区三区| 日本 情色 1区| 丰满熟妇大乳做爰| 97视频免费在线| av橘色网站| 加勒比久久av| 老熟妇综合| 亚洲免费精品一区| 熟女人妻av在线资源,黄色的资源| 婬女免费一二三区A片| 九九九九热只有精品| 搞中出视频在线观看| 国产精品网站免费 | 夜夜爽爽爽| 久操B网| 91九色精品熟女内射| 自慰白浆在线观看| 最近2019中文字幕国语免费版| 欧美人妻一区| 婷婷五月天激情网| 久久久夜夜嗨免费视频| 性爱乱伦一区| 久久激情五月| 久久九九综合| 精品少妇一区二区三区免费观看| 免费视频无码| 日韩精品国产精品五码一区二区| 五月丁香综合激情| 激情五月综合网| 欧美激情综合色综合啪啪五月| 99久久久无码国产精品性男| 国产一级做a爰大片免费久久| 色综合九九| 丁香六月综合激情| 国产自产91区13区| 97色诱| 色情婷婷久久五月天| 亚洲中文字幕一区| 亚洲丝袜二区在线| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 天干天干天干天天做| 久久久久久久9999| 麻豆尤物视频网| 久久精品店| 三级精品三级在线观看| 岛国色情视频在线观看| 亚洲成?V人片在线观看福利| 91碰碰| 久久丁香五月天| 夜夜嗨一区二区| 插入综合网| 欧美精品91| 超碰97首页| 97神马久久| 豆花视频操逼网址| 亚洲暴力强奸AV| 水野优香在线观看| 免費人妻夜夜爽天天爽爽一区| 狠综合网| 久久久一二三四区| 蜜桃av色偷偷av老熟女| 成人无遮挡毛片免费看| 欧美性爱精品一区二区| 欧美制服另类丝袜| 蜜臀av中文字幕| 韩日欧亚a级| 69XX一中文字幕人妻91| 国产一级操B视频| 天天爽天天爽| 久久精品一区| 91日产桃蜜| 人人操人人干xxx| 我要看免费韩日黄片| 操91| 久久精品人妻一区二区| 国产97av| 永久免费av无码网站国产app | 女人天堂av在线播放| 欧美系列在线一区二区| 黄片免费日韩| 国产美女高潮叫床视频| 丰满少妇一区二区三区四区观看| 国产妇女精品视频青青草| 国产久久久久久| 岛国AB视频| 久草久热| 久湿久久 | 久久性爱视频免费看| www色日本| 亚洲码和欧洲精品激情系列| 97中文字幕九区| 亚洲国产精品99久久久| 色婷婷基地| 亚洲色香| 中文字幕欧美丝袜07资源| 久久久久久久亚洲Av无码| 欧美色九九九| 婷婷人妻激情| 日本一区二区三区四区免费观看| 婷婷丁香六月| 人妻少妇色综合| 九九热精品| 国产黄色影片在线观看| 中文字幕乱在线伦视频中文字幕乱码在线| 国产精品免费美女视频| 亚洲色9| 亚洲在线a| 在线观看高清AV| 91在线欧色| 青青草原av| 啪啪性爱免费视频| 婷婷五月天社区| 91美女视频。| www国产无码| 欧美一区91大爱| 天堂成人网| 中国探花熟女| 尤物视频偷拍免费| 国产Av超碰| 无码高清操逼网址| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 天美91| www.超碰|