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

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

生活随笔

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

综合教程

超详细的FreeRTOS移植全教程——基于srm32

發(fā)布時(shí)間:2023/12/13 综合教程 100 生活家
生活随笔 收集整理的這篇文章主要介紹了 超详细的FreeRTOS移植全教程——基于srm32 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

準(zhǔn)備

在移植之前,我們首先要獲取到FreeRTOS的官方的源碼包。這里我們提供兩個(gè)下載鏈接:

一個(gè)是官網(wǎng):http://www.freertos.org/
另外一個(gè)是代碼托管網(wǎng)站:https://sourceforge.net/projects/freertos/files/FreeRTOS/

這里我們演示如何在代碼托管網(wǎng)站里面下載。打開(kāi)網(wǎng)站鏈接之后,我們選擇FreeRTOS的最新版本V9.0.0(2016年),盡管現(xiàn)在FreeRTOS的版本已經(jīng)更新到V10.0.1了,但是我們還是選擇V9.0.0,因?yàn)閮?nèi)核很穩(wěn)定,并且網(wǎng)上資料很多,因?yàn)閂10.0.0版本之后是亞馬遜收購(gòu)了FreeRTOS之后才出來(lái)的版本,主要添加了一些云端組件,我們本書(shū)所講的FreeRTOS是實(shí)時(shí)內(nèi)核,采用V9.0.0版本足以。

簡(jiǎn)單介紹FreeRTOS

FreeRTOS包含Demo例程和內(nèi)核源碼(比較重要,我們就需要提取該目錄下的大部分文件)。
Source文件夾里面包含的是FreeRTOS內(nèi)核的源代碼,我們移植FreeRTOS的時(shí)候就需要這部分源代碼;
Demo 文件夾里面包含了FreeRTOS官方為各個(gè)單片機(jī)移植好的工程代碼,F(xiàn)reeRTOS為了推廣自己,會(huì)給各種半導(dǎo)體廠商的評(píng)估板寫(xiě)好完整的工程程序,這些程序就放在Demo這個(gè)目錄下,這部分Demo非常有參考價(jià)值。

Source文件夾

這里我們?cè)僦攸c(diǎn)分析下FreeRTOS/ Source文件夾下的文件,①和③包含的是FreeRTOS的通用的頭文件和C文件,這兩部分的文件試用于各種編譯器和處理器,是通用的。需要移植的頭文件和C文件放在②portblle這個(gè)文件夾。

portblle文件夾,是與編譯器相關(guān)的文件夾,在不同的編譯器中使用不同的支持文件。①中的KEIL就是我們就是我們使用的編譯器,其實(shí)KEIL里面的內(nèi)容跟RVDS里面的內(nèi)容一樣,所以我們只需要③RVDS文件夾里面的內(nèi)容即可,里面包含了各種處理器相關(guān)的文件夾,從文件夾的名字我們就非常熟悉了,我們學(xué)習(xí)的STM32有M0、M3、M4等各種系列,F(xiàn)reeRTOS是一個(gè)軟件,單片機(jī)是一個(gè)硬件,F(xiàn)reeRTOS要想運(yùn)行在一個(gè)單片機(jī)上面,它們就必須關(guān)聯(lián)在一起。MemMang文件夾下存放的是跟內(nèi)存管理相關(guān)的源文件。

移植過(guò)程

提取源碼

首先在我們的STM32裸機(jī)工程模板根目錄下新建一個(gè)文件夾,命名為“FreeRTOS”,并且在FreeRTOS文件夾下新建兩個(gè)空文件夾,分別命名為“src”與“port”,src文件夾用于保存FreeRTOS中的核心源文件,也就是我們常說(shuō)的‘.c文件’,port文件夾用于保存內(nèi)存管理以及處理器架構(gòu)相關(guān)代碼,這些代碼FreeRTOS官方已經(jīng)提供給我們的,直接使用即可,在前面已經(jīng)說(shuō)了,F(xiàn)reeRTOS是軟件,我們的開(kāi)發(fā)版是硬件,軟硬件必須有橋梁來(lái)連接,這些與處理器架構(gòu)相關(guān)的代碼,可以稱(chēng)之為RTOS硬件接口層,它們位于FreeRTOS/Source/Portable文件夾下。
打開(kāi)FreeRTOS V9.0.0源碼,在“FreeRTOSv9.0.0FreeRTOSSource”目錄下找到所有的‘.c文件’,將它們拷貝到我們新建的src文件夾中,

打開(kāi)FreeRTOS V9.0.0源碼,在“FreeRTOSv9.0.0FreeRTOSSourceportable”目錄下找到“MemMang”文件夾與“RVDS”文件夾,將它們拷貝到我們新建的port文件夾中

打開(kāi)FreeRTOS V9.0.0源碼,在“FreeRTOSv9.0.0 FreeRTOSSource”目錄下找到“include”文件夾,它是我們需要用到FreeRTOS的一些頭文件,將它直接拷貝到我們新建的FreeRTOS文件夾中,完成這一步之后就可以看到我們新建的FreeRTOS文件夾已經(jīng)有3個(gè)文件夾,這3個(gè)文件夾就包含F(xiàn)reeRTOS的核心文件,至此,F(xiàn)reeRTOS的源碼就提取完成。

添加到工程

添加FreeRTOSConfig.h文件
FreeRTOSConfig.h文件是FreeRTOS的工程配置文件,因?yàn)镕reeRTOS是可以裁剪的實(shí)時(shí)操作內(nèi)核,應(yīng)用于不同的處理器平臺(tái),用戶(hù)可以通過(guò)修改這個(gè)FreeRTOS內(nèi)核的配置頭文件來(lái)裁剪FreeRTOS的功能,所以我們把它拷貝一份放在user這個(gè)文件夾下面。
打開(kāi)FreeRTOSv9.0.0源碼,在“FreeRTOSv9.0.0FreeRTOSDemo”文件夾下面找到“CORTEX_STM32F103_Keil”這個(gè)文件夾,雙擊打開(kāi),在其根目錄下找到這個(gè)“FreeRTOSConfig.h”文件,然后拷貝到我們工程的user文件夾下即可,等下我們需要對(duì)這個(gè)文件進(jìn)行修改。

創(chuàng)建工程分組
接下來(lái)我們?cè)趍dk里面新建FreeRTOS/src和FreeRTOS/port兩個(gè)組文件夾,其中FreeRTOS/src用于存放src文件夾的內(nèi)容,F(xiàn)reeRTOS/port用于存放portMemMang文件夾 與portRVDSARM_CM3文件夾的內(nèi)容。
然后我們將工程文件中FreeRTOS的內(nèi)容添加到工程中去,按照已經(jīng)新建的分組添加我們的FreeRTOS工程源碼。
在FreeRTOS/port分組中添加MemMang文件夾中的文件只需選擇其中一個(gè)即可,我們選擇“heap_4.c”,這是FreeRTOS的一個(gè)內(nèi)存管理源碼文件。
添加完成后:

