色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

FreeRTOS的移植

汽車電子技術(shù) ? 來源:物聯(lián)網(wǎng)IoT開發(fā) ? 作者:杰杰 ? 2023-02-14 09:34 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

我為什么會(huì)寫移植呢,因?yàn)槭枪娞?hào)有一個(gè)兄弟想要我寫一份移植的教程,所以應(yīng)它要求我就寫了一篇。

準(zhǔn)備

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

一個(gè)是官網(wǎng):http://www.freertos.org/

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

打開網(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版本之后是亞馬遜收購了FreeRTOS之后才出來的版本,主要添加了一些云端組件,我們本書所講的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)估板寫好完整的工程程序,這些程序就放在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)的源文件。

圖片

在這里插入圖片描述

移植過程

提取源碼

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

  2. 打開FreeRTOS V9.0.0源碼,在“FreeRTOSv9.0.0\\FreeRTOS\\Source”目錄下找到所有的‘.c文件’,將它們拷貝到我們新建的src文件夾中,

    圖片

    在這里插入圖片描述

  3. 打開FreeRTOS V9.0.0源碼,在“FreeRTOSv9.0.0\\FreeRTOS\\Source\\portable”目錄下找到“MemMang”文件夾與“RVDS”文件夾,將它們拷貝到我們新建的port文件夾中

    圖片

    在這里插入圖片描述

  4. 打開FreeRTOS V9.0.0源碼,在“FreeRTOSv9.0.0\\ FreeRTOS\\Source”目錄下找到“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),用戶可以通過修改這個(gè)FreeRTOS內(nèi)核的配置頭文件來裁剪FreeRTOS的功能,所以我們把它拷貝一份放在user這個(gè)文件夾下面。

打開FreeRTOSv9.0.0源碼,在“FreeRTOSv9.0.0\\FreeRTOS\\Demo”文件夾下面找到“CORTEX_STM32F103_Keil”這個(gè)文件夾,雙擊打開,在其根目錄下找到這個(gè)“FreeRTOSConfig.h”文件,然后拷貝到我們工程的user文件夾下即可,等下我們需要對(duì)這個(gè)文件進(jìn)行修改。

創(chuàng)建工程分組

接下來我們?cè)趍dk里面新建FreeRTOS/src和FreeRTOS/port兩個(gè)組文件夾,其中FreeRTOS/src用于存放src文件夾的內(nèi)容,F(xiàn)reeRTOS/port用于存放port\\MemMang文件夾 與port\\RVDS\\ARM_CM3文件夾的內(nèi)容。

然后我們將工程文件中FreeRTOS的內(nèi)容添加到工程中去,按照已經(jīng)新建的分組添加我們的FreeRTOS工程源碼。

在FreeRTOS/port分組中添加MemMang文件夾中的文件只需選擇其中一個(gè)即可,我們選擇“heap_4.c”,這是FreeRTOS的一個(gè)內(nèi)存管理源碼文件。

添加完成后:

圖片

在這里插入圖片描述

** 添加頭文件路徑**

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

圖片

在這里插入圖片描述

修改FreeRTOSConfig.h

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

