日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

The FreeRTOS Distribution(介绍、移植、类型定义)

發(fā)布時(shí)間:2023/12/1 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 The FreeRTOS Distribution(介绍、移植、类型定义) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1 Understand the FreeRTOS Distribution

1.1 Definition :FreeRTOS Port

FreeRTOS目前可以在20種不同的編譯器構(gòu)建,并且可以在30多種不同的處理器架構(gòu)上運(yùn)行,每個(gè)受支持的編譯器和處理器組合被認(rèn)為是一個(gè)單獨(dú)的FreeRTOS Port。

1.2 Building FreeRTOS

FreeRTOS可以被認(rèn)為是一個(gè)庫(kù),為應(yīng)用程序提供多任務(wù)處理能力。 FreeRTOS以一組C源文件的形式提供,一些文件對(duì)FreeRTOS Port是通用的。而另一些文件則是特定于某個(gè)FreeRTOS Port。

1.3 FreeRTOSCofig.h

FreeRTOSConfig.h是FreeRTOS的配置文件,用來(lái)定制FreeRTOS在特定應(yīng)用程序中使用,用來(lái)裁剪和配置FreeRTOS使用那些功能和不使用那些功能,所以FreeRTOS必須配置在項(xiàng)目工程中

1.4 FreeRTOS的頂級(jí)目錄


Source目錄下式FreeRTOS的源文件,Demo文件下是FreeRTOS的例子

1.5 對(duì)所有FreeRTOS Port都通用的源文件

注:下面所說(shuō)的文件都在FreeRTOS/Source目錄中

  • tasks.c和list.c文件是FreeRTOS的核心文件,對(duì)所有FreeRTOS Port都通用,總是要求包含在項(xiàng)目中。

  • queue.c文件提供隊(duì)列和信號(hào)量服務(wù)

  • timers.c提供軟定時(shí)器功能,如果項(xiàng)目工程中需要軟定時(shí)器,將其包含在內(nèi)就可以了。

  • event_groups提供事件組功能

  • croutine.c實(shí)現(xiàn)了FreeRTOS的協(xié)程功能,協(xié)程旨在用于非常小的微控制器。現(xiàn)在很少使用

由于文件名可能會(huì)導(dǎo)致命名空間沖突,FreeRTOS禁止更改的FreeRTOS的源文件名,會(huì)導(dǎo)致項(xiàng)目出錯(cuò)以及自動(dòng)化工具和IDE插件的兼容性,所以我們自己的文件不要與FreeRTOS的文件名同名

1.6 可移植性