** 添加頭文件路徑**
FreeRTOS的源碼已經(jīng)添加到開(kāi)發(fā)環(huán)境的組文件夾下面,編譯的時(shí)候需要為這些源文件指定頭文件的路徑,不然編譯會(huì)報(bào)錯(cuò)。FreeRTOS的源碼里面只有FreeRTOSinclude和FreeRTOSportRVDSARM_CM3這兩個(gè)文件夾下面有頭文件,只需要將這兩個(gè)頭文件的路徑在開(kāi)發(fā)環(huán)境里面指定即可。同時(shí)我們還將FreeRTOSConfig.h這個(gè)頭文件拷貝到了工程根目錄下的user文件夾下,所以u(píng)ser的路徑也要加到開(kāi)發(fā)環(huán)境里面。

修改FreeRTOSConfig.h

FreeRTOSConfig.h是直接從demo文件夾下面拷貝過(guò)來(lái)的,該頭文件對(duì)裁剪整個(gè)FreeRTOS所需的功能的宏均做了定義,有些宏定義被使能,有些宏定義被失能,一開(kāi)始我們只需要配置最簡(jiǎn)單的功能即可。要想隨心所欲的配置FreeRTOS的功能,我們必須對(duì)這些宏定義的功能有所掌握,下面我們先簡(jiǎn)單的介紹下這些宏定義的含義,然后再對(duì)這些宏定義進(jìn)行修改。

#ifndef FREERTOS_CONFIG_H
#define FREERTOS_CONFIG_H

#include "stm32f10x.h"
#include "bsp_usart.h"


//針對(duì)不同的編譯器調(diào)用不同的stdint.h文件
#if defined(__ICCARM__) || defined(__CC_ARM) || defined(__GNUC__)
    #include <stdint.h>
    extern uint32_t SystemCoreClock;
#endif

//斷言
#define vAssertCalled(char,int) printf("Error:%s,%d
",char,int)
#define configASSERT(x) if((x)==0) vAssertCalled(__FILE__,__LINE__)

/************************************************************************
 *               FreeRTOS基礎(chǔ)配置配置選項(xiàng) 
 *********************************************************************/
/* 置1:RTOS使用搶占式調(diào)度器;置0:RTOS使用協(xié)作式調(diào)度器(時(shí)間片)
 * 
 * 注:在多任務(wù)管理機(jī)制上,操作系統(tǒng)可以分為搶占式和協(xié)作式兩種。
 * 協(xié)作式操作系統(tǒng)是任務(wù)主動(dòng)釋放CPU后,切換到下一個(gè)任務(wù)。
 * 任務(wù)切換的時(shí)機(jī)完全取決于正在運(yùn)行的任務(wù)。
 */
#define configUSE_PREEMPTION					  1

//1使能時(shí)間片調(diào)度(默認(rèn)式使能的)
#define configUSE_TIME_SLICING					1		

/* 某些運(yùn)行FreeRTOS的硬件有兩種方法選擇下一個(gè)要執(zhí)行的任務(wù):
 * 通用方法和特定于硬件的方法(以下簡(jiǎn)稱(chēng)“特殊方法”)。
 * 
 * 通用方法:
 *      1.configUSE_PORT_OPTIMISED_TASK_SELECTION 為 0 或者硬件不支持這種特殊方法。
 *      2.可以用于所有FreeRTOS支持的硬件
 *      3.完全用C實(shí)現(xiàn),效率略低于特殊方法。
 *      4.不強(qiáng)制要求限制最大可用優(yōu)先級(jí)數(shù)目
 * 特殊方法:
 *      1.必須將configUSE_PORT_OPTIMISED_TASK_SELECTION設(shè)置為1。
 *      2.依賴(lài)一個(gè)或多個(gè)特定架構(gòu)的匯編指令(一般是類(lèi)似計(jì)算前導(dǎo)零[CLZ]指令)。
 *      3.比通用方法更高效
 *      4.一般強(qiáng)制限定最大可用優(yōu)先級(jí)數(shù)目為32
 * 一般是硬件計(jì)算前導(dǎo)零指令,如果所使用的,MCU沒(méi)有這些硬件指令的話(huà)此宏應(yīng)該設(shè)置為0!
 */
#define configUSE_PORT_OPTIMISED_TASK_SELECTION	        1                       
                                                                        
/* 置1:使能低功耗tickless模式;置0:保持系統(tǒng)節(jié)拍(tick)中斷一直運(yùn)行
 * 假設(shè)開(kāi)啟低功耗的話(huà)可能會(huì)導(dǎo)致下載出現(xiàn)問(wèn)題,因?yàn)槌绦蛟谒咧?可用以下辦法解決
 * 
 * 下載方法:
 *      1.將開(kāi)發(fā)版正常連接好
 *      2.按住復(fù)位按鍵,點(diǎn)擊下載瞬間松開(kāi)復(fù)位按鍵
 *     
 *      1.通過(guò)跳線帽將 BOOT 0 接高電平(3.3V)
 *      2.重新上電,下載
 *    
 * 			1.使用FlyMcu擦除一下芯片,然后進(jìn)行下載
 *			STMISP -> 清除芯片(z)
 */
#define configUSE_TICKLESS_IDLE													0   

/*
 * 寫(xiě)入實(shí)際的CPU內(nèi)核時(shí)鐘頻率,也就是CPU指令執(zhí)行頻率,通常稱(chēng)為Fclk
 * Fclk為供給CPU內(nèi)核的時(shí)鐘信號(hào),我們所說(shuō)的cpu主頻為 XX MHz,
 * 就是指的這個(gè)時(shí)鐘信號(hào),相應(yīng)的,1/Fclk即為cpu時(shí)鐘周期;
 */
#define configCPU_CLOCK_HZ						  (SystemCoreClock)

//RTOS系統(tǒng)節(jié)拍中斷的頻率。即一秒中斷的次數(shù),每次中斷RTOS都會(huì)進(jìn)行任務(wù)調(diào)度
#define configTICK_RATE_HZ						  (( TickType_t )1000)

//可使用的最大優(yōu)先級(jí)
#define configMAX_PRIORITIES					  (32)

//空閑任務(wù)使用的堆棧大小
#define configMINIMAL_STACK_SIZE				((unsigned short)128)
  
//任務(wù)名字字符串長(zhǎng)度
#define configMAX_TASK_NAME_LEN					(16)

 //系統(tǒng)節(jié)拍計(jì)數(shù)器變量數(shù)據(jù)類(lèi)型,1表示為16位無(wú)符號(hào)整形,0表示為32位無(wú)符號(hào)整形
#define configUSE_16_BIT_TICKS					0                      

//空閑任務(wù)放棄CPU使用權(quán)給其他同優(yōu)先級(jí)的用戶(hù)任務(wù)
#define configIDLE_SHOULD_YIELD					1           

//啟用隊(duì)列
#define configUSE_QUEUE_SETS					  1    

//開(kāi)啟任務(wù)通知功能,默認(rèn)開(kāi)啟
#define configUSE_TASK_NOTIFICATIONS    1   

//使用互斥信號(hào)量
#define configUSE_MUTEXES						    1    

//使用遞歸互斥信號(hào)量                                            
#define configUSE_RECURSIVE_MUTEXES			1   

//為1時(shí)使用計(jì)數(shù)信號(hào)量
#define configUSE_COUNTING_SEMAPHORES		1

/* 設(shè)置可以注冊(cè)的信號(hào)量和消息隊(duì)列個(gè)數(shù) */
#define configQUEUE_REGISTRY_SIZE				10                                 
                                                                       