1#ifndef FREERTOS_CONFIG_H
  2#define FREERTOS_CONFIG_H
  3
  4#include "stm32f10x.h"
  5#include "bsp_usart.h"
  6
  7
  8//針對(duì)不同的編譯器調(diào)用不同的stdint.h文件
  9#if defined(__ICCARM__) || defined(__CC_ARM) || defined(__GNUC__)
 10    #include <stdint.h>
 11    extern uint32_t SystemCoreClock;
 12#endif
 13
 14//斷言
 15#define vAssertCalled(char,int) printf("Error:%s,%d\\r\\n",char,int)
 16#define configASSERT(x) if((x)==0) vAssertCalled(__FILE__,__LINE__)
 17
 18/************************************************************************
 19 *               FreeRTOS基礎(chǔ)配置配置選項(xiàng) 
 20 *********************************************************************/
 21/* 置1:RTOS使用搶占式調(diào)度器;置0:RTOS使用協(xié)作式調(diào)度器(時(shí)間片)
 22 * 
 23 * 注:在多任務(wù)管理機(jī)制上,操作系統(tǒng)可以分為搶占式和協(xié)作式兩種。
 24 * 協(xié)作式操作系統(tǒng)是任務(wù)主動(dòng)釋放CPU后,切換到下一個(gè)任務(wù)。
 25 * 任務(wù)切換的時(shí)機(jī)完全取決于正在運(yùn)行的任務(wù)。
 26 */
 27#define configUSE_PREEMPTION                      1
 28
 29//1使能時(shí)間片調(diào)度(默認(rèn)式使能的)
 30#define configUSE_TIME_SLICING                    1       
 31
 32/* 某些運(yùn)行FreeRTOS的硬件有兩種方法選擇下一個(gè)要執(zhí)行的任務(wù):
 33 * 通用方法和特定于硬件的方法(以下簡(jiǎn)稱“特殊方法”)。
 34 * 
 35 * 通用方法:
 36 *      1.configUSE_PORT_OPTIMISED_TASK_SELECTION 為 0 或者硬件不支持這種特殊方法。
 37 *      2.可以用于所有FreeRTOS支持的硬件
 38 *      3.完全用C實(shí)現(xiàn),效率略低于特殊方法。
 39 *      4.不強(qiáng)制要求限制最大可用優(yōu)先級(jí)數(shù)目
 40 * 特殊方法:
 41 *      1.必須將configUSE_PORT_OPTIMISED_TASK_SELECTION設(shè)置為1。
 42 *      2.依賴一個(gè)或多個(gè)特定架構(gòu)的匯編指令(一般是類似計(jì)算前導(dǎo)零[CLZ]指令)。
 43 *      3.比通用方法更高效
 44 *      4.一般強(qiáng)制限定最大可用優(yōu)先級(jí)數(shù)目為32
 45 * 一般是硬件計(jì)算前導(dǎo)零指令,如果所使用的,MCU沒有這些硬件指令的話此宏應(yīng)該設(shè)置為0!
 46 */
 47#define configUSE_PORT_OPTIMISED_TASK_SELECTION            1                       
 48
 49/* 置1:使能低功耗tickless模式;置0:保持系統(tǒng)節(jié)拍(tick)中斷一直運(yùn)行
 50 * 假設(shè)開啟低功耗的話可能會(huì)導(dǎo)致下載出現(xiàn)問題,因?yàn)槌绦蛟谒咧?可用以下辦法解決
 51 * 
 52 * 下載方法:
 53 *      1.將開發(fā)版正常連接好
 54 *      2.按住復(fù)位按鍵,點(diǎn)擊下載瞬間松開復(fù)位按鍵
 55 *     
 56 *      1.通過跳線帽將 BOOT 0 接高電平(3.3V)
 57 *      2.重新上電,下載
 58 *    
 59 *             1.使用FlyMcu擦除一下芯片,然后進(jìn)行下載
 60 *            STMISP -> 清除芯片(z)
 61 */
 62#define configUSE_TICKLESS_IDLE                                                    0   
 63
 64/*
 65 * 寫入實(shí)際的CPU內(nèi)核時(shí)鐘頻率,也就是CPU指令執(zhí)行頻率,通常稱為Fclk
 66 * Fclk為供給CPU內(nèi)核的時(shí)鐘信號(hào),我們所說的cpu主頻為 XX MHz,
 67 * 就是指的這個(gè)時(shí)鐘信號(hào),相應(yīng)的,1/Fclk即為cpu時(shí)鐘周期;
 68 */
 69#define configCPU_CLOCK_HZ                          (SystemCoreClock)
 70
 71//RTOS系統(tǒng)節(jié)拍中斷的頻率。即一秒中斷的次數(shù),每次中斷RTOS都會(huì)進(jìn)行任務(wù)調(diào)度
 72#define configTICK_RATE_HZ                          (( TickType_t )1000)
 73
 74//可使用的最大優(yōu)先級(jí)
 75#define configMAX_PRIORITIES                      (32)
 76
 77//空閑任務(wù)使用的堆棧大小
 78#define configMINIMAL_STACK_SIZE                ((unsigned short)128)
 79
 80//任務(wù)名字字符串長(zhǎng)度
 81#define configMAX_TASK_NAME_LEN                    (16)
 82
 83 //系統(tǒng)節(jié)拍計(jì)數(shù)器變量數(shù)據(jù)類型,1表示為16位無符號(hào)整形,0表示為32位無符號(hào)整形
 84#define configUSE_16_BIT_TICKS                    0                      
 85
 86//空閑任務(wù)放棄CPU使用權(quán)給其他同優(yōu)先級(jí)的用戶任務(wù)
 87#define configIDLE_SHOULD_YIELD                    1           
 88
 89//啟用隊(duì)列
 90#define configUSE_QUEUE_SETS                      1    
 91
 92//開啟任務(wù)通知功能,默認(rèn)開啟
 93#define configUSE_TASK_NOTIFICATIONS    1   
 94
 95//使用互斥信號(hào)量
 96#define configUSE_MUTEXES                            1    
 97
 98//使用遞歸互斥信號(hào)量                                            
 99#define configUSE_RECURSIVE_MUTEXES            1   
