99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

STM32L431RC超低功耗MCU上μC/OS-III工程實戰(zhàn)

STM32L431RC超低功耗MCU上μC/OS-III工程實戰(zhàn) 簡介本資源是一份基于STM32L431RCT6芯片的μC/OS-III實時操作系統(tǒng)完整移植工程面向嵌入式初學者與RTOS進階學習者解決低功耗MCU上輕量級操作系統(tǒng)移植與外設協(xié)同控制的核心實踐問題。工程已在Keil MDK環(huán)境下成功構建并驗證涵蓋系統(tǒng)時鐘配置外部12MHz晶振→80MHz主頻、LED多路閃爍PC1/PC2/PC3及串口調試輸出PA9/PA10115200bps等典型功能是理解ARM Cortex-M4內(nèi)核、HAL庫與μC/OS-III任務調度機制的理想入門范例。壓縮包共168個文件主體為72個C源文件含os_core.c、stm32l4xx_hal_tim.c等核心模塊與84個頭文件輔以5個匯編啟動與CPU相關文件如cpu_a.asm、os_cpu_a.asm結構清晰體現(xiàn)RTOS分層設計思想包體大小987KB精簡實用。目前已有765人學習下載提供可直接編譯運行的完整工程框架、關鍵外設驅動集成邏輯及標準μC/OS-III移植接口實現(xiàn)助讀者快速掌握低功耗MCURTOS開發(fā)全流程。1. 一個跑在超低功耗MCU上的μC/OS-IIILED閃爍串口日志不是Demo而是可量產(chǎn)的工程骨架你手頭有塊STM32L431RC——那個標稱“運行功耗僅80μA/MHz、待機僅250nA”的超低功耗芯片但燒進去的裸機例程一跑串口就掉電、LED控制邏輯和延時混作一團、想加個任務調度器又怕把RAM吃光別急這個工程就是為這種真實產(chǎn)線場景準備的它不是教科書式μC/OS-III移植筆記而是一個已通過J-Link實測、RAM占用壓到16KB以內(nèi)、所有外設驅動與RTOS任務解耦、串口日志能穩(wěn)定輸出115200波特率不丟幀的完整工程。它專為電池供電的傳感器節(jié)點、便攜醫(yī)療設備或工業(yè)邊緣采集終端設計——你拿到后改幾行LED引腳定義、換串口引腳、調下系統(tǒng)時鐘就能直接進樣機測試。新手能靠它理解RTOS如何真正接管硬件老手能把它當?shù)鬃席BModbus從站、BLE廣播或輕量級OTA模塊。這不是“學會RTOS”的練習題而是“交付RTOS項目”的第一塊磚。2. 工程結構與技術棧從芯片手冊到任務調度器的全鏈路對齊這個工程不是把ST官方CubeMX生成代碼硬塞進μC/OS-III模板里湊出來的。它嚴格遵循“芯片能力→HAL抽象→RTOS封裝→應用任務”四層結構每一層都留了可替換接口。我拆包時重點核對了三處關鍵對齊點STM32L431RC的PWR_CR2寄存器位定義是否匹配HAL_PWR_EnterSTOPMode()調用、μC/OS-III的OS_CFG_TICK_RATE_HZ是否與SysTick_Handler中斷頻率一致、以及串口DMA緩沖區(qū)大小是否避開HAL_UART_Receive_DMA()的隱式對齊陷阱。下面逐層展開。2.1 芯片級配置L431RC專屬的低功耗時鐘樹與外設使能STM32L431RC的超低功耗特性全靠時鐘樹精細控制。工程中system_stm32l4xx.c文件里HSE外部高速晶振被禁用全程使用MSI多速內(nèi)部時鐘作為系統(tǒng)主頻源——這是L4系列省電的核心策略。關鍵配置如下// system_stm32l4xx.c 片段MSI作為系統(tǒng)時鐘源頻率鎖定為4MHz RCC_OscInitTypeDef RCC_OscInitStruct {0}; RCC_ClkInitTypeDef RCC_ClkInitStruct {0}; RCC_OscInitStruct.OscillatorType RCC_OSCILLATORTYPE_MSI; RCC_OscInitStruct.MSIState RCC_MSI_ON; RCC_OscInitStruct.MSICalibrationValue RCC_MSICALIBRATION_DEFAULT; RCC_OscInitStruct.MSIClockRange RCC_MSIRANGE_6; // 4MHz RCC_OscInitStruct.PLL.PLLState RCC_PLL_NONE; if (HAL_RCC_OscConfig(RCC_OscInitStruct) ! HAL_OK) { Error_Handler(); } RCC_ClkInitStruct.ClockType RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2; RCC_ClkInitStruct.SYSCLKSource RCC_SYSCLKSOURCE_MSI; // 強制SYSCLKMSI RCC_ClkInitStruct.AHBCLKDivider RCC_SYSCLK_DIV1; RCC_ClkInitStruct.APB1CLKDivider RCC_HCLK_DIV1; RCC_ClkInitStruct.APB2CLKDivider RCC_HCLK_DIV1; if (HAL_RCC_ClockConfig(RCC_ClkInitStruct, FLASH_LATENCY_0) ! HAL_OK) { Error_Handler(); }提示L431RC的MSI默認精度±1%若需更高精度串口通信如921600波特率必須啟用MSI校準RCC_MSICALIBRATION_DEFAULT需替換為實測值或外接HSE。本工程按115200波特率設計4MHz MSI完全滿足±2%容限要求。外設使能也做了精簡只開啟GPIOALED所在端口、USART2調試串口、RCC和PWR——連SPI、I2C這些沒用的外設時鐘全關。main.c開頭的__HAL_RCC_GPIOA_CLK_ENABLE()和__HAL_RCC_USART2_CLK_ENABLE()是唯二的外設使能調用避免HAL庫自動使能未用外設導致漏電。2.2 HAL層抽象剝離阻塞式調用為RTOS讓出調度權HAL庫原生API大量使用HAL_Delay()或輪詢等待標志位這在RTOS環(huán)境里是致命的。本工程對所有外設驅動做了“非阻塞化改造”LED控制不調用HAL_GPIO_WritePin()后死等而是封裝成LED_Toggle()函數(shù)內(nèi)部僅翻轉IO電平由任務周期性調用串口輸出棄用HAL_UART_Transmit()改用HAL_UART_Transmit_IT()中斷模式 環(huán)形緩沖區(qū)。發(fā)送任務只需將字符串寫入緩沖區(qū)中斷服務程序自動搬運數(shù)據(jù)系統(tǒng)滴答HAL_SYSTICK_Config()配置為1ms中斷但HAL_IncTick()被注釋掉——因為μC/OS-III用自己的OSTimeDly()管理時間HAL的tick計數(shù)器純屬冗余。關鍵改造代碼在bsp_uart.c中// bsp_uart.c串口發(fā)送環(huán)形緩沖區(qū)實現(xiàn) #define UART_TX_BUF_SIZE 256 static uint8_t uart_tx_buf[UART_TX_BUF_SIZE]; static uint16_t tx_head 0; static uint16_t tx_tail 0; // 應用任務調用此函數(shù)發(fā)送數(shù)據(jù)不阻塞 void BSP_Uart_Send(const uint8_t *data, uint16_t size) { for (uint16_t i 0; i size; i) { uart_tx_buf[tx_head] data[i]; tx_head (tx_head 1) % UART_TX_BUF_SIZE; // 若緩沖區(qū)滿丟棄最老字節(jié)生產(chǎn)環(huán)境可改為阻塞等待 if (tx_head tx_tail) { tx_tail (tx_tail 1) % UART_TX_BUF_SIZE; } } // 若UART空閑觸發(fā)發(fā)送中斷 if (__HAL_UART_GET_FLAG(huart2, UART_FLAG_TC) __HAL_UART_GET_IT_SOURCE(huart2, UART_IT_TC)) { HAL_UART_Transmit_IT(huart2, uart_tx_buf[tx_tail], 1); } } // 串口中斷服務程序搬運一個字節(jié)并觸發(fā)下次中斷 void USART2_IRQHandler(void) { HAL_UART_IRQHandler(huart2); } void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart) { if (huart-Instance USART2) { tx_tail (tx_tail 1) % UART_TX_BUF_SIZE; if (tx_head ! tx_tail) { // 緩沖區(qū)還有數(shù)據(jù) HAL_UART_Transmit_IT(huart, uart_tx_buf[tx_tail], 1); } } }這段代碼解決了兩個經(jīng)典問題一是避免任務因HAL_UART_Transmit()阻塞而無法響應其他事件二是防止高頻率日志打印時緩沖區(qū)溢出導致系統(tǒng)卡死。環(huán)形緩沖區(qū)大小256字節(jié)是實測平衡點——再小易丟日志再大占RAM。2.3 μC/OS-III集成從os_cfg.h到任務堆棧的精準裁剪μC/OS-III不是“拿來即用”它的配置文件os_cfg.h決定了90%的內(nèi)存占用。本工程針對L431RC的64KB Flash/16KB RAM做了三處關鍵裁剪關閉所有調試功能#define OS_CFG_DBG_EN 0#define OS_CFG_STAT_TASK_EN 0#define OS_CFG_TS_EN 0限制最大任務數(shù)#define OS_CFG_TASK_MAX_NUM 8實際只用4個任務LED、串口、空閑、統(tǒng)計堆棧大小按需分配LED任務僅需128字節(jié)棧串口任務需256字節(jié)含printf浮點支持空閑任務強制128字節(jié)。app_cfg.h中定義了各任務棧大小// app_cfg.h任務堆棧大小定義單位CPU_STK #define APP_CFG_TASK_LED_STK_SIZE 128 #define APP_CFG_TASK_UART_STK_SIZE 256 #define APP_CFG_TASK_IDLE_STK_SIZE 128 #define APP_CFG_TASK_STAT_STK_SIZE 128注意L431RC的SRAM1只有48KB但其中一部分被HAL庫的.bss段占用。工程鏈接腳本STM32L431RC_FLASH.ld明確將.stack段放在SRAM1末尾.heap段緊鄰其前確保RTOS堆棧不會與全局變量沖突。這是很多移植失敗的根源——沒動鏈接腳本只改os_cfg.h。2.4 應用任務層LED與串口的雙任務協(xié)同模型最終的應用邏輯被拆成兩個獨立任務通過μC/OS-III的信號量和消息隊列解耦AppTaskLed()每500ms翻轉一次LED不涉及任何外設操作純CPU計算AppTaskUart()每100ms從消息隊列讀取一條日志調用BSP_Uart_Send()發(fā)送無阻塞。任務創(chuàng)建代碼在app.c中// app.c任務創(chuàng)建入口 void AppTaskCreate(void) { // 創(chuàng)建LED任務優(yōu)先級3棧大小128 OSTaskCreate(AppTaskLedTCB, LED Task, AppTaskLed, 0u, APP_CFG_TASK_LED_PRIO, AppTaskLedStk[0u], APP_CFG_TASK_LED_STK_SIZE / 10u, APP_CFG_TASK_LED_STK_SIZE, 0u, 0u, 0u, (OS_OPT_TASK_STK_CLR | OS_OPT_TASK_STK_CHK), err); // 創(chuàng)建串口任務優(yōu)先級2高于LED保證日志及時發(fā)出 OSTaskCreate(AppTaskUartTCB, UART Task, AppTaskUart, 0u, APP_CFG_TASK_UART_PRIO, AppTaskUartStk[0u], APP_CFG_TASK_UART_STK_SIZE / 10u, APP_CFG_TASK_UART_STK_SIZE, 0u, 0u, 0u, (OS_OPT_TASK_STK_CLR | OS_OPT_TASK_STK_CHK), err); }這里有個反直覺設計串口任務優(yōu)先級2高于LED任務3。因為日志輸出是診斷核心若LED閃爍搶占了串口發(fā)送會導致調試信息延遲甚至丟失。這種“非直觀優(yōu)先級”恰恰是RTOS工程化的體現(xiàn)——優(yōu)先級不是按功能重要性排而是按實時性約束排。3. 編譯與燒錄Keil MDK-ARM v5.37下的零配置啟動這個工程開箱即用但前提是你的Keil版本和工具鏈匹配。我實測過v5.36~v5.38均能編譯通過低于v5.36會報__CLZ內(nèi)聯(lián)函數(shù)未定義錯誤ARMCC 5.06以上才支持。下面是從新建工程到燒錄的完整路徑每一步都標注了可能翻車的細節(jié)。3.1 Keil工程配置三個必須修改的選項卡打開.uvprojx后右鍵“Options for Target”進入配置界面。以下三處必須手動確認CubeMX生成的默認值在此工程中全部失效Target選項卡Device選擇STM32L431RC不是L431RCT6或其他變種Xtal(MHz)填4對應MSI 4MHz非8MHz或25MHz重點勾選Use MicroLIB——μC/OS-III的printf依賴MicroLIB的精簡版_sys_write()標準ARM libc會因缺少_sys_open()鏈接失敗。Output選項卡勾選Create HEX File方便用ST-Link Utility燒錄Name of Executable改為stm32l431_ucosiii.hex避免與舊工程混淆。C/C選項卡Define欄填入USE_HAL_DRIVER,STM32L431xx,OS_CFG_DBG_EN0避坑STM32L431xx必須全小寫且?guī)x后綴寫成STM32L431RC或STM32L431會導致stm32l4xx.h中寄存器定義缺失。Include Paths添加.\Core\Inc;.\Drivers\STM32L4xx_HAL_Driver\Inc;.\Middlewares\Third_Party\UCOS-III\Source;.\Middlewares\Third_Party\UCOS-III\Ports\ARM-Cortex-M4\Generic\ARMCC避坑UCOS-III的Port路徑必須精確到ARMCC子目錄寫成ARM-GCC會找不到os_cpu.h。3.2 啟動文件與鏈接腳本L431RC專屬的內(nèi)存映射工程中startup_stm32l431rc.s是標準ST啟動文件但STM32L431RC_FLASH.ld鏈接腳本做了關鍵定制/* STM32L431RC_FLASH.ld */ MEMORY { FLASH (rx) : ORIGIN 0x08000000, LENGTH 256K RAM (xrw) : ORIGIN 0x20000000, LENGTH 64K /* L431RC實際RAM為64KB */ } SECTIONS { .stack (NOLOAD) : { __stack_start__ .; . . 2K; /* 為RTOS任務棧預留2KB */ __stack_end__ .; } RAM .heap (NOLOAD) : { __heap_start__ .; . . 4K; /* 為malloc預留4KB */ __heap_end__ .; } RAM }避坑L431RC的RAM是64KB不是L476的128KB若鏈接腳本寫成LENGTH 128K會導致.bss段溢出覆蓋??臻g現(xiàn)象是串口輸出亂碼、LED閃爍頻率飄移——這種玄學問題查三天都找不到根因。3.3 燒錄與調試J-Link Commander的三行命令不用Keil的Flash Download用J-Link Commander更可控。連接J-Link后執(zhí)行# 進入J-Link Commander JLink.exe # 1. 選擇芯片 J-Link device STM32L431RC # 2. 連接SWD接口速度4000kHz足夠 J-Link speed 4000 # 3. 燒錄HEX文件路徑替換成你的實際路徑 J-Link loadfile D:\project\stm32l431_ucosiii.hex燒錄成功后J-Link會自動復位芯片。此時觀察PA5引腳LED默認接在此應以500ms周期閃爍同時串口2PA2/PA3輸出類似[INFO] System init OK, tick1000ms的日志。避坑若燒錄后無反應先檢查J-Link的VTref引腳是否接到L431RC的VDD——L4系列是3.3V供電VTref必須為3.3V接5V會損壞J-Link。4. 避坑指南五個血淚經(jīng)驗總結的高頻翻車點這個工程我?guī)е掣咝嶒炇业腁同學一起跑通他踩過的坑我們?nèi)浵聛砹?。以下五條全是真實發(fā)生、反復驗證過的“必現(xiàn)問題”按出現(xiàn)頻率排序4.1 現(xiàn)象串口輸出亂碼如???但波特率設置正確原因HAL_RCC_GetSysClockFreq()返回值錯誤導致HAL_UART_Init()計算的BRR寄存器值偏差。根本原因是SystemCoreClock變量未被HAL庫正確更新——因為工程禁用了HSE而HAL_RCC_GetSysClockFreq()默認按HSE路徑計算。解決在main.c的HAL_Init()之后、SystemClock_Config()之前手動設置SystemCoreClock 4000000;4MHz?;蛘吒鼜氐自趕ystem_stm32l4xx.c中找到SystemCoreClockUpdate()函數(shù)將其內(nèi)容替換為SystemCoreClock 4000000;。4.2 現(xiàn)象LED不閃爍但串口有日志輸出原因AppTaskLed()任務被創(chuàng)建但OSTaskCreate()返回OS_ERR_CREATE_ISR錯誤。這是因為任務創(chuàng)建時RTOS尚未啟動OSStart()未調用而代碼誤放在了main()的while(1)循環(huán)里。解決確認AppTaskCreate()調用位置在OSStart()之前且在main()函數(shù)末尾。標準流程是HAL_Init()→SystemClock_Config()→AppTaskCreate()→OSStart()。任何一步挪到OSStart()之后都會導致任務創(chuàng)建失敗。4.3 現(xiàn)象燒錄后LED常亮不滅串口無輸出原因startup_stm32l431rc.s中Reset_Handler跳轉到了錯誤的C函數(shù)入口。Keil默認生成的啟動文件可能指向main但μC/OS-III工程必須指向main之前的SystemInit()。解決打開啟動文件找到.section .text段下的Reset_Handler確認其最后跳轉指令是bl SystemInit而非bl main。若為后者手動改為bl SystemInit。4.4 現(xiàn)象編譯報錯undefined reference to OSCtxSw原因os_cpu_c.c中的OSCtxSw()函數(shù)未被編譯。Keil默認不編譯.c文件除非它被加入工程組。而該文件常被誤放在“User”組而非“UCOS-III Source”組。解決在Keil工程窗口中右鍵os_cpu_c.c→Options for File→ 勾選Include in Target Build。同理檢查os_cpu_a.asm是否被正確識別為ARM匯編文件文件屬性中File Type應為ARM Assembly File。4.5 現(xiàn)象串口日志輸出到一半突然停止后續(xù)無任何輸出原因環(huán)形緩沖區(qū)tx_head和tx_tail變量未聲明為volatile編譯器優(yōu)化將其緩存在寄存器中導致中斷服務程序修改的值不被主任務感知。解決在bsp_uart.c中將兩行聲明改為static volatile uint16_t tx_head 0; static volatile uint16_t tx_tail 0;這是嵌入式開發(fā)的鐵律所有被中斷服務程序和主程序共同訪問的變量必須加volatile。不加的話優(yōu)化等級-O2以上必翻車。5. 核心模塊代碼詳解LED任務與串口任務的完整鏈路現(xiàn)在我們深入到最核心的兩個應用任務代碼逐行解析它們?nèi)绾闻c硬件、RTOS交互。這不是API羅列而是展示“一個LED閃爍請求”從任務調度到IO翻轉的完整旅程。5.1 LED任務500ms周期的精準控制AppTaskLed()位于app_led.c中代碼極簡但暗藏玄機// app_led.c #include app_cfg.h #include bsp_led.h #include os.h void AppTaskLed(void *p_arg) { CPU_INT32U cnt; (void)p_arg; // 初始化LED引腳PA5 BSP_LED_Init(LED_RED); while (DEF_ON) { // 關鍵使用OSTimeDly()而非HAL_Delay() OSTimeDlyHMSM(0u, 0u, 0u, 500u, OS_OPT_TIME_HMSM_STRICT, cnt); // 翻轉LED BSP_LED_Toggle(LED_RED); } }逐行說明OSTimeDlyHMSM(0u, 0u, 0u, 500u, OS_OPT_TIME_HMSM_STRICT, cnt)這是μC/OS-III的高精度延時函數(shù)。參數(shù)500u表示500毫秒OS_OPT_TIME_HMSM_STRICT確保延時嚴格等于500ms不因任務切換微小偏移。cnt接收實際延時誤差可用于動態(tài)補償——比如記錄10次延時的平均誤差下次調用時減去該值。BSP_LED_Toggle(LED_RED)調用底層驅動本質是HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5)。注意這里沒有HAL_Delay()也沒有while(!flag)輪詢純粹是寄存器操作耗時1μs。為什么不用HAL_Delay()因為HAL_Delay()依賴HAL_IncTick()而本工程禁用了HAL的tick機制。若強行啟用會導致SysTick中斷與μC/OS-III的OSTickISR()沖突系統(tǒng)崩潰。5.2 串口任務日志隊列與非阻塞發(fā)送的協(xié)同AppTaskUart()更復雜它串聯(lián)了消息隊列、格式化輸出、環(huán)形緩沖區(qū)三重機制// app_uart.c #include app_cfg.h #include bsp_uart.h #include os.h #include stdio.h // 定義日志消息隊列 OS_Q AppUartQ; void AppTaskUart(void *p_arg) { CPU_INT32U cnt; OS_MSG_SIZE msg_size; CPU_CHAR log_buf[128]; (void)p_arg; // 創(chuàng)建消息隊列深度5每條消息最大128字節(jié) OSQCreate(AppUartQ, UART Log Q, 5u, err); // 預填充一條啟動日志 snprintf(log_buf, sizeof(log_buf), [INFO] System init OK, tick%dms\r\n, (int)OSCfg_TickRate_Hz); OSQPost(AppUartQ, log_buf, sizeof(log_buf), OS_OPT_POST_FIFO, err); while (DEF_ON) { // 等待100ms若隊列有消息則立即返回 void *p_msg OSQPend(AppUartQ, 100u, OS_OPT_PEND_BLOCKING, msg_size, 0, err); if (err OS_ERR_NONE) { // 將消息寫入環(huán)形緩沖區(qū)非阻塞 BSP_Uart_Send((uint8_t*)p_msg, msg_size); } } }關鍵邏輯拆解OSQCreate(AppUartQ, UART Log Q, 5u, err)創(chuàng)建深度為5的消息隊列。這意味著最多緩存5條日志第6條會覆蓋最老的一條——這是資源受限設備的合理取舍。snprintf()預填充啟動日志注意sizeof(log_buf)傳入的是數(shù)組長度而非字符串長度避免snprintf截斷。OSQPend(AppUartQ, 100u, ...)任務掛起等待消息超時100ms。若100ms內(nèi)無消息函數(shù)返回p_msgNULL任務繼續(xù)循環(huán)若有消息則p_msg指向消息內(nèi)容msg_size為實際字節(jié)數(shù)。BSP_Uart_Send()調用見2.2節(jié)此處不再贅述。重點是它絕不阻塞無論緩沖區(qū)多滿函數(shù)立即返回。5.3 日志注入如何從任意任務發(fā)送日志日志不是只能從AppTaskUart()發(fā)任何任務都可以調用OSQPost()向隊列投遞。例如在LED任務中加入狀態(tài)日志// 在AppTaskLed()的while循環(huán)內(nèi)添加 if ((cnt % 10) 0) { // 每5秒發(fā)一次 snprintf(log_buf, sizeof(log_buf), [DEBUG] LED toggled %d times\r\n, cnt); OSQPost(AppUartQ, log_buf, strlen(log_buf)1, OS_OPT_POST_FIFO, err); }這里strlen(log_buf)1確保\r\n和結尾\0都被發(fā)送串口終端才能正確換行。OS_OPT_POST_FIFO保證日志按發(fā)送順序輸出避免調試時因果倒置。6. 二次開發(fā)實戰(zhàn)從LED串口到可量產(chǎn)功能的三步改造這個工程的價值不在“能跑”而在“好改”。我?guī)彻厩度胧綀F隊落地過三個真實項目溫濕度傳感器節(jié)點、便攜心電圖儀前端、工業(yè)振動監(jiān)測終端。所有項目都基于此工程起步改造路徑高度一致。下面以“增加ADC采樣任務”為例講清從需求到驗證的完整閉環(huán)。6.1 第一步外設驅動層擴展——ADC非阻塞采樣L431RC的ADC1支持12位精度、1Msps采樣率但HAL庫的HAL_ADC_Start()是阻塞的。我們仿照串口方案改造成中斷DMA模式硬件配置在MX_ADC1_Init()中將hadc1.Init.ContinuousConvMode ENABLEhadc1.Init.DMAContinuousRequests ENABLEDMA配置啟用hdma_adc1緩沖區(qū)大小設為16采樣16次后觸發(fā)DMA完成中斷中斷處理在HAL_ADC_ConvCpltCallback()中將16個采樣值存入環(huán)形緩沖區(qū)并向新創(chuàng)建的AdcDataQ消息隊列投遞。關鍵代碼片段// bsp_adc.cADC數(shù)據(jù)搬運 #define ADC_BUF_SIZE 16 static uint16_t adc_dma_buf[ADC_BUF_SIZE]; OS_Q AdcDataQ; void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef* hadc) { if (hadc-Instance ADC1) { // 將DMA緩沖區(qū)數(shù)據(jù)打包為消息 struct adc_msg_s { uint16_t data[ADC_BUF_SIZE]; uint32_t timestamp; } msg; memcpy(msg.data, adc_dma_buf, sizeof(msg.data)); msg.timestamp HAL_GetTick(); // 使用HAL tick非OSTimeGet() OSQPost(AdcDataQ, msg, sizeof(msg), OS_OPT_POST_FIFO, err); } }注意HAL_GetTick()在這里是安全的因為ADC采樣是硬件觸發(fā)不依賴RTOS調度。若用OSTimeGet()需確保在臨界區(qū)調用否則可能讀到錯誤時間戳。6.2 第二步RTOS任務層擴展——ADC數(shù)據(jù)處理任務新建AppTaskAdc()優(yōu)先級設為4高于串口任務確保采樣數(shù)據(jù)不積壓// app_adc.c void AppTaskAdc(void *p_arg) { OS_MSG_SIZE msg_size; struct adc_msg_s *p_msg; CPU_INT32U avg_val; while (DEF_ON) { p_msg OSQPend(AdcDataQ, 0u, OS_OPT_PEND_BLOCKING, msg_size, 0, err); if (err OS_ERR_NONE) { // 計算16次采樣的平均值 avg_val 0; for (int i 0; i ADC_BUF_SIZE; i) { avg_val p_msg-data[i]; } avg_val / ADC_BUF_SIZE; // 發(fā)送處理結果到串口隊列 snprintf(log_buf, sizeof(log_buf), [ADC] Avg%d, ts%lu\r\n, (int)avg_val, p_msg-timestamp); OSQPost(AppUartQ, log_buf, strlen(log_buf)1, OS_OPT_POST_FIFO, err); } } }驗證方法用示波器抓ADC輸入引腳同時看串口輸出。若輸入1V直流串口應穩(wěn)定輸出[ADC] Avg163812位ADC滿量程4095對應3.3V1V≈1240碼此處為示意值。若數(shù)值跳變劇烈說明DMA緩沖區(qū)未對齊或中斷優(yōu)先級設置不當。6.3 第三步資源監(jiān)控與上線保障——RAM/Stack使用率實時告警量產(chǎn)設備最怕“莫名重啟”根源常是棧溢出。我們在空閑任務中加入棧水印檢測// app_idle.c修改空閑任務 void AppTaskIdle(void *p_arg) { CPU_STK_SIZE unused; CPU_STK_SIZE used; while (DEF_ON) { // 檢查所有任務棧使用率 OSTaskStkChk(AppTaskLedTCB, unused, used, err); if (used (APP_CFG_TASK_LED_STK_SIZE * 80 / 100)) { // 超過80% snprintf(log_buf, sizeof(log_buf), [WARN] LED task stack usage %d%%\r\n, (int)(used * 100 / APP_CFG_TASK_LED_STK_SIZE)); OSQPost(AppUartQ, log_buf, strlen(log_buf)1, OS_OPT_POST_FIFO, err); } // 同理檢查其他任務... OSTimeDlyHMSM(0u, 0u, 1u, 0u, OS_OPT_TIME_HMSM_STRICT, err); // 每秒檢查一次 } }上線前必做將APP_CFG_TASK_*_STK_SIZE全部擴大1.5倍連續(xù)運行72小時觀察告警日志。若無告警再按實際占用率縮回——這是我的血淚經(jīng)驗永遠按實測峰值50%預留??臻g。從那以后我每次給新同事配RTOS工程都強制走一遍“棧水印檢測72小時壓力測試”流程。它不能保證代碼100%無bug但能篩掉90%的偶發(fā)性崩潰。希望幫到你。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
99色网站| 久热A片| 久99视频| 五月丁香大香蕉| 五月天激情婷婷五月天久久| 一区二区你懂的| 99狠狠色| 丁香色综合| 9999热在线免费观看| 九九成人精品| 激情丁香社区| 久久九九@| 丁香五月综合| 亚洲成人免费在线| 色婷婷亚洲婷婷在线观看| 99爱视频精品| 99自拍网| 五月天综合久久丁香91| 射满了还射免费在线观看 -午夜版全集-新视觉影院 | 久色婷婷200| 久激情网| 综合久久高清| 婷婷色色欧美| 天堂伊人干| 99色在线| 婷婷无码五月天| 天天色一道本综合婷婷| 人妻久久久久久久久妻久久久久久久久 | 色五月激情网| 激情五月综合网| 26uuu欧美日本| 国产Va视频| 日韩精品呦呦va| 天天舔天天爽| 超碰91在线| enecarbon-materials.com污K127封锁请涟系@wip1688 | 黄色大片又大粗又爽| 五月天婷婷色色首页| 色色色com| 人人操五月天| 97碰碰碰免费公开在线视频| 亚洲精品一区无码A片| 丁香色色色| 色婷婷五月天在线观看| 伊人久久大香网| 停停五月色宗合| 五月天婷婷综合免费| 六月丁香天堂| www激情网站| 色情成人五月天| 久久综合婷婷激情| 亚洲色基地| 操逼电影免费看| 久久您您综合网| 91久久久久久久久久18| 激情伊人网| 国产亚洲99久久| 青青999| 9|在线观看视频| 九九九九热99超碰| 男人的天堂五月丁香| www,色综合| 国产综合丁香五月天| 激情五月天婷婷丁香| 男人的天堂av俄罗斯热| 九月丁香亭亭| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 久久精品视频在这里有| 91狠狠综合久久| 婷婷色网| 婷婷五月丁香国产| 色噜久| 色色色色色色色色综合网| 成人 在线观看国产| 欧美色色色| 99久久婷婷| 五月天色不卡| 六月婷欧美丁香综合| 激情啪啪五月天| 99久精品视频| 婷婷六月插屄激情| 九九色色网| 开心五月婷婷激情| 丁香九月综合在线| 色99亚洲| 婷婷成人视频| 欧美性生交XXXXX无码小说| 无码成人播放器| 狠狠色丁香久久综合婷婷亚洲成人福利| 日韩大片艹艹| 激情婷婷另类| 性爱在线播放av| 成人色五月天| 超级碰碰91| 五月婷激情| 韩日另类| 久久综合丁香五月| WWW.桔色成人.COM| 人人插操| 婷五月天天| 色婷婷五月天天天干天天操天天爽| 亚洲婷婷五月天| 中文字幕黄色片| 婷婷天堂综合网| 色9999日韩国产| 人人做人人看人人摸| 操骚货在线| 另类在线| 五月丁香猫咪久久婷婷综合视频激情四射网入口 | 欧美日韩成人综合9| 91久久九久久九久久九久久九久久 | 乱乱av| 亚洲色人妻| 五月六月激情婷婷| site:pnnrt.com| 91久草五月天婷婷| 亚洲99在线| av 一区三区四区| 五月色俺婷婷| 亚洲三级无码| 五月人人丁香婷婷五月人人丁香| 久热伊人| 色婷婷婷婷| 五月天婷婷伊人| 色激情综合| 婷婷天堂综合网| 99在线观看视频免费| 久热只有精品| 91天堂网综合| 欧美Va婷色| 蜜乳av一级av| 丁香五月av在线| 99色在线视频| 蜘蛛女免费观看完整版高清电影 | 亚洲超碰中文字幕| 91色干| 九六五月天婷婷| 另类天堂| 白天AV月月| 九九在线精点品| 亚洲一区国产传媒| 久久激情综合| 99热99网| 国产AV一区二区三区日韩| 色停停香蕉视频| 激情五月丁香婷婷| 亚洲成人在线免费| 超碰在线成人| 六月伊人婷婷| 婷婷热色| 五月婷婷导航| 九九色综合| 97在线碰| 亚洲欧洲自拍图片专区五月天| 激情丁香五月天| 五月综合激情| 色婷婷狠狠| 激情无码五月天| 东北婷婷五月天| 99re久久| 99热这里只有精品33| 亚洲字幕AV一区二区三区四区| 国产色色网站网址| 99热欲| 色欲久久久久| 伊人狠狠丁香婷婷综合尤物| 99色色| 伊人久久婷婷五月天激情四射| 国产超碰在线| 色婷婷五月视频| 91九九精品| 天天干天天干天天| 99re这里只有精品9| 97人人干| 99色性爰网络| 天天做综合| 最近中文字幕2019视频1| 五月色 亚洲| 狠狠爱成人综合网| 91偷拍视频| 无码se| 日日日日日| 激情久久综合网| 激情婷婷视频在线| 五月天婷婷久久| 婷婷五月天亚洲综合网| 久久永久视频| 伊人五月婷| av五月天婷婷丁香| 狠狠干综合| 国产精品99久久久久久久女警| 五月色婷婷激情| 婷婷五月无码| 怎么样可以看免费的一级av| 91黄操| 伊人五月天日日夜夜久久久天天| 97艹| 91丁香色| 99无码精品| 97色色色色色| 五月亚洲激情| 五月婷婷激情网| 丁香五月激情图片婷婷| 天天操天天干天天日| 五月丁香啪啪啪啪| www九九热| 20253AV| 九九色图| 九九色播五月丁香| 天天日,天天干,天天操| 男人综合网| 久久综合伊人77777蜜臀| 超碰在线人妻| 91九色网| 六月婷婷综合激情| 色综合久久88色综合天天| www.99热日韩.com| 99re热在线视频| 日韩一级| 涩丁香| 色99在线| 色婷婷久久| 九九精品在线观看视频6| 91婷婷丁香五月天免费视频网站| 五月婷婷深深爱| 欧美日本免费一道免费视频 | 99碰碰| 91美女啪啪| 狠狠干狠狠色| 五月天成人综合| 五月激情天| 五月开心啪啪| 色五月天网| 99色综合网| 第五婷婷伊人丁香色| 久久日婷婷| 欧美性猛交AAAA片黑人 | 手机旧版看人妻1025| 丁香色综合| 69婷婷丁香午夜| 狠狠色婷婷在线| 亚洲av成人在线| 五月天丁香婷婷社区| 久热精彩视频98| 国产AV一区二区三区最新精品| 久热久| 五月婷婷偷拍| 99久久九九| 色女人久久| 综合激情视频| 久久婷婷网| 久久人妻乱| 亚洲经典小视频| 五月婷婷免费| 久久久久久久久人妻| 久热只有这里精品| 综合激情网激情五月。| 噜噜网免费视频| 五月婷婷二月丁香| 五月婷婷草| 亚洲色婷婷五月天| 亚洲九九夜夜| 丁香成人五月天| 九色视频91| 99在线精品视频| www.丁香五月| 丰满少妇猛烈A片免费看观看 | 色天使色综合| 综合激情在线观看| 婷婷久月| 中文不卡一二三区| rr天天操| 久操婷婷| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 热99.com婷婷| www.婷婷五月天| 天天爽夜夜爽夜夜爽精品| 激情另类综合| 99re这里只有精品在线观看| 色偷偷综合| 久久婷婷国产| 97高清国语自产拍| 五月丁香久久丝袜啪啪| 亚洲视频在线观看99| 思思久久精品视频| 亚洲综合激情五月久久| 五月婷在线| 国自产拍偷拍精品啪啪一区二区| 亚洲成片在线观看| 99re这里只有精品国产99| 五月天色在线| 女同激情久久av久久| www.色综合| 五月丁香久久久| 麻豆精品| 天天综合天天做天天综合| 婷婷五月激情在线视频| 九九Av| 日本少妇裸体做爰高潮片| www.婷婷久久五月天| 99色日本| 五月天婷婷色播在线网| 五月天堂色| 色五月婷婷7777| 婷婷五月天丁香激情| 人人草公开操| 五月天婷婷成人网| 婷婷D区| 国产精品色婷婷久久久精品| www.91有码.com| 综合伊人久久| 97色精品视频| 综合亚洲五月天| 99精品免费欧美小视频 | 色婷婷五月影视| 五月天激情小说婷婷基地| 日本久久精品18| 久青草影院| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | 99激情在线| 国产精品涩涩涩视频网站| 月色色综合婷婷网| Jh7Uf088VHafNm| 99自拍视频网站| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 五月天无码视屏播放| 人人播| 无码人妻少妇色欲AV一区二区| 日韩成人电影Av| 99热www.| 色婷婷丁香五月| 国产操B视频| 天天射综合网天天插| 热五月婷婷| 丁香五月亚洲综合丝袜| 深爱婷婷色| 97色色婷婷| 综合色视频| 五月色欧美| 99热只有这里有精品| 婷婷久久五月天中文字幕在线观看| 六月香五月婷| 久久香蕉网| 九九AV在线| 天天爱天天做天天| 97碰久久| 超碰在线超碰| 狠狠干,狠狠操| 丁J香六月首页| 婷婷色播六月无码| 少妇高潮呻吟A片免费看软件| 激情九月综合| 99热综合| 97精品综合| 五月天婷婷网站888| bukadeavzaixian| 深夜A片| 大香蕉福利导航| 亚洲五月天狠狠| 亚洲亚洲人成综合网络| 插少妇综合网| 亚洲黄网AV| 99re这里只有精品首页| 丁香五月婷婷啪啪视频| 日韩AV大全| #NAME?| 久久色五月天综合网| 中国丰满熟女A片免费观| 激情综合五月天| 怡红院 久久| 可以直接看的av| 日韩一区二区在线播放| 黄色片久久| 这里只有精品视频在线看| 色婷婷激情Av久久久| 婷婷成人丁香色情基地30| 成人AV在线中文版| 丁香六月综合| 毛片网站谁有| 婷婷五月成人社区| 国产97色在线 | 日韩| 婷婷午夜激情| 第四色在线观看| 日日激情网| 狠狠色噜噜色狠狠狠综合色 | 天天天天干| 热热久久久久久久久| 《亚洲操B久久免费在线观看,亚洲操B久久在线播放》在线播放 - 高清资源 - 97 | 色婷婷五月天天天天天| 99re资源在线视频导航| 99热超碰在线| 一本色道久久88综合日韩精品| 欧洲激情五月天| 色婷婷狠狠禁久久| 粉嫩av懂色av蜜臀av熟妇| 成人视频一区| 沈娜娜av| 五月丁香偷拍| 另类五月激情| 五月色视频| 久久久天堂国产精品女人| 99久久大片| 久久综合伊人77777蜜臀| 激情五月婷婷网| 色九月激情综合网| 9月色婷婷| 99精品视频在线观看| 婷婷五月天偷拍| 99网址在线看| 五月婷婷六月激情| 狠狠色色| 开心网五月色婷婷| 久久婷婷五月草视频在线播放| 日本狠狠色| av九九| av不卡网站| 九九热自拍| 九九热99精品| 久久九九99| 久久婷婷青青| 婷婷五月天成人| 五月情婷婷| 丁香综合伊人| 久久大香蕉同僚| 91狼友视频网页更新| 好好干Av| 色一情一乱一乱一区9| 久热伊人| 99热在线观看精品| 久久婷婷五月综合伊人| 成人婷婷五月天| 国内一级精品| 99色.com| 91超级碰人人操| 夜精品无码A片一区二区蜜桃| 在线观看av网站| 婷婷桃色网| 丁香六月婷婷| 婷婷五月综合社区| 99爱视频在线观看这里只有精品| 可以直接看的av网站| 色伊人婷婷| 中文字幕高清av| XX色综合| 午夜性做爰电影| 欧美久久婷婷| 粉嫩av蜜桃av蜜臀av| 丁香五月六月婷婷怡红院| 五月色亭丁香| 丁香激情五月综合网| 激情五月综合网最新| 99玖玖人人| 国内熟女黄色系列| 久久激情四射| 2015在线中文字幕| 91人人看| 五月天堂六月丁香亚州中文字幕久久 | 色婷婷小说| 狠狠操狠狠操AV| 97超碰综合| AV操逼网| 粉嫩av蜜桃av蜜臀av| 五月丁香啪啪婷婷| 天天色综| 人人性久久| 久久99精品久久久久久三级| 亚洲色图45p| 成人AV中文字幕| 婷综合六月| 六月丁香婷婷爱| 男人大jjc女人免费视频| 少妇人妻丰满做爰XXX| 丁香五月激情五月| 亚洲日韩久久婷婷伊人| 99在线视频网址在线观看| 婷婷五月在线影院| 亚洲久艹| 欧洲亚洲免费视频9 | 综合丁香婷婷五月天| 婷婷伊人| 丁香伊人激情| 激情综合色婷婷啪啪六月天| 婷婷五月情| 欧美日韩成人在线网| 在线成人视频免费| www.minyis.com【JT】币址百万U预算可预付QQ2101460746 | 亚洲夜夜操| 日日日日操| 丁香婷婷噜噜| 色你久久| 天天弄天天操| 20253AV| 欧美在线视频9| 99热欧美精品| 欧美婷婷六月丁香综合色| 热的国产99热| 丁香婷婷色情社区成人小说| 丁香五月天.com| 97福利视频| 国产全是老熟女太爽了| CAOBIBI| 五月婷婷久久综合| 天天日天天操天天干| 五月色婷婷综合| 色五月天丁香| 中文字幕视频色婷婷| 2005天天干天天1| 亚洲色热| 一级内射毛片| 九九精品在线视频观看| 亚洲色综久久五月| 久久婷婷五月| 98热精品| 狠狠色激情在线| 第五色色色婷婷| 亚洲热热视频| 在线播放成人| 在线VA视频| 婷婷综合激情| 日韩一区二区A片免费观看| 成人网站高清无码| 先锋资源996| 色婷久| 国产日韩精品SUV| 久xxxx| 五月综合婷婷网| 五月婷婷亚洲色视频| 婷婷91| 色五月天丁香婷婷色| 蜜桃婷婷丁香五月天狠狠久久综合| 99热在线这里| 激情婷婷丁香| 久久5 9视频免费观看| 婷婷色片| 久久欧洲综合网| 99热这里只有精品免费| 无码yw| 五月花婷婷最新| 97人人操人人| 国产婷婷综合| 欧美美美女性色视频| AV九九| 97人人搞| 九九色播五月丁香| 91人人妻人人操| 亚洲人妻一区二区| 精品影院| 思思99精品视频| 日本久热| 91婷婷色 | 91碰视频| 婷婷色五月大香蕉在线观看| 79色色| 亚洲乱码日产精品BD| 99色视频| 婷婷亚洲色| 色色五月天婷婷丁香| 亚洲天天综合| 色婷婷av综合网| 婷婷六月插屄激情| 天天操夜夜操| 色插综合网| 九九色婷婷| 亚洲色情久久| www.minyis.com【JT】国内CDN落地页保证转化QQ2101460746 | 丁香五月婷婷成人网| 欧美肉大捧一进一出免费视频| 亚洲午夜AV| 超碰爱爱爱| 婷婷五月丁香色播| 丁香六月婷婷久久综合| 五月天婷婷情色| 五月天桃色深爱网| 久久hd| 色香久久| 天天色播| 九九色影院| 五月天伊人av| 噼里啪啦完整版中文在线观看| 激情精品久久| 97超碰,人人舔,人人操,人人摸| 91热er| 秋霞少妇AV网站| 婷婷丁香一月| 97超碰色| 亚洲av综合网| 永久思思热在线| 五月天久久久| 丁香五月天欧美在线| 欧美三级视频| 九九精品热播| 五月综合视频在线| 色狠狠婷婷| 激情五月天开心总和网| 伊人婷婷大香蕉| 五月婷婷丁香| 丁香五月激情综合在线观看| 欧美人人草草| 91精品无码| 天天爽成人综合网站| 丁香婷婷色情社区成人小说| 玖色色综合| 婷婷色色丁香五月天| 婷婷综合五月天| 综合久久99| 色久五月| 日韩超碰在线| 综合色、色综合| 五月天婷婷在线AN| 久久久久久天天日天天爱| 精品日本视频444| 国产avapp 网| 五月停停丁香| 激情文学久久| 色八戒操婷婷| 久久怡红院| 五月天婷婷中文字幕在线播放| 91久久九久久九久久九久久九久久| 中文字幕 中文字幕明步| 五月天色在线| 国产一级片| 91黄色五月天视频| 天天干天天干天天干天天干天天干| 激情校园 亚洲| 国内久久亭亭| 婷婷影院A成人| 伊人婷婷大香蕉| 五月婷婷激情69| 狠狠久久婷五月| ..真实国产乱子伦毛片| 无码网| 操婷婷基地| 五月婷丁香| 五月婷婷啪啪| 国产在线另类五月婷婷| 99婷婷五月天| 欧美色色色色色色色色色色| 日本综合九九| 色综合婷婷| 天堂综合久久| 狠狠激情五月天| 狠狠看狠狠| 三级毛片7979| 天花AV无码| 久久caop| 中文字幕日产A片在线看| 99riAv1国产在线观看| 五月婷婷丁香色播网| 婷婷四月 成人 狠狠干| 玖玖综合色| 五月天色色色色色| 亚洲殴洲精品Av在线| 亚洲无AV在线中文字幕| 99热综合网| 超碰人人99| 亚洲激情97五月天| 日韩色情亚洲五月天婷婷| 久久色在线视频| 久久伦乱| 久久婷婷视频| 欧洲不卡视频| 五月婷婷激情| 五月天婷婷乱论小说| 99性感视频| 五月丁香六月婷婷亚洲激情综合| www.狠狠操.co m| 天天骑日日爽| 五月网激情| 日本妈妈乱| 99久视频| 久热久| 91久久婷婷| 亚洲婷婷久久综合| 9999三级片| 强伦轩人妻一区二区电影| 亚洲成人另类| 日本美女上人| 99热综合| 激情综合综合综合| 激情五月天之五月婷婷| 青青福利网| 综合网五月天123| 伊人午夜综合色啪| 天天色色天天| 99性爱视频| 99色热| 激情爱爱网站超大免费| 激情综合网五月激情| 人人干av| 免费无码毛片一区二区A片| 免费视频WWW在线观看网站| 精品国产一区二区三区四区阿崩| 五月天婷婷色播综合在线| www.ywav| 婷婷久久久久| 五月丁香网站| 激情婷婷在线| 99碰网站| 天天噜天天爱| 香蕉AV777XXX色综合一区| 天天日本夜夜谢| 色色激情网| 丁香婷婷激情| 在线看AV| 九色自拍| 激情五月婷婷综合视频| 五月激情六月综合| 婷婷五月天久久久| 婷婷五月激情黄色| 国产成人AV在线播放| 97人人草| 狠狠色婷婷六月激情网| 五月婷六月| 五月天综合在线| 99九九精品视频推荐| 午夜日韩久久久网站| 色综合色综合网| 亚洲男人的天堂婷婷色五月| 婷婷五月激情的图片| 综合色图区| 亚洲国产成人AV在线| 91九色首页| 人人人舔人人人操人人人摸人人人97| 成人版视频在线观看| 一本道在线电影| 丁香五月另类色婷婷麻豆| 久热超碰| 色婷婷影| 色婷婷狠狠色| 99热久| 色婷大香蕉| 色色综合无码| h在线看免费版在线看| 五月天婷婷基地| 91疯狂操操操操| 亚洲成人电影aaaa| 欧美日韩99| 在线亚洲综合网| 五月天激情站| av网址在线| 五月天堂六月丁香亚州中文字幕久久| WWW色综合| WWW,五月| 五月丁香综合久久夜夜| 五月人妻婷婷| 成功精品影院| 久久性操| 99色在线| 色yeye欧美| 丁香五色月婷婷网| 99精品热| 成人 在线 日韩| 婷婷爱五月天| 亚洲不卡123| 天天干天天干天天干天天干天天干天天 | 午夜福利8055| 激情五月婷婷色播网| 婷婷五月天色网久| 九九九九国产| 91色吧网| 天天搞天天爽| 九九综合图片网| 日韩十国产极品久久| 国产又黄又爽又色的免费| 日韩欧美颜射| 伊人久久大香网| 婷婷玖玖丁香| 亚洲九九视频| 日本少妇AA一级特黄大片| 狠色狠色综合久久| 色婷婷8| 五月丁香婷中文字幕| 久久精品99国产精品日本| 99热99网| 久久婷婷五月综合| 免费的日逼视频| 操一区| 久久永久网址| 亚洲第一综合| 伍月激情天| 久久思思热| 五月婷婷久久综合| 五月婷婷爽爽爽| 婷婷丁香五月,狠狠综合| 国外亚洲成AV人片在线观看| 婷婷美女精品视频| 日韩黄在免| 色婷婷在线视频综合| 久久您您综合网| 激情小说婷婷五月| www,超碰| 日韩婷婷| 激情小说五月丁香在线视频观看视频| 天天日天天操心| 五月婷婷婷婷婷婷艺术| 久草五月丁香婷婷综合| 草综合14| 五月丁香婷婷色色| 亚洲人妻av| 婷婷五月天av小说| 99re这里只有| 成人短视频在线| 欧美色五月| 久久五月婷天天干| 婷婷九月丁香天堂丁香天堂| 91久久| 五月天婷五月天综合网在线观| 97精品人人A片免费看| 人妻精品久久久久久久| 狠狠色大香蕉| 桃色五月天| 亚洲精品色色色| 99伊人婷婷在线| 91久久久久久久久18| 成人五月天在线视频在线观看| 欧美日韩成卜| 婷婷五月天网| 五月天第四色开心色播| 中文婷婷狠狠| 国产超碰在线| 操逼在线视频| 久久综合影院| 少妇被躁爽到高潮无码文| 五月丁香中文字幕| 久久婷婷青草五月天| 丁香五月开心七月| 久久五月激情综合| 26UUU在线观看| www.com亚洲网站在线免费| 99综合网| 夜夜撸夜夜骑| 南京搡BBBB搡BBBB| 国产婷婷综合在线免费视频| 久久久天堂国产精品女人| 激情5月婷婷| 亚洲小视频免费播放| 日本wwww在线| 人妻久久久久久久| 色色性爱视频| 五月天婷婷丁香蜜桃91| 991精品在线视频| 九九视频在线观看视频6| 永久免费一区二区三区| WWW.开心五月天.COM| 超碰在线视屏| 日本操B片| 五月天激情网站| 台湾无码A片一区二区| 狠狠操狠狠狠| 久久婷婷五月综合97色一本| 91色碰| 超PEN精品在线| 97福利视频| 亭亭玉月丁香| 成人九九视频| 国产成人VA| 日韩成人av在线| 日本三级网址| 97超级碰人人| 伊人在线视频| 亚洲中文乱字字幕在线永久| 亚洲精品在线视频| 丁香婷婷色情社区成人小说| 婷婷五月天Av| wwwss在线观看| 4438激情网| 婷婷丁香www视频日本韩国| 国外亚洲成AV人片在线观看| 五月天色五月| 五月丁香综合啪啪| 99久久精品国产色欲| 久久久久er热| 天天撸天天干天天插| 天天综合干| 狠狠五月激情在线| 99精品国产在热久久| 久99在线视频| 五月激情婷婷国产精品久久久久久| 激情五月天婷婷播播久久综合91| 婷婷五月天av| 婷婷色综合| 亚洲综合色网| 可以免费观看的av| 天天拍天天操| 九月婷婷久久| 综合色久| 国产真人做爰视频免费| 99精品网| 午夜精品人妻无码一区二区三区| 天天色播| 午夜大香蕉| 国内外色色色色色成人视频| 亚洲人妻av伦理| 99热精品在线观看| 成人做爰高潮A片免费视频 | 丁香九月婷| 91精品婷婷国产综合久久| 婷婷午夜精品久久久| 香蕉狠狠爱视频| 热久久91| 99热成人| www.五月天| 久久婷婷老| 天天视频精品9| 五月天激情黄色网址| 久久婷婷资源| 欧美三级黄色片久久| 久久精典| 亚洲国产精品五月天| 亚洲婷婷五月草久| 五月天婷婷五月| 色综合天天天天做夜夜| 六月婷婷开心| 久9热在线视频| 天天综合色| 国产肥白大熟妇BBBB视频| 久久99久久99久久99| 伊人大香蕉综合在线| 91丨九色丨丰满人妖| 激情五月,色五月| 婷婷黄色五月天在线视频| 激情五月天色婷婷综合| 色五月婷婷一二| 91在线日| 嫩BBB搡BBBB榛BBBB| 99操网站| 99久久久免费| 激情五月亚洲综合网| 丁香五月天啪啪a日本| 丁香五月综合婷婷| 一本道在线电影| 日韩有码一区| 99热综合网| 五月社区丁香| 九九热精品视频| 青青草成人网| 色情网综合| 操久久网| 九九热视频免费的| 午夜爱爱网站| 亚洲精品又粗又大又爽A片| 成人在线视频男人的天堂4399| 五月丁香久久综合| 狠狠操.COM| 在线观看亚洲视频影院| 精品国产乱码久久久久久免费| 亚洲图色五月天| 婷婷丁香在线| 天天狠狠干| 日本欧美成人片AAAA| 国产精品成人网址| 热99国产精品| 99热6这里只有精品| 91日本在线观看| 婷婷的五月天另类视频| 在线婷婷| 色五月丁香婷婷在线观看| 99亚洲视频| 五月丁香六月婷婷综合| 思思99精品视频在线观看| 亚洲激情综合| 成人 在线观看国产| 六月婷婷激情| 婷婷va| 日韩黄色中文字幕| 九九色综合| 五月丁香偷拍| 婷婷色五月大香蕉在线| 丁香六月婷婷久久综合| 色99在线视频| 日韩艹比| 婷婷激情五月天7| 人妻aV在线| 热99.com婷婷| 五月婷婷就去色| 人妻人人操| www久久久久| 九九久久视频| 亚洲国产精品二二三三区| 乱码操操| 殴美综合激情五月天免费视频| 五月激情丁香啪啪| 成人视频九九| 91蜜桃婷婷狠狠久久综合9色| 婷五月天六| 狠狠操性爱av| 久久久国产精品黄毛片| 综合丁香婷婷五月天| 操一区| 丁香激情五月| 中文资源在线a | 五月天激情啪啪| 夜夜夜夜撸夜夜操| 久久44| 天天爽天天爽夜夜爽| 婷婷丁香成人| 思思色播| 99久在线精品99re8热| 99操无码视频观看| 五月天婷婷激情| 丁香六月婷婷社区| 五月婷婷在线播放| 一区=区操屄高清大全av| 5月丁香六月情| 国产AV一区二区三区最新精品| 久久视屏这里只有久久| 色五月丁香五月| 丁香五月激情啪啪| 综合激情站| 日日干五月天婷婷| 天天搞天天爽| site:xmssd.com| 激情九月婷婷| 人人人人人人人人人草| 国产成人精品一区二区三区视频 | 亚洲天堂热| 亚洲综合色婷婷| 久久色情| 综合五月天亚洲婷婷| 中文字幕在线免费观看视频| 另类五月婷婷| 亚洲视频一区| 激情五月视频| 日本熟女啪啪| www.色婷婷| 五月天丁香综合| 我爱大香蕉| 丁香五月天色| 少妇被下春药玩弄A片| 丁香婷婷六月激情综合| 成人精品免费在线观看| 五月丁香六月玩女人| 久久精品五月天| 久久婷五月| 99综合婷婷五月| 婷色影院| 激情六月婷婷| AV电影在线播放| 亚洲色五月| 激情五月少妇| 久久99网址| 综合网激情| 五月天婷婷色播在线网| 丁香五月婷婷少妇| 超碰色色综合| 激情婷婷内射| 有码一区二区三区| 天天肏天天肏天天肏| 99热99成人| 67194中文在线| 丁香激情五月| 激情综合五月激情XXXX| www.99.色| 丁香九月综合| 五月婷婷色男女| 久久182| 午夜丁香婷婷| 另类综合网| 婷婷五月电影院| 中国丰满熟女A片免费观| 夜夜躁爽日| 天天色播| 九九色video| 婷婷亚洲色| 色久激情在线| 六月丁香啪啪啪| 亚洲精品无码99热| 五月婷婷久久大香蕉| 激情综合综合综合| 亚洲成Av人片乱码色第1集| 天天爽夜夜操| 婷婷五月天激情免费在线观看| 日本综合久久| 色亭亭九月| 色色色综合色| 99在线小视频| 亚洲激情 久久| 天堂综合久久| ..真实国产乱子伦对白在线_欧| 69久久99精品久久久久婷婷| 伊人五月久久| 久久网日本| 91av色色乱视频| 激情综合五月天| 秋霞AV淫| 噜噜噜噜噜色| 婷香五月网在线| 国产视频福利| 性爱激情久久| 丁香六月激情| 久久婷婷色综合| 99热久久这里只有精品2010| 五月丁色AV| 噜噜干日本| 九九综合五月欧美| 欧美成人猛片AAAAAAA| 国产激情久久久| 久久这里只有精品99| 亚洲久久婷婷丁香五月天| 无码se| 婷婷丁香五月天影院 | 婷婷激情在线| 99精品大片| 天天射射夜| 综合久久婷婷五月丁香| 五月婷婷亚洲| 五月天婷婷涩涩| 91碰免费视频| 国产特级毛片AAAAAAA高清| 99久久性爱| 激情综合网址| 色色色婷婷| 欧州色色| 亚洲天天综合| 丁香社区婷婷五月| 国产探花AV在线| 久久国产性爱A V| 色婷婷成人| 黄色AV日韩| 婷婷五月天奸女| 亚洲五月天色色| 久久精品日| 97操碰在线97| 91久久18| 色婷婷久久9.com| 激情综合网激情五月丁香五月俺也去| 久久久99精品免费观看| 亚洲综合激情五月久久| 九九超碰人人| 婷婷五月天av小说| 久99久视频| 99综合网| 色五月成人| 日韩另类| 性爱久久| 亚洲蜜桃精久久久久久久久久久久| 色色色综合色| 五月丁香婷婷综合| 五月丁香影视| 丰满少妇猛烈A片免费看观看| 影音先锋女人AA鲁色资源| 天天射影院| 激情内射人妻1区2区3区| 韩国中文字幕91| 蒲京久久无码视频| 男人的天堂av俄罗斯热| 九九精品少妇| 性色av大香综合| 激情婷婷在线中文字幕| 97中文在线| eeuss人妻| 色婷婷综合中心| 操一操| 婷婷五月天开心激情网| 国产美女视频久| 91九色国产| 超碰免费在线| 综合福利网| 人人综合91网| 久久99婷婷| 99热欧| 五月丁香激情婷婷| 大香蕉久热| 五月婷婷丁香| 夜夜操加勒比| 狠狠色噜噜狠狠亚洲A∨| 伊久久婷婷| 亚洲色爽| 丁香五月婷综合网| 久久人人九九| 久久人妻视频| 国产女生爱爱AA| 99re热99| 婷婷深爱五月天在线| 99在线精品免费视频| 婷婷激情九月| 国产成人精品一区二三区熟女在线| 五月丁香亭亭A片| 色婷婷大香蕉| 五月丁香五月激情综合色综合| 综合久久五月天| 久久五月综合| 婷婷五月色播天| 色呦呦美女| 五月天小说激情| 亚洲婷婷五月| 国产精品久久久久久久久久| 性爱激情小说AV五月丁香花| 久久五月视频| 终合激情网| 欧美一级色| 五月丁香中文婷婷中文| 婷婷激情五月天综合| 激情VA视频| 五月大香蕉| 九热电影av| 激情综合网,婷婷| 久久天堂网| 丁香色婷婷色手机免费在线| 婷婷午夜丁香| 五月丁香欧美在线| 五月天色社区| 99久久高清视频| 99热精品少| 91九色中文| www久久久久久久久久久| 91九色熟女| 乱色色色| 亚洲第一综合| 九九热99免费视频| 亚洲第一精品成人999久久精品| 亚洲色网络| 97色女人在线| 日日夜夜小色哥| 99色在线| 婷婷免费无马| 色五开心五月五月深深爱| 色五月大香蕉| 国产精品久久..4399| 婷婷深爱五月| av中文网| 色日本丁香婷婷| 久久性爱视频| 丁香五月婷婷欧美激情-中文天堂最新版在线观看 | 五月天玖玖狠狠色色| 天天操婷婷| 五月综合激情| 激情五月婷婷视频一区二区三区| se色婷婷视频| 激情丁香淫荡婷婷| www.夜夜操.com| 香蕉狠狠爱视频| 黄色一级影片| 久热伊人在91| 天天干com| 久久久久亚洲AV综合| 国内裸舞二区| 婷婷金品综合视频| www.精品99| www久久艹| 五月99久久| 国产va视频| 免费看片在线观看| 色五月婷婷色五月| 日操熟女| wwwC0maV五月花| 精品少妇人妻AV无码专区偷人| 亚洲久久视频| 色婷婷影视| 亚洲俩性性爱图片久久第六页| 欧美久热| 狠狠大香婷婷爱| 色婷婷基地| 久久99久久99久久99人受| 五月丁香婷婷综合| 狠狠色色| 99热这里只有精品3| 婷婷五月深情丁香深爱日韩| 婷婷久久网| 99五月丁香丁| 玖玖婷婷五月天| 五月综合婷婷开心网| BBWCUCKOLD精品熟妇| 99热精品9| 大香蕉网 久久| 夜夜骑夜夜操|