#define configUSE_APPLICATION_TASK_TAG		  0                       
                      

/*****************************************************************
              FreeRTOS與內(nèi)存申請(qǐng)有關(guān)配置選項(xiàng)                                               
*****************************************************************/
//支持動(dòng)態(tài)內(nèi)存申請(qǐng)
#define configSUPPORT_DYNAMIC_ALLOCATION        1    
//支持靜態(tài)內(nèi)存
#define configSUPPORT_STATIC_ALLOCATION					0					
//系統(tǒng)所有總的堆大小
#define configTOTAL_HEAP_SIZE					((size_t)(36*1024))    


/***************************************************************
             FreeRTOS與鉤子函數(shù)有關(guān)的配置選項(xiàng)                                            
**************************************************************/
/* 置1:使用空閑鉤子(Idle Hook類(lèi)似于回調(diào)函數(shù));置0:忽略空閑鉤子
 * 
 * 空閑任務(wù)鉤子是一個(gè)函數(shù),這個(gè)函數(shù)由用戶(hù)來(lái)實(shí)現(xiàn),
 * FreeRTOS規(guī)定了函數(shù)的名字和參數(shù):void vApplicationIdleHook(void ),
 * 這個(gè)函數(shù)在每個(gè)空閑任務(wù)周期都會(huì)被調(diào)用
 * 對(duì)于已經(jīng)刪除的RTOS任務(wù),空閑任務(wù)可以釋放分配給它們的堆棧內(nèi)存。
 * 因此必須保證空閑任務(wù)可以被CPU執(zhí)行
 * 使用空閑鉤子函數(shù)設(shè)置CPU進(jìn)入省電模式是很常見(jiàn)的
 * 不可以調(diào)用會(huì)引起空閑任務(wù)阻塞的API函數(shù)
 */
#define configUSE_IDLE_HOOK						0      

/* 置1:使用時(shí)間片鉤子(Tick Hook);置0:忽略時(shí)間片鉤子
 * 
 * 
 * 時(shí)間片鉤子是一個(gè)函數(shù),這個(gè)函數(shù)由用戶(hù)來(lái)實(shí)現(xiàn),
 * FreeRTOS規(guī)定了函數(shù)的名字和參數(shù):void vApplicationTickHook(void )
 * 時(shí)間片中斷可以周期性的調(diào)用
 * 函數(shù)必須非常短小,不能大量使用堆棧,
 * 不能調(diào)用以”FromISR" 或 "FROM_ISR”結(jié)尾的API函數(shù)
 */
 /*xTaskIncrementTick函數(shù)是在xPortSysTickHandler中斷函數(shù)中被調(diào)用的。因此,vApplicationTickHook()函數(shù)執(zhí)行的時(shí)間必須很短才行*/
#define configUSE_TICK_HOOK						0           

//使用內(nèi)存申請(qǐng)失敗鉤子函數(shù)
#define configUSE_MALLOC_FAILED_HOOK			0 

/*
 * 大于0時(shí)啟用堆棧溢出檢測(cè)功能,如果使用此功能 
 * 用戶(hù)必須提供一個(gè)棧溢出鉤子函數(shù),如果使用的話(huà)
 * 此值可以為1或者2,因?yàn)橛袃煞N棧溢出檢測(cè)方法 */
#define configCHECK_FOR_STACK_OVERFLOW			0   


/********************************************************************
          FreeRTOS與運(yùn)行時(shí)間和任務(wù)狀態(tài)收集有關(guān)的配置選項(xiàng)   
**********************************************************************/
//啟用運(yùn)行時(shí)間統(tǒng)計(jì)功能
#define configGENERATE_RUN_TIME_STATS	        0             
 //啟用可視化跟蹤調(diào)試
#define configUSE_TRACE_FACILITY				      0    
/* 與宏configUSE_TRACE_FACILITY同時(shí)為1時(shí)會(huì)編譯下面3個(gè)函數(shù)
 * prvWriteNameToBuffer()
 * vTaskList(),
 * vTaskGetRunTimeStats()
*/
#define configUSE_STATS_FORMATTING_FUNCTIONS	1                       
                                                                        
                                                                        
/********************************************************************
                FreeRTOS與協(xié)程有關(guān)的配置選項(xiàng)                                                
*********************************************************************/
//啟用協(xié)程,啟用協(xié)程以后必須添加文件croutine.c
#define configUSE_CO_ROUTINES 			          0                 
//協(xié)程的有效優(yōu)先級(jí)數(shù)目
#define configMAX_CO_ROUTINE_PRIORITIES       ( 2 )                   


/***********************************************************************
                FreeRTOS與軟件定時(shí)器有關(guān)的配置選項(xiàng)      
**********************************************************************/
 //啟用軟件定時(shí)器
#define configUSE_TIMERS				            1                              
//軟件定時(shí)器優(yōu)先級(jí)
#define configTIMER_TASK_PRIORITY		        (configMAX_PRIORITIES-1)        
//軟件定時(shí)器隊(duì)列長(zhǎng)度
#define configTIMER_QUEUE_LENGTH		        10                               
//軟件定時(shí)器任務(wù)堆棧大小
#define configTIMER_TASK_STACK_DEPTH	      (configMINIMAL_STACK_SIZE*2)    

/************************************************************
            FreeRTOS可選函數(shù)配置選項(xiàng)                                                     
************************************************************/
#define INCLUDE_xTaskGetSchedulerState       1                       
#define INCLUDE_vTaskPrioritySet		         1
#define INCLUDE_uxTaskPriorityGet		         1
#define INCLUDE_vTaskDelete				           1
#define INCLUDE_vTaskCleanUpResources	       1
#define INCLUDE_vTaskSuspend			           1
#define INCLUDE_vTaskDelayUntil			         1
#define INCLUDE_vTaskDelay				           1
#define INCLUDE_eTaskGetState			           1
#define INCLUDE_xTimerPendFunctionCall	     1
//#define INCLUDE_xTaskGetCurrentTaskHandle       1
//#define INCLUDE_uxTaskGetStackHighWaterMark     0
//#define INCLUDE_xTaskGetIdleTaskHandle          0


/******************************************************************
            FreeRTOS與中斷有關(guān)的配置選項(xiàng)                                                 
******************************************************************/
#ifdef __NVIC_PRIO_BITS
	#define configPRIO_BITS       		__NVIC_PRIO_BITS
#else
	#define configPRIO_BITS       		4                  
#endif
//中斷最低優(yōu)先級(jí)
#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY			15     

//系統(tǒng)可管理的最高中斷優(yōu)先級(jí)
#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY	5 

#define configKERNEL_INTERRUPT_PRIORITY 		( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )	/* 240 */

#define configMAX_SYSCALL_INTERRUPT_PRIORITY 	( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )


/****************************************************************
            FreeRTOS與中斷服務(wù)函數(shù)有關(guān)的配置選項(xiàng)                         
****************************************************************/
#define xPortPendSVHandler 	PendSV_Handler
#define vPortSVCHandler 	SVC_Handler


/* 以下為使用Percepio Tracealyzer需要的東西,不需要時(shí)將 configUSE_TRACE_FACILITY 定義為 0 */
#if ( configUSE_TRACE_FACILITY == 1 )
#include "trcRecorder.h"
#define INCLUDE_xTaskGetCurrentTaskHandle               1   // 啟用一個(gè)可選函數(shù)(該函數(shù)被 Trace源碼使用,默認(rèn)該值為0 表示不用)
#endif