100
101//為1時(shí)使用計(jì)數(shù)信號(hào)量
102#define configUSE_COUNTING_SEMAPHORES        1
103
104/* 設(shè)置可以注冊(cè)的信號(hào)量和消息隊(duì)列個(gè)數(shù) */
105#define configQUEUE_REGISTRY_SIZE                10                                 
106
107#define configUSE_APPLICATION_TASK_TAG          0                       
108
109
110/*****************************************************************
111              FreeRTOS與內(nèi)存申請(qǐng)有關(guān)配置選項(xiàng)                                               
112*****************************************************************/
113//支持動(dòng)態(tài)內(nèi)存申請(qǐng)
114#define configSUPPORT_DYNAMIC_ALLOCATION        1    
115//支持靜態(tài)內(nèi)存
116#define configSUPPORT_STATIC_ALLOCATION                    0                   
117//系統(tǒng)所有總的堆大小
118#define configTOTAL_HEAP_SIZE                    ((size_t)(36*1024))    
119
120
121/***************************************************************
122             FreeRTOS與鉤子函數(shù)有關(guān)的配置選項(xiàng)                                            
123**************************************************************/
124/* 置1:使用空閑鉤子(Idle Hook類似于回調(diào)函數(shù));置0:忽略空閑鉤子
125 * 
126 * 空閑任務(wù)鉤子是一個(gè)函數(shù),這個(gè)函數(shù)由用戶來實(shí)現(xiàn),
127 * FreeRTOS規(guī)定了函數(shù)的名字和參數(shù):void vApplicationIdleHook(void ),
128 * 這個(gè)函數(shù)在每個(gè)空閑任務(wù)周期都會(huì)被調(diào)用
129 * 對(duì)于已經(jīng)刪除的RTOS任務(wù),空閑任務(wù)可以釋放分配給它們的堆棧內(nèi)存。
130 * 因此必須保證空閑任務(wù)可以被CPU執(zhí)行
131 * 使用空閑鉤子函數(shù)設(shè)置CPU進(jìn)入省電模式是很常見的
132 * 不可以調(diào)用會(huì)引起空閑任務(wù)阻塞的API函數(shù)
133 */
134#define configUSE_IDLE_HOOK                        0      
135
136/* 置1:使用時(shí)間片鉤子(Tick Hook);置0:忽略時(shí)間片鉤子
137 * 
138 * 
139 * 時(shí)間片鉤子是一個(gè)函數(shù),這個(gè)函數(shù)由用戶來實(shí)現(xiàn),
140 * FreeRTOS規(guī)定了函數(shù)的名字和參數(shù):void vApplicationTickHook(void )
141 * 時(shí)間片中斷可以周期性的調(diào)用
142 * 函數(shù)必須非常短小,不能大量使用堆棧,
143 * 不能調(diào)用以”FromISR" 或 "FROM_ISR”結(jié)尾的API函數(shù)
144 */
145 /*xTaskIncrementTick函數(shù)是在xPortSysTickHandler中斷函數(shù)中被調(diào)用的。因此,vApplicationTickHook()函數(shù)執(zhí)行的時(shí)間必須很短才行*/
146#define configUSE_TICK_HOOK                        0           
147
148//使用內(nèi)存申請(qǐng)失敗鉤子函數(shù)
149#define configUSE_MALLOC_FAILED_HOOK            0 
150
151/*
152 * 大于0時(shí)啟用堆棧溢出檢測(cè)功能,如果使用此功能 
153 * 用戶必須提供一個(gè)棧溢出鉤子函數(shù),如果使用的話
154 * 此值可以為1或者2,因?yàn)橛袃煞N棧溢出檢測(cè)方法 */
155#define configCHECK_FOR_STACK_OVERFLOW            0   
156
157
158/********************************************************************
159          FreeRTOS與運(yùn)行時(shí)間和任務(wù)狀態(tài)收集有關(guān)的配置選項(xiàng)   
160**********************************************************************/
161//啟用運(yùn)行時(shí)間統(tǒng)計(jì)功能
162#define configGENERATE_RUN_TIME_STATS            0             
163 //啟用可視化跟蹤調(diào)試
164#define configUSE_TRACE_FACILITY                      0    
165/* 與宏configUSE_TRACE_FACILITY同時(shí)為1時(shí)會(huì)編譯下面3個(gè)函數(shù)
166 * prvWriteNameToBuffer()
167 * vTaskList(),
168 * vTaskGetRunTimeStats()
169*/
170#define configUSE_STATS_FORMATTING_FUNCTIONS    1                       
171
172
173/********************************************************************
174                FreeRTOS與協(xié)程有關(guān)的配置選項(xiàng)                                                
175*********************************************************************/
176//啟用協(xié)程,啟用協(xié)程以后必須添加文件croutine.c
177#define configUSE_CO_ROUTINES                       0                 
178//協(xié)程的有效優(yōu)先級(jí)數(shù)目
179#define configMAX_CO_ROUTINE_PRIORITIES       ( 2 )                   
180
181
182/***********************************************************************
183                FreeRTOS與軟件定時(shí)器有關(guān)的配置選項(xiàng)      
184**********************************************************************/
185 //啟用軟件定時(shí)器
186#define configUSE_TIMERS                            1                              
187//軟件定時(shí)器優(yōu)先級(jí)
188#define configTIMER_TASK_PRIORITY                (configMAX_PRIORITIES-1)        
189//軟件定時(shí)器隊(duì)列長(zhǎng)度
190#define configTIMER_QUEUE_LENGTH                10                               
191//軟件定時(shí)器任務(wù)堆棧大小
192#define configTIMER_TASK_STACK_DEPTH          (configMINIMAL_STACK_SIZE*2)    
193
194/************************************************************
195            FreeRTOS可選函數(shù)配置選項(xiàng)                                                     
196************************************************************/
197#define INCLUDE_xTaskGetSchedulerState       1                       
198#define INCLUDE_vTaskPrioritySet                 1
199#define INCLUDE_uxTaskPriorityGet                 1
200#define INCLUDE_vTaskDelete                           1
201#define INCLUDE_vTaskCleanUpResources           1
202#define INCLUDE_vTaskSuspend                       1
203#define INCLUDE_vTaskDelayUntil                     1
204#define INCLUDE_vTaskDelay                           1
205#define INCLUDE_eTaskGetState                       1
206#define INCLUDE_xTimerPendFunctionCall         1
207//#define INCLUDE_xTaskGetCurrentTaskHandle       1
208//#define INCLUDE_uxTaskGetStackHighWaterMark     0
209//#define INCLUDE_xTaskGetIdleTaskHandle          0
210
211
212/******************************************************************
213            FreeRTOS與中斷有關(guān)的配置選項(xiàng)                                                 
214******************************************************************/
215#ifdef __NVIC_PRIO_BITS
216    #define configPRIO_BITS             __NVIC_PRIO_BITS
217#else
218    #define configPRIO_BITS             4                  
219#endif
220//中斷最低優(yōu)先級(jí)
221#define configLIBRARY_LOWEST_INTERRUPT_PRIORITY            15     
222
223//系統(tǒng)可管理的最高中斷優(yōu)先級(jí)
224#define configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY    5 
225
226#define configKERNEL_INTERRUPT_PRIORITY         ( configLIBRARY_LOWEST_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )    /* 240 */
227
228#define configMAX_SYSCALL_INTERRUPT_PRIORITY     ( configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS) )
229
230
231/****************************************************************
232            FreeRTOS與中斷服務(wù)函數(shù)有關(guān)的配置選項(xiàng)                         
233****************************************************************/
234#define xPortPendSVHandler     PendSV_Handler
235#define vPortSVCHandler     SVC_Handler
236
237
238/* 以下為使用Percepio Tracealyzer需要的東西,不需要時(shí)將 configUSE_TRACE_FACILITY 定義為 0 */
239#if ( configUSE_TRACE_FACILITY == 1 )
240#include "trcRecorder.h"
241#define INCLUDE_xTaskGetCurrentTaskHandle               1   // 啟用一個(gè)可選函數(shù)(該函數(shù)被 Trace源碼使用,默認(rèn)該值為0 表示不用)
242#endif
243
244
245#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)行,就像人的心跳一樣,假如沒有心跳,我們就相當(dāng)于“死了”,同樣的,F(xiàn)reeRTOS沒有了心跳,那么它就會(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為開發(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ù)了。

1//void SVC_Handler(void)
 2//{
 3//}
 4
 5//void PendSV_Handler(void)
 6//{
 7//}
 8
 9extern void xPortSysTickHandler(void);
10
11//systick中斷服務(wù)函數(shù)
12void SysTick_Handler(void)
13{    
14    #if (INCLUDE_xTaskGetSchedulerState  == 1 )
15      if (xTaskGetSchedulerState() != taskSCHEDULER_NOT_STARTED)
16      {
17    #endif  /* INCLUDE_xTaskGetSchedulerState */  
18        xPortSysTickHandler();
19    #if (INCLUDE_xTaskGetSchedulerState  == 1 )
20      }
21    #endif  /* INCLUDE_xTaskGetSchedulerState */
22}

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

這里,我們創(chuàng)建一個(gè)單任務(wù),任務(wù)使用的棧和任務(wù)控制塊是在創(chuàng)建任務(wù)的時(shí)候FreeRTOS動(dòng)態(tài)分配的。

任務(wù)必須是一個(gè)死循環(huán),否則任務(wù)將通過LR返回,如果LR指向了非法的內(nèi)存就會(huì)產(chǎn)生HardFault_Handler,而FreeRTOS指向一個(gè)死循環(huán),那么任務(wù)返回之后就在死循環(huán)中執(zhí)行,這樣子的任務(wù)是不安全的,所以避免這種情況,任務(wù)一般都是死循環(huán)并且無返回值的。

并且每個(gè)任務(wù)循環(huán)主體中應(yīng)該有阻塞任務(wù)的函數(shù),否則就會(huì)餓死比它優(yōu)先級(jí)更低的任務(wù)!!!

1/* FreeRTOS頭文件 */
 2#include "FreeRTOS.h"
 3#include "task.h"
 4/* 開發(fā)板硬件bsp頭文件 */
 5#include "bsp_led.h"
 6
 7static void AppTaskCreate(void);/* AppTask任務(wù) */
 8
 9 /* 創(chuàng)建任務(wù)句柄 */
10static TaskHandle_t AppTask_Handle = NULL;
11
12int main(void)
13{    
14  BaseType_t xReturn = pdPASS;/* 定義一個(gè)創(chuàng)建信息返回值,默認(rèn)為pdPASS */
15
16  /* 開發(fā)板硬件初始化 */
17  BSP_Init();
18
19   /* 創(chuàng)建AppTaskCreate任務(wù) */
20  xReturn = xTaskCreate((TaskFunction_t )AppTask,  /* 任務(wù)入口函數(shù) */
21                        (const char*    )"AppTask",/* 任務(wù)名字 */
22                        (uint16_t       )512,  /* 任務(wù)棧大小 */
23                        (void*          )NULL,/* 任務(wù)入口函數(shù)參數(shù) */
24                        (UBaseType_t    )1, /* 任務(wù)的優(yōu)先級(jí) */
25                        (TaskHandle_t*  )&AppTask_Handle);/* 任務(wù)控制塊指針 */ 
26  /* 啟動(dòng)任務(wù)調(diào)度 */           
27  if(pdPASS == xReturn)
28    vTaskStartScheduler();   /* 啟動(dòng)任務(wù),開啟調(diào)度 */
29  else
30    return -1;  
31
32  while(1);   /* 正常不會(huì)執(zhí)行到這里 */    
33}
34
35static void AppTask(void* parameter)
36{    
37    while (1)
38    {
39        LED1_ON;
40        vTaskDelay(500);   /* 延時(shí)500個(gè)tick */
41        LED1_OFF;     
42        vTaskDelay(500);   /* 延時(shí)500個(gè)tick */                
43    }
44}
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2953

    瀏覽量

    68547
  • FreeRTOS
    +關(guān)注

    關(guān)注

    13

    文章

    493

    瀏覽量

    64581
  • Source
    +關(guān)注

    關(guān)注

    0

    文章

    19

    瀏覽量

    10210
收藏 0人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【NXP LPC54110試用體驗(yàn)】+Freertos移植

    錯(cuò)誤添加任務(wù):在主文件中添加rtos頭文件 在main中添加任務(wù)函數(shù),并啟動(dòng)rtos 實(shí)現(xiàn)led閃爍。 看見板卡上led閃爍了, FREERTOS移植成功。
    發(fā)表于 08-17 08:41

    ministm32板子如何用freertos移植

    從發(fā)燒友購買的ministm32板子,贈(zèng)送的有跑馬燈程序和內(nèi)部溫度傳感器程序,需要用freertos移植一下,有償求助!!謝謝好心人!!!
    發(fā)表于 06-15 01:28

    FreeRTOS移植到STM32F407上

    00. 目錄文章目錄00. 目錄01. 簡(jiǎn)介02. 預(yù)備工作03. FreeRTOS移植04. SYSTEM文件修改05. 測(cè)試程序設(shè)計(jì)06. 附錄07. 參考01. 簡(jiǎn)介我們已經(jīng)了解
    發(fā)表于 08-24 06:07

    FreeRTOS移植的過程是如何完成的

    FreeRTOS/ Source文件夾下的文件有哪些呢?FreeRTOS移植的過程是如何完成的?
    發(fā)表于 11-29 07:05

    怎樣將FreeRTOS移植到STM32上去呢

    怎樣將FreeRTOS移植到STM32上去呢?有哪些移植步驟?
    發(fā)表于 11-29 07:57

    為什么學(xué)FreeRTOSFreeRTOS移植步驟是怎樣的?

    為什么學(xué)FreeRTOSFreeRTOS移植步驟是怎樣的?
    發(fā)表于 11-30 07:52

    如何將FreeRTOS移植到stm32上呢

    目錄一、FreeRTOS介紹1、初識(shí)FreeRTOS,什么是 FreeRTOS2、FreeRTOS的特點(diǎn)二、FreeRTOS
    發(fā)表于 02-10 06:01

    FreeRTOS移植MAPS-K22開發(fā)板

    FreeRTOS移植MAPS-K22開發(fā)板,本文以MAPS-K22開發(fā)板為例,介紹了將FreeRTOS移植于NXP Kientis 系列MCU中的步驟,希望能對(duì)想學(xué)習(xí)RTOS和Kine
    發(fā)表于 12-24 16:39 ?4次下載

    FreeRTOS移植MAPS-K22開發(fā)板-工程源碼

    FreeRTOS移植MAPS-K22開發(fā)板,本文以MAPS-K22開發(fā)板為例,介紹了將FreeRTOS移植于NXP Kientis 系列MCU中的步驟,希望能對(duì)想學(xué)習(xí)RTOS和Kine
    發(fā)表于 12-24 18:36 ?16次下載

    FreeRTOS移植到MAPS-資料匯總

    FreeRTOS已成功移植于超過35種架構(gòu)的MCU中運(yùn)行,本文以MAPS-K22開發(fā)板為例,介紹了將FreeRTOS移植于NXP Kientis 系列MCU中的步驟,希望能對(duì)想學(xué)習(xí)RT
    發(fā)表于 12-24 18:36 ?6次下載

    FreeRTOS移植教程說明

    嵌入式系統(tǒng)應(yīng)用的開源多任務(wù)小型 嵌入式實(shí)時(shí)操作系統(tǒng)FreeRTOS,以Freescale公司新推出的32位含有以太網(wǎng)接口的MCF52233為藍(lán)本,闡述了FreeRTOS移植方 法、及在校園一卡通項(xiàng)目中的應(yīng)用.
    發(fā)表于 03-29 15:08 ?16次下載
    <b class='flag-5'>FreeRTOS</b>的<b class='flag-5'>移植</b>教程說明

    嵌入式操作系統(tǒng)FREERTOS移植.

    嵌入式操作系統(tǒng)FREERTOS移植.(濟(jì)南嵌入式開發(fā)招聘)-嵌入式操作系統(tǒng)FREERTOS移植? ? ? ? ? ? ? ? ?
    發(fā)表于 07-30 12:01 ?15次下載
    嵌入式操作系統(tǒng)<b class='flag-5'>FREERTOS</b>的<b class='flag-5'>移植</b>.

    FreeRTOS移植—基于STM32

    FreeRTOS移植—基于STM32
    發(fā)表于 12-04 12:51 ?18次下載
    <b class='flag-5'>FreeRTOS</b><b class='flag-5'>移植</b>—基于STM32

    【STM32】FreeRTOS移植

    00. 目錄文章目錄00. 目錄01. 簡(jiǎn)介02. 預(yù)備工作03. FreeRTOS移植04. SYSTEM文件修改05. 測(cè)試程序設(shè)計(jì)06. 附錄07. 參考01. 簡(jiǎn)介我們已經(jīng)了解
    發(fā)表于 12-04 14:06 ?15次下載
    【STM32】<b class='flag-5'>FreeRTOS</b><b class='flag-5'>移植</b>

    Freertos移植中 “FreeRTOSConfig.h“ 的配置

    Freertos移植中 “FreeRTOSConfig.h“ 的配置
    發(fā)表于 12-04 14:06 ?10次下載
    <b class='flag-5'>Freertos</b> 的<b class='flag-5'>移植</b>中 “FreeRTOSConfig.h“ 的配置
    主站蜘蛛池模板: 色综合999| 综合五月| 国产精品呻吟久久av凹凸 | 欧美综合激情 | 欧美日韩国产一区 | 色四虎| 成人一区在线观看 | 九九精品视频免费 | 国产精品99久久久久久www | 日韩精品91亚洲二区在线观看 | 欧美亚洲国产一区二区三区 | 精品久久久久久久久久软件 | 日日草视频 | 丁五月 | 最新国产在线视频 | 午夜寂寞福利 | 992tv又爽又黄的免费视频 | 欧美在线视频播放 | 国产freexxxx性播放麻豆 | 国产特级毛片潘金莲 | 亚洲码国产日韩欧美高潮在线播放 | 欧美11p | 99自拍偷拍 | 公妇乱淫视频 | 殴美性生活 | 少妇脚交调教玩男人的视频 | 国产片免费 | 国产精品 27p| 女人喷液抽搐高潮视频 | 午夜影院免费观看 | 国产 欧美 日韩 | 午夜偷拍福利视频 | 欧美天天爽 | 国产美女毛片 | 日韩视频在线观看视频 | 国产一级α片 | 久久九九国产 | 国产麻豆一区二区三区 | 91免费国产| 国产精品成人影院在线观看 | 激情六月天婷婷 | 香蕉色视频| 天天躁夜夜躁av天天爽 | 日本婷婷免费久久毛片 | 欧美一级淫片免费 | 国产乱人伦无无码视频试看 | 亚洲国产成人精品激情在线 | 国产伦精品一区二区三区免费迷 | 俺去俺来也www色官网cms | 2024av在线播放| 99蜜桃臀精品视频在线观看 | 国产午夜在线视频 | 青青草视频偷拍 | 亚洲女同性ⅹxx关女同网站 | 日韩欧美视频在线免费观看 | 91亚洲视频 | 精品视频久久久久久久 | 人人干狠狠干 | 高清中文字幕 | 成人三一级一片aaa 成人涩涩 | 亚洲干 | 黄色三级av | 亚洲老妈激情一区二区三区 | 恶虐女帝安卓汉化版最新版本 | 色窝窝无码一区二区三区色欲 | 少妇无套内谢久久久久 | 7777久久亚洲中文字幕蜜桃 | 国产精品久久久久久一区二区三区 | 天天做天天爱天天综合网2021 | 不卡精品| 草草影院精品一区二区三区 | 久草欧美视频 | 欧洲vodafone精品性 | 国产又滑又嫩又白 | 性视频一区二区三区 | 中文字幕精品视频 | 97se亚洲| 中文国产成人精品久久不卡 | 亚洲精品午睡沙发系列 | 日韩 亚洲 中文 图片 小说 | 国产激情免费视频在线观看 | 国产一线av | 亚洲va在线va天堂xx xx | 国产精品成人va在线播放 | 爱爱小视频免费看 | 成人免费黄色片 | 亚洲天堂男人网 | 国产午夜福利在线播放 | 双性调教总裁失禁尿出来 | 国产做爰视频 | 国产成人精品免费视频大全 | 无人在线观看免费高清视频的优势 | 亚洲精品在线观 | 4438x成人网全国最大 | 免费国产a国产片高清网站 国产婷婷一区二区三区 | 日韩精品久久一区二区 | 香港三级日本三级a视频 | 欧美大片免费观看网址 | 俄罗斯兽交黑人又大又粗水汪汪 | 久久天天综合桃花久久 | 少妇综合 | 村上凉子在线播放av88 | 亚洲va久久久噜噜噜久久天堂 | 国产aⅴ精品一区二区三区久久 | 四川骚妇无套内射舔了更爽 | 国产精品一区二区久久国产 | 久久精品岛国av一区二区无码 | youjizzcom自拍| 亚洲第一视频 | 欧美乱大交做爰xxxⅹ小说 | 中文字幕超清在线观看 | 色婷婷av国产精品 | 99视频精品全部免费 在线 | 欧美日韩成人一区二区 | 亚洲熟女乱色一区二区三区 | 99精品久久久久久中文字幕 | 大地资源中文第二页日本 | 一区二区久久久久草草 | 天天插天天干天天射 | 国产一二视频 | 成人国产精品视频国产 | 久久久久久久久久久影院 | 国产亚洲婷婷香蕉久久精品 | 日本精品久久久久久 | 黄色成人在线网站 | 无码av免费一区二区三区 | 99视频只有精品 | 色噜噜狠狠狠综合曰曰曰 | 国产美女裸体无遮挡免费视频 | 青草超碰 | 午夜无码免费福利视频网址 | 亚洲 欧美 另类人妖 | 精品乱码久久久久久中文字幕 | 人人妻一区二区三区 | 全部免费的毛片在线播放 | 黄色小说在线观看视频 | 91红桃视频 | 欧美亚洲国产成人 | 中文字幕无码乱码人妻系列蜜桃 | 人妻无码中文字幕 | 黄频在线播放 | 日本久久久久 | 91精品国产综合久久国产大片 | 久久久无码精品一区二区三区蜜桃 | 一级片aaa| 久久国产成人精品国产成人亚洲 | 免费看成人欧美片爱潮app | 免费一区二区三区 | 国产精品国产三级在线专区 | 国产乱人偷精品人妻a片 | 99久久精品国产成人一区二区 | 亚洲视频一级 | 99精品国产一区二区 | 久久久久久久av麻豆果冻 | 国产精品va在线播放 | 狠狠躁18三区二区一区传媒剧情 | 欧美另类精品xxxxxx高跟鞋 | 久久久久久久久一区 | 亚洲欧洲一二三区 | 正在播放国产真实哭都没用 | 最新黄色av | 手机永久免费av在线播放 | 国产精品资源 | 夜夜添无码试看一区二区三区 | 亚洲熟妇久久国内精品 | 国产农村妇女在野外高潮 | 捏胸吃奶吻胸免费视频大软件 | 亚洲成人观看 | 手机成人在线视频 | 一区二区三区在线视频免费观看 | 国产美女喷水视频 | 国产精品毛片一区 | 国产麻豆成人 | 久久精品人妻一区二区三区 | 午夜精品一区二区三区的区别 | 熟妇丰满多毛的大隂户 | 国产成人一区二区三区视频免费 | 日韩欧美一区天天躁噜噜 | 一卡二区| 97成人资源| hd最新国产人妖ts视频仙踪林 | 97福利网| 国产精品亚洲一区二区无码 | 依人九九 | 97成人精品区在线播放 | 久久亚洲婷婷 | 色黄大色黄女片免费中国 | 高潮一区二区三区 | 大香焦久久 | 亚洲综合在线另类色区奇米 | 无遮挡aaaaa大片免费看 | 伊人久久大香线蕉av一区 | 国产亚洲欧美一区二区 | 欧美在线一级 | 国产山村乱淫老妇女视频 | 色诱久久久久综合网ywww | 一边cao一边粗话打奶视频 | 久久中文字幕视频 | 五月天婷婷导航 | 特黄特色大片免费播放 | 欧美 图片 另类 自拍 | 麻豆精品 | 男人天堂手机在线 | 亚洲天堂成人在线 | 麻豆影视大全 | 日韩超碰人人爽人人做人人添 | 国产公开免费人成视频 | 波多av在线 | 一级片视频播放 | 沈阳熟女露脸对白视频 | 九月色婷婷| 国产乡下妇女做爰 | 黄色一级a毛片 | 日韩欧美国产网站 | 色黄视频网站 | 七七久久 | 九九黄色大片 | 六月丁香婷婷激情 | 欧美大片在线免费观看 | 国产色无码专区在线观看 | 少妇午夜三级伦理影院播放器 | 中文字幕日韩精品亚洲一区 | 一本一道久久a久久精品综合 | 欧美视频一区在线观看 | 中文字幕乱码在线蜜乳欧美字幕 | 久久久久99人妻一区二区三区 | 超碰色偷偷 | 91夜夜澡人人爽人人喊欧美 | 国产性受xxxx黑人xyx性爽 | 大学生精油按摩做爰hd | 国产亚洲精品美女久久久 | 亚洲精一区 | 福利小视频在线观看 | 国产精品乱码一区二区三区四川人 | 内射无码专区久久亚洲 | 国产免费黄色大片 | 中文字幕被公侵犯的漂亮人妻 | 18分钟处破好疼哭视频在线观看 | 牲欧美bbbwbbbwbbbw | 同性情a三级a三级a三级 | 泽村玲子av | 成人免费在线观 | les欧美xxxxvideo | 国产欧美日韩小视频 | 午夜无码国产理论在线 | 被黑人猛躁10次高潮视频 | 狠狠躁夜夜躁人人爽天天不卡软件 | 九七在线视频 | a√天堂中文 | 又粗又硬大战丰满少妇 | 中文字幕乱码在线观看 | 日韩欧美一区二区三区视频 | av大片网| 上床视频在线观看 | 三级网站 | 看免费的毛片 | 国产女人18毛片水真多 | 日日躁夜夜躁白天躁晚上 | 成人在线午夜视频 | 日本在线激情 | 色婷婷小说 | 欧美不卡 | 粉嫩一区二区三区 | 日本在线免费观看 | 亚洲中文字幕久久精品蜜桃 | 亚洲国产精品综合久久网各 | www伊人久久| 桃色网站在线观看 | 日韩在线视频网 | 日本www色 | 激情网五月 | 国产成年无码久久久久毛片 | 一本色道久久88综合亚洲精品ⅰ | 亚洲精品无码成人aaa片 | 国产在线拍揄自揄拍无码视频 | av最新天| 日韩色中色 | 久久 国产 尿 小便 嘘嘘 | 99中文字幕在线观看 | 性欧美高清 | 炕上如狼似虎的呻吟声 | 精品亚洲一区二区三区四区五区 | 99久久精品国产一区二区蜜芽 | 亲子乱一区二区三区 | 嫩草影院久久 | 亚洲第一网站男人都懂 | 久久黄色录像 | 777米奇色狠狠888俺也去乱 | 98色花堂永久在线网站 | 久久四虎 | 亚洲成熟女人毛毛耸耸多 | av大西瓜| 久久久久亚洲精品中文字幕 | 五月激情婷婷综合 | av小四郎最新地址入口 | 少妇3p视频| 国产精品久久久久影院 | 性色欲网站人妻丰满中文久久不卡 | 日韩美女爱爱 | 国产探花在线精品一区二区 | 黄色a一片 | 日韩乱码人妻无码中文字幕视频 | 亚洲伦理在线视频 | 国产精品成人一区 | 中文字幕无码日韩专区免费 | 久久98| 中文字幕亚洲视频 | 黄色免费在线播放 | 有码中文字幕在线观看 | 手机看片国产日韩 | 亚洲人成人天堂h久久 | 成年人色网站 | 亚洲精品少妇久久久久久 | 亚洲人成综合 | 朋友的姐姐2在线观看 | 蜜桃视频在线观看免费视频网站www | 国产伦精品一区二区三区视频免费 | 精品黄色网 | 先锋影音xfyy5566男人资源 | 精品毛片一区二区三区 | 精品一区二区在线视频 | 色屁屁www影院入口免费 | 国产良妇出轨视频在线观看 | 美女性感毛片 | 日韩深夜影院 | 亚洲午夜免费视频 | 一本大道无码人妻精品专区 | 国偷自产av一区二区三区 | 天堂av在线官网 | av 黄色| 一级免费视频 | av资源首页 | 欧美三级欧美一级 | 日韩激情一区二区 | 污污的视频在线免费观看 | 一区二区三区四区五区视频 | 99精品视频在线观看 | 夜夜爽一区二区三区 | 伊人久久大香线蕉亚洲五月天 | 免费一级淫片红桃视频 | 尤物九九久久国产精品的特点 | 韩国精品一区二区三区无码视频 | 国产在线网站 | 少妇裸体淫交视频免费观看 | 欧美色成人综合影院 | 黄色片免费观看 | 天堂国产欧美一区二区三区 | 国产免费专区 | 日韩欧美猛交xxxxx无码 | 夜夜夜夜猛噜噜噜噜噜婷婷 | 国产传媒中文字幕 | 少妇性aaaaaaaaa视频 | 国产成人综合久久精品免费 | 午夜剧场在线 | 8888四色奇米在线观看 | 国产精品成人免费视频网站 | 久久久久久国产精品日本 | 国产成人精品在线观看 | 欧美网站一区 | 无码人妻一区二区三区免费n鬼沢 | 久久精品国产片 | 无码视频一区二区三区在线观看 | 日本特黄特色大片免费视频老年人 | va在线观看 | 欧美性受xxx黑人xyx性爽 | 日韩一区二区三区视频在线观看 | 国产日韩亚洲欧美 | 欧美成人午夜免费视在线看片 | 亚洲精品一区二区三天美 | 成人观看 | 亚洲精品视频一区 | 日本老熟妇毛茸茸 | 精品国产乱码久久久久久浪潮 | 91午夜少妇三级全黄 | 欧美激情视频一区二区三区不卡 | 日本91在线 | 撸撸在线视频 | 人与拘一级a毛片 | www.中文字幕在线观看 | 亚洲一区视频在线 | 色婷婷91 | 色就是色欧美 | 日韩乱码人妻无码中文字幕久久 | 国产极品尤物 | 欧美wwwxxxx| 极品美女一区二区三区 | 曰本在线| 久久天堂av综合合色蜜桃网 | 亚洲色偷偷男人的天堂 | 手机在线成人av | 欧洲亚洲一区二区 | 日韩欧美中文字幕在线三区 | 调教女m荡骚贱淫故事 | 黑人日批视频 | 韩国三级大全久久网站 | 亚洲国产精品一区二区久久hs | 岛国av一区 | 亚洲午夜色 | 亚洲国产精品久久久久久无码 | 成人福利视频在 | 在线播放成人av | 成年人午夜免费视频 | 中文字幕乱码人妻综合二区三区 | 伊人久久视频 | 麻花豆传媒mv在线观看 | av一区二区三区四区 | 狂野欧美性猛交xxxxhd | 午夜婷婷网| 51视频国产精品一区二区 | 超碰av在线免费观看 | 在线免费观看毛片 | 亚洲成熟女人毛毛耸耸多 | 成人网在线 | 爱爱视频天天干 | 无码免费一区二区三区 | 国产特级毛片aaaaaa | 日本黄色一级视频 | 熟妇人妻av无码一区二区三区 | 国产99久久久欧美黑人 | 非洲人与性动交ccoo | √天堂中文官网8在线 | 91啦丨九色丨刺激 | 日韩av一卡二卡 | 欧美三级韩国三级日本三斤在线观看 | 人妻体内射精一区二区 | 40岁干柴烈火少妇高潮不断 | 国产精品男同 | www.99在线| 漂亮人妻被中出中文字幕 | 中文字幕亚洲在线观看 | 免费日本黄色片 | 中文无码人妻有码人妻中文字幕 | 国产成人精品手机在线观看 | 狠狠躁天天躁夜夜添人人 | 国产精品午夜小视频观看 | 国产一区二区三区四区五区tv | 中文字幕99页 | 毛片无码国产 | 日产国产精品亚洲系列 | 国产99久久久国产 | 色哟哟国产精品色哟哟 | 欧美成人免费观看全部 | 91成人国产综合久久精品 | 久久久国产精品亚洲一区 | 中文字幕无码乱码人妻系列蜜桃 | 全部免费毛片在线播放 | 国产精品久久久久久久久久久不卡 | 国产良家自拍 | 国产福利一区二区三区 | 欧美老妇牲交videos | 亚洲国产日韩在线 | 欧美 日韩 亚洲 在线 | 丁香社区五月天 | 亚洲乳大丰满中文字幕 | 欧美一二三级 | 风韵犹存的岳的呻吟在线播放 | 国产一级片免费视频 | 俺去俺来也在线www色官网 | 美女一区二区三区 | 日日爱666 | 欧美日韩一区二区三区不卡 | 熟女俱乐部五十路六十路av | 韩国性生交大片免费观看视频 | 欧美专区第一页 | 一级黄色片大全 | 亚洲欧洲无码一区二区三区 | 暗呦丨小u女国产精品 | 首页 动漫 亚洲 欧美 日韩 | 亚洲精品综合一区二区三区在线 | 中国女人内谢69xxxxxa片 | 日韩美一区二区三区 | 国产在线播| 日本黄色免费网址 | 精品国产精品三级精品av网址 | 欧美又大粗又爽又黄大片视频 | 毛片哪里看 | 天海翼一区二区三区免费 | 日本中文字幕在线观看视频 | 祥仔av免费一区二区三区四区 | 国产丝袜美女一区二区三区 | 18禁真人抽搐一进一出动态图 | 乱日视频 | 日韩精品一区二区三区亚洲综合 | 日本精品在线播放 | 黄色免费一级 | 5级黄色片 | www久久久com| 亚洲国产黄色 | 丝袜美腿亚洲一区二区 | 国产精强码久久久久影片at | 欧美精品一区在线播放 | 国产农村一国产农村无码毛片 | 国产中文字幕一区 | 欧美成人乱码一二三四区免费 | 午夜鲁鲁 | 亚洲成人精品 | 欧美精品小视频 | 色女人在线| 日韩人妻ol丝袜av一二区 | 日韩激情视频在线 | 国产精品久久二区 | 亚洲精品一区二区三区高潮 | 国产日 | 久久国产二区 | 九色视频网 | 日本一区二区视频在线 | 国产伦精品一区二区三区免费优势 | 使劲插视频| 国产对白受不了了中文对白 | 老司机午夜精品99久久免费 | 好吊妞视频这里有精品 | 亚洲天堂一区二区三区四区 | 在线欧美 | 精产国品一区二区三区四区 | 欧美人与zoxxxx另类 | 国产精品99久久久久久人免费 | 夜夜添无码一区二区三区 | 国产1区2区3区中文字幕 | 99色99| 久久人人爽爽爽人久久久 | 在线观看av播放 | 91免费版黄色 | 欧美日韩一区二区区别是什么 | 久久97久久97精品免视看秋霞 | 熟妇五十路六十路息与子 | 极品色av影院 | 亚洲成av人片在线观看无码 | 91精品国产麻豆国产自产影视 | 91污在线观看 | 日韩欧美国产一区二区 | 小箩莉末发育娇小性色xxxx | 亚洲熟妇丰满大屁股熟妇 | 国产午夜精品久久久 | 国产乱子伦精品免费女 | 欧美日韩国产一区二区 | 最新中文字幕久久 | 免费观看激色视频网站 | 日本欧美久久久 | 国精品人妻无码一区二区三区喝尿 | 国产一区二区三区四区五区加勒比 | 天天躁夜夜躁狠狠躁2020色戒 | 国产香蕉视频在线播放 | 国产美女永久无遮挡 | 久久一区 | 国产精品专区在线观看 | av在线不卡免费观看 | 在线黄色免费 | 成人国内精品久久久久影院成.人国产9 | 日本在线 | 中文 | 久久久久久九九精品久 | 精品国产乱码一区二区三区 | 亚洲热妇无码av在线播放 | 国产真人无遮挡作爱免费视频 | 久久婷婷丁香五月综合五 | 国产精品成人一区二区不卡 | 日韩不卡手机视频在线观看 | 伊人久久大香线蕉综合四虎小说 | 国产精品久久久久乳精品爆 | 日韩精品免费一区二区三区 | 国产毛片毛片毛片毛片 | 欧美一区二区三区在线免费观看 | 中文字幕av高清片 | 在线免费观看黄色av | 日韩av无码中文无码不卡电影 | 日韩在线免费播放 | 亚洲免费网址 | 女人做爰全过程免费观看美女 | 视频在线一区二区 | 成人免费无尽视频 | www.色五月| 亚洲码国产日韩欧美高潮在线播放 | 蜜桃又黄又粗又爽av免 | 中文字幕乱码人妻无码久久 | 亚洲男人的天堂av手机在线观看 | 在线观看免费av网站 | 日本丰满妇人成熟免费中文字幕 | 中文字幕亚洲高清 | 97人妻熟女成人免费视频色戒 | 一区二区久久精品66国产精品 | ts人妖在线| 天天躁夜夜躁狠狠眼泪 | 青娱乐极品视觉盛宴国产视频 | 成人综合婷婷国产精品久久蜜臀 | 亚洲欧美乱综合图片区小说区 | 欧美做受又硬又粗又大视频 | 亚洲成av人片一区二区三区 | 久久精品人人做人人爱爱站长工具 | 在线看不卡av| 欧美性在线视频 | 日韩毛片一区二区三区 | 国内av| 欧美一级淫片免费视频欧美辣图 | 欧美精品18videos性欧美 | 亚洲国产网站 | 免费在线观看网址 | 欧美色xxxx | 国产成人aaaa | 狠狠色噜噜狠狠狠888米奇视频 | 成人性生交大片免费看r视频 | а√天堂www在线天堂小说 | 欧美特黄视频 | 亚洲精品久久夜色撩人男男小说 | 国产精品久久久久久久久久久久午衣片 | 欧美67194 | 国产精品捆绑调教网站 | 日本道中文字幕 | 久久精品人妻少妇一区二区三区 | 欧美日韩在线国产 | 亚洲欧美国产毛片在线 | 亚洲精品456在线播放第一页 | 欧美一性一乱一交 | 欧美自拍区 | 亚洲精品乱码久久久久久不卡 | 91精品国产92久久久久 | 亚洲国产欧美在线人成 |

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品