這里的可移植性指的是有兩種情況:

  • 針對(duì)不同的編譯器和架構(gòu),要選擇不同的port.c和portmacro.h文件。特定于FreeRTOS Port的源文件包含在FreeRTOS/Source/portable目錄中,如果使用的編譯器(如Keil)在特定架構(gòu)(ARM的CM0)的處理器上運(yùn)行FreeRTOS,那么除了FreeRTOS源文件外,還必須構(gòu)建位于FreeRTOS/Source/portable/[compiler]/[architecture]的文件

  • 堆內(nèi)存管理方案。使用早于V9.0.0的FreeRTOS版本的項(xiàng)目必須包含堆內(nèi)存管理器,從FreeRTOS9.0.0開(kāi)始,只要FreeRTOSConfig.h中的configSUPPORT_DYNAMIC_ALLOCATION設(shè)置為1或configSUPPORT_DYNAMIC_ALLOCATION沒(méi)有定義時(shí),才需要內(nèi)存管理器。
    FreeRTOS提供了五個(gè)方案來(lái)分配內(nèi)存,分別有heap_1到heap_5實(shí)現(xiàn),包含在FreeRTOS/Source/portable/MemMang目錄下,如果項(xiàng)目中FreeRTOS使用動(dòng)態(tài)內(nèi)存分配,則必須在項(xiàng)目中使用這5個(gè)方案中的一個(gè)

  • 1.7 Include Paths

    FreeRTOS要求編譯器的包含路徑中包含三個(gè)目錄:

  • 核心FreeRTOS頭文件路徑,在FreeRTOS/Source/include文件夾下
  • 特定于正在使用的 FreeRTOS 端口的源文件的路徑。 如上所述,需要包含 FreeRTOS/Source/portable/[compiler]/[architecture]目錄。
  • FreeRTOSConfig.h
  • 1.8 頭文件

    使用 FreeRTOS API 的源文件必須包含“FreeRTOS.h”,后跟包含正在使用的 API 函數(shù)原型的頭文件——“task.h”、“queue.h”、“semphr.h” 、“timers.h”或“event_groups.h”。

    2 Creating a FreeRTOS Project

    我們?cè)贙eil+STM32F4上面實(shí)現(xiàn)

    Keil打開(kāi)一個(gè)跑馬燈實(shí)驗(yàn),并可以下載到板子上正確運(yùn)行。新建兩個(gè)分組

    FreeRTOS_Core存放的是核心文件,對(duì)每個(gè)FreeRTOS Port都一樣,FreeRTOS_Protable是內(nèi)存管理和特定于FreeRTOS Port的源文件,不同F(xiàn)reeRTOS Port可能會(huì)不同。

    包含頭文件:


    第一個(gè)是核心FreeRTOS頭文件路徑,在FreeRTOS/Source/include文件夾下
    第二個(gè)是FreeRTOSConfig.h文件以及特定于正在使用的 FreeRTOS 端口的源文件的路徑FreeRTOS/Source/portable/[compiler]/[architecture]

    到這里就配置好了,下面配置的是由于FreeRTOS和HAL庫(kù)一些函數(shù)名重復(fù)或者與HAL庫(kù)配置不符合

    修改FreeRTOSConfig.h,第45行

    port.c文件和stm32f4xx_it.c有重復(fù)定義的函數(shù):PendSV_Handler、SVC_Handler、Systick_Handler,將stm32f4xx_it.c里面的這些函數(shù)屏蔽掉

    在FreeRTOSConfig.h將configUSE_IDLE_HOOK、configUSE_TICK_HOOK、configUSE_MALLOC_FAILED_HOOK和configCHECK_FOR_STACK_OVERFLOW定義為0,這個(gè)宏定義為1的話,我們需要寫(xiě)一個(gè)函數(shù),不然會(huì)報(bào)錯(cuò),我們修改為0,就用定義這些函數(shù)了。

    由于我用了正點(diǎn)原子的庫(kù)文件,還需要修改sys.h文件和delay.c文件以及usart.c文件
    sys.h

    #ifndef _SYS_H #define _SYS_H #include "stm32f4xx.h"// //本程序只供學(xué)習(xí)使用,未經(jīng)作者許可,不得用于其它任何用途 //ALIENTEK STM32F429開(kāi)發(fā)板 //系統(tǒng)時(shí)鐘初始化 //包括時(shí)鐘設(shè)置/中斷管理/GPIO設(shè)置等 //正點(diǎn)原子@ALIENTEK //技術(shù)論壇:www.openedv.com //創(chuàng)建日期:2015/6/10 //版本:V1.0 //版權(quán)所有,盜版必究。 //Copyright(C) 廣州市星翼電子科技有限公司 2014-2024 //All rights reserved //******************************************************************************** //修改說(shuō)明 //無(wú) // //0,不支持os //1,支持os #define SYSTEM_SUPPORT_OS 1 //定義系統(tǒng)文件夾是否支持OS /// //定義一些常用的數(shù)據(jù)類(lèi)型短關(guān)鍵字 typedef int32_t s32; typedef int16_t s16; typedef int8_t s8;typedef const int32_t sc32; typedef const int16_t sc16; typedef const int8_t sc8; typedef __IO int32_t vs32; typedef __IO int16_t vs16; typedef __IO int8_t vs8;typedef __I int32_t vsc32; typedef __I int16_t vsc16; typedef __I int8_t vsc8; typedef uint32_t u32; typedef uint16_t u16; typedef uint8_t u8;typedef const uint32_t uc32; typedef const uint16_t uc16; typedef const uint8_t uc8; typedef __IO uint32_t vu32; typedef __IO uint16_t vu16; typedef __IO uint8_t vu8;typedef __I uint32_t vuc32; typedef __I uint16_t vuc16; typedef __I uint8_t vuc8; //位帶操作,實(shí)現(xiàn)51類(lèi)似的GPIO控制功能 //具體實(shí)現(xiàn)思想,參考<<CM3權(quán)威指南>>第五章(87頁(yè)~92頁(yè)).M4同M3類(lèi)似,只是寄存器地址變了. //IO口操作宏定義 #define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFFF)<<5)+(bitnum<<2)) #define MEM_ADDR(addr) *((volatile unsigned long *)(addr)) #define BIT_ADDR(addr, bitnum) MEM_ADDR(BITBAND(addr, bitnum)) //IO口地址映射 #define GPIOA_ODR_Addr (GPIOA_BASE+20) //0x40020014 #define GPIOB_ODR_Addr (GPIOB_BASE+20) //0x40020414 #define GPIOC_ODR_Addr (GPIOC_BASE+20) //0x40020814 #define GPIOD_ODR_Addr (GPIOD_BASE+20) //0x40020C14 #define GPIOE_ODR_Addr (GPIOE_BASE+20) //0x40021014 #define GPIOF_ODR_Addr (GPIOF_BASE+20) //0x40021414 #define GPIOG_ODR_Addr (GPIOG_BASE+20) //0x40021814 #define GPIOH_ODR_Addr (GPIOH_BASE+20) //0x40021C14 #define GPIOI_ODR_Addr (GPIOI_BASE+20) //0x40022014 #define GPIOJ_ODR_ADDr (GPIOJ_BASE+20) //0x40022414 #define GPIOK_ODR_ADDr (GPIOK_BASE+20) //0x40022814#define GPIOA_IDR_Addr (GPIOA_BASE+16) //0x40020010 #define GPIOB_IDR_Addr (GPIOB_BASE+16) //0x40020410 #define GPIOC_IDR_Addr (GPIOC_BASE+16) //0x40020810 #define GPIOD_IDR_Addr (GPIOD_BASE+16) //0x40020C10 #define GPIOE_IDR_Addr (GPIOE_BASE+16) //0x40021010 #define GPIOF_IDR_Addr (GPIOF_BASE+16) //0x40021410 #define GPIOG_IDR_Addr (GPIOG_BASE+16) //0x40021810 #define GPIOH_IDR_Addr (GPIOH_BASE+16) //0x40021C10 #define GPIOI_IDR_Addr (GPIOI_BASE+16) //0x40022010 #define GPIOJ_IDR_Addr (GPIOJ_BASE+16) //0x40022410 #define GPIOK_IDR_Addr (GPIOK_BASE+16) //0x40022810 //IO口操作,只對(duì)單一的IO口! //確保n的值小于16! #define PAout(n) BIT_ADDR(GPIOA_ODR_Addr,n) //輸出 #define PAin(n) BIT_ADDR(GPIOA_IDR_Addr,n) //輸入 #define PBout(n) BIT_ADDR(GPIOB_ODR_Addr,n) //輸出 #define PBin(n) BIT_ADDR(GPIOB_IDR_Addr,n) //輸入 #define PCout(n) BIT_ADDR(GPIOC_ODR_Addr,n) //輸出 #define PCin(n) BIT_ADDR(GPIOC_IDR_Addr,n) //輸入 #define PDout(n) BIT_ADDR(GPIOD_ODR_Addr,n) //輸出 #define PDin(n) BIT_ADDR(GPIOD_IDR_Addr,n) //輸入 #define PEout(n) BIT_ADDR(GPIOE_ODR_Addr,n) //輸出 #define PEin(n) BIT_ADDR(GPIOE_IDR_Addr,n) //輸入#define PFout(n) BIT_ADDR(GPIOF_ODR_Addr,n) //輸出 #define PFin(n) BIT_ADDR(GPIOF_IDR_Addr,n) //輸入#define PGout(n) BIT_ADDR(GPIOG_ODR_Addr,n) //輸出 #define PGin(n) BIT_ADDR(GPIOG_IDR_Addr,n) //輸入#define PHout(n) BIT_ADDR(GPIOH_ODR_Addr,n) //輸出 #define PHin(n) BIT_ADDR(GPIOH_IDR_Addr,n) //輸入#define PIout(n) BIT_ADDR(GPIOI_ODR_Addr,n) //輸出 #define PIin(n) BIT_ADDR(GPIOI_IDR_Addr,n) //輸入#define PJout(n) BIT_ADDR(GPIOJ_ODR_Addr,n) //輸出 #define PJin(n) BIT_ADDR(GPIOJ_IDR_Addr,n) //輸入#define PKout(n) BIT_ADDR(GPIOK_ODR_Addr,n) //輸出 #define PKin(n) BIT_ADDR(GPIOK_IDR_Addr,n) //輸入void Stm32_Clock_Init(u32 plln,u32 pllm,u32 pllp,u32 pllq);//時(shí)鐘系統(tǒng)配置 //以下為匯編函數(shù) void WFI_SET(void); //執(zhí)行WFI指令 void INTX_DISABLE(void);//關(guān)閉所有中斷 void INTX_ENABLE(void); //開(kāi)啟所有中斷 void MSR_MSP(u32 addr); //設(shè)置堆棧地址 #endif

    delay.c

    #include "delay.h" #include "sys.h" // //如果使用OS,則包括下面的頭文件即可. #if SYSTEM_SUPPORT_OS #include "FreeRTOS.h" //FreeRTOS使用 #include "task.h" #endifstatic u32 fac_us=0; //us延時(shí)倍乘數(shù)#if SYSTEM_SUPPORT_OS static u16 fac_ms=0; //ms延時(shí)倍乘數(shù),在os下,代表每個(gè)節(jié)拍的ms數(shù) #endifextern void xPortSysTickHandler(void); //systick中斷服務(wù)函數(shù),使用OS時(shí)用到 void SysTick_Handler(void) { if(xTaskGetSchedulerState()!=taskSCHEDULER_NOT_STARTED)//系統(tǒng)已經(jīng)運(yùn)行{xPortSysTickHandler(); }HAL_IncTick(); }//初始化延遲函數(shù) //當(dāng)使用ucos的時(shí)候,此函數(shù)會(huì)初始化ucos的時(shí)鐘節(jié)拍 //SYSTICK的時(shí)鐘固定為AHB時(shí)鐘 //SYSCLK:系統(tǒng)時(shí)鐘頻率 void delay_init(u8 SYSCLK) {u32 reload;HAL_SYSTICK_CLKSourceConfig(SYSTICK_CLKSOURCE_HCLK);//SysTick頻率為HCLKfac_us=SYSCLK; //不論是否使用OS,fac_us都需要使用reload=SYSCLK; //每秒鐘的計(jì)數(shù)次數(shù) 單位為K reload*=1000000/configTICK_RATE_HZ; //根據(jù)configTICK_RATE_HZ設(shè)定溢出時(shí)間//reload為24位寄存器,最大值:16777216,在180M下,約合0.745s左右 fac_ms=1000/configTICK_RATE_HZ; //代表OS可以延時(shí)的最少單位 SysTick->CTRL|=SysTick_CTRL_TICKINT_Msk;//開(kāi)啟SYSTICK中斷SysTick->LOAD=reload; //每1/configTICK_RATE_HZ斷一次 SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk; //開(kāi)啟SYSTICK } //延時(shí)nus //nus:要延時(shí)的us數(shù). //nus:0~190887435(最大值即2^32/fac_us@fac_us=22.5) void delay_us(u32 nus) { u32 ticks;u32 told,tnow,tcnt=0;u32 reload=SysTick->LOAD; //LOAD的值 ticks=nus*fac_us; //需要的節(jié)拍數(shù) told=SysTick->VAL; //剛進(jìn)入時(shí)的計(jì)數(shù)器值while(1){tnow=SysTick->VAL; if(tnow!=told){ if(tnow<told)tcnt+=told-tnow; //這里注意一下SYSTICK是一個(gè)遞減的計(jì)數(shù)器就可以了.else tcnt+=reload-tnow+told; told=tnow;if(tcnt>=ticks)break; //時(shí)間超過(guò)/等于要延遲的時(shí)間,則退出.} }; } //延時(shí)nms,會(huì)引起任務(wù)調(diào)度 //nms:要延時(shí)的ms數(shù) //nms:0~65535 void delay_ms(u32 nms) { if(xTaskGetSchedulerState()!=taskSCHEDULER_NOT_STARTED)//系統(tǒng)已經(jīng)運(yùn)行{ if(nms>=fac_ms) //延時(shí)的時(shí)間大于OS的最少時(shí)間周期 { vTaskDelay(nms/fac_ms); //FreeRTOS延時(shí)}nms%=fac_ms; //OS已經(jīng)無(wú)法提供這么小的延時(shí)了,采用普通方式延時(shí) }delay_us((u32)(nms*1000)); //普通方式延時(shí) }//延時(shí)nms,不會(huì)引起任務(wù)調(diào)度 //nms:要延時(shí)的ms數(shù) void delay_xms(u32 nms) {u32 i;for(i=0;i<nms;i++) delay_us(1000); }

    usart.c

    #include "usart.h" #include "delay.h" // //如果使用os,則包括下面的頭文件即可. #if SYSTEM_SUPPORT_OS #include "FreeRTOS.h" //os 使用 #endif//加入以下代碼,支持printf函數(shù),而不需要選擇use MicroLIB //#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #if 1 #pragma import(__use_no_semihosting) //標(biāo)準(zhǔn)庫(kù)需要的支持函數(shù) struct __FILE { int handle; }; FILE __stdout; //定義_sys_exit()以避免使用半主機(jī)模式 void _sys_exit(int x) { x = x; } //重定義fputc函數(shù) int fputc(int ch, FILE *f) { while((USART1->SR&0X40)==0);//循環(huán)發(fā)送,直到發(fā)送完畢 USART1->DR = (u8) ch; return ch; } #endif #if EN_USART1_RX //如果使能了接收 //串口1中斷服務(wù)程序 //注意,讀取USARTx->SR能避免莫名其妙的錯(cuò)誤 u8 USART_RX_BUF[USART_REC_LEN]; //接收緩沖,最大USART_REC_LEN個(gè)字節(jié). //接收狀態(tài) //bit15, 接收完成標(biāo)志 //bit14, 接收到0x0d //bit13~0, 接收到的有效字節(jié)數(shù)目 u16 USART_RX_STA=0; //接收狀態(tài)標(biāo)記 u8 aRxBuffer[RXBUFFERSIZE];//HAL庫(kù)使用的串口接收緩沖 UART_HandleTypeDef UART1_Handler; //UART句柄//初始化IO 串口1 //bound:波特率 void uart_init(u32 bound) { //UART 初始化設(shè)置UART1_Handler.Instance=USART1; //USART1UART1_Handler.Init.BaudRate=bound; //波特率UART1_Handler.Init.WordLength=UART_WORDLENGTH_8B; //字長(zhǎng)為8位數(shù)據(jù)格式UART1_Handler.Init.StopBits=UART_STOPBITS_1; //一個(gè)停止位UART1_Handler.Init.Parity=UART_PARITY_NONE; //無(wú)奇偶校驗(yàn)位UART1_Handler.Init.HwFlowCtl=UART_HWCONTROL_NONE; //無(wú)硬件流控UART1_Handler.Init.Mode=UART_MODE_TX_RX; //收發(fā)模式HAL_UART_Init(&UART1_Handler); //HAL_UART_Init()會(huì)使能UART1HAL_UART_Receive_IT(&UART1_Handler, (u8 *)aRxBuffer, RXBUFFERSIZE);//該函數(shù)會(huì)開(kāi)啟接收中斷:標(biāo)志位UART_IT_RXNE,并且設(shè)置接收緩沖以及接收緩沖接收最大數(shù)據(jù)量}//UART底層初始化,時(shí)鐘使能,引腳配置,中斷配置 //此函數(shù)會(huì)被HAL_UART_Init()調(diào)用 //huart:串口句柄void HAL_UART_MspInit(UART_HandleTypeDef *huart) {//GPIO端口設(shè)置GPIO_InitTypeDef GPIO_Initure;if(huart->Instance==USART1)//如果是串口1,進(jìn)行串口1 MSP初始化{__HAL_RCC_GPIOA_CLK_ENABLE(); //使能GPIOA時(shí)鐘__HAL_RCC_USART1_CLK_ENABLE(); //使能USART1時(shí)鐘GPIO_Initure.Pin=GPIO_PIN_9; //PA9GPIO_Initure.Mode=GPIO_MODE_AF_PP; //復(fù)用推挽輸出GPIO_Initure.Pull=GPIO_PULLUP; //上拉GPIO_Initure.Speed=GPIO_SPEED_FAST; //高速GPIO_Initure.Alternate=GPIO_AF7_USART1; //復(fù)用為USART1HAL_GPIO_Init(GPIOA,&GPIO_Initure); //初始化PA9GPIO_Initure.Pin=GPIO_PIN_10; //PA10HAL_GPIO_Init(GPIOA,&GPIO_Initure); //初始化PA10#if EN_USART1_RXHAL_NVIC_EnableIRQ(USART1_IRQn); //使能USART1中斷通道HAL_NVIC_SetPriority(USART1_IRQn,3,3); //搶占優(yōu)先級(jí)3,子優(yōu)先級(jí)3 #endif }}void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {if(huart->Instance==USART1)//如果是串口1{if((USART_RX_STA&0x8000)==0)//接收未完成{if(USART_RX_STA&0x4000)//接收到了0x0d{if(aRxBuffer[0]!=0x0a)USART_RX_STA=0;//接收錯(cuò)誤,重新開(kāi)始else USART_RX_STA|=0x8000; //接收完成了 }else //還沒(méi)收到0X0D{ if(aRxBuffer[0]==0x0d)USART_RX_STA|=0x4000;else{USART_RX_BUF[USART_RX_STA&0X3FFF]=aRxBuffer[0] ;USART_RX_STA++;if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//接收數(shù)據(jù)錯(cuò)誤,重新開(kāi)始接收 } }}} }//串口1中斷服務(wù)程序 void USART1_IRQHandler(void) { u32 timeout=0;u32 maxDelay=0x1FFFF;HAL_UART_IRQHandler(&UART1_Handler); //調(diào)用HAL庫(kù)中斷處理公用函數(shù)timeout=0;while (HAL_UART_GetState(&UART1_Handler) != HAL_UART_STATE_READY)//等待就緒{timeout++;超時(shí)處理if(timeout>maxDelay) break; }timeout=0;while(HAL_UART_Receive_IT(&UART1_Handler, (u8 *)aRxBuffer, RXBUFFERSIZE) != HAL_OK)//一次處理完成之后,重新開(kāi)啟中斷并設(shè)置RxXferCount為1{timeout++; //超時(shí)處理if(timeout>maxDelay) break; } } #endif /*下面代碼我們直接把中斷控制邏輯寫(xiě)在中斷服務(wù)函數(shù)內(nèi)部。*/ /*//串口1中斷服務(wù)程序 void USART1_IRQHandler(void) { u8 Res;if((__HAL_UART_GET_FLAG(&UART1_Handler,UART_FLAG_RXNE)!=RESET)) //接收中斷(接收到的數(shù)據(jù)必須是0x0d 0x0a結(jié)尾){HAL_UART_Receive(&UART1_Handler,&Res,1,1000); if((USART_RX_STA&0x8000)==0)//接收未完成{if(USART_RX_STA&0x4000)//接收到了0x0d{if(Res!=0x0a)USART_RX_STA=0;//接收錯(cuò)誤,重新開(kāi)始else USART_RX_STA|=0x8000; //接收完成了 }else //還沒(méi)收到0X0D{ if(Res==0x0d)USART_RX_STA|=0x4000;else{USART_RX_BUF[USART_RX_STA&0X3FFF]=Res ;USART_RX_STA++;if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//接收數(shù)據(jù)錯(cuò)誤,重新開(kāi)始接收 } }} }HAL_UART_IRQHandler(&UART1_Handler); } #endif */

    之后就可以運(yùn)行了

    3 Data Types and Coding Style Guide

    3.1 Data Types

    FreeRTOS的每個(gè)port都有一個(gè)唯一的portmacro.h頭文件,其中包含TickType_t 和BaseType_t。
    TickType_t 是用于保存滴答計(jì)數(shù)值和指定時(shí)間的數(shù)據(jù)類(lèi)型。TickType_t 可以是無(wú)符號(hào) 16 位類(lèi)型,也可以是無(wú)符號(hào) 32 位類(lèi)型,具體取決于 FreeRTOSConfig.h 中 configUSE_16_BIT_TICKS 的設(shè)置。 如果 configUSE_16_BIT_TICKS 設(shè)置為 1,則 TickType_t 定義為 uint16_t。 如果 configUSE_16_BIT_TICKS 設(shè)置為 0,則 TickType_t 定義為 uint32_t。
    使用 16 位類(lèi)型可以大大提高 8 位和 16 位架構(gòu)上的效率,但嚴(yán)重限制了可以指定的最大塊周期。 沒(méi)有理由在 32 位架構(gòu)上使用 16 位類(lèi)型。
    BaseType_t 通常用于只能取非常有限范圍的值的返回類(lèi)型,以及 pdTRUE/pdFALSE 類(lèi)型的布爾值。這始終被定義為體系結(jié)構(gòu)最有效的數(shù)據(jù)類(lèi)型。 通常,這是 32 位架構(gòu)上的 32 位類(lèi)型,16 位架構(gòu)上的 16 位類(lèi)型,以及 8 位架構(gòu)上的 8 位類(lèi)型。

    3.2 Variable Names

    變量以其類(lèi)型為前綴:‘c’ for char,‘s’ for int16_t(short),‘l’ for int32_t(long),and ‘x’ for BaseType_t和其他非標(biāo)準(zhǔn)類(lèi)型。
    如果一個(gè)變量是無(wú)符號(hào)的,以’u’為前綴,如果變量是指針,以’p’為前綴,比如’pc’代表字符指針類(lèi)型

    3.3 Function Names

    函數(shù)以他們返回的類(lèi)型和它們?cè)谄渲卸x的文件名為前綴,比如:
    vTaskPrioritySet():返回類(lèi)型為void,定義在task.c文件中
    xQueueReceive():返回值為BaseType_t類(lèi)型,定義在queue.c文件中

    3.4 Macro Names

    大多數(shù)宏都是大寫(xiě)的,并以小寫(xiě)字母作為前綴,指示宏的定義位置。信號(hào)量API幾乎完全是作為一組宏編寫(xiě)的,但遵循函數(shù)命名的約定。下面的四個(gè)宏用于整個(gè)FreeRTOS中

    總結(jié)

    以上是生活随笔為你收集整理的The FreeRTOS Distribution(介绍、移植、类型定义)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

    一区二区亚洲精品 | 久久久一本精品99久久精品66 | 久久视频二区 | 国产高清视频在线播放一区 | 涩涩网站在线观看 | 人人玩人人添人人 | 日韩欧美电影 | 在线观看香蕉视频 | 色婷婷亚洲综合 | 天天草夜夜 | 久久免费视屏 | 狠狠久久 | 91av播放 | 久草在线视频网 | 午夜狠狠干| 久久精品日产第一区二区三区乱码 | 蜜桃视频在线观看一区 | 日韩精品 在线视频 | 91成人区 | 五月开心六月伊人色婷婷 | www黄色大片 | 成年人黄色在线观看 | 国产精品区在线观看 | 天天五月天色 | 免费看日韩片 | 人人玩人人添人人澡超碰 | 亚洲精品激情 | 国产精品入口麻豆 | 欧美国产日韩激情 | 91香蕉国产在线观看软件 | 亚州中文av | 日韩va欧美va亚洲va久久 | 狠狠操欧美 | 91精品国自产在线观看欧美 | 亚洲人在线| 一级黄色大片在线观看 | 中文字幕精 | 亚洲美女视频在线 | 久久99热精品 | 国产尤物在线 | 久久综合五月天婷婷伊人 | 欧美一级激情 | 在线播放视频一区 | 婷婷久草 | 日本久久免费视频 | 午夜精品一区二区三区在线观看 | 亚洲综合成人婷婷小说 | 精品美女久久久久久免费 | 免费黄色小网站 | 这里只有精品视频在线观看 | 又黄又爽又无遮挡免费的网站 | 黄色三级免费观看 | 欧美一级片在线免费观看 | av在线网站大全 | 新版资源中文在线观看 | 天天草综合网 | 91av国产视频 | 久久污视频 | 国产福利一区二区三区在线观看 | 午夜体验区 | 日日干激情五月 | 日韩免费福利 | 日韩有码在线播放 | 久久国产精品99久久人人澡 | 久久精品网站视频 | 成人av免费看 | 一本到在线 | 91成人免费在线视频 | 五月天激情在线 | 国产成人精品一区二区三区福利 | 久久美女精品 | 91在线国产观看 | 色婷婷视频在线 | 在线中文字母电影观看 | 日韩 在线a | 波多野结衣在线播放视频 | 91视频一8mav| 伊人成人久久 | 精品久久久久久亚洲综合网 | 91片黄在线观看动漫 | www亚洲国产 | 亚洲精品美女 | 亚洲在线视频免费 | 亚洲精品乱码久久 | 人人爽影院 | 日韩国产精品久久久久久亚洲 | 91av视屏 | 伊香蕉大综综综合久久啪 | 在线观看日本韩国电影 | 久久九九影视 | 久久久久久久国产精品 | 在线观看一区二区精品 | 久草在线观看资源 | 天堂成人在线 | 日韩三级视频在线观看 | www.av免费观看 | 国产精品国产三级在线专区 | 亚洲jizzjizz日本少妇 | 精品一区 精品二区 | 在线观看av的网站 | 欧美 国产 视频 | 色综合综合 | 国产精品无 | av在线电影网站 | 国产色一区| 91看片在线看片 | 国产乱码精品一区二区三区介绍 | 国产91丝袜在线播放动漫 | 99久高清在线观看视频99精品热在线观看视频 | 中文字幕在线不卡国产视频 | 国产在线国产 | 日韩欧美国产视频 | 狠狠五月婷婷 | 欧美黑人性爽 | 国产精品一区二区久久久 | 国产精品精品国产婷婷这里av | 日韩免费高清 | 中文字幕在线网址 | 午夜久久美女 | 国产精品美女毛片真酒店 | www狠狠| 伊人亚洲综合网 | 一区二区三区中文字幕在线观看 | 激情网五月 | 久久久久久久久电影 | 日韩18p| 国产亚洲精品久久久久久久久久久久 | 亚洲激情小视频 | 欧美一区二区伦理片 | 四虎亚洲精品 | 成人黄色小说网 | 毛片激情永久免费 | 亚洲午夜久久久影院 | 色综合天天在线 | 国产精品女人网站 | 国产69精品久久久久99尤 | 国产精品精品国产色婷婷 | 超碰在线网 | 超碰个人在线 | 免费av影视 | 国产精品综合在线 | 欧美久久久久久久久中文字幕 | 久久精品直播 | 国产日韩欧美视频 | 夜色资源站wwwcom | 日韩理论片在线观看 | 久久成年人视频 | 欧美色图另类 | 香蕉影院在线 | 园产精品久久久久久久7电影 | 久久久久免费看 | 午夜精品久久久久久久爽 | 欧美激情综合五月色丁香 | 亚洲精品裸体 | 欧美精品免费在线观看 | 国产亚洲欧洲 | 午夜精品999 | 久久国产午夜精品理论片最新版本 | 国产精品精品国产色婷婷 | 国产一区视频在线 | 久99久在线视频 | 米奇狠狠狠888 | 99久久综合狠狠综合久久 | 九九一级片 | 国产一区二区三区高清播放 | 成人超碰在线 | 日韩精品免费在线 | 久久精品免费播放 | 国产操在线| 久久久久久久精 | 国产一级在线视频 | japanese黑人亚洲人4k | 国产资源免费在线观看 | 亚洲丝袜一区 | 国产精品亚洲片夜色在线 | 麻花豆传媒一二三产区 | 婷婷成人综合 | 日本一区二区高清不卡 | 免费在线激情视频 | 国产一区久久久 | 丁香色综合 | 欧美日韩国产一区二区在线观看 | 亚洲一级黄色片 | 久久综合婷婷 | 在线免费高清一区二区三区 | 九热在线 | aaa毛片视频| 亚洲黄色一级电影 | 丁香六月激情婷婷 | 少妇按摩av | 韩国在线一区 | 精品国产精品久久一区免费式 | 久久精品久久精品久久精品 | 99视频免费观看 | 96国产在线| 天天综合五月天 | 黄色视屏在线免费观看 | 国产精品每日更新 | 成人高清在线观看 | 日韩美女黄色片 | 天天综合视频在线观看 | 国产明星视频三级a三级点| 成人在线黄色电影 | 狠狠色丁香婷婷综合久小说久 | 国产一级在线免费观看 | 在线观看av网 | 亚洲精品456在线播放乱码 | 操操操综合 | 一二三四精品 | 欧美日韩性生活 | 国产黄色片久久 | 亚洲综合欧美激情 | 国产大陆亚洲精品国产 | 久久高清免费视频 | 欧美一区二区三区四区夜夜大片 | 亚洲精品国偷拍自产在线观看 | 99这里有精品 | 亚洲第一中文字幕 | 99在线免费视频 | a午夜电影 | 久久免费视频在线 | 国产97色| 婷婷六月激情 | 中文字幕日本特黄aa毛片 | 日本系列中文字幕 | 国产又粗又猛又色 | 免费一级片视频 | 久久黄色成人 | 看全黄大色黄大片 | 日本久久影视 | 99久久99| 九九九九精品 | av免费看在线 | 亚洲国产精品999 | 国产96精品 | 亚洲精品99久久久久久 | 精品极品在线 | 婷婷九月丁香 | 91免费在线看片 | 国产资源中文字幕 | 亚洲黄色片在线 | 中文字幕免费成人 | 国产成人在线免费观看 | 国产精品99久久久久久久久 | 天天综合天天做天天综合 | 色综合久久五月 | 国产亚洲精品久久久久久大师 | 青草视频免费观看 | 亚洲综合欧美激情 | 国产精品视屏 | 日本精品久久久久中文字幕5 | 精品在线观 | 久草精品免费 | 亚洲精品理论片 | 日本韩国中文字幕 | 亚洲综合成人在线 | 国产精品亚洲综合久久 | 成人久久18免费网站图片 | 婷婷在线看 | h动漫中文字幕 | 中文字幕免费一区 | 91久久精品一区二区三区 | 亚洲一区二区黄色 | 亚洲成人av在线播放 | 亚洲女欲精品久久久久久久18 | 天堂黄色片 | 91香蕉嫩草 | 久久久999精品视频 国产美女免费观看 | 国产不卡在线看 | 黄色大片视频网站 | av在线之家电影网站 | 在线天堂日本 | 99热在线网站 | 国产视频精品视频 | 97在线视频免费 | 欧美日韩一区二区视频在线观看 | 91aaa在线观看| 国产毛片久久 | 久久伦理电影 | 国产乱对白刺激视频在线观看女王 | 婷婷新五月 | 国产一区二区在线视频观看 | 天天操天天射天天操 | 色美女在线 | av在线播放免费 | 18久久久久 | 麻豆视频免费在线 | 丁香婷婷在线 | 99免费精品 | 深夜免费福利网站 | 999成人 | 天天射天天色天天干 | 在线观看国产区 | 97在线视频免费观看 | 二区精品视频 | 91高清在线| 婷婷5月色 | 娇妻呻吟一区二区三区 | 精品国自产在线观看 | 欧美精品久久久久久久久久白贞 | 国产91全国探花系列在线播放 | 欧美国产日韩在线视频 | 久久日韩精品 | 免费在线观看国产黄 | 91免费在线看片 | 午夜婷婷网 | 黄av在线 | 中文字幕在线免费观看 | 色丁香综合| 欧美精品免费一区二区 | 男女激情免费网站 | 国产又黄又爽又猛视频日本 | 狠狠干成人综合网 | 91精品色 | 99视频+国产日韩欧美 | 欧美九九九 | 亚洲精品乱码久久久久久按摩 | 超碰97网站 | av福利第一导航 | 日本一区二区三区免费观看 | 爱情影院aqdy鲁丝片二区 | av在线播放国产 | 久久久久久久久久久高潮一区二区 | 在线观看播放av | 欧美淫aaa免费观看 日韩激情免费视频 | 国产高清在线不卡 | 天天干天天摸天天操 | 在线观看中文字幕 | 久久久久久久久久久免费视频 | 天天看天天干天天操 | 日本中文字幕在线电影 | 亚洲经典在线 | 天天干天天做天天爱 | 欧美一级日韩三级 | 精品国产自在精品国产精野外直播 | 国产不卡在线观看 | 日日夜夜综合 | 欧美资源 | 日韩在线不卡 | 手机在线看片日韩 | 欧美日韩亚洲国产一区 | 一区二区精品在线观看 | 一级a毛片高清视频 | 日本不卡久久 | 中文字幕在线成人 | 91片黄在线观看 | 久久中文字幕导航 | 黄色综合| 91久久久久久久一区二区 | 国产无遮挡又黄又爽在线观看 | 国产精品久久久久久久婷婷 | 天天操天天玩 | 在线看黄色的网站 | 精品国产福利在线 | 三级在线视频播放 | 97超碰超碰| 成人 亚洲 欧美 | 日韩欧美一区二区三区黑寡妇 | 国产又粗又硬又爽的视频 | 久久久久久免费 | 国产亚洲精品久久久网站好莱 | 日日爱999| 免费看的黄网站软件 | 激情电影影院 | 久久久久亚洲天堂 | 中文字幕免费国产精品 | 91免费视频黄 | 天天综合久久综合 | 在线观看av黄色 | 草久久影院 | 欧美三级在线播放 | 亚洲欧美激情精品一区二区 | 中文字幕在线观看视频一区二区三区 | 国产精品s色 | 国产尤物在线 | 国产午夜视频在线观看 | 在线看日韩av | 久草在线视频看看 | 国产成人免费精品 | 亚洲永久精品一区 | 三级黄色网址 | 91黄色视屏 | 色在线网站 | 亚洲精品麻豆视频 | 国产精品久久久久高潮 | 亚洲黄色av网址 | 91成人国产 | 亚洲欧美日韩国产一区二区 | 五月婷婷综合激情网 | 91丨九色丨高潮丰满 | 欧美视频www | 欧美精品久久久久久久久久久 | 四虎成人精品永久免费av | 中文在线最新版天堂 | 一区二区三区中文字幕在线观看 | 亚洲人成免费 | 麻豆视屏 | 国产精品久久久久久久午夜片 | 国产成人精品一区二三区 | 综合网成人 | h视频在线看 | 99热.com| 狠狠干激情 | 久久久久久久久久久久国产精品 | 国产999精品久久久久久麻豆 | 久久久久久麻豆 | 日韩深夜在线观看 | 免费高清影视 | 国产精品久久亚洲 | 日韩精品电影在线播放 | 国产精品久久久久久久久久免费看 | 亚洲成av| 怡红院av | 2022久久国产露脸精品国产 | 1000部国产精品成人观看 | 久久综合99 | 亚洲高清视频在线播放 | 国产精品久久久久久久妇 | 成 人 黄 色 视频播放1 | 亚洲区视频在线观看 | 天堂av观看 | 日韩中午字幕 | av福利在线免费观看 | 日本不卡123区 | 精品久久福利 | 天天操天天操天天干 | 久久综合成人 | 日韩精品一区二区三区免费视频观看 | 亚洲精品乱码久久久久久高潮 | 亚洲成人资源 | 国产手机av在线 | 精品福利在线视频 | 在线观看免费高清视频大全追剧 | 草久热| 美国三级黄色大片 | 一级久久精品 | 久久美女电影 | 欧美狠狠色| 色福利网站 | 久久久91精品国产一区二区精品 | 亚洲视频 一区 | 成人黄色免费观看 | 99精品国产视频 | 91精品专区| 中文字幕一区二区三区四区视频 | 青青草国产成人99久久 | 国产九九九视频 | 国产精品专区h在线观看 | 久操视频在线免费看 | 一本色道久久精品 | 婷五月激情 | 久久久久久久久久久久久影院 | 97国产小视频 | 亚洲黄色在线观看 | 在线成人免费电影 | 久久99国产综合精品 | 国色天香在线观看 | 亚洲综合最新在线 | 成片免费观看视频999 | 黄色www在线观看 | 国产中文视| 午夜av日韩 | 五月天久久狠狠 | 中文字幕在线观看第一区 | 久久久免费在线观看 | 午夜精品久久久久久久久久久 | 中文字幕国产精品一区二区 | 亚洲精品久久久久久久不卡四虎 | 免费视频久久 | 久久新视频 | 日本三级全黄少妇三2023 | 丁香婷婷激情网 | 91精品久久久久久 | 亚洲精品免费看 | 日韩天天操 | 丁香久久婷婷 | 亚洲欧美日韩国产一区二区三区 | 欧美另类xxxxx | 西西444www高清大胆 | 亚洲高清视频在线观看免费 | 国产精品久久久久久久久搜平片 | 中文字幕人成人 | 欧美作爱视频 | 狠狠色丁香久久婷婷综合_中 | 国产看片网站 | 在线观看亚洲精品 | 亚洲午夜精品久久久久久久久 | 天天超碰| 天天草天天摸 | 亚洲激情在线观看 | 亚洲免费精彩视频 | 国产在线不卡一区 | 99热国产在线观看 | 国产成人1区 | 成人免费在线观看入口 | 波多野结衣日韩 | 91在线精品播放 | 一区二区 不卡 | 免费视频一区二区 | 欧美日韩国产在线 | 国产日韩欧美在线观看 | 久久久免费看片 | 夜夜躁日日躁狠狠久久av | 中文字幕一区二区三区在线视频 | av黄色大片| 一区二区日韩av | 91精品国产欧美一区二区 | 国产色女 | 日日日日 | 久久亚洲婷婷 | av日韩中文 | 久久精品3 | 久久国产乱 | 伊人资源站 | 免费高清在线一区 | 欧美日韩在线第一页 | 91精品久久久久久久久久入口 | 国产精品久久久久久久电影 | 缴情综合网五月天 | 国产亚洲精品久 | 色福利网 | 国产一级一片免费播放放 | 国产成人精品久久亚洲高清不卡 | 久久精品视频免费播放 | 欧美日韩一区二区免费在线观看 | 91最新在线观看 | 91看片网址 | 日韩免费高清 | 天天干天天天天 | 日韩欧美69 | 久久人人添人人爽添人人88v | 婷婷丁香狠狠爱 | 日韩高清精品一区二区 | 超级碰视频 | 91精品1区2区| 国产精品 日本 | 国产69久久精品成人看 | 日韩精品一区二区免费视频 | www久草| 国产自产高清不卡 | 99视频在线精品国自产拍免费观看 | 高清av网站| 91免费高清观看 | 欧美视频www | 亚洲精品中文字幕在线 | 久久综合亚洲鲁鲁五月久久 | 久久国产麻豆 | 午夜精品一区二区国产 | www.久艹| 国产精品99久久久久人中文网介绍 | 天天操天天干天天操天天干 | 亚洲免费精彩视频 | 欧美日韩国产伦理 | 色av婷婷 | 88av色| 狠狠干夜夜爱 | 亚洲最新精品 | 伊人激情综合 | 国产成人精品午夜在线播放 | 99久久精品国产亚洲 | 婷婷久久亚洲 | 亚洲欧美日韩国产一区二区三区 | 黄色精品国产 | 一本之道乱码区 | 亚洲一区二区三区四区在线视频 | 国产色 在线 | 欧美成人久久 | 中文字幕免费成人 | 天天综合成人网 | 国产在线观看污片 | 国产伦精品一区二区三区高清 | 久久婷婷久久 | 一色屋精品视频在线观看 | 亚洲日本va午夜在线电影 | 性色在线视频 | 97av影院 | 日韩av中文在线 | 日本性久久 | 91精品国产92久久久久 | 色婷婷播放 | 欧美a级在线免费观看 | 91麻豆精品国产91久久久久 | 日韩在线观看一区二区 | 亚洲精品福利在线 | 狠狠操狠狠 | 九九久久精品视频 | 国产精品视频区 | 国产手机视频在线观看 | 午夜视频播放 | 成人黄色av免费在线观看 | 片黄色毛片黄色毛片 | 丁香六月中文字幕 | 欧美色婷 | www国产亚洲精品久久网站 | 天天草天天草 | 四虎国产精品免费观看视频优播 | 天天干亚洲| 国产一区网址 | 久草免费看 | 国产99久久精品一区二区300 | 亚洲精品午夜久久久久久久 | 国产91精品看黄网站在线观看动漫 | 久久国产网站 | 国产精品国产三级国产aⅴ无密码 | 色综合亚洲精品激情狠狠 | 久草免费在线观看 | 国产成人精品一区一区一区 | 欧美aa级 | 久久草av| 欧美色综合天天久久综合精品 | 日韩av女优视频 | 日韩欧美高清一区二区三区 | 久久久久国产精品午夜一区 | 国产看片网站 | 美女中文字幕 | 国产一区二区中文字幕 | 久久免费的视频 | 欧美日韩视频免费看 | 亚洲精品大全 | 中文字幕精品一区二区精品 | 天天做天天看 | 日韩欧美在线观看一区二区三区 | 91大片成人网 | 在线精品视频免费播放 | 欧美激情视频久久 | www九九热 | 久久观看 | 欧美精品国产综合久久 | 日韩在线观看高清 | 99精品国产兔费观看久久99 | 九九久久电影 | 五月激情在线 | 欧美日韩性生活 | 亚洲一级特黄 | 精品久久一区二区三区 | 国产精品网红直播 | 毛片网在线| 日韩久久精品一区二区三区 | 日韩精品高清不卡 | 欧美日韩视频观看 | 片黄色毛片黄色毛片 | 最近中文字幕视频网 | 97成人在线免费视频 | 91 中文字幕 | 国产午夜精品一区二区三区嫩草 | 毛片精品免费在线观看 | 国产成人精品一区在线 | 成年人在线电影 | 国产精品久久网 | 麻豆影视在线观看 | 久久久色 | 免费国产在线精品 | 高清国产一区 | 午夜av在线免费 | 亚洲视频专区在线 | 久久曰视频 | 午夜精品一区二区三区在线 | 亚洲狠狠婷婷综合久久久 | 97视频在线免费观看 | 最近中文字幕第一页 | 日韩一区精品 | 97福利视频 | 狠狠色噜噜狠狠狠合久 | 日韩视频免费在线 | 久久高清av| 亚洲精品中文在线观看 | 免费aa大片 | 亚洲,播放| 国产一区二区久久 | 99精品视频网站 | 欧美极度另类性三渗透 | 国内精品在线观看视频 | 午夜久久久久久久 | 久久综合射 | 国产高清不卡av | 97精产国品一二三产区在线 | 精品久久久久久久久久岛国gif | 国产黄色一级片在线 | 天天干干 | 日本激情视频中文字幕 | 91九色视频 | 亚洲午夜电影网 | 亚洲第一区精品 | 一区二区三区在线播放 | 天堂网一区 | 日本韩国中文字幕 | 91精品国产乱码久久桃 | 婷婷色影院 | 亚洲涩涩网站 | 亚洲男男gⅴgay双龙 | 国产精品 日韩精品 | 人人爽人人av| 中文字幕黄色网 | 97色在线观看 | 亚洲精品免费观看视频 | 操操操av | 国产成人91 | 国产精品成人久久 | 国产手机在线视频 | 干干日日 | 中文字幕高清免费日韩视频在线 | 欧美日韩国产一二 | 国产精品免费一区二区三区 | 免费观看的黄色 | 免费精品人在线二线三线 | 免费观看成人网 | 国内久久久久 | 亚洲综合色激情五月 | 日韩免费在线观看视频 | 国产在线无 | 麻豆免费在线视频 | 国产资源av | 婷婷在线色 | 成人在线网站观看 | 在线国产视频观看 | 免费网站黄 | 免费网站色 | 久久久精品午夜 | 美女黄久久 | 久草精品国产 | 国产91精品一区二区绿帽 | 亚洲黄污| 91麻豆精品国产91久久久更新时间 | 精品国产欧美 | 五月天亚洲精品 | 一区精品久久 | 婷婷色狠狠 | 国产午夜影院 | 一级一片免费观看 | 中文字幕在线国产精品 | 亚洲乱码在线观看 | 免费看特级毛片 | 综合黄色网 | 天天干天天草天天爽 | 久久在线看 | 97精品久久| 精品一二三区视频 | 国内精品久久天天躁人人爽 | 欧美做受xxx| 日本精油按摩3 | 精品免费视频123区 午夜久久成人 | 国产亚洲精品久久久久久无几年桃 | 久久精品国产亚洲a | 一本一道波多野毛片中文在线 | 中文字幕丝袜一区二区 | 五月激情姐姐 | 婷婷婷国产在线视频 | 91精品视频在线看 | 日韩欧美99 | 韩国在线视频一区 | 在线观看日韩国产 | 欧美精品免费在线 | a级国产乱理论片在线观看 伊人宗合网 | 亚洲一区二区精品 | 日韩高清免费电影 | 国产手机视频在线观看 | 久久久久久久久久久电影 | 日韩欧美在线观看一区 | 精品国产视频在线观看 | 国产精品永久免费在线 | av成人亚洲 | 亚洲精品麻豆 | 国产高清第一页 | 亚洲成人精品国产 | 国产精品免费在线观看视频 | 午夜精品福利影院 | 91av在线免费看 | 天天操操操操操操 | av中文字幕在线电影 | 中文字幕一区二区三区在线播放 | 国产经典三级 | 99亚洲精品在线 | 国产精品地址 | 久久久精品久久日韩一区综合 | 欧美俄罗斯性视频 | 久久国产经典 | 国产精品毛片一区视频播不卡 | 亚洲人成免费网站 | 国产视频 亚洲精品 | 高清精品视频 | 97超碰中文 | 日韩中文字幕亚洲一区二区va在线 | 超碰在线94 | 爱情影院aqdy鲁丝片二区 | 99热这里有 | 国产麻豆果冻传媒在线观看 | 天天射天天操天天 | 97超碰伊人| 91传媒免费观看 | 日韩av美女 | 欧美a性| 深夜成人av | 97日日碰人人模人人澡分享吧 | 欧美一区免费在线观看 | 五月天综合激情网 | 在线小视频 | 天天爱天天操天天爽 | 在线看av的网址 | 国产成人精品一区二区三区 | 亚洲aaa级 | 日韩在线视频免费看 | 国产首页 | av在线激情| 国产九色视频在线观看 | 91传媒在线| 国产黄色看片 | 亚洲国产精品推荐 | 午夜私人影院久久久久 | 亚洲成av人影院 | 91久久国产自产拍夜夜嗨 | 成人国产精品久久久春色 | 麻豆传媒视频在线播放 | 亚洲在线网址 | 成人在线观看资源 | 免费精品视频 | 成人久久18免费网站麻豆 | 狠狠干干 | 97超碰超碰久久福利超碰 | 日韩欧美视频在线观看免费 | 国产午夜麻豆影院在线观看 | 麻豆视频在线免费观看 | 国产精品久久久久久久久久久杏吧 | 国产精品久久久久影院 | 日韩视频一区二区三区 | 热久久影视 | 91手机视频在线 | 国内毛片毛片 | 久草网视频 | 国产成人香蕉 | 黄a在线看 | 亚州精品一二三区 | 中文在线最新版天堂 | 久久精品99久久 | 国产精品久久久久久久久久久久 | 色视频在线免费 | 99r精品视频在线观看 | 亚洲精品777 | 欧美日韩亚洲一 | 国产1级毛片 | 亚洲欧美国产精品va在线观看 | 精品一区二区三区电影 | 久久久久欧美精品999 | 97操操| 麻豆视频在线观看 | 亚洲午夜久久久久久久久久久 | 激情综合网天天干 | 国产裸体无遮挡 | 欧美色图狠狠干 | 久久夜夜爽 | 日韩成年视频 | 人人揉人人揉人人揉人人揉97 | 六月丁香婷 | 日韩专区中文字幕 | 欧美日韩免费一区二区 | 日韩在线视频精品 | 国产一区欧美在线 | 久久开心激情 | 人人草在线视频 | 国产一及片| 综合网伊人 | 久久精品欧美一 | 亚洲少妇天堂 | 天天操比 | 国产中文伊人 | 亚洲精品美女免费 | 国产裸体视频bbbbb | 日韩资源在线播放 | 91丨九色丨蝌蚪丨对白 | 97在线观 | 很污的网站 | 九九视频在线播放 | 成年人视频在线免费观看 | 国产成人三级一区二区在线观看一 | 日日夜夜精品视频 | 国产色综合天天综合网 | 韩国av一区二区 | 国内精品久久久久影院男同志 | 中文字幕三区 | 久久久精品在线观看 | 中文字幕在线观看第二页 | 久久国产精品二国产精品中国洋人 | 最近最新最好看中文视频 | 免费看污在线观看 | 国产高清视频免费 | 国产精品久久在线观看 | 色综合久久综合 | 国产日韩精品一区二区三区 | 一级特黄av | 美女久久一区 | 在线观看播放av | 日韩一级电影在线观看 | 国内久久久久久 | 国产视频一区二区在线 | 精品国产区在线 | 久久久久亚洲精品男人的天堂 | 日韩欧美在线高清 | 欧美小视频在线观看 | 亚洲在线网址 | 波多野结衣动态图 | 久久一区国产 | 亚洲精品视频在 | 色先锋资源网 | 最近中文字幕久久 | av网址aaa | 久久久久久久久久久久亚洲 | 午夜av在线播放 | 国产日韩在线观看一区 | 在线日本v二区不卡 | 亚洲国产免费看 | 国产精品九色 | 曰本免费av | 亚洲视频2 | 在线看v片成人 | a视频免费 | www.天天干.com | 91精品国产福利 | 国产资源精品 | 久久伊人爱 | 国产第一页在线观看 | 99热这里只有精品8 久久综合毛片 | 亚洲欧洲精品一区 | 天天摸天天舔 | 国产一区在线观看视频 | 久久精品美女视频 | 久久久久久久免费看 | 97碰碰碰 | 国产成人精品一区二区三区网站观看 | 特级毛片在线 | 亚洲国产精品人久久电影 | 天天狠狠 | 在线黄av | 久草视频在线免费播放 | 欧美一级激情 | 国产精品色视频 | 亚洲综合激情小说 | 91av小视频| 国产成人av福利 | 成人9ⅰ免费影视网站 | 日韩精品高清视频 | 69视频在线 | 精品国产一区二区三区久久久蜜臀 | 久久久久一区二区三区 | 午夜精选视频 | 久久综合网色—综合色88 | 国产精品一区二区无线 | 久热免费| 超碰人人国产 | 四虎影视成人永久免费观看亚洲欧美 | 在线观看完整版免费 | 999成人国产| 日韩欧美在线影院 | 欧美日韩综合在线观看 | 日韩av一区二区在线影视 | 麻豆精品视频 | 91一区啪爱嗯打偷拍欧美 | 女人18精品一区二区三区 | 午夜精品视频在线 | 最新日韩视频在线观看 | 亚洲国产wwwccc36天堂 | 中文字幕精品久久 | 91最新国产 | 国产粉嫩在线观看 | 日韩久久久 | 久久精品久久久久电影 | 干天天 | 99 久久久久 | 色吊丝在线永久观看最新版本 | 精品1区二区 | 久久久综合精品 | 欧美性生活免费看 | 国产精品自拍在线 | 久久免费av | 国产免费三级在线观看 | 国产精品一区二区av影院萌芽 | 中文字幕在线视频第一页 | 天天操天天干天天玩 | 日韩高清免费无专码区 | 麻豆91在线| 国产日韩欧美视频在线观看 | 国产人成在线观看 | 97超碰精品 | 日韩高清国产精品 | 玖玖精品视频 | 成人h在线播放 | 不卡av电影在线观看 | 国产视频精品在线 | 国产无套视频 | 欧美有色 | 九九欧美 | 日本久久久久久久久久 | 视频99爱| 欧美日韩在线视频观看 | 久久手机看片 | 黄a网| 午夜性色 | 一区二区三区在线免费观看视频 | 中文字幕亚洲综合久久五月天色无吗'' | 午夜美女网站 |