#endif /* FREERTOS_CONFIG_H */

修改stm32f10x_it.c

SysTick中斷服務(wù)函數(shù)是一個(gè)非常重要的函數(shù),F(xiàn)reeRTOS所有跟時(shí)間相關(guān)的事情都在里面處理,SysTick就是FreeRTOS的一個(gè)心跳時(shí)鐘,驅(qū)動(dòng)著FreeRTOS的運(yùn)行,就像人的心跳一樣,假如沒(méi)有心跳,我們就相當(dāng)于“死了”,同樣的,F(xiàn)reeRTOS沒(méi)有了心跳,那么它就會(huì)卡死在某個(gè)地方,不能進(jìn)行任務(wù)調(diào)度,不能運(yùn)行任何的東西,因此我們需要實(shí)現(xiàn)一個(gè)FreeRTOS的心跳時(shí)鐘,F(xiàn)reeRTOS幫我們實(shí)現(xiàn)了SysTick的啟動(dòng)的配置:在port.c文件中已經(jīng)實(shí)現(xiàn)vPortSetupTimerInterrupt()函數(shù),并且FreeRTOS通用的SysTick中斷服務(wù)函數(shù)也實(shí)現(xiàn)了:在port.c文件中已經(jīng)實(shí)現(xiàn)xPortSysTickHandler()函數(shù),所以移植的時(shí)候只需要我們?cè)趕tm32f10x_it.c文件中實(shí)現(xiàn)我們對(duì)應(yīng)(STM32)平臺(tái)上的SysTick_Handler()函數(shù)即可。FreeRTOS為開(kāi)發(fā)者考慮得特別多,PendSV_Handler()與SVC_Handler()這兩個(gè)很重要的函數(shù)都幫我們實(shí)現(xiàn)了,在在port.c文件中已經(jīng)實(shí)現(xiàn)xPortPendSVHandler()與vPortSVCHandler()函數(shù),防止我們自己實(shí)現(xiàn)不了,那么在stm32f10x_it.c中就需要我們注釋掉PendSV_Handler()與SVC_Handler()這兩個(gè)函數(shù)了。

//void SVC_Handler(void)
//{
//}

//void PendSV_Handler(void)
//{
//}

extern void xPortSysTickHandler(void);

//systick中斷服務(wù)函數(shù)
void SysTick_Handler(void)
{	
    #if (INCLUDE_xTaskGetSchedulerState  == 1 )
      if (xTaskGetSchedulerState() != taskSCHEDULER_NOT_STARTED)
      {
    #endif  /* INCLUDE_xTaskGetSchedulerState */  
        xPortSysTickHandler();
    #if (INCLUDE_xTaskGetSchedulerState  == 1 )
      }
    #endif  /* INCLUDE_xTaskGetSchedulerState */
}

創(chuàng)建任務(wù)

這里,我們創(chuàng)建一個(gè)單任務(wù),任務(wù)使用的棧和任務(wù)控制塊是在創(chuàng)建任務(wù)的時(shí)候FreeRTOS動(dòng)態(tài)分配的。
任務(wù)必須是一個(gè)死循環(huán),否則任務(wù)將通過(guò)LR返回,如果LR指向了非法的內(nèi)存就會(huì)產(chǎn)生HardFault_Handler,而FreeRTOS指向一個(gè)死循環(huán),那么任務(wù)返回之后就在死循環(huán)中執(zhí)行,這樣子的任務(wù)是不安全的,所以避免這種情況,任務(wù)一般都是死循環(huán)并且無(wú)返回值的。
并且每個(gè)任務(wù)循環(huán)主體中應(yīng)該有阻塞任務(wù)的函數(shù),否則就會(huì)餓死比它優(yōu)先級(jí)更低的任務(wù)!!!

/* FreeRTOS頭文件 */
#include "FreeRTOS.h"
#include "task.h"
/* 開(kāi)發(fā)板硬件bsp頭文件 */
#include "bsp_led.h"

static void AppTaskCreate(void);/* AppTask任務(wù) */

 /* 創(chuàng)建任務(wù)句柄 */
static TaskHandle_t AppTask_Handle = NULL;

int main(void)
{	
  BaseType_t xReturn = pdPASS;/* 定義一個(gè)創(chuàng)建信息返回值,默認(rèn)為pdPASS */

  /* 開(kāi)發(fā)板硬件初始化 */
  BSP_Init();

   /* 創(chuàng)建AppTaskCreate任務(wù) */
  xReturn = xTaskCreate((TaskFunction_t )AppTask,  /* 任務(wù)入口函數(shù) */
                        (const char*    )"AppTask",/* 任務(wù)名字 */
                        (uint16_t       )512,  /* 任務(wù)棧大小 */
                        (void*          )NULL,/* 任務(wù)入口函數(shù)參數(shù) */
                        (UBaseType_t    )1, /* 任務(wù)的優(yōu)先級(jí) */
                        (TaskHandle_t*  )&AppTask_Handle);/* 任務(wù)控制塊指針 */ 
  /* 啟動(dòng)任務(wù)調(diào)度 */           
  if(pdPASS == xReturn)
    vTaskStartScheduler();   /* 啟動(dòng)任務(wù),開(kāi)啟調(diào)度 */
  else
    return -1;  
  
  while(1);   /* 正常不會(huì)執(zhí)行到這里 */    
}

static void AppTask(void* parameter)
{	
    while (1)
    {
        LED1_ON;
        vTaskDelay(500);   /* 延時(shí)500個(gè)tick */
        LED1_OFF;     
        vTaskDelay(500);   /* 延時(shí)500個(gè)tick */		 		
    }
}

關(guān)注我

更多資料歡迎關(guān)注“物聯(lián)網(wǎng)IoT開(kāi)發(fā)”公眾號(hào)!

總結(jié)

以上是生活随笔為你收集整理的超详细的FreeRTOS移植全教程——基于srm32的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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

99久久夜色精品国产亚洲96 | 久久精品黄 | 超碰97人人干 | 亚洲免费av一区二区 | 黄色毛片观看 | 免费在线观看91 | 亚洲精品在线视频网站 | 大型av综合网站 | 国产精品第7页 | 久久好看| 国产精品一区二区av | 成人精品一区二区三区电影免费 | 久久久综合九色合综国产精品 | 99热这里精品 | 日韩欧美一区二区在线观看 | 亚洲天堂精品视频 | 久久午夜色播影院免费高清 | 中文字幕影视 | 91成人精品视频 | 在线观看中文av | 四虎永久网站 | 国产又粗又猛又色 | av网站有哪些 | 久久艹欧美 | 麻豆视频成人 | 成人资源在线 | 97国产视频| 欧美精品久 | 人人插人人草 | 久久精国产 | 九九九热 | 在线看日韩 | 久久精品亚洲综合专区 | 青青草国产免费 | 91麻豆免费视频 | 美女视频是黄的免费观看 | 美女免费视频一区二区 | 黄色在线免费观看网站 | 亚洲精品黄色在线观看 | 免费一区在线 | 日本一区二区高清不卡 | 日韩综合色 | 精品国产精品国产偷麻豆 | 国产色视频一区二区三区qq号 | 黄色一二级片 | 天堂中文在线视频 | 成人午夜剧场在线观看 | 亚洲男男gaygay无套同网址 | 成人午夜精品福利免费 | 久久五月激情 | 日韩av区| 亚洲专区中文字幕 | 一区二区 不卡 | 米奇狠狠狠888 | 夜夜爽www| 人人爽人人爱 | 国产在线观看a | 人人澡人 | 激情五月网站 | 激情网第四色 | 日韩电影精品一区 | 久久午夜影视 | 992tv在线观看网站 | 久热免费在线 | 日韩av成人在线 | 久久99这里只有精品 | 国产精品久久久久永久免费 | 国产精品www| 欧美日韩高清国产 | 日韩欧美精品在线观看 | 人人射人人爱 | 日日干夜夜操视频 | 国产精品v欧美精品v日韩 | 国产日韩欧美在线一区 | 久久久久久久久影视 | 在线观看亚洲 | 久久久黄色 | 狠狠操导航 | 日韩激情一二三区 | 欧美国产高清 | av久久在线 | 狠狠狠狠狠狠操 | 日韩资源在线观看 | 久久久久免费电影 | 天天五月天色 | 亚洲欧美成人 | 日本不卡123 | 久草在线免费看视频 | 日韩成人黄色 | 婷婷六月天在线 | 美女免费视频黄 | 免费观看91视频 | 91精品国产自产在线观看 | 欧美一区二区三区在线 | 成人黄色小说网 | 久久国产精品久久精品国产演员表 | 国产精品理论视频 | 九色91在线 | 日韩激情在线视频 | 日日干网址 | 国内少妇自拍视频一区 | 免费手机黄色网址 | 免费福利视频网 | 在线观看免费高清视频大全追剧 | 在线看小早川怜子av | 国产亚洲精品久久久久久移动网络 | 992tv又爽又黄的免费视频 | 天天做天天看 | 成人黄色资源 | 高清精品在线 | 天天综合精品 | 国产精品美女久久久久久久久 | 久久久久黄色 | 精品国产伦一区二区三区观看方式 | 丁香六月久久综合狠狠色 | 日韩在线观看的 | 精品在线小视频 | 五月激情五月激情 | 四虎永久免费在线观看 | 久久久久久国产精品亚洲78 | 国产亚洲精品久久久久久网站 | 免费在线观看成人小视频 | 天天做天天射 | 亚洲蜜桃av| 久久中文字幕导航 | 91精品久久久久久综合乱菊 | 91精品免费视频 | 欧美精品乱码久久久久 | 久久综合久久鬼 | 国产精品一级在线 | 精品久久一区二区 | 国产精品久久久久久久久久久杏吧 | 在线观看一二三区 | 高清久久久久久 | 中文字幕永久 | 激情久久综合 | 精品福利国产 | 日韩国产精品久久久久久亚洲 | 韩国一区二区三区在线观看 | 精品在线观看视频 | 激情开心网站 | 91亚·色| 黄色网中文字幕 | 日韩免费一区二区三区 | 91av亚洲 | 免费中文字幕视频 | 四虎www| 97视频免费 | 97色se| 亚洲视频一 | 欧美极品一区二区三区 | 色多多视频在线观看 | 91成人精品一区在线播放69 | 久久久69 | 人人干免费 | 91精品国产九九九久久久亚洲 | 国产成a人亚洲精v品在线观看 | 久久国产精品久久久 | 在线视频一二三 | 91av视频网 | 日韩一区视频在线 | 在线一级片 | 精品不卡视频 | 日韩在线高清视频 | 欧美吞精 | av不卡中文字幕 | 免费欧美精品 | 最近中文字幕高清字幕免费mv | 国产精品视频免费 | 国产精品门事件 | 国产精品久久久久久久久软件 | 欧美久久99 | 91网址在线观看 | 久久久久久久久久电影 | 丁香五月缴情综合网 | 久久亚洲热 | 免费h视频 | 中文在线a√在线 | 国产成人精品一区二区三区在线 | 婷婷在线色| 欧美日韩中文另类 | 亚州精品成人 | 六月丁香激情综合色啪小说 | 久久国产精品99国产 | 婷婷色在线播放 | 亚洲国产中文字幕在线观看 | 久久亚洲成人网 | 狠狠色综合欧美激情 | 日韩视频中文字幕 | 欧美日本在线观看视频 | 色综合五月天 | 国产精品嫩草影院99网站 | 波多野结衣日韩 | 波多野结衣日韩 | 日韩av电影中文字幕 | 最近中文字幕国语免费高清6 | 国产精品日韩在线播放 | av五月婷婷 | 国产99久久久国产精品免费二区 | 久99久久| 中文字幕 国产视频 | 中午字幕在线观看 | 欧美一级日韩免费不卡 | 国产成人精品一区二三区 | 免费三级骚 | 久久精品国产亚洲aⅴ | 91久久久久久久一区二区 | 欧美久久久久久久久 | 成人午夜片av在线看 | 国产婷婷在线观看 | 成人一级片免费看 | 亚洲电影一区二区 | 福利视频网址 | 午夜久久久久久久久久久 | 久久精品资源 | 欧美一区影院 | 精品理论片 | 91人人射 | 日韩在线观看视频在线 | 九九热在线视频 | 婷婷视频在线 | 成年人免费看的视频 | 精品二区视频 | 碰超人人 | 99久久99久国产黄毛片 | 岛国片在线 | 97超视频免费观看 | 国产精品一区二区三区在线播放 | 色婷婷 亚洲 | 超碰在线中文字幕 | 国产午夜亚洲精品 | 午夜av电影 | 最近高清中文字幕在线国语5 | 国产精品美女久久久网av | 日韩视频中文字幕在线观看 | 午夜在线日韩 | 久久精品96| 欧美午夜精品久久久久 | 亚洲精品乱码白浆高清久久久久久 | 久久精品成人 | 国精产品一二三线999 | 久久男人免费视频 | 国产第一页在线播放 | 人人狠 | 在线日本看片免费人成视久网 | 免费在线观看污 | 探花视频在线观看+在线播放 | 亚洲精品乱码久久久久久蜜桃动漫 | 99热这里只有精品免费 | 精品亚洲免费 | 国产一区二区播放 | 国产永久网站 | 国产视频欧美视频 | 欧美精品三级在线观看 | 操少妇视频 | 九九热在线精品视频 | 在线观看蜜桃视频 | 91在线日本| 国产精品一区二区久久精品爱涩 | 最近中文字幕在线中文高清版 | 丝袜一区在线 | 在线视频 国产 日韩 | www.99av| 麻豆一精品传二传媒短视频 | 亚洲精品视频免费 | 成人午夜性影院 | 日韩在线视频免费看 | 99精品久久99久久久久 | 99亚洲精品视频 | 亚洲在线网址 | 天天操狠狠操 | 亚洲婷婷在线 | 亚洲成人第一区 | 国产一区私人高清影院 | 日韩久久激情 | 天天鲁天天干天天射 | 国产高清av免费在线观看 | 色就是色综合 | 日日干天天爽 | 精品美女在线视频 | 亚洲一区二区三区精品在线观看 | 精品国产免费人成在线观看 | 天堂视频一区 | 国产伦精品一区二区三区无广告 | 中文字幕一区二区三区视频 | 在线视频一区观看 | 国产精品久久久久久久午夜片 | 一 级 黄 色 片免费看的 | 天天操天天操天天爽 | 国产精品久久艹 | 国产只有精品 | 国产精品久久久久永久免费看 | 天天操人人要 | 人成电影网 | 久久久久亚洲精品男人的天堂 | 国产精品欧美激情在线观看 | 波多野结衣在线播放视频 | 免费99视频 | 成人午夜电影在线 | 国产福利中文字幕 | 热久久免费视频精品 | 日韩和的一区二在线 | 麻豆传媒电影在线观看 | 色婷婷综合成人av | 天天操夜夜操夜夜操 | 一级性生活片 | 色九色| 欧美综合色| av在线看片| 欧美另类高清 videos | 精品一区免费 | 国产手机视频在线播放 | 2021国产精品视频 | 91av在线视频免费观看 | 少妇bbbb搡bbbb桶 | 久久高清片 | 人人爽人人爽人人爽学生一级 | 国产精品亚洲片夜色在线 | 91视频久久久久久 | 亚洲欧美一区二区三区孕妇写真 | 国产a级精品 | 一区二区在线电影 | 色天天天 | 婷婷激情在线观看 | 日韩av电影手机在线观看 | 日韩高清在线不卡 | 日韩中文字幕亚洲一区二区va在线 | 成人午夜精品福利免费 | 国产999精品久久久久久绿帽 | 国产精品久久久久久久久免费看 | 中国精品少妇 | 免费男女羞羞的视频网站中文字幕 | 成人av在线电影 | 亚洲精品国产精品国 | 国产精品久久久久久久久久了 | 亚洲va欧洲va国产va不卡 | 日韩视频一区二区三区 | 欧美专区亚洲专区 | 日韩大片在线播放 | 婷婷亚洲综合五月天小说 | 一区二区精 | 日本特黄一级片 | 美女网站免费福利视频 | 久久久久久久久久免费视频 | 国产午夜视频在线观看 | 精品视频在线免费 | 久久成人精品 | 97碰碰碰| 久久久国产高清 | 狠狠综合久久 | 国产女人免费看a级丨片 | 日日天天 | 99爱精品视频 | 日本xxxx裸体xxxx17 | 久久婷婷国产色一区二区三区 | 成人国产一区 | 91成人破解版 | 国产色女 | 丁香婷婷激情 | 91看片在线| 久久a久久| 精品久久久久久亚洲综合网站 | 人人揉人人揉人人揉人人揉97 | 国产亚洲精品无 | 亚洲国产精品一区二区久久hs | 亚洲国产影院av久久久久 | 婷婷日韩| 国产高清视频 | www.色婷婷| 亚洲开心激情 | 亚洲精品玖玖玖av在线看 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 亚洲精品福利在线 | 日b视频在线观看网址 | 999精品| 91网在线看 | 91精品在线看 | 久草在线久草在线2 | 激情五月六月婷婷 | 亚洲成av人片在线观看无 | 五月丁色 | 久久精品日本啪啪涩涩 | 欧美国产91| 亚洲综合精品在线 | 最近中文字幕完整视频高清1 | 在线v片免费观看视频 | 国产成a人亚洲精v品在线观看 | 亚洲欧洲国产视频 | 六月丁香在线视频 | 激情综合网天天干 | 亚洲精品视频网站在线观看 | 欧美性生活小视频 | 久久福利 | 91综合视频在线观看 | 久久99国产一区二区三区 | 国产日韩精品一区二区三区在线 | 国产精品久久一区二区三区, | 麻豆国产精品一区二区三区 | 日日操日日操 | 成人午夜黄色 | 麻豆国产精品视频 | 丁香综合激情 | 久久男人中文字幕资源站 | 国产亚洲精品久久网站 | 日韩av影视在线观看 | 狠狠色丁香婷婷综合视频 | 欧美在线日韩在线 | 欧美ⅹxxxxxx | 狠狠色丁香婷婷综合橹88 | 日韩日韩日韩日韩 | 国产成人久久av977小说 | 91av福利视频 | 91精品久久久久久综合乱菊 | 国产免费不卡av | 国产精品久久久久久久久久久久午夜 | 欧美一区二区伦理片 | 六月天综合网 | 豆豆色资源网xfplay | 四虎在线观看视频 | 日韩午夜在线观看 | 91福利在线导航 | 久久免费激情视频 | 99色网站| 亚洲爱爱视频 | 婷婷色5月 | 狠狠伊人 | 手机色在线 | 亚洲婷婷伊人 | 久久99热这里只有精品 | 欧美视频xxx| 免费黄色小网站 | 在线观看网站你懂的 | 91在线一区| 天天做日日做天天爽视频免费 | 国产a级片免费观看 | 欧美午夜精品久久久久久孕妇 | av丁香花 | 日韩1级片 | 伊人久久五月天 | 狠狠色丁香久久婷婷综合五月 | 美国av片在线观看 | 久久精品视 | 黄色网在线免费观看 | 日韩一区正在播放 | 国产免费黄色 | 麻豆视频免费入口 | av电影 一区二区 | 天天拍天天草 | 日韩理论影院 | 91在线网站 | 成人在线免费小视频 | av免费看在线| 国产伦精品一区二区三区在线 | 在线免费观看黄 | 亚洲日本中文字幕在线观看 | 国产成人精品一区二区在线 | 中文字幕在线播放一区二区 | 日韩av中文字幕在线免费观看 | 欧美日韩在线观看一区 | 五月天六月婷 | 九九国产视频 | 免费观看黄色12片一级视频 | 五月婷香| 日韩国产精品久久久久久亚洲 | 69xx视频| 国产无限资源在线观看 | 人人爽人人爽 | 在线探花| 在线国产视频观看 | 欧美久久久久久久久久 | 国产精品 亚洲精品 | 99久久久久免费精品国产 | 国产精品久久久久久超碰 | 天天色棕合合合合合合 | 91.精品高清在线观看 | av超碰在线观看 | 国产手机在线播放 | 亚洲成人av在线播放 | 日韩 在线a| 中文字幕乱码电影 | 国产精品尤物 | 久久成人18免费网站 | 国产精品青草综合久久久久99 | 中文字幕日韩伦理 | 久久国产亚洲视频 | 亚洲成人精品久久 | 91av短视频| 激情影院在线 | 日韩一区二区三区在线观看 | 三级黄色大片在线观看 | 国产精品免费久久 | 免费高清在线观看成人 | 免费看色的网站 | 97国产电影 | 插婷婷| 久久69av| 亚洲精品日韩av | 国产不卡一区二区视频 | www.伊人色.com | 日韩精品一卡 | 中文字幕在线视频一区二区 | 国产精品日韩精品 | 国产第页 | 亚洲另类久久 | 亚洲乱码国产乱码精品天美传媒 | 日韩最新av | 久久a视频| 99久热在线精品视频观看 | 一区二区三区在线观看 | 国产免费中文字幕 | 一区二区三区高清在线观看 | 在线观看91久久久久久 | 国产a国产 | 欧美孕妇视频 | 国产午夜精品在线 | 久久人91精品久久久久久不卡 | 成人午夜电影网站 | 中文字幕2021 | 国产精品精| 久久久久久久免费 | 天堂网在线视频 | 国产婷婷精品av在线 | 成人aⅴ视频| 在线а√天堂中文官网 | 亚洲国产精品一区二区久久hs | 黄色网中文字幕 | 怡春院av | 久色婷婷 | 免费日韩电影 | 免费在线一区二区 | 日韩动漫免费观看高清完整版在线观看 | 欧美日本在线观看视频 | 成人综合婷婷国产精品久久免费 | 国产一区视频在线观看免费 | 国产成人高清av | 中文字幕亚洲欧美日韩2019 | 日日夜夜精品 | 国产日韩精品一区二区 | 久草国产在线观看 | 久久久久成人精品 | 美女视频黄色免费 | 午夜视频在线观看一区二区三区 | 在线日韩一区 | 二区三区精品 | 日韩精品中文字幕在线播放 | 五月婷综合网 | 日韩黄色网络 | 亚洲国产电影在线观看 | 精品一区二区亚洲 | 亚洲精品美女久久17c | 精品国产一区二区三区不卡 | 成人在线一区二区三区 | 国产精品久久 | 探花视频在线观看+在线播放 | 国产精品免费在线播放 | 日韩欧美视频在线免费观看 | 久久艹99 | 2019精品手机国产品在线 | 黄av资源 | 97香蕉久久国产在线观看 | 国外av在线 | 高清不卡一区二区三区 | 国产视频日本 | 日韩免费一区二区在线观看 | 在线观看麻豆av | 麻豆视频www | 欧美特一级片 | 99精品免费 | 人人干狠狠干 | 中文字幕在线免费看线人 | 中文字幕av电影下载 | 日韩av伦理片 | 麻豆影音先锋 | 色婷婷精品大在线视频 | 中文字幕一区二区三区视频 | 亚洲成人影音 | 欧美乱大交 | 99在线精品视频观看 | 国产午夜在线观看视频 | 国产电影黄色av | 伊在线视频 | 97色狠狠 | 国产精品大尺度 | www.99热精品 | 中文字幕观看在线 | 国际精品网 | av成人免费在线看 | 操操操天天操 | 久久精品99北条麻妃 | 免费看黄网站在线 | 激情综合网色播五月 | 久久久国产精品麻豆 | 97av在线| 外国av网 | 狠狠躁日日躁夜夜躁av | ww亚洲ww亚在线观看 | 国产一区二区三区高清播放 | 久久天天综合网 | 亚洲成av人片 | 亚洲六月丁香色婷婷综合久久 | 国产亚洲精品久久久久久 | 二区三区在线 | 日韩精品一区电影 | 国产女人18毛片水真多18精品 | 在线а√天堂中文官网 | 成人黄色片免费看 | 亚洲成人黄色网址 | 亚洲dvd| 成人黄色在线电影 | 免费久久久久久 | 涩涩网站在线 | 麻豆成人精品 | 亚洲天天摸日日摸天天欢 | 欧美大片在线观看一区 | 中文字幕91视频 | 视频成人永久免费视频 | 99热在线观看 | 韩国av在线播放 | 午夜久久成人 | 黄色软件网站在线观看 | 国产精品福利午夜在线观看 | 免费看成人av | 玖玖在线看| 久久久精品视频成人 | 在线观看亚洲免费视频 | 国产精品永久久久久久久www | 一区二区三区不卡在线 | 二区三区av | 在线免费精品视频 | 欧美午夜a | 粉嫩高清一区二区三区 | 亚洲欧美日韩国产精品一区午夜 | www免费在线观看 | 91看片淫黄大片一级在线观看 | 久久99亚洲精品久久久久 | 伊人永久 | 精品国产免费av | 亚洲乱码中文字幕综合 | 久草在线最新免费 | 日韩激情精品 | 国产aaa大片| 在线观看91精品视频 | 国产精品视频资源 | 午夜18视频在线观看 | 日日麻批40分钟视频免费观看 | 久草网站| 久久激情视频 久久 | 亚洲成av人片 | 欧美日韩在线免费观看视频 | 中文字幕在线观看一区 | 999国内精品永久免费视频 | av网站免费线看精品 | 日韩三级在线观看 | 丁香综合网| 国产精品国产三级国产aⅴ无密码 | 美女视频是黄的免费观看 | 国产伦精品一区二区三区无广告 | 国产成人l区 | 国产精品午夜在线 | 午夜影院先 | 久久综合九色综合网站 | 美女禁18| 国产精品久久久久久模特 | 国产精品久久久久久久久久久免费看 | 欧美污在线观看 | 三级黄色大片在线观看 | 久久精品小视频 | 探花在线观看 | 中文字幕在线国产精品 | 久操久 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 日韩在线免费高清视频 | 最近更新的中文字幕 | 精品久久久久久国产偷窥 | 日韩精品欧美专区 | 色网站国产精品 | 色多多视频在线 | 欧美精品久久久久久久久免 | 亚洲一区二区观看 | 中文字幕在线观看的网站 | 婷婷激情av | 色之综合网 | 亚洲综合婷婷 | 午夜成人影视 | 国产一级高清视频 | 久久久久免费网 | 精品久久久一区二区 | 成人av手机在线 | 日本久久精 | 一区二区三区免费在线观看视频 | 亚州精品成人 | 日韩伦理片一区二区三区 | 日韩理论电影网 | 播五月婷婷| 国产3p视频 | 深爱激情av | 最新av中文字幕 | 成人免费xxx在线观看 | 干狠狠 | www.五月婷| 国产精品自在线拍国产 | 一区二区三区日韩视频在线观看 | 婷婷色在线资源 | 婷婷激情综合五月天 | 中文资源在线官网 | 97免费 | 日韩av影片在线观看 | 天堂中文在线播放 | 久草.com| 播五月婷婷 | 国产免费观看高清完整版 | 999电影免费在线观看2020 | 免费看的视频 | 视频在线观看入口黄最新永久免费国产 | 91精品国产综合久久婷婷香蕉 | 香蕉视频国产在线 | 一区精品在线 | 日韩av看片 | 00av视频| 在线观看中文字幕一区二区 | 久久久精品国产一区二区电影四季 | 久久久久久电影 | 特级黄色片免费看 | 日韩在线视频免费观看 | 手机av在线网站 | 美女视频黄频大全免费 | 国产在线观看国语版免费 | 精品99久久久久久 | 久久久在线视频 | 亚洲国产精品成人综合 | 99草在线视频 | 日韩视频中文字幕在线观看 | 深夜福利视频一区二区 | 视频在线观看入口黄最新永久免费国产 | 91重口视频 | 91av色 | 天天色天天操综合网 | 特级黄色一级 | 国产精品久久久久久高潮 | 91麻豆精品久久久久久 | 日韩欧美中文 | 成人黄色免费在线观看 | 草久在线播放 | 丁香五月亚洲综合在线 | 日本精品视频网站 | 日韩一区二区在线免费观看 | 天堂av免费观看 | 91自拍91| 欧美一二区在线 | 亚洲综合网 | 在线观看免费av网 | 日韩在线免费视频观看 | 三级av在线播放 | 国产精品免费观看国产网曝瓜 | 久久99影院| 国产精品 国内视频 | 亚洲永久国产精品 | www狠狠操 | 中文字幕免费不卡视频 | 在线草| 欧美最猛性xxxxx亚洲精品 | 久久精品视频在线观看免费 | 久久视频免费观看 | 日韩高清在线不卡 | 激情五月婷婷综合 | 色射爱 | 日韩激情免费视频 | 热久久免费视频 | 在线观看日韩中文字幕 | 欧美日韩一区二区三区在线观看视频 | 国产拍在线 | 天天干天天操 | 蜜臀久久99精品久久久无需会员 | 日日精品| 97色婷婷成人综合在线观看 | 高清免费在线视频 | 欧美日比视频 | 中文字幕大全 | 日韩久久久久久久久久久久 | 国产精品久久久久久久久久久不卡 | 欧美aaa视频| 激情av网| 欧美在线视频日韩 | 欧美伦理一区 | 五月婷婷导航 | av超碰免费在线 | 黄色大全在线观看 | 成年人精品 | 在线观看黄色的网站 | 天天射天天干天天 | 国产精品伦一区二区三区视频 | 国产精品久久电影观看 | 视频一区在线免费观看 | 日韩动态视频 | 成人av片在线观看 | 国产精品一区二区久久久久 | 久久久精品成人 | 中文字幕在线观看不卡 | 97夜夜澡人人双人人人喊 | 色片网站在线观看 | 亚洲欧美视频在线观看 | 久久久久久国产精品亚洲78 | 中文字幕日韩一区二区三区不卡 | 国产精品青青 | 国产精品五月天 | 日韩伦理一区二区三区av在线 | 五月天婷亚洲天综合网鲁鲁鲁 | 久久99精品国产麻豆宅宅 | 国产高清精 | 伊人影院得得 | 在线看国产视频 | 久久不射网站 | 三级性生活视频 | 亚洲国产精彩中文乱码av | 国产一区二区三区免费在线观看 | 免费看国产一级片 | 国产a精品| 日本色小说视频 | 在线看成人av| 久久久性 | 精品欧美在线视频 | 国产在线1区 | 91视频免费看 | 日本成人中文字幕在线观看 | 亚洲视频,欧洲视频 | 久久xxxx| 国模吧一区 | 日韩在线高清 | 天天射综合| 国产精品 欧美 日韩 | 五月在线 | 黄色亚洲在线 | 日韩在线 一区二区 | 激情开心| 黄色av观看| 伊人电影天堂 | 婷婷丁香av | 久久精品男人的天堂 | 久久国产剧场电影 | 欧美成人在线免费 | 色综合久久久久综合 | 婷婷伊人综合 | 在线播放亚洲 | 日韩精品一区二区三区免费观看 | 久久国产一区二区 | 99久久99久久精品免费 | 97国产大学生情侣酒店的特点 | 欧美日韩在线视频一区二区 | 国产中文欧美日韩在线 | 18久久久久久 | 天天婷婷 | 日韩成人黄色 | 西西大胆啪啪 | 99成人在线视频 | 国产又粗又猛又黄视频 | av丁香花| 成人影视免费 | 麻豆久久久久 | 毛片www| 天天爽天天做 | 97精品国产97久久久久久粉红 | 日韩免费一区二区三区 | 又黄又刺激的网站 | 91精品国产三级a在线观看 | 亚洲色视频 | 91福利国产在线观看 | 国产精品av在线免费观看 | 国产午夜剧场 | 国产精品成人一区二区 | 国产精品久久久久久麻豆一区 | 最近中文字幕在线 | 在线观看香蕉视频 | 97精品国自产拍在线观看 | 中文字幕影片免费在线观看 | 色视频成人在线观看免 | 午夜视频导航 | 国产人成一区二区三区影院 | 日本精a在线观看 | 激情婷婷色 | a级国产毛片| 手机看片午夜 | 日韩欧美网址 | 97视频在线免费播放 | 8x成人免费视频 | 69国产成人综合久久精品欧美 | 免费观看www小视频的软件 | 精品国产久 | 日日夜夜精品 | 国内精品视频在线播放 | 国产一区二区播放 | 久久久一本精品99久久精品 | 五月天婷婷狠狠 | 免费在线观看av网址 | 91 在线视频 | 久久久久中文 | 婷婷激情小说网 | 国产精品自产拍在线观看网站 | 最新国产在线观看 | 91在线公开视频 | 超碰人人乐 | 国产婷婷vvvv激情久 | 久久天天躁夜夜躁狠狠85麻豆 | 黄色天堂在线观看 | 在线99热 | 国产精品久久久 | 精品免费| 久久男人免费视频 | 9999在线观看 | 亚洲精品午夜aaa久久久 | 黄色免费高清视频 | 插婷婷 | 97涩涩视频| 久草在线在线视频 | 在线а√天堂中文官网 | 波多野结衣视频一区二区 | 美女免费网站 | 91色九色 | 国产四虎影院 | 国产高清在线观看av | 99这里只有久久精品视频 | 精品在线观看一区二区 | 日韩两性视频 | 婷婷色网站 | 91av在线免费看 | 99精品黄色 | 国产成人三级在线播放 | 91欧美精品| www日日 | 色婷婷亚洲综合 | 99精品国产免费久久久久久下载 | 91av免费看| 国产va在线 | 特级西西444www高清大视频 | 99r精品视频在线观看 | 中文字幕xxxx| 99免费在线视频观看 | 九九色综合 | 婷婷色综合网 | 成人在线电影观看 | av日韩av| 欧美一级片在线播放 | 国产精品黑丝在线观看 | 在线导航福利 | 天天综合成人 | 日韩在线观看网站 | 99视频精品全部免费 在线 | 久久亚洲成人网 | 色吊丝在线永久观看最新版本 | 人人爽人人爽人人片av | 天天综合成人 | 在线观看一区 | 欧美一级小视频 | 97成人在线视频 | 国产精品成人一区二区三区 | 免费视频 你懂的 | 97人人爽 | 黄色三级在线观看 | 久久久久久久久久久久久久电影 | 精品视频在线看 | 亚洲国产日韩av | 黄色成人在线网站 | 中文字幕久久精品亚洲乱码 | 91成人精品一区在线播放69 | 九九精品视频在线观看 | 中文字幕精品三区 | 国产在线精品国自产拍影院 | 天天插天天狠天天透 | 国产精品系列在线播放 | 国产高清区 | 国产日本三级 | 色综合天天色 | 国产免费久久av | 欧美色图30p | 国产中文字幕在线免费观看 | 九九综合在线 | 在线观看免费成人av | 成 人 黄 色 视频 免费观看 | 中文字幕 欧美性 | 日本一区二区高清不卡 | 精品国产一区二区三区久久久 | 中文字幕一区二区三区四区久久 | 亚洲精品白浆高清久久久久久 | 日韩免费电影 | 四虎影视成人精品国库在线观看 | 91精品国产99久久久久久红楼 | 中国一级片视频 | 日韩在线视频一区二区三区 | 国产一区视频在线播放 | 中国一区二区视频 | 国产精品国产三级国产aⅴ9色 | 精品久久久久免费极品大片 | 91精品国自产在线观看欧美 | 黄色电影在线免费观看 | 国产精品 9999 | 国产成人三级在线播放 | av大全在线免费观看 | 国产伦理一区二区 | 国产精品久久在线观看 |