免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

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视频| 婷婷五月网图片区| 亚洲电影中文字幕| 麻豆AV一区二区三区| 第四色婷婷丁香五月| 99热精品在线| 无码人妻电影| 99热在线精品播放| 久久九九99桃花视频| 色综合99| 婷婷五月激情综合| 五月丁香综合网| 天天激情| 99热在线这里| 色五XX| 狠狠综合网| 五月的丁香六月的婷婷| 日韩抽插操逼| 天天摸天天舔在线视频| 亚洲精品国产成人AV在线| 99在线视频。| 欧美熟女视频 色婷婷| 超碰人人在线| 丁香五月影院| 亭亭玉月丁香| 成人精品一区日本无码网| 九九大香蕉黄色影院| 久久这里99| 99久久免费性爱视频`| 色情五月天导航| 免费视频WWW在线观看网站| 久久婷婷五月天激情| 久 久9 9 热 视 频| 色99亚洲| 久热这里只有精品99re,久热这里只有精品7| 深夜男女福利刺激影院一区完整| 婷婷伊人綜合中文字幕小说| 婷婷五月花| 婷婷五月综合体验看| 久久精品亚洲一级牲爱综合| 婷婷五月丁香五月综合网| 五月丁香 久久久| 永久无码色| www98日本小时间到了| 91久久精品视频| 美女被肏网站在线看| 色五月 婷婷, 大香蕉| 最近中文字幕大全免费版在线| 五月婷婷激情久久| 国产婷婷色综合AV蜜臀AV | 操一区| 成人在线网址| 国精产品一区一区三区免费视频| 日韩在线视频9色| 激情图片亚洲| 大香蕉狼人久久| 色伊人啪| 亚洲性爱99在线| 色婷婷五月综合激情中文字幕| 午夜大香蕉| 欧美色五月| 蜜乳久AV| 极品人妻videosss人妻| 日本三级大片| 五月婷婷影视| 激情人妻综合| 狠狠精品干练久久久无码中文字幕| 婷婷成人基地| 色五月婷婷大香蕉| 亚洲色婷婷激情| 婷婷五月天伦理| 婷婷香五月| 这里只有精品视频99| 五月天另类激情在线| 超级碰碰碰97免费| 婷婷在线中文字幕| 久久伦乱| www.亭亭五月天| 日本狠狠干| 99re6热在线精品视频播放速度| 爱射综合| 天天做天天爱天天爽综合网| 六月婷婷色综合| 97色婷婷| 色婷婷综合视频| 五月婷婷就去色| 这里只有精品69| 思思99久久| av九九| 亚洲AV成人无码精品| 丁香九月激情久久| 婷婷综合成人五月天| 色色COm| 国产成人av在线播放| 国产人妻人伦精品一区二区| 黄网免费观看| 婷婷丁香十月| 亚洲乱码日产精品BD| 冬月かえでAV无码播放| 丁香六月爱综合| 婷婷欧美综合| 欧美操逼天堂| 直接看的AV| 俺去也婷婷| 国产黄色大片| 色欲五月婷婷| 夜精品无码A片一区二区蜜桃| 久久五月婷综合网| 欧美婷婷色五月| 丁香五月天堂| 久久精品视频99| 精品免费99| 人妻啪啪啪| 国产伊人大香蕉| 天天日天天插天天操| 99热99热在线| 97操在线资源| 国产亚洲精久久久久| 色屌丝中文字幕| 精品九九网| 手机AVAV天堂看网| 五月天综合网| 丁香六月视频| 亚洲精品白浆高清久久久久久 | 激情六月丁香| 成人婷99最新| 天天射综合网站| 丁香五月激情五月开心五月| 激情电影五月婷婷| 色色色9| 性做久久久久久久免费看| 色婷婷A| 丁香五月色| 91se精品国产| 丁香五月天啪啪激情综和网| 九九精品免费视频99| 亚洲国产色婷婷| 亚洲无码播放| 五月婷婷新网站| 九九aV| 色婷婷91| www.zbzhongsen.com| 日本专区久久| 久久女人天堂| 五月丁香久久综合| http:色情日本com| 五月天天爽| 久久婷婷六月综合国际| 六月丁香久久| 丁香五月综合激情啪啪| 99精品热| 人妻尝试久久久久久久久久久久| 久久ri精品视频| 天天色色天天| 日本色99| 中字幕视频在线永久在线观看免费| 大香蕉久| 99ER热精品视频| 色99视| 激情五月天综合网| 婷婷激情五月天在线| 九九婷| 婷婷婷五月天最新综合你懂的| 涩五月婷婷| 色综合爱综合| 99免费偷拍视频| 日本女人久久| 色五月久久成人婷婷| 八戒青柠影视剧在线观看| 2020久久婷婷五月| 怡红院91a√| 五月丁香激情综合网| 五月激情综合性爱| 婷婷综合五月| 成人精品亚洲性爱| 五月婷婷五月天激情视频| 久久er99热精品一区二区| 伊人婷婷激情| 九九综舍久久| 97操操网| 日本久久婷| 五月天日日操夜夜操| 久久久中文| 丁香婷婷色五月合集| 另类亚洲电影| 日本一级一级一级一级| 另类激情综合| 天天操,天天插| 色综合色色色色| 99综合在线| ...婷婷国产成人亚洲日韩| 久久97久久99久久综合欧美| 五月丁香自拍| 亚洲久热无码| 丁香五月婷婷少妇| 一月婷婷色色| 婷婷五月激情在线| 久久婷婷精品| 久操大香蕉| 亚洲色域网| 五月丁香成年黄色| 欧美日韩成人h| 男人天堂99| 色另类五月天| 国产99久久久| 色www.con| 亚洲色就是色色色| 丁香五月社区| 激情五月天 婷婷| 69色色视频| 综合五月婷婷| 免费97碰碰| 色色色色丁香| 99热在线观看| 婷婷五月天开心网| 99热最新精品| 播五月开心婷婷欧美综合| 色色亚洲无码| 五月天综合在线| 五月丁香婷婷老司机| 伊人久久婷婷| 久久婷婷视频| 丝袜大香蕉| 久久五月天色| 五月激情婷婷在线| 99热这里只有免费精品| 色5月婷婷| 在线国产精品色| 久热99热| 综合激情在线视频| 国产精品国产| 99热加勒比| 欧美97超碰| 亚洲无码色| 97综合在线| 五月婷婷色五月| 狠狠色综合五月| 日本精品。999| 五月天亚洲图片婷婷| 伊人五月综合网| 亚洲狠9| 久青草影院| 九九久久99| 激情性爱五月| 久久99精品九九久久久婷婷| 香蕉综合网| 久久六月天| w婷婷五月婷婷w| 欧美在线视频免费播放| 久久婷婷综| 色婷六月| 97人人干| 99re6在线视频精品免费| 天天做天天爱天天高潮| 中文字幕日本最新乱码视频| 99干免费视频| AV在线收看| 亚州第一A片| 色综合久久88色综合天天| 日本视频不卡123区| 婷婷导航| 五月天婷婷激情六月久久| 日韩AV免费看| 大香蕉狠狠爱主页| 久热婷婷| 亚洲另类婷婷五月综合| 丁香婷婷月| 男人的天堂五月丁香| 九九热99免费视频| 熟妇无码乱子成人精品| 久久日曰| 噜噜噜噜噜久| 六月婷婷亚洲| 欧美在线97| 97人人干人人操| 99热精品在线观看| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 色丁香五月| 亚洲AV人人操| 欧美噜一噜| 色婷婷色五月天| 狠狠色综合精品视频在线| 无码色| 狠狠综合| 9色资源在线| 亚洲午夜Av| 超碰在线成人| 亚洲亚洲亚洲AAAAAA| 99精品综合| 久久激情五月婷婷| 亚洲AV成人在线观看| www.99精品视频| 99热在线观看免费中文| 亚洲欧美999| 婷婷色网站| 影音先锋女人AA鲁色资源| 久久九九热re6这里有精品| 99热69| 久久精品爱爱| 这里只有精品无码| 精品一区二区三区四区五区六区| 婷婷色五月天色| 99热在线观看免费中文| 99热这里只有精品中文字幕| 五月天婷婷久久| 人人操碰| 天天综合色综合| 亚洲成人网站在线播放| 亚洲六月色| 粉嫩av蜜桃av蜜臀av| 五月欧美色色五月| 五月天激情综合| 日本三级日本黄色| 六月婷婷狠狠| 久久五月视频| 伊人色综合久久久| 99re视频精品| 乱精品一区字幕二区| 99ri视频在线播放| 夜夜干天天干| 牛牛澡牛牛爽| 中文不卡一二三区| 激情美女五月天| 婷婷五月丁香六月综合网| 婷婷丁香五月天激情| 人妻五月天激情开心网| 99爱无码| 99色嘟嘟精品网站| 亚洲AAAA网| 亚洲第一黄网| 996热re视频精品视频| 99色一| 91日本在线观看| 操人久久| 欧美色色色色色色色| 欧洲免费视频色| 99热色精品| 4399在线日本A片| 丁香五月婷老师| 偷拍丁香九月激情| 99热九九在线| 五月婷婷影视| 99热99干| av一区免费看| 色久丁香五| 婷婷丁香成人色综合| 操笔无码| 激情内射人妻1区2区3区| 色噜噜狠狠色综合日日| 开心婷婷五月| 婷婷丁香六月五月天| 久久9久| 亚洲成片在线观看| 无码动漫av| 婷婷五月丁香综合桃花色网| 丁香六月婷婷综合缴| 好叼操在线观看| 五月婷六月丁香| 五月色情| 婷婷五月激情天| 久久久噜噜噜www成人| 色五月色五天色情网| 在线成人va| 青青草日本亚洲| 色色三级视频| 婷婷五月亚洲一本在线丁香| 1999天天操夜夜操| 综合久久99| 久久最新色色色| 欧美婷婷综合| 天天操天天操| 玖玖婷婷视频| 999热这里只有精品| 99视频这里只有免费精品| 夜夜操夜夜操| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 十月丁香九月婷婷综合| www.yw色| 丁香五月综合| 人人人舔人人人操人人人摸人人人97| 99啪视频在线观看| 人人操日| 亚洲狠狠操| 色综合色综合色综合| 色色亚洲视频| 欧美又粗又大一区二区在线观看| 99五月香婷婷丁香在线视频| 天天艹夜夜艹| 久久五月天大美女| 综合久久综合五月天婷婷| 这里有精品| 黄色三级日本| 雪千夏麻豆| 综合色影院| 日韩免费乱轮网站| 骚。com| 99九无网码| 欧美激情综合| 久久丝袜婷婷| 情涩婷婷五月天| 一婬一伦一区二区三区| 91精品丝袜久久久久久| 亚洲激情色色| 激情AV| 91av传媒高清在线视频网| 26UUU欧美| 婷婷丁香社区网| 国产日韩精品SUV| 91婷婷五月丁香碰| 99re6久热只有精品6在线直播| 五月丁香亭亭成人电影| 99人人操| 免费观看全黄做爰的视频| 五月色综合网| 五月丁色AV| 99只有精品9| 99热精品在线| 久久开心五月婷婷| 超碰碰碰碰| 久久性综合| 人人干女人| 天天天天天色| 婷婷九月激情| 丁J香六月首页| 色五月综合激情| 天天摸夜夜夜| 这里只有精品热| 色婷婷色五月综合| 教师性爱毛片| 成人版视频在线观看| 91婷婷色| 日日夜夜综合| 欧美叉叉叉BBB网站| 亚洲99精品欧美一区| 五月丁香黄色| 丁香六月啪啪| 伊人久久五月天| 婷婷丁香综合成人| 思思热闹这里只有精品| 久久婷婷热| www.玖玖婷婷在线| 丁香婷婷五月香蕉91| 丁香五月天社区| 激情网五月天| 久久视频这里99| 99在线观看这里都是精品| 色情五月天丁香社区| 久爱综合| 精品一二三区久久AAA片| 狼人久草| 色五月婷婷操逼| 六月丁香婷婷综合在线| 狠狠操狠狠做| www.亚洲激情| 97婷婷五月天| 亚洲欧美一区二区三区四区爱爱动图| 九月婷婷丁香| 五月社区丁香| 五月天播播综合| 99无码精品| 狠狠综合网| 亚洲精品激情| 激情综合网五月激情| 色婷婷狠狠色| 五月成人天| 五月天激情网页| 九月婷婷综合八月丁香在线观看| 视频综合网| 99这里只有精品视频在线| 在线婷婷| 做爱夜夜干天天操| 六月婷婷私欲| 婷婷五月天A V| 国产亚洲成AV人片在线观黄桃| 无码99| 婷婷香五月天| 色播五月丁香| 大香蕉220| 久久大大香| 新激情五月天| 日韩AV一区二区三区| 777久久久| 丁香香蕉婷婷| 亚洲碰碰碰| 激情综合网五月在线播放| 五月婷网| 五月色情婷婷开心五月色情| 热的无码综合视频| 91超级碰在线| 激情五月天视频| 秋霞免费视频| 婷婷94s| 激情五月天婷婷色色色色色色色色色色色 | 成人无码髙潮喷水A片| 色婷婷狠狠禁18久久| 99久久婷婷国产综合精品| 色综合婷婷99| 大香蕉婷婷久久| 激情丁香婷婷六月天| 激情婷婷五月天网址| 五月丁综合在线观看| 色九综合| 97色碰| 亚洲狠狠狠色婷婷综合激情久久久| 婷婷亚洲在线| 五月丁香成人| 99热 精品在线| 99久久国产综合精品五月天喷水\| 色99视| 日韩ac不卡无码| 91操色| 五月婷婷丁香俺日污视频| 99热大香蕉| 五月丁香婷婷色| 变态另类色图| 少妇丁香婷婷 | 久久人人妻| 人操综合| 亚州激情网站无码| 婷婷五月天av| 日产精品一线二线三线芒果| 婷婷丁香97| 天天操夜夜玩!| 26uuu欧美| 激情文学综合婷婷五月天丁香花| 操逼六区| 华人在线免费| 激情五月六月婷婷| 激情婷婷网| 99精品色色| 五月激情综合网| 天海翼中文字幕高| 思思热闹这里只有精品 | 五月天成人在线视频网站| 99啪啪视频| 淫视馆av三区| 丁香六月婷婷综合网| 精品99在线| www.色色色com| 91精品丝袜久久久久久| 人妻内射视频| 二区成人视频| 678五月丁香亚洲综合| 丁香六月婷婷久久综合| 秋霞网在线免费基地五月婷婷丁香| 久久激情五月| 色色日本欧美| 婷婷激情啪啪| 色婷婷狠狠干芒果TV| 丰满少妇乱A片无码| 日本在线视频播放91| 日日日影院| 天天天天操| 97人人草| 99精品久久久久久久婷婷| 性色九九| 第一区久久网站| 丁香五月影院| 99热啪啪| 九色婷婷| 色婷婷五月天天天天天| 大香蕉精品视频| 91在线操| 超碰网站在线观看| 综合色影院| 99网99热| 91精品人妻少妇无码影院| 79精品视频在线观看,| 婷婷五月色播天| 日日干日日s| 久久在线视频免费观看| 五月亭亭六月激情| 青青草免费公开视频| 亚洲九九免费| 国产成人精品一区二三区熟女在线| 五六月婷婷| 99视频只有精品| 婷婷五月激情的图片| 狠狠综合久久| 97五月天婷婷午夜| 欧美叉叉叉BBB网站| 色婷婷婷综合五月天| 久久精品99国产精品日本| 欧美成人无码一区二区三区| 五月天激情小说| 色综合五月婷婷狠狠干| 色婷丁香91| 六月五月婷婷| 香蕉久久六月| 亚洲国产精品VA在线看黑人| 人妻性爱| 婷婷亚州综合| 日本三久久| 男人天堂99| 91九色精品熟女内射| 思思久久精品视频| 五月天激情亚洲| 激情五月天啪啪| 婷婷久久亚洲| 国产av天堂| 激情婷婷五月天日本系列| 精品操逼一区二区| 久草性爱| 亚洲激情色色| 97碰人人操| 亚洲激情在线| 色操b| 丁香五月婷婷Av| 99热自拍| 婷婷五月天干干| 丁香五月婷婷欧美激情-中文天堂最新版在线观看 | 六月婷婷天天操夜夜爽视频| A片试看120分钟做受图片| 99热在线观看这里只有精品| 超碰色综合| 国产精品国产成人国产三级| 婷婷五月天六月| 五月婷婷偷拍| 香蕉婷婷五月| 99热精品免费| 久久久这里有精品| 荡乳尤物3HP1V5| 天天碰夜夜爽| 色噜噜狠狠色综| 婷婷五月天 丁香五月天 裸体| 99riAV国产精品视频| 九月婷婷综合八月丁香在线观看 | 综合五月丁香六月婷婷| www.婷婷| 九九热10| 丁香五月天的网址。| 思思色播| enecarbon-materials.com污K127封锁请涟系@wip1688 | 中文字幕有多少字| 色色激情网| 亚洲99视频| 色婷五月天| 狠狠婷婷综合| 办公室少妇激情呻吟A片在线观看| 99精品视频网站| 美女天天艹人人爽| 操操天堂| 婷婷激情啪啪| 久久五月婷天天干| 丁香婷婷综合激情五月色| 婷婷五月天小说| 欧洲电影在线观看免费版英语版| 日韩啪| 天天摸天天日天天舔| 色噜噜,噜噜色| www.五月天色色.com| 日韩黄色影院| 四川BBB搡BBB搡多人乱亂| 婷婷精品在线| 色五月激情五月| 丁香五月23111| WWW色五月天| 性日本激情| 香焦网五月天| 激情五月天99色| 久久香视频| 丁香性爱在线视频| 丰满女老板BD高清A片| 婷婷五月色天| 丁香五月成人社区| 爽极品色| 99熟女啪啪视频| 播五月,色五月,开心五月播放器 | 伊人色综合网| 亚洲操b| 久久激情五月天| 另类小说色婷婷| 国产三级秋霞| 日本天天操| 五月丁香六月激情在线| 啪啪小说五月天| 99免费视频网| 亚洲AVwwwwwww| 久久久国产精品黄毛片| 亚洲愉拍99热成人精品| 国外亚洲成AV人片在线观看| 亚州美女| 大香蕉220| 99精品国产乱码久久久人妻| 色婷婷综合久久| 五月婷婷丁香91| 亚洲亚洲人成综合网络| 婷婷五月丁香基| 美女久久天堂| 玖玖99精品视频| 丁香婷婷性久久| 丁香婷婷超碰| 久久五月丁香婷婷| 五月丁香好婷婷姑娘综合网| 三级大香蕉网| 天堂草在线看www| 五月丁香六月激情综合欧美| 激情丁香婷婷| WWW色综合| 婷婷综合五月天激情| 99成人无码| 婷婷色狠狠| www..999热久| www久| 色135综合网| 影音先锋综合网| 婷婷99狠狠躁天天躁中文| 天天搡日日搡aaaaⅩ| 如何安全看伊人婷婷| 99热在这里只有免费精品| 天天狠狠色综合| 思思热视频在线| 日韩欧洲亚洲| 五月婷婷丁香日韩在线| 欧美人人操| 五月激情综合网| 男女av免费看| 成人五月天丁香| 婷婷五月激情欧美大胆视频| 99久久极情精品一区| 狠狠色成人影片| 婷婷狠狠青青| 综合网色| 骚。com| 天天搞天天色综合| 色.五月综合网| 91久久九久久九久久九久久九久久 | 色色色色色级无码| 久久99精品久久只有精品| 丁香五月电影| 怡春院天天干| 新99色色色色色色| 婷婷五月天播播| 99亚洲精品| 男人天堂 久久| 影音先锋女人av鲁色资源网小说免费 | 大胆伊人久久| 亚洲精品无码99热| 99操碰| 99热中国| 极品人妻VIDEOSSS人妻| 97色热| 在热视频精品| 夜精品无码A片一区二区蜜桃| 91疯狂操操操操| 热久久这里只有精品20| 超碰9| 色婷婷yy久| 婷五月天在线草| 色久女| 激情婷婷视频在线| 婷婷激情区| 九九人人操| 免费播放片大片| 婷婷五月图片小说视频| 人妻丰满精品一区二区A片| 欧美丁香五月97色| 九九热最新地址| 五月Huangsewang| 密黄站| 婷婷久久久| 日韩美女羞羞网站在线观看| 日本激情五月| 五月婷婷香蕉视频| 六月婷婷狠狠| 婷婷九月色| 99综合在线| 成人精品人妻| 色天堂97| 激情综合五月开心狠狠| 大香蕉天堂色| 激情五月天色婷婷| 亚洲AV成人在线观看| 五月丁香六月激情综合啪啪| 亚洲热综合| 色婷婷基地| 操碰99| 成人综合AV| XX久久| aaa久久| 99操无码视频观看| 婷婷在线精品| 成人精品人妻| 9999三级片| 玖玖爱伊人| 玖玖爱伊人| 亚洲精品亚洲人成人网| 激情久久久| 成人操呦av| 日日夜夜狠狠| 激情五月综合网| 久久婷婷色| 狠狠色五月激情| 免费看欧美成人A片无码 | 久久总和99| 美女黄频aⅴ视频| 九九色热| 性爱在线播放av| 99色视频| 五月天婷婷六月| 欧美顶级少妇做爰HD| 久久996re热这里只有精品无码| 久久久99精品免费观看| 五月婷婷插一插| 热久久这里只有三级视频| 99综合色| 九月丁香亭亭| a久久| 丁香婷婷成人在线播放| 91色欲综合| 色香久久| 伊人大香五月天| 精品人妻午夜一区二区三区四区| 婷婷.com| 丁香五月天.com| 99热这里只有精品8| 狠狠va| ww超碰在线| 色玖玖导航| 开心五月婷婷五月| 99只有精品9| 色停停五月,在线观看| 五月天综合在线| 99色看这里只有精品| 99热超碰人| 91青娱乐青青草| 精品婷婷五| 日本色色影院| 夜夜撸天天操| 亚洲成人噜噜| 影音先锋色婷婷| 欧美综合激情| 久久久五月五丁香| 激情综合网亚洲色图| 亚洲成Av人片乱码色第1集| 色婷婷亚洲精品天天综| 天天成人综合视频| 97色婷| 色啦啦视频| 婷婷五月激情欧美| 五月丁香激情欧洲啪啪| 五月丁香久| 91久久国产自产拍夜夜91久久精品文字>91麻豆精品国产 | 国产原创视频91九色| 超碰人人操在线| 久久精品66| 超碰在线观看99| 狠狠爱婷婷五月天| 久久99热这里只有精品| 五月婷婷 激情五月| 婷婷激情小说网| 九九热99久久99| 国产肥白大熟妇BBBB视频| 六月婷婷激情| 色婷亚洲| 影音先锋女人av鲁色资源网小说免费| www久久久久| 青青久在线视频免费观看| 丁香 久久| 噜噜噜精品欧美成人在线观看| 色啪网| 亚洲热久| 狠狠色 综合色区| AA丁香综合激情| 五月天停婷基地| 岛国AV网站| 九九热只有这里是精品| 大香蕉啪啪网| 97电影99热| 国产免费av网站| 92久久精品一区二区| 99色亚洲| 久99综合婷婷| 99视频只有精品| 五月天婷婷黄色| 丁香五月在线视频| 99热最新| 99热只有精品在线| 九九美女视频| 色99综合色88| 黄色网址五月婷婷| 久久久99精品免费观看| 亚洲无码99| 激情综合网五月激情| 久久婷婷五月丁香网| 色欲一二三| 日韩AV大全| 人妻尝试久久久久久久久久久久| 丁香久久AV| 天天摸.天天mo| 五月天激情综合在线| 五月丁香六月激情综合| 婷婷大乡焦噜噜| 98热精品| 色婷婷综合影院| 久久香视频| 91熟妇大香蕉| 丁香五月婷婷总啪啪| 日本无码专区| 91a片爽| 国产av网| CAOBIBI| 欧美碰碰| 色玖玖综合| 亚洲婷婷婷| 色色五月天丁香| 武则天精品久久| 99综合视频在线| 丁香婷婷六月婷婷六月婷婷六月婷婷| 色综合爽| 五月婷人妻| 久久九九re热| 2013AV天堂| 99热碰碰热| 婷婷五月丁香综合亚洲| 这里只有视频精品| 99久久综合网| 国产无套精品一区二区| 噜一噜在线| 大香蕉啪啪网| 久久色情| 日韩99无码| 99久高清视频| 99操中文视频| 欧洲亚洲最新精品| 丁香五月婷婷色| 舔色婷婷| 天天日综合| 中文毛片无遮挡高潮免费| 婷婷综合在线网| 五月天激情图片网| 99热91| 色天天久婷婷| 五月丁花六月丁香综合| 色九亚洲| 99热国品| 六月婷婷青青青视频| 中文字幕在线日亚州9| 日韩抽插操逼| 日本va欧美va欧美精品88| 开心五月综合激情网| 成人做爰高潮A片免费视频 | 这里只有精品视频国产| 色综色五月天婷婷| 香蕉国产2013| 成人无码髙潮喷水A片| 免费成人中文字幕| 亚洲激情视频在线观看| 久久机热这里只有精品| www.91在线观看| 国产无遮挡又黄又爽免费网站| 五月色婷丁香| 激情 五月 婷婷 丁香| 思思re视频在线| 91一起操| 五月丁香婷婷激情图片| 思思热天天看| 五月丁香花免费视频| 激情综合区| 欧美精品中文字幕亚洲专区| 99在线视频女女视频| 好吊丝aV| 另类综合激情| 99视频综合网| 婷婷色色狠狠| 日本高清久| 蜜臀嫩草| 99热精品中文字幕| 七七色综合| 99热国产这里只有| 五月婷婷开心网| 五月婷婷色在线| 久久久8| jizzdr| 五月丁香啪| 碰碰91| 亚洲欧美一区二区三区爱爱动图| 国产精品久久久久久久久久| 五月天婷综合| 成人超碰Av| 色婷婷影院| 99爱爱| 天天玩夜夜操| 日日夜夜九九| 伊人综合网4| 五月丁香啪啪婷婷| 99男人天堂| www.激情五月天.com| 天天干天天av天天射| 琪琪色综合网站| 五月色情婷婷| 97精品欧美91久久久久久久| 激情精品久久| 激情小说之五月| 五月丁香六月情| 99在线视频精品| 噜噜狠狠色综合久| 夜夜AVV| 99这里只有精彩视频| 国产精产国品一二三在观看| 99在线观看| 99这里有精品| 婷婷中文网站| 婷婷开心激情五月激情网| 在线精品97| 99热99这里有免费的精品| 欧类av怡春院| 免费色色色| 丁香五月AV| 琪琪理论片| 色婷婷五月天| 五月综合亚洲| 全部老头和老太XXXXX| 婷婷99狠狠| 伊人久久艹| 超碰人人99| 久久久久人妻中文| 久久婷婷青青草| 碰久久精品w| 天天做夜夜爽| 成人无码中文| 亭亭玉月丁香| 婷婷五月丁香91| 99久久久久久www| 激情综合区| 婷婷五月天成人| 蜜臀A∨在线水帘洞| 色欲一区二区三区精品A片| 天天色天天爱天天舔| 欧美顶级少妇做爰HD| 五月花成人网| 久久丁香婷婷色情综合| 久久久久思思热| 99热性色| 97超碰人人操| 中文人妻主播久久| 五月婷婷很很色| 日日噜狠狠色| 久久伊人婷婷| 人妻中文在线| 亚洲色综合性| 91pornav在线| 五月婷婷丁香六月| 日韩欧美骚货| 十区av| 夜夜爱网站| 性婷婷| 97人妻人人| 超碰国产在线观看| www.25五月婷婷| 亚洲成人综合网在线免费观看| 五月天亭亭俺也| 久热99| 怡红院AV亚洲一区二区三区H | 日本nghangse中文字幕| 久久五月天色婷婷| 国产亚洲99久久精品| 久久无码成人| 九九综合伊人| 色色色精品无码区| 久久色吧| 九九99精品视频在线观看| 开心五月激情站| 婷婷丁香五月激情密臀av| 99无码视频| 九九久久视频| 九九色大香蕉| 久久99最新地址| 色播丁香| .青娱乐天天操B| 久久女人天堂| 熟女五月天久久综合| 第四色网婷婷| 成人在线二区| 久99在线视频| 夜夜操狠狠操天天操| av免费在线网站| 国产小精品| 天天日夜夜爽| 天天成人综合| 91se在线视频| 婷婷五月天免费99| 色吧五月婷婷| 婷婷五月情天| 午夜理论片最新午夜理论剧| 天天综合五月天| 丁香激情五月| 九色自拍| 五月婷婷综合潮喷| 久月丁香爱婷婷综合| 六月丁香婷婷色狠狠久久| 亚洲色婷婷| 色婷婷88| 五月婷婷激清网| 无码四色色色| 9999三级片| 久热伊人91| 亚洲亚洲人成综合网络| 成年人最刺激的综合网| 五月婷婷伊人久久| 激情美女五月天| 中文字幕,综合,91| 人人操大| 风流少妇A片一区二区蜜桃 | 午夜成人AV在线| 欧美综合五月丁香五月天| 五月婷婷在线短视频| 亚洲综合成人网站| 97色精品视频 | 亚洲五月婷婷在线| 变态另类9| 久久伦乱| 丁香五月天堂亚洲社区| 97色色视频| 久99视频| 热久久91| 最新va在线播放| 五月色色激情网| 久色五月婷婷综合| 婷婷激情五月天天天开心| 五月丁香啪啪综合网| 丁香五月婷婷欧美激情-中文天堂最新版在线观看| 久cao香蕉影院| 中文字幕丰满孑伦无码专区| 婷婷五月天av| 久久五月视频| 婷婷激情五月| 婷婷狠狠97| 5月婷婷激情在线| 26UUU欧美| 婷婷五月情色| 夜夜人妻五月天| 在线区区区| 婷婷亚洲日本| 第四色激情网| www.久久| 国产成人综合网| 欧日韩成人| 五月综合激情久久| 综合久久十三| 天天综合区| 99丁香婷婷综合网| 中文AV网站| 五月婷婷丁香五月| 97超级免费无码| 丁香五月婷婷亚洲激情四射| 色99久草在线| 激情碰碰碰| 天天艹| 99久久.www| 91尤物九色在线| 婷婷五月激情的图片| 激情丁香五月天综合| 激情综合网络插| 狠狠久综合| 色丁香五月婷婷| 99热99思午夜精品| 婷婷伊人激情婷婷| 另类综合婷婷五月天欧美视频| 思思久久99热只有频精品66| 婷婷色5月激情网| 色婷六月| 色爱亚洲| 天天日天天爽| 国产精品 的国产| 丁香九月激情久久| 婷婷伊人网| eeuus五月婷| 国产高清RV综合aVa| 深爱五月激情| 在线成人网站| 这里只有精品视频| 美女久久天堂| 色婷婷中文在线| 精品99这里有| 涩涩五| 久热免费| 99热超碰在线| 国产成人一区二区三区在线观看| 欧洲色区| AVV黄| 丁香婷婷五月激情综合| 五月婷婷成人w| 人妻久久久| 国产精品涩涩涩视频网站| 五月综合激情啪啪啪啪啪| 91主播在线| 99热婷婷| 丁香五月成人在线| 97在线碰| 97人人操人人干| 亚洲中文字幕翔田千里| 级情九色| 色五XX| 天天操天天操天天操天天操天天操天天操天天操天天操天天操 | 亚洲亚洲激情| 色播五月网| 九九av| ...婷婷五月综合不卡,国产在线手机 | 狠狠色色| 99re8热精品免费视频| 99热99久久| 五月婷婷手机在线| 天天干,夜夜爽| 五月天堂六月丁香亚州中文字幕久久| 无码九九| 91精品综合久久婷婷九色| 五月天激情婷婷| 9色操| 777丁香六月青青草婷婷综合久月| 色99在线观看| 91操人人操| 综合五月草| 色婷婷小说网| 丁香五月综合网| 久久五月天合网| 丁香五月婷婷综合精品素人| 国产成人精品123区免费视频| 色婷婷激情| 婷婷激情六月天视频| www.狠狠| 五月天激情久久| 97五月天婷婷| 免费无码毛片一区二区A片| 色噜噜狠狠色综| 丁香婷婷色五月| www.狠狠| 伊人网欧美在线男人天堂五月丁香 | 五月天成人免费视频| 久99视频在线观看| 激情伊人| 在线超碰免费| 人人天堂操| 99色综合| 日本精品99| 欧美Va婷色| 婷婷丁香视频| 狠狠999| 欧美色色色| 91丨九色丨高潮丰满日本| 色色色色网| 婷婷五月综合基地| 久久丁香五月婷婷| 久草热8精品视频在线观看| 婷婷五月色情天| 99ri精品视频在线观看| 人人干99| 久久这里只有精品22| 久一这里有精品国产| 97资源碰碰| 亚洲AV无码成人精品区电影网| 天天天操天天天日| 青青草青青草五月天| 99热网站在线观看| 国产99久久久国产精品免费看| 久鲁鲁色网| 99在线观看视频| 黄色一级影片| 五月婷婷偷拍| 另类图片天天影视在线观看| 97人人操| 伊人网大香|