• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于STM32的mbed OS移植與低功耗研究

    2020-05-12 09:09:44楊東升
    小型微型計算機系統(tǒng) 2020年3期
    關鍵詞:看門狗開發(fā)板低功耗

    張 翔,楊東升

    1(中國科學院 沈陽計算技術(shù)研究所有限公司,沈陽 110168)

    2(中國科學院大學,北京 100049)

    E-mail:492490817@qq.com

    1 引 言

    物聯(lián)網(wǎng)操作系統(tǒng)的概念,最先來自于無線傳感器操作系統(tǒng),知名的有TinyOS 和Contiki.與傳統(tǒng)的嵌入式設備相比,物聯(lián)網(wǎng)感知層具有更小的設備、更低的功耗、更高的安全性和更靈活的聯(lián)網(wǎng)能力;物聯(lián)網(wǎng)通信層需要支持各種通信協(xié)議和協(xié)議轉(zhuǎn)換;應用層需要云計算能力;在軟件方面,支持物聯(lián)網(wǎng)設備的軟件比傳統(tǒng)的嵌入式設備軟件更加復雜[1].于是就有了物聯(lián)網(wǎng)操作系統(tǒng)IoT OS,簡而言之,IoT OS就是具備物聯(lián)網(wǎng)需求的嵌入式操作系統(tǒng).從2014年至今,陸續(xù)出現(xiàn)了支持不同廠商的MCU設備的IoT OS,ARM mbed OS正是其中突出的一員.

    物聯(lián)網(wǎng)技術(shù)現(xiàn)已被廣泛應用于智能電網(wǎng)、智能交通、環(huán)境監(jiān)測等各種領域[2,3],為了適應新的物聯(lián)網(wǎng)時代的變化,ARM提供了一個全新的開發(fā)方式,Arm mbed將物聯(lián)網(wǎng)的所有基本組件(包括安全性,通信和設備管理)集成到一整套軟件中,以協(xié)助開發(fā)低功耗、產(chǎn)品級的物聯(lián)網(wǎng)設備和并優(yōu)化生產(chǎn)流程.mbed包括了云服務、客戶端、mbed OS等幾大部分.在mbed 上可以使用mbed TSL實現(xiàn)網(wǎng)絡安全協(xié)議,也可以實現(xiàn)CoAP 這樣的物聯(lián)網(wǎng)協(xié)議,支持訪問Restful API來接入中國移動的OneNet物聯(lián)網(wǎng)云端服務[4].Arm 公司希望mbed成為物聯(lián)網(wǎng)領域的android,在mbed OS 中注入了大量的最新技術(shù).本文正是在此背景下,針對mbed OS的功能需求進行研究,由于mbed OS目前僅支持受限的開發(fā)板型號,提出了一套mbed OS的移植流程,并在STM32設備上驗證,并提出了低功耗優(yōu)化方案,增加了低功耗看門狗功能,測試了系統(tǒng)功耗水平.

    2 mbed OS概述

    mbed不僅僅指一個嵌入式系統(tǒng),也是一個面向ARM處理器的設備開發(fā)平臺,Arm mbed提供高效,安全,快速開發(fā)下一個物聯(lián)網(wǎng)產(chǎn)品所需的操作系統(tǒng),工具和云服務,內(nèi)容涉及從硬件到軟件、從物端到云端等,功能包括安全、通信傳輸、設備管理等方面,為實現(xiàn)物聯(lián)網(wǎng)從原型、開發(fā)到生產(chǎn)的快速便捷.

    mbed OS為免費的開源物聯(lián)網(wǎng)操作系統(tǒng),面向Cortex-M系列處理器,它通過mbed web complier在線編譯,代替了傳統(tǒng)的離線編譯器,使整個開發(fā)在瀏覽器中完成,使用它編譯程序而不必安裝或設置任何東西,為了省去用戶開發(fā)環(huán)境搭建的麻煩,用戶只要上網(wǎng)就可以開發(fā)[5].mbed將硬件相關程序使用中間件封裝,因此基于mbed OS的開發(fā)只用專注于編寫調(diào)用硬件功能接口的C/C++應用程序,而不需要關心底層驅(qū)動,極大限度地降低了嵌入式開發(fā)的難度,簡化了軟件開發(fā)流程,縮短了開發(fā)中的學習過程[6].同時mbed OS搭載CMSIS框架,CMSIS專為Cortex-M而設計,是獨立于供應商的硬件抽象層[7].它屏蔽了微處理器之間的差異,使得基于mbed的用戶可以輕松地替換來自不同制造商的ARM微處理器,而不用更改工程代碼.

    對于嵌入式開發(fā),mbed OS最大的幫助就是提供了許多有用的組件,它提供的強大的API功能幾乎包含控制器內(nèi)部各種模塊的使用,如串行通信、中斷、模擬/數(shù)字信號、網(wǎng)絡接口等,使用mbed編寫簡單的應用程序只需要短短的幾行代碼[8].它的Libraries提供了各種硬件、傳感器的庫,使得設備接入更加快捷.mbed OS與Arduino非常相似,Arduino具有便捷靈活、方便上手的特點,在嵌入式程序中非常流行[9].同樣的,它們易于使用,直觀的編程和設計,降低了開發(fā)門檻,使得初學者也能快速獲得足以創(chuàng)造具有某種技術(shù)水平的新產(chǎn)品的能力[10],但是mbed的功能更加強大,應用領域更廣.

    3 mbed在STM32上的移植

    mbed采用網(wǎng)頁編譯方式,通過在線選擇mbed支持的開發(fā)板型號,從而屏蔽掉硬件驅(qū)動部分,在方便的同時卻存在芯片的局限性,也存在無法調(diào)試等問題.目前mbed已經(jīng)逐步支持200多種芯片,但是想讓mbed OS支持其他型號的MCU需要移植.mbed OS作為軟件層面的系統(tǒng)支持,移植則是必要任務.

    3.1 mbed代碼目錄

    圖1為mbed的代碼層次結(jié)構(gòu),它包括以下內(nèi)容:

    drivers:drivers目錄中存放的是用戶需要調(diào)用的mbed相關的.h頭文件;

    events:事件框架;

    features:支持的功能,包括BLE、LWIP、TLS等;

    hal:mbed OS定義的API函數(shù),依賴于TARGETS目錄提供的硬件適配支持;

    RTOS:mbed實時操作系統(tǒng)文件;

    CMSIS:MCU與外設之間的軟件接口標準及啟動鏈接文件;

    targets:特定開發(fā)板實現(xiàn)hal需要的接口、連接腳本文件、使用的CMSIS頭文件.

    其中drivers、events、features、hal、RTOS為MCU無關層,CMSIS、targets為MCU有關層.

    圖1 mbed OS代碼目錄

    3.2 mbed OS移植方案

    本次移植在編譯環(huán)境Keil uvision 5上進行,通過導出mbed工程源碼,通過更改底層參數(shù)配置、部分代碼、芯片庫文件等方式,通過移植mbed OS到STM32L100R8T6及STM3-2F103RET6中,驗證了移植流程.

    3.2.1 導出工程源碼

    為了更快速地建立Keil工程,選擇在mbed在線編譯器中導出工程源碼.在mbed compiler中點擊Add Board,界面中展示的是mbed支持的開發(fā)板型號,使用這些開發(fā)板可以直接使用網(wǎng)頁編譯工程,并直接燒錄進mbed中,而其他芯片目前并沒有mbed支持,如需要移植mbed到STM32L100R8T6時選擇NUCLEO-L152RE開發(fā)板,因為該開發(fā)板搭載STM32L152RE,與STM32L100R8T6同屬于L系列,都搭載有Cortex-M3內(nèi)核,是相同內(nèi)核、相似型號的開發(fā)板,同理移植mbed到STM32F103RET6中時,可以選擇NUCLEO-F103RB開發(fā)板,同屬于F系列,都搭載有Cortex-M3內(nèi)核.工程建立后右鍵 Export Program,toolchain 選擇 uvision5,導出后解壓并打開,即可得到一份 mbed OS的Keil uvision 5離線工程文件.

    3.2.2 適配芯片型號

    由于得到的工程文件是適配其他型號芯片的mbed OS工程,所以需要修改Keil配置以及工程中針對芯片型號的代碼文件.

    1)在uvision 5的 Options for Target選項中點擊device,進入芯片型號選擇,將原本的芯片型號改為新的芯片型號.

    2)更改頭文件stm32l1xx.h文件,文件可在工程中直接找到,也可在存放的文件夾目錄 targetsTARGET_STM TARGET_STM32L1TARGET_NUCLEO_L152REdevice中找到,(類似地,如STM32F103移植則修改stm32f1xx.h)

    原代碼包含以下兩行(不連續(xù)):

    #define STM32L152xE

    /* #define STM32L100xBA */

    第一行為原芯片型號,注釋掉第一行,并取消注釋掉第二行,第二行為移植的目標型號.這一步是更改了代碼中芯片的宏定義.

    3.2.3 修改配置文件

    1)更改啟動文件和庫頭文件

    mbed使用STM32 HAL庫,需從官方重新下載對應頭啟動文件和庫文件,刪除原工程中該部分文件并從新導出.

    STM32L152re啟動頭件為startup_stm32l152xe.S(目標目錄targetsTARGET_STMTARGET_STM32L1TARGET_NUCLEO_L152REdeviceTOOLCHAIN_ARM_STD)

    庫頭文件為stm32l152xe.h(目標目錄 targetsTARGET_STMTARGET_STM32L1TARGET_NUCLEO_L152REdevice)

    例如,使用 stm32l100xb.h 替換掉了 stm32l152xe.h,startup_stm32l100xba.S替換startup_stm32l152xe.S,則該步驟完成.

    2)PeripheralNames.h、PeripheralPins.c及PinNames.h引腳文件修改.

    因為芯片差異,該部分需要對應芯片編程手冊,更改配置文件,引腳功能定義圖一般在芯片手冊的Table 8.

    PeripheralNames.h文件中,對ADC、DAC、UART、SPI、I2C、PWM功能進行了初始化,例:

    typedef enum {

    UART_1=(int)UART1_BASE,

    UART_2=(int)UART2_BASE,

    UART_3=(int)UART3_BASE,

    UART_4=(int)UART4_BASE,

    UART_5=(int)UART5_BASE,

    } UARTName;

    初始化了5個通用異步串口,而STM32L100R8T6中,只有三個UART串口,所以刪除或注釋掉UART_4和UART_5兩行.

    PeripheralPins.c中是對具有ADC、DAC、UART、SPI、I2C、PWM功能的管腳一一對應,進行功能初始化,仍然以UART為例,如圖2所示,同樣注釋掉UART4和UART5兩行.

    圖2 PeripheralPins.c部分代碼

    同時,需要修改其他行,UART串口號與指定功能管腳一一對應,該文件中其他代碼如SPI、DAC等同理.

    PinNames.h中對所有GPIO管腳初始化,對部分功能管腳進出了宏定義,如:

    LED1 =PA_5,

    I2C_SCL =PB_8,

    I2C_SDA =PB_9,

    也可按需修改.

    3)us_ticker_data.h

    us_ticker_data.h中是對CPU定時器的相關配置文件(目標目錄targetsTARGET_STMTARGET_STM32L1TARGET_NUCLEO_L152REdevice.

    文件中部分代碼為:

    #define TIM_MST TIM5

    #define TIM_MST_IRQ TIM5_IRQn

    #define TIM_MST_RCC __TIM5_CLK_ENABLE()

    #define TIM_MST_DBGMCU_FREEZE __HAL_DBGMCU_FREEZE_TIM5()

    由于STM32L100R8T6并不存在TIM5,則修改為可用定時器TIM4,然后修改定時器位數(shù):

    #define TIM_MST_BIT_WIDTH 32 // 16 or 32

    原芯片中為32位定時器,是原芯片型號L152RE中特有,L100R8T6不存在32位定時器,則TIM4為16位定時器,則改為16;

    4)修改mbed_config.h文件

    該文件位置主目錄中,在該文件中有包括較多的數(shù)值參數(shù),例波特率等,按照工程需求對應修改.

    編譯程序,如編譯成功,則得到了一份mbed OS在Keil uvision 5上的離線移植程序.

    3.2.4 實驗測試

    mbed OS提供了比較多功能的API,此時我們將移植板與計算機通過UART串口連接,由于在移植過程中,引腳的幾個文件已經(jīng)對UART等引腳標識并初始化,如果移植成功,則電腦與開發(fā)板間可以正常通訊.

    使用以下代碼,使用定時器,通過串口使用計算機屏幕返回一次通訊成功所需要的運行時間.

    #include "mbed.h"

    Timer t; //定義定時器t

    Serial pc(USBTX,USBRX);

    int main(){

    t.start(); //啟動定時器

    pc.printf("The time taken was");//在屏幕上顯示

    t.stop();//停止定時器

    pc.printf("%f seconds ",t.read());

    }

    如圖3所示為計算機串口調(diào)試界面結(jié)果,至此表示mbed OS移植成功,并顯示了一次通訊時間為0.017秒.

    圖3 串口通訊程序結(jié)果

    4 低功耗模式設計

    mbed OS通過void sleep()調(diào)用睡眠功能,它選擇最合適的睡眠模式,mbed OS有兩種可用的睡眠模式:1)睡眠模式,核心的系統(tǒng)時鐘停止,直到發(fā)生復位或中斷.這消除了處理器,存儲器系統(tǒng)和總線使用的動態(tài)功率.此模式保持處理器,外設和存儲器狀態(tài),外設繼續(xù)工作并可產(chǎn)生中斷,可以通過任何內(nèi)部外設中斷或外部引腳中斷喚醒處理器.這時所有線程都處于等待狀態(tài).2)深度睡眠模式,此模式類似于睡眠但節(jié)省更多功率并具有更長的喚醒時間,它通過關閉高速時鐘節(jié)省了額外的電力.因此,只有在不使用高速時鐘的外設時才能進入該模式.在大多數(shù)情況下,只要系統(tǒng)空閑,mbed OS就會自動進入合適的睡眠模式.

    4.1 低功耗模式優(yōu)化

    為實現(xiàn)最大限度的功耗優(yōu)化,提出了可行性方案:

    1)覆蓋空閑循環(huán)任務:空閑循環(huán)是后臺系統(tǒng)線程,當沒有其他線程準備好運行時,調(diào)度程序執(zhí)行.當應用程序等待事件發(fā)生時,會在后臺執(zhí)行空閑循環(huán)任務.空閑循環(huán)任務為最低優(yōu)先級進程,一旦有更高優(yōu)先級進程進入就緒態(tài)時,空閑任務會立即切換至新任務,空閑任務處理時,會調(diào)用處理器入睡眠模式,是一種自動低功耗方法,所以可以通過定制空閑任務功能,系統(tǒng)會在每次空閑時低能耗執(zhí)行該任務,是可行的省電方案.

    2)創(chuàng)建異步回調(diào)任務:許多mbed庫依賴于某種I/O事務.無論是切換引腳,I2C,SPI還是串行傳輸,甚至是其他東西,他們都有一個共同點:它們往往需要執(zhí)行時間.由于總線速度通常遠低于核心運行的頻率,因此這些庫往往會引入大量類似的等待代碼.由于這只是在沒有做任何有用的情況下燃燒CPU周期,設置一個異步的回調(diào)函數(shù)來實現(xiàn)傳輸,在程序流中調(diào)用,將他們發(fā)給外設執(zhí)行,并在傳輸完成時獲得回調(diào)狀態(tài),以來解放CPU,在回調(diào)執(zhí)行期間可以做更多的其他操作或是讓CPU進入睡眠狀態(tài)以節(jié)省大量功耗.

    event_callback_t functionpointer;//回調(diào)函數(shù)

    void handler(int events){

    //在此處理事件,events參數(shù)表示事件標志

    }

    void init_fp(){

    //設置functionpointer對象以指向此對象上的′handler′方法

    functionpointer.attach(handler);

    }

    3)利用超時和斷續(xù)中斷:超時表示在外部事件發(fā)生后按計劃時間以后觸發(fā)中斷,使用timeout函數(shù)實現(xiàn),觸發(fā)一個延遲事件是一種常見的需求;斷續(xù)表示建立一個循環(huán)中斷,周期性調(diào)用ticker斷續(xù)函數(shù),例如讓LED每隔幾秒閃爍一次,在嵌入式系統(tǒng)中創(chuàng)建一個周期性的事件也是最自然和常見的需求.然而上述兩種需求如果使用延遲函數(shù)wait()去實現(xiàn),比如在循環(huán)中使用wait()創(chuàng)建時間周期達到周期性觸發(fā)事件的效果,該方法占用CPU,使CPU無法完成其他的任務,而使用超時和斷續(xù),釋放CPU去做任何需要的事情,而測量變化時間的任務交給定時器硬件在后臺完成,從而在計劃時間觸發(fā)中斷,調(diào)用某一任務,而調(diào)用的頻率由程序決定,不限制所創(chuàng)建的裝置的數(shù)量.

    在程序流中使用超時代替延遲函數(shù)是一種功耗的優(yōu)化,它避免了CPU在等待延遲函數(shù)wait()到期時的阻塞狀態(tài),還有一種低功耗超時方法,LowPowerTimer繼承自Timer類.在這種情況下,計時器即使在深度睡眠模式下也繼續(xù)運行.它依賴于lp_ticker,這是低功率的計時器,測量精度在毫秒左右,在某些精度要求低的情況下可以使用它創(chuàng)建超時.同時超時也可以以回調(diào)的方式運行,我們通過創(chuàng)建超時任務,并設計一個回調(diào)函數(shù)標記超時進行狀態(tài),并開始睡眠直到超時結(jié)束,采用異步的方式,將睡眠程序包裝在超時狀態(tài)的while循環(huán)中,超時結(jié)束后繼續(xù)執(zhí)行后續(xù)的程序,這種方式避免的以同步方式觸發(fā)睡眠的安全性問題,同時優(yōu)化了功耗.例當我們希望停止程序流半秒時,使用低功耗計時器創(chuàng)建一個超時任務.

    LowPowerTimeout Response;

    bool flag=false; //回調(diào)狀態(tài)

    void callback(void){

    flag=true;

    }

    void main(void){

    Response.attach(callback,0.5f);

    //確保我們只在超時到期后繼續(xù)執(zhí)行程序流程.

    while(!flag)sleep();

    .... //后續(xù)程序流程

    }

    4.2 看門狗實現(xiàn)

    看門狗程序作為嵌入式設備的常用手段,保證設備的正常運行,看門狗定時器作為獨立的定時器,需要不斷的重啟計時,俗稱喂狗,如果沒有及時喂狗,則定時器溢出,看門狗程序判定為系統(tǒng)崩潰,會復位重啟系統(tǒng)[11].mbed OS中沒有實現(xiàn)看門狗功能,本文實現(xiàn)了在mbed OS中啟動看門狗任務,并同時提出了其在低功耗睡眠模式下的運行方法.

    本文導入HAL庫的IWDG函數(shù)實現(xiàn)看門狗程序編寫并在mbed OS中啟動,已知的看門狗喚醒時間公式為:溢出時間=預分頻系數(shù)*重裝載值/40,單位為ms,HAL庫中IWDG_PRESCALER_表示預分頻系數(shù),如預分頻系數(shù)采用64,重裝載值采用625,則可按公式計算出1000ms即1s的溢出時間,那么需要在溢出時間內(nèi)1s內(nèi)實行喂狗,否則系統(tǒng)會復位重啟.參考設置例程如下:

    voidwatchdog(void){

    hiwdg.Instance=IWDG;

    hiwdg.Init.Prescaler=IWDG_PRESCALER_64

    hiwdg.Init.Reload=625;

    HAL_IWDG_Init(&hiwdg);

    }

    在喂狗時調(diào)用HAL_IWDG_Refresh(&hiwdg)函數(shù)實現(xiàn)喂狗,如在mbed中設置好watchdog函數(shù)后實現(xiàn)LED閃爍的喂狗程序如下:

    while(true){

    led1=!led1;

    HAL_IWDG_Refresh(&hiwdg);

    wait(0.5);

    }

    LED燈與喂狗程序同處于延遲0.5s的循環(huán)中,每0.5s LED閃爍一次并實行一次喂狗操作,如果系統(tǒng)未正常運行,那么看門狗溢出,系統(tǒng)復位.

    看門狗是為了檢測和解決由軟件錯誤引起的故障,然而在低功耗模式下CPU休眠,無法進行正常的喂狗程序,而看門狗定時器作為獨立的振蕩器存在,開啟后無法被關閉,在sleep模式下如果不進行喂狗操作,則整個系統(tǒng)會頻發(fā)復位.針對該情況,本文提出了采用超時喚醒的方式實行喂狗操作,設置一個超時中斷作為鬧鐘,設置一個標識標記中斷的觸發(fā)狀態(tài),在中斷函數(shù)中實行喂狗操作和中斷觸發(fā)狀態(tài)標記,如設置一個5秒鐘的超時中斷,當超時到期時,喚醒CPU,并標記中斷觸發(fā),判定中斷標識后執(zhí)行喂狗操作并再次進入sleep()模式,如果CPU未成功喚醒,看門狗溢出,或CPU由其他未知錯誤導致喚醒,由于中斷觸發(fā)狀態(tài)標識未更新,不會進行喂狗操作,同樣導致看門狗溢出.其具體流程如圖4所示.

    圖4 低功耗看門狗流程圖

    4.3 低功耗性能測試

    1)硬件環(huán)境:本實驗基于實驗室自主研發(fā)開發(fā)板,帶有M3內(nèi)核的STM32L100RB芯片.

    存儲記錄儀,用于測量板件程序運行時電壓變化情況,根據(jù)終端的電阻大小,通過公式I=U/R,得到運行電流.

    2)實驗方案:通過對將mbed OS移植適配到該板件后編寫簡單的LED燈閃爍程序,測量在正常運行狀態(tài)下功耗情況,然后通過創(chuàng)建空閑循環(huán)任務實現(xiàn)LED閃爍的低功耗方案,使系統(tǒng)切換到低功耗模式下,觀測并記錄低功耗下功耗變化.選用μC/OS-II系統(tǒng)做功耗對比,μC/OS-II是知名的開源實時操作系統(tǒng),它代碼結(jié)構(gòu)清晰明了,可裁剪,系統(tǒng)短小精悍,是研究與學習實時操作系統(tǒng)的首選[12].同樣的,將功耗與無操作系統(tǒng)情況下和移植μC/OS-II操作系統(tǒng)做對比,同樣測量正常運行和低功耗情況下功耗情況,對比實驗結(jié)果.

    圖5 電壓變化圖

    如圖5為存儲記錄儀中顯示mbed的電壓變化情況,總的實驗數(shù)據(jù)結(jié)果如表1所示.

    表1 功耗測試實驗數(shù)據(jù)表

    Table 1 Power test experimental data sheet

    操作系統(tǒng)模式平均電壓電阻平均電流-正常25mV10Ω2.5mA-低功耗6mV10Ω0.6mAμC/OS-II正常70mV10Ω7mAμC/OS-II低功耗20mV10Ω2mAmbed正常40mV10Ω4mAmbed低功耗12mV10Ω1.2mA

    如上所示,可以得出結(jié)論,在無操作系統(tǒng)的情況下,裸板在運行和低功耗模式下功耗是最低的,嵌入式操作系統(tǒng)因為其更多功能的支持,功耗有所增加.但在在低功耗和正常運行情況下,mbed功耗仍相當可觀,相較于μC/OS-II操作系統(tǒng),功耗均接近于其的二分之一.

    5 結(jié)束語

    本文基于mbed OS,根據(jù)其在物聯(lián)網(wǎng)中的參考架構(gòu),對其中的關鍵技術(shù)進行探討,基于本文提出的移植方案可以突破mbed OS芯片局限,使其支持更多的MCU設備,基于本文設計的低功耗終端、傳感器設備等可用于實際物聯(lián)網(wǎng)場景.實踐表明mbed確實代碼簡約、功能強大,極大程度地降低了開發(fā)難度和成本,在能耗上也完全符合物聯(lián)網(wǎng)低功耗的需求,具有實用價值.

    猜你喜歡
    看門狗開發(fā)板低功耗
    一種高速低功耗比較器設計
    把他叫醒
    Microchip最新推出兩款PIC32 Curiosity開發(fā)板
    淺析單片機開發(fā)板的設計與制作
    電子制作(2017年22期)2017-02-02 07:10:14
    一種采用FPGA實現(xiàn)的通用看門狗電路
    大眾科技(2015年11期)2015-11-24 01:57:16
    把它叫醒
    把它叫醒
    Mouser為您呈上開發(fā)關鍵之STMicroelectronics Nucleo開發(fā)板
    Arduino和Atmel發(fā)布Arduino Zero開發(fā)板
    ADI推出三款超低功耗多通道ADC
    免费在线观看完整版高清| 亚洲精品一卡2卡三卡4卡5卡 | 麻豆av在线久日| 欧美亚洲 丝袜 人妻 在线| 国产男女超爽视频在线观看| 欧美精品人与动牲交sv欧美| 国产亚洲欧美精品永久| 亚洲精品国产av成人精品| 18禁观看日本| 成人亚洲精品一区在线观看| 欧美日韩视频精品一区| 我的亚洲天堂| 激情视频va一区二区三区| 巨乳人妻的诱惑在线观看| 成在线人永久免费视频| 亚洲熟女精品中文字幕| 两个人看的免费小视频| 美女视频免费永久观看网站| 男女床上黄色一级片免费看| 日本色播在线视频| 真人做人爱边吃奶动态| 丝瓜视频免费看黄片| 亚洲精品美女久久av网站| 大香蕉久久成人网| 青青草视频在线视频观看| 一级黄片播放器| 精品一品国产午夜福利视频| 人成视频在线观看免费观看| www.精华液| 日本欧美国产在线视频| 久久国产精品男人的天堂亚洲| 欧美日本中文国产一区发布| 观看av在线不卡| 亚洲欧美日韩高清在线视频 | 不卡av一区二区三区| 精品人妻1区二区| 女性生殖器流出的白浆| 久久这里只有精品19| 久久 成人 亚洲| 久久精品久久久久久噜噜老黄| 欧美黑人精品巨大| 午夜免费观看性视频| 久久久久精品人妻al黑| 国产熟女欧美一区二区| 麻豆av在线久日| 久久久精品国产亚洲av高清涩受| 日韩av免费高清视频| 久久99热这里只频精品6学生| 夜夜骑夜夜射夜夜干| 日韩一区二区三区影片| 人人妻,人人澡人人爽秒播 | av网站免费在线观看视频| 99香蕉大伊视频| 高潮久久久久久久久久久不卡| 一区二区三区激情视频| 免费在线观看完整版高清| 久久性视频一级片| 国产成人av激情在线播放| 天堂俺去俺来也www色官网| 国产不卡av网站在线观看| 日韩一本色道免费dvd| 多毛熟女@视频| 手机成人av网站| 精品一区二区三卡| 久久久亚洲精品成人影院| bbb黄色大片| 国产一区二区三区av在线| 久久久久久久久久久久大奶| 老司机午夜十八禁免费视频| 中文字幕最新亚洲高清| 国产在视频线精品| 久久久精品区二区三区| 中文字幕亚洲精品专区| 我要看黄色一级片免费的| 亚洲国产最新在线播放| 亚洲欧美精品综合一区二区三区| 免费日韩欧美在线观看| 精品高清国产在线一区| 日韩一区二区三区影片| 国产成人系列免费观看| 成在线人永久免费视频| 母亲3免费完整高清在线观看| 啦啦啦在线观看免费高清www| 国精品久久久久久国模美| 国产亚洲av高清不卡| 久久精品国产a三级三级三级| 久久精品国产亚洲av涩爱| 超色免费av| 亚洲国产欧美在线一区| 一级毛片我不卡| 建设人人有责人人尽责人人享有的| 欧美黑人精品巨大| 国产高清不卡午夜福利| 99精品久久久久人妻精品| 亚洲情色 制服丝袜| 久久国产精品人妻蜜桃| 又黄又粗又硬又大视频| 男女下面插进去视频免费观看| 亚洲中文av在线| 老鸭窝网址在线观看| 久久久国产一区二区| 夜夜骑夜夜射夜夜干| 一个人免费看片子| 波野结衣二区三区在线| 精品福利永久在线观看| 777米奇影视久久| 精品卡一卡二卡四卡免费| 精品国产超薄肉色丝袜足j| 免费黄频网站在线观看国产| 黄色视频不卡| 成年人黄色毛片网站| 欧美黄色淫秽网站| 婷婷丁香在线五月| 18禁裸乳无遮挡动漫免费视频| 99久久99久久久精品蜜桃| 在线亚洲精品国产二区图片欧美| 另类亚洲欧美激情| 你懂的网址亚洲精品在线观看| 老司机午夜十八禁免费视频| 久久国产精品人妻蜜桃| 精品国产国语对白av| 婷婷成人精品国产| 亚洲第一青青草原| 国产成人精品久久二区二区91| 爱豆传媒免费全集在线观看| 国语对白做爰xxxⅹ性视频网站| 无限看片的www在线观看| 飞空精品影院首页| 久久天堂一区二区三区四区| 亚洲精品日韩在线中文字幕| 多毛熟女@视频| 精品少妇一区二区三区视频日本电影| 久热这里只有精品99| 亚洲激情五月婷婷啪啪| 青春草亚洲视频在线观看| 久久久久网色| 手机成人av网站| 精品人妻1区二区| 人人妻人人澡人人爽人人夜夜| 视频区图区小说| 91老司机精品| 美女国产高潮福利片在线看| 免费少妇av软件| 成年美女黄网站色视频大全免费| 91麻豆av在线| 手机成人av网站| 免费看不卡的av| 欧美日韩视频精品一区| 国产免费视频播放在线视频| 国产在线一区二区三区精| 亚洲,欧美精品.| 夫妻性生交免费视频一级片| 成年人黄色毛片网站| 久久热在线av| 手机成人av网站| 黑人巨大精品欧美一区二区蜜桃| 国产欧美日韩精品亚洲av| 亚洲一卡2卡3卡4卡5卡精品中文| 成人18禁高潮啪啪吃奶动态图| 欧美 亚洲 国产 日韩一| 人人妻,人人澡人人爽秒播 | 19禁男女啪啪无遮挡网站| 日本午夜av视频| 国产1区2区3区精品| 亚洲国产精品国产精品| 美女高潮到喷水免费观看| 久久精品国产亚洲av高清一级| 久久久国产一区二区| 久久人人爽人人片av| 欧美变态另类bdsm刘玥| 国产熟女欧美一区二区| 久久国产精品大桥未久av| 国产精品99久久99久久久不卡| 日韩中文字幕欧美一区二区 | 亚洲国产中文字幕在线视频| 国产黄色视频一区二区在线观看| 免费在线观看完整版高清| 成人黄色视频免费在线看| 免费在线观看日本一区| 中文字幕亚洲精品专区| 19禁男女啪啪无遮挡网站| 少妇人妻 视频| 色播在线永久视频| 国产真人三级小视频在线观看| 丝袜人妻中文字幕| 久久久久久久精品精品| 嫩草影视91久久| 丝袜美腿诱惑在线| av又黄又爽大尺度在线免费看| 国产老妇伦熟女老妇高清| 日韩电影二区| 黄频高清免费视频| 免费高清在线观看视频在线观看| 国产成人一区二区三区免费视频网站 | 婷婷丁香在线五月| 亚洲欧美一区二区三区久久| 国产欧美日韩一区二区三区在线| 国产欧美亚洲国产| 成人手机av| 国产日韩一区二区三区精品不卡| 亚洲欧美精品综合一区二区三区| 日韩精品免费视频一区二区三区| 国产福利在线免费观看视频| 久久久国产一区二区| 国产老妇伦熟女老妇高清| 久久狼人影院| 久久99一区二区三区| 亚洲综合色网址| 成年人午夜在线观看视频| 久久国产精品男人的天堂亚洲| 天天操日日干夜夜撸| e午夜精品久久久久久久| 一边摸一边做爽爽视频免费| 久久精品国产亚洲av高清一级| 青青草视频在线视频观看| 久久久国产欧美日韩av| 日韩伦理黄色片| 老司机在亚洲福利影院| 波野结衣二区三区在线| 国产精品一区二区在线不卡| 亚洲国产看品久久| 9191精品国产免费久久| 1024香蕉在线观看| 自拍欧美九色日韩亚洲蝌蚪91| 国产一级毛片在线| 国产成人影院久久av| av国产久精品久网站免费入址| 午夜免费男女啪啪视频观看| 大码成人一级视频| 黑人巨大精品欧美一区二区蜜桃| 如日韩欧美国产精品一区二区三区| 欧美精品啪啪一区二区三区 | 免费观看人在逋| 中国国产av一级| 日本91视频免费播放| 亚洲熟女精品中文字幕| 99热全是精品| 大型av网站在线播放| 亚洲 欧美一区二区三区| 美女午夜性视频免费| 中文字幕人妻熟女乱码| 99热全是精品| 母亲3免费完整高清在线观看| 亚洲国产欧美网| 国产欧美日韩一区二区三 | 亚洲精品国产色婷婷电影| 新久久久久国产一级毛片| 免费高清在线观看视频在线观看| 老司机在亚洲福利影院| 国产成人精品久久久久久| 精品少妇久久久久久888优播| 国产xxxxx性猛交| 日韩伦理黄色片| 亚洲五月色婷婷综合| 亚洲九九香蕉| 少妇猛男粗大的猛烈进出视频| 考比视频在线观看| 精品欧美一区二区三区在线| 精品亚洲乱码少妇综合久久| 久久久精品国产亚洲av高清涩受| 一进一出抽搐gif免费好疼| 亚洲av熟女| 国产亚洲精品综合一区在线观看 | 欧美乱妇无乱码| 色老头精品视频在线观看| 亚洲中文av在线| 天堂影院成人在线观看| 两个人免费观看高清视频| 亚洲欧美激情综合另类| 伊人久久大香线蕉亚洲五| 男人的好看免费观看在线视频 | av在线播放免费不卡| 99热6这里只有精品| 妹子高潮喷水视频| 国产成人影院久久av| 欧美精品啪啪一区二区三区| 欧美日韩乱码在线| 美国免费a级毛片| 长腿黑丝高跟| 欧美一级a爱片免费观看看 | 亚洲色图 男人天堂 中文字幕| 国产精品一区二区精品视频观看| 免费看美女性在线毛片视频| 亚洲av中文字字幕乱码综合 | 中文资源天堂在线| 国产精品日韩av在线免费观看| 正在播放国产对白刺激| 国内揄拍国产精品人妻在线 | 好男人电影高清在线观看| 男人的好看免费观看在线视频 | 久久国产精品影院| 天堂√8在线中文| 国产单亲对白刺激| 欧美亚洲日本最大视频资源| 香蕉丝袜av| 黑人欧美特级aaaaaa片| 女人高潮潮喷娇喘18禁视频| 一本久久中文字幕| www国产在线视频色| 12—13女人毛片做爰片一| 国产伦人伦偷精品视频| www.精华液| 可以在线观看的亚洲视频| 欧美国产精品va在线观看不卡| 日本精品一区二区三区蜜桃| 午夜老司机福利片| 少妇 在线观看| 国产精品爽爽va在线观看网站 | 婷婷亚洲欧美| 亚洲第一青青草原| 亚洲欧美激情综合另类| 欧美日韩瑟瑟在线播放| 免费av毛片视频| 中文字幕人妻熟女乱码| 欧美性长视频在线观看| 宅男免费午夜| 国产成人av教育| 在线十欧美十亚洲十日本专区| 精品乱码久久久久久99久播| av福利片在线| 国产免费男女视频| 亚洲,欧美精品.| 免费在线观看亚洲国产| 国语自产精品视频在线第100页| 变态另类丝袜制服| 中出人妻视频一区二区| 妹子高潮喷水视频| 亚洲九九香蕉| 亚洲欧洲精品一区二区精品久久久| 亚洲国产欧美日韩在线播放| 国产伦人伦偷精品视频| 国产成人av激情在线播放| 成人三级黄色视频| 后天国语完整版免费观看| 日本熟妇午夜| 最近最新中文字幕大全免费视频| 欧美精品啪啪一区二区三区| 99国产精品一区二区蜜桃av| 又黄又爽又免费观看的视频| 亚洲精品中文字幕一二三四区| 亚洲一区二区三区不卡视频| 国产不卡一卡二| 午夜精品久久久久久毛片777| 国产三级黄色录像| 男女床上黄色一级片免费看| 亚洲av第一区精品v没综合| 国产高清有码在线观看视频 | 后天国语完整版免费观看| 侵犯人妻中文字幕一二三四区| 女生性感内裤真人,穿戴方法视频| 国产极品粉嫩免费观看在线| 国产精品免费视频内射| 满18在线观看网站| 50天的宝宝边吃奶边哭怎么回事| 一区二区日韩欧美中文字幕| 欧美丝袜亚洲另类 | 亚洲免费av在线视频| 国产亚洲精品久久久久久毛片| 搡老妇女老女人老熟妇| 亚洲精品av麻豆狂野| 亚洲激情在线av| 亚洲中文日韩欧美视频| 日韩欧美 国产精品| 美女 人体艺术 gogo| 成人特级黄色片久久久久久久| 69av精品久久久久久| 久久久久久久久中文| 日韩成人在线观看一区二区三区| 久久精品成人免费网站| 无限看片的www在线观看| 美女高潮到喷水免费观看| 色尼玛亚洲综合影院| 91成人精品电影| 日韩大码丰满熟妇| 欧美久久黑人一区二区| 精品人妻1区二区| 午夜福利在线观看吧| 欧美最黄视频在线播放免费| 国产一区在线观看成人免费| av福利片在线| 午夜激情av网站| 久久久精品欧美日韩精品| 观看免费一级毛片| 成人三级黄色视频| 在线观看日韩欧美| 久久国产精品影院| 免费观看人在逋| 日日摸夜夜添夜夜添小说| 午夜福利一区二区在线看| 桃色一区二区三区在线观看| 欧美日韩黄片免| 色播亚洲综合网| 中文资源天堂在线| 老汉色av国产亚洲站长工具| svipshipincom国产片| 最好的美女福利视频网| 给我免费播放毛片高清在线观看| 欧美国产精品va在线观看不卡| av有码第一页| 最近最新中文字幕大全电影3 | 91麻豆av在线| 男女做爰动态图高潮gif福利片| 国产av一区在线观看免费| 精品国产美女av久久久久小说| 久久久久精品国产欧美久久久| 亚洲成人国产一区在线观看| 国产99久久九九免费精品| 国产精品日韩av在线免费观看| 精品卡一卡二卡四卡免费| 亚洲九九香蕉| 精品福利观看| 成年人黄色毛片网站| 一进一出抽搐gif免费好疼| 99久久国产精品久久久| 免费看a级黄色片| 免费看日本二区| 日韩 欧美 亚洲 中文字幕| 国产精品 欧美亚洲| 国产精品免费一区二区三区在线| 一级毛片女人18水好多| 国产一区二区三区在线臀色熟女| 亚洲最大成人中文| 丝袜人妻中文字幕| 一进一出抽搐gif免费好疼| x7x7x7水蜜桃| 日韩 欧美 亚洲 中文字幕| svipshipincom国产片| 宅男免费午夜| 久久国产亚洲av麻豆专区| 天天添夜夜摸| 美女国产高潮福利片在线看| 亚洲五月婷婷丁香| 好男人电影高清在线观看| av电影中文网址| 久久久久久久午夜电影| 欧美绝顶高潮抽搐喷水| 亚洲精华国产精华精| 动漫黄色视频在线观看| 99热6这里只有精品| 美女大奶头视频| 日本在线视频免费播放| 99在线人妻在线中文字幕| 黑人欧美特级aaaaaa片| 男女做爰动态图高潮gif福利片| 18禁黄网站禁片午夜丰满| 色综合欧美亚洲国产小说| 久久午夜综合久久蜜桃| 国产精品,欧美在线| 国产单亲对白刺激| 丁香欧美五月| 成人三级做爰电影| 国产亚洲精品第一综合不卡| 一进一出抽搐动态| 不卡一级毛片| 亚洲五月婷婷丁香| 一区二区三区激情视频| 亚洲黑人精品在线| 色老头精品视频在线观看| 亚洲九九香蕉| 一本久久中文字幕| av免费在线观看网站| 国产精品久久久久久人妻精品电影| 少妇熟女aⅴ在线视频| 黄频高清免费视频| 亚洲av成人一区二区三| 久久久国产精品麻豆| 91老司机精品| 美女高潮喷水抽搐中文字幕| 国产av一区在线观看免费| 一区二区日韩欧美中文字幕| 在线av久久热| 欧美一区二区精品小视频在线| 1024视频免费在线观看| 亚洲一区中文字幕在线| 国产精品av久久久久免费| 99国产精品99久久久久| 哪里可以看免费的av片| 黑人欧美特级aaaaaa片| 国产私拍福利视频在线观看| 国产精品 欧美亚洲| 久久精品夜夜夜夜夜久久蜜豆 | 少妇裸体淫交视频免费看高清 | 最近最新中文字幕大全电影3 | 欧美日韩一级在线毛片| 国产午夜福利久久久久久| 亚洲五月婷婷丁香| 精品国产超薄肉色丝袜足j| 制服诱惑二区| 不卡一级毛片| 欧美人与性动交α欧美精品济南到| 日韩欧美国产一区二区入口| 亚洲av电影不卡..在线观看| АⅤ资源中文在线天堂| 国产精品乱码一区二三区的特点| 高清毛片免费观看视频网站| 精品人妻1区二区| svipshipincom国产片| 十八禁网站免费在线| 国产亚洲精品一区二区www| 午夜福利在线观看吧| 天天躁夜夜躁狠狠躁躁| 精品久久久久久成人av| 久久精品国产亚洲av香蕉五月| 国产av一区在线观看免费| 黄色 视频免费看| 久久亚洲精品不卡| 成人国语在线视频| 人人妻,人人澡人人爽秒播| 国产国语露脸激情在线看| ponron亚洲| 99在线视频只有这里精品首页| 亚洲精品在线美女| 狠狠狠狠99中文字幕| 一本大道久久a久久精品| 精品久久久久久久毛片微露脸| 好看av亚洲va欧美ⅴa在| а√天堂www在线а√下载| 国产精品1区2区在线观看.| 精品免费久久久久久久清纯| 日韩国内少妇激情av| 搡老妇女老女人老熟妇| 岛国在线观看网站| 叶爱在线成人免费视频播放| 精品久久久久久久人妻蜜臀av| 欧美黄色片欧美黄色片| 亚洲男人的天堂狠狠| 久久国产精品男人的天堂亚洲| 欧美成人免费av一区二区三区| 欧美乱码精品一区二区三区| 99国产综合亚洲精品| 午夜日韩欧美国产| 成在线人永久免费视频| 熟妇人妻久久中文字幕3abv| 免费观看人在逋| 亚洲国产精品合色在线| 免费人成视频x8x8入口观看| 婷婷精品国产亚洲av| 日韩高清综合在线| 亚洲精品在线美女| 麻豆成人午夜福利视频| 一进一出抽搐gif免费好疼| 欧美人与性动交α欧美精品济南到| 12—13女人毛片做爰片一| 18禁黄网站禁片午夜丰满| av中文乱码字幕在线| 久久草成人影院| 国产精品香港三级国产av潘金莲| 伦理电影免费视频| 亚洲第一青青草原| 国产激情欧美一区二区| 久久久精品欧美日韩精品| 亚洲专区字幕在线| 欧美成人性av电影在线观看| 亚洲一区中文字幕在线| 日韩大码丰满熟妇| 久久欧美精品欧美久久欧美| 亚洲国产中文字幕在线视频| 一个人免费在线观看的高清视频| 亚洲熟女毛片儿| 97超级碰碰碰精品色视频在线观看| 久久天堂一区二区三区四区| 国产成+人综合+亚洲专区| 亚洲五月婷婷丁香| 2021天堂中文幕一二区在线观 | 男女下面进入的视频免费午夜 | 18禁国产床啪视频网站| 看黄色毛片网站| 免费看十八禁软件| 国产男靠女视频免费网站| 亚洲天堂国产精品一区在线| 变态另类丝袜制服| 亚洲欧美精品综合一区二区三区| aaaaa片日本免费| 欧美激情 高清一区二区三区| 免费在线观看视频国产中文字幕亚洲| 国产熟女午夜一区二区三区| 亚洲国产精品sss在线观看| 国产成人av激情在线播放| 18禁美女被吸乳视频| 麻豆久久精品国产亚洲av| 精品久久久久久成人av| 久久久精品欧美日韩精品| 国产午夜福利久久久久久| 成熟少妇高潮喷水视频| 国产一区二区激情短视频| 黑人巨大精品欧美一区二区mp4| 国产精品亚洲av一区麻豆| 亚洲成av片中文字幕在线观看| 激情在线观看视频在线高清| 老司机午夜十八禁免费视频| 国产成年人精品一区二区| 亚洲午夜精品一区,二区,三区| 一进一出抽搐动态| 亚洲第一青青草原| 又黄又爽又免费观看的视频| x7x7x7水蜜桃| 国产精品一区二区三区四区久久 | 天天添夜夜摸| 色哟哟哟哟哟哟| 国产久久久一区二区三区| 国产一区二区三区在线臀色熟女| 精品一区二区三区视频在线观看免费| 一卡2卡三卡四卡精品乱码亚洲| 淫秽高清视频在线观看| 国产99白浆流出| 国产久久久一区二区三区| av有码第一页| 中文亚洲av片在线观看爽| 人妻久久中文字幕网| 天天添夜夜摸| 99久久久亚洲精品蜜臀av| 国产人伦9x9x在线观看| 国产伦人伦偷精品视频| 久久精品人妻少妇| 亚洲在线自拍视频|