亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

嵌入式入門路線:從STM32到FreeRTOS與Linux實(shí)戰(zhàn)

嵌入式入門路線:從STM32到FreeRTOS與Linux實(shí)戰(zhàn) 1. 嵌入式入門到底難在哪先搞清楚這件事很多人一提到嵌入式腦子里第一反應(yīng)就是“難”第二反應(yīng)是“我該從哪開始”。網(wǎng)上搜一圈有人說先學(xué)51單片機(jī)有人說直接上STM32還有人說要先啃C語言和數(shù)據(jù)結(jié)構(gòu)更有人勸你直接搞嵌入式Linux。信息一多人就懵了。我當(dāng)年也是這么過來的買了一塊開發(fā)板裝了個(gè)Keil點(diǎn)了個(gè)燈然后就不知道下一步該干嘛了。這篇文章想解決的就是這個(gè)問題給出一條從零到能干活、能出項(xiàng)目的嵌入式上手路線。不是那種“先學(xué)模電數(shù)電、再學(xué)微機(jī)原理、最后學(xué)操作系統(tǒng)”的學(xué)院派路徑而是從實(shí)操出發(fā)讓你在最短時(shí)間內(nèi)建立起對(duì)嵌入式的整體認(rèn)知并且能動(dòng)手做出東西來。適合的人群包括電子、計(jì)算機(jī)、自動(dòng)化相關(guān)專業(yè)的學(xué)生想轉(zhuǎn)行做嵌入式的軟件工程師以及工作中需要接觸硬件但沒系統(tǒng)學(xué)過的開發(fā)者。核心關(guān)鍵詞就幾個(gè)嵌入式、STM32、FreeRTOS、嵌入式Linux、C語言。這幾個(gè)詞基本涵蓋了嵌入式入門的主干。我會(huì)按照“先跑起來、再搞明白、然后做項(xiàng)目、最后進(jìn)階”的邏輯來展開每一步都告訴你為什么這么做、怎么做、踩過哪些坑。先說一個(gè)基本判斷嵌入式不是一個(gè)單一技能它是一個(gè)技能棧。底層是電路和芯片中間是驅(qū)動(dòng)和RTOS上層是應(yīng)用和通信協(xié)議。你不可能一口氣全吃下來但你可以沿著一條主線快速建立框架然后再往深處鉆。這條主線我建議從STM32開始因?yàn)樗馁Y料最豐富、生態(tài)最成熟、上手門檻相對(duì)低而且學(xué)完之后遷移到其他平臺(tái)比如GD32、ESP32、甚至嵌入式Linux都很順。2. 上手路線怎么選別在起點(diǎn)上糾結(jié)太久2.1 為什么是STM32而不是51或者樹莓派我見過太多人在起點(diǎn)上糾結(jié)學(xué)51還是STM32學(xué)STM32還是直接上Linux我的建議很明確如果你目標(biāo)是快速上手并能做實(shí)際項(xiàng)目直接上STM32跳過51。原因很簡(jiǎn)單51單片機(jī)的架構(gòu)和開發(fā)方式跟現(xiàn)代嵌入式差距太大你學(xué)完51再轉(zhuǎn)STM32很多概念要重新建立。而STM32的HAL庫、CubeMX工具鏈、中斷系統(tǒng)、外設(shè)設(shè)計(jì)思路跟現(xiàn)在企業(yè)里用的主流方案是一致的。那為什么不直接上嵌入式Linux因?yàn)長(zhǎng)inux的學(xué)習(xí)曲線更陡你需要先理解操作系統(tǒng)、文件系統(tǒng)、驅(qū)動(dòng)模型、交叉編譯等一堆概念如果沒有單片機(jī)基礎(chǔ)很容易卡在“連環(huán)境都搭不起來”的階段。STM32能讓你先理解“寄存器—外設(shè)—中斷—RTOS”這條線再去學(xué)Linux會(huì)順很多。至于樹莓派它更像一臺(tái)小型電腦跑的是完整操作系統(tǒng)適合做應(yīng)用層開發(fā)但不太適合理解底層硬件控制。所以路線建議是C語言基礎(chǔ) → STM32裸機(jī) → FreeRTOS → 通信協(xié)議和常用外設(shè) → 嵌入式Linux入門。2.2 最小可行學(xué)習(xí)路徑四周跑通第一個(gè)閉環(huán)我給自己帶過的人設(shè)計(jì)過一個(gè)“四周閉環(huán)”計(jì)劃實(shí)測(cè)下來對(duì)新手很友好第一周裝好開發(fā)環(huán)境Keil或者VSCodePlatformIO跑通GPIO點(diǎn)燈、按鍵輸入、串口打印。目標(biāo)是理解“代碼怎么燒進(jìn)芯片、怎么看到結(jié)果”。第二周搞定定時(shí)器、中斷、PWM、ADC。目標(biāo)是能控制電機(jī)、讀傳感器、調(diào)燈光亮度。第三周移植FreeRTOS創(chuàng)建兩個(gè)任務(wù)一個(gè)閃燈一個(gè)串口輸出。目標(biāo)是理解“多任務(wù)”到底是怎么回事。第四周做一個(gè)綜合小項(xiàng)目比如超聲波測(cè)距OLED顯示串口上報(bào)。目標(biāo)是走完“傳感器→處理→顯示→通信”的完整鏈路。這四周下來你基本就能看懂大部分嵌入式項(xiàng)目的代碼結(jié)構(gòu)了。后面再根據(jù)方向深入比如做物聯(lián)網(wǎng)就重點(diǎn)學(xué)MQTT、藍(lán)牙、WiFi做控制就重點(diǎn)學(xué)CAN、485、伺服電機(jī)。2.3 工具鏈怎么選Keil、CubeMX、VSCode各自扮演什么角色工具選型這件事新手最容易走彎路。我的建議是STM32CubeMX必裝。它幫你生成初始化代碼配置時(shí)鐘樹、引腳、外設(shè)省掉大量查手冊(cè)的時(shí)間。很多人覺得用CubeMX“不夠底層”但實(shí)際工作中效率優(yōu)先先跑起來再研究寄存器完全沒問題。Keil MDK經(jīng)典但收費(fèi)社區(qū)版有代碼大小限制。如果只是學(xué)習(xí)可以用。VSCode PlatformIO 或 STM32CubeIDE免費(fèi)跨平臺(tái)插件生態(tài)好。我現(xiàn)在更推薦VSCodePlatformIO配合STM32CubeMX生成的代碼體驗(yàn)很順。串口調(diào)試工具隨便一個(gè)串口助手都行用來打印調(diào)試信息這是你最重要的“眼睛”。注意不要一上來就追求“純寄存器開發(fā)”。那是等你已經(jīng)能跑通項(xiàng)目之后為了優(yōu)化或者排查問題才需要深入的東西。新手階段先用庫函數(shù)把功能實(shí)現(xiàn)建立信心和整體認(rèn)知。3. C語言要學(xué)到什么程度才夠用3.1 嵌入式C和普通C的差別在哪很多人問我C語言學(xué)完了能直接搞嵌入式嗎答案是看你學(xué)的是什么C。普通C語言課程重點(diǎn)在語法、算法、數(shù)據(jù)結(jié)構(gòu)而嵌入式C的重點(diǎn)在指針操作、位運(yùn)算、內(nèi)存布局、volatile、const、結(jié)構(gòu)體對(duì)齊這些跟硬件打交道的東西。舉個(gè)例子你在PC上寫int a 10;編譯器可能把它放在寄存器里也可能放在棧上你不用管。但在嵌入式里你經(jīng)常要直接操作某個(gè)地址的寄存器比如*(volatile uint32_t *)0x40021000 0x01;這時(shí)候volatile的作用就非常關(guān)鍵——它告訴編譯器“這個(gè)值可能被硬件改變不要優(yōu)化掉”。如果你不懂這個(gè)代碼可能編譯沒問題但運(yùn)行結(jié)果完全不對(duì)。再比如位運(yùn)算嵌入式里到處都是|、、^、~、、。你要能熟練地設(shè)置某一位、清除某一位、翻轉(zhuǎn)某一位而不是用一堆if-else去操作。這些在普通C語言課里可能只是一帶而過但在嵌入式里是天天用的。3.2 必須掌握的C語言知識(shí)點(diǎn)清單我整理了一份“嵌入式C最小必備清單”你可以對(duì)照檢查知識(shí)點(diǎn)為什么重要掌握標(biāo)準(zhǔn)指針與地址操作寄存器、傳遞緩沖區(qū)能看懂*(volatile uint32_t *)addr位運(yùn)算配置寄存器位能獨(dú)立寫出置位、清位、取位宏volatile防止編譯器優(yōu)化硬件訪問知道什么時(shí)候必須加const常量存儲(chǔ)、只讀數(shù)據(jù)知道const變量放在哪結(jié)構(gòu)體與聯(lián)合體描述寄存器組、協(xié)議幀能定義并訪問位域函數(shù)指針回調(diào)、驅(qū)動(dòng)接口能寫簡(jiǎn)單的回調(diào)注冊(cè)內(nèi)存分區(qū)棧、堆、全局、常量區(qū)知道變量存在哪、棧溢出怎么回事預(yù)處理器宏定義、條件編譯能寫帶參數(shù)的宏、頭文件保護(hù)如果你對(duì)這些還不太熟建議先花一周時(shí)間專門補(bǔ)一下。不用學(xué)到“精通”但要能看懂、能寫出來。翁愷老師的C語言課程可以作為復(fù)習(xí)參考重點(diǎn)看指針和結(jié)構(gòu)體部分。3.3 從“會(huì)寫C”到“會(huì)寫嵌入式C”的思維轉(zhuǎn)變最大的思維轉(zhuǎn)變是你寫的代碼不再只是給CPU看的還是給硬件看的。在PC上你操作的是文件和內(nèi)存在嵌入式里你操作的是寄存器和外設(shè)。每一個(gè)外設(shè)都有一組寄存器你通過讀寫這些寄存器來控制它。比如你要讓一個(gè)GPIO輸出高電平本質(zhì)上就是往某個(gè)地址寫一個(gè)值。另一個(gè)轉(zhuǎn)變是資源意識(shí)。PC上內(nèi)存幾個(gè)G隨便用嵌入式里RAM可能只有幾十KB棧空間可能只有幾KB。你定義一個(gè)char buf[1024]就要想清楚它放在哪、會(huì)不會(huì)導(dǎo)致棧溢出。FreeRTOS里每個(gè)任務(wù)都要分配??臻g棧給少了會(huì)溢出給多了浪費(fèi)RAM。這些在PC開發(fā)里很少需要考慮。還有一個(gè)是實(shí)時(shí)性意識(shí)。嵌入式系統(tǒng)經(jīng)常要求“在多少毫秒內(nèi)響應(yīng)”比如電機(jī)控制、傳感器采樣。你不能在中斷里做耗時(shí)操作不能用阻塞式延時(shí)要學(xué)會(huì)用狀態(tài)機(jī)、非阻塞掃描、任務(wù)調(diào)度來保證響應(yīng)速度。這些思維轉(zhuǎn)變只有在實(shí)際寫代碼、調(diào)代碼的過程中才能慢慢建立。4. STM32上手實(shí)操?gòu)狞c(diǎn)燈到多任務(wù)4.1 環(huán)境搭建CubeMXKeil/VSCode的完整配置流程先說一下我的環(huán)境配置流程以VSCodePlatformIO為例安裝VSCode在擴(kuò)展商店搜索PlatformIO并安裝。安裝STM32CubeMX去官網(wǎng)下載對(duì)應(yīng)版本。在CubeMX里新建工程選擇你的芯片型號(hào)比如STM32F103C8T6。配置時(shí)鐘外部晶振8MHz系統(tǒng)時(shí)鐘72MHz。CubeMX會(huì)自動(dòng)計(jì)算分頻和倍頻參數(shù)。配置GPIO比如PC13設(shè)為輸出用于點(diǎn)燈。配置串口USART1波特率115200用于打印。生成代碼選擇PlatformIO工程格式。在VSCode里打開工程PlatformIO會(huì)自動(dòng)下載依賴。連接ST-Link下載器點(diǎn)擊上傳代碼就燒進(jìn)去了。如果你用Keil流程類似只是生成代碼時(shí)選擇MDK-ARM格式然后用Keil打開、編譯、下載。Keil的調(diào)試功能很強(qiáng)可以單步、看寄存器、看內(nèi)存建議至少裝一個(gè)。實(shí)操心得CubeMX生成代碼后你的用戶代碼要寫在/* USER CODE BEGIN */和/* USER CODE END */之間否則下次重新生成會(huì)被覆蓋。這個(gè)坑我踩過不止一次。4.2 GPIO與中斷第一個(gè)可交互的嵌入式程序點(diǎn)燈是Hello World但光點(diǎn)燈不夠你要加上按鍵中斷才算真正理解“輸入-處理-輸出”的閉環(huán)。配置步驟按鍵引腳設(shè)為GPIO_EXTI模式觸發(fā)方式選下降沿。在CubeMX的NVIC設(shè)置里使能對(duì)應(yīng)的EXTI中斷。生成代碼后在stm32f1xx_it.c里找到EXTIx_IRQHandler它會(huì)調(diào)用HAL_GPIO_EXTI_Callback。你重寫這個(gè)回調(diào)函數(shù)在里面翻轉(zhuǎn)LED引腳。void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) { if (GPIO_Pin KEY_Pin) { HAL_GPIO_TogglePin(LED_GPIO_Port, LED_Pin); } }這段代碼看起來簡(jiǎn)單但背后有幾個(gè)關(guān)鍵點(diǎn)中斷服務(wù)函數(shù)要盡量短不能放延時(shí)按鍵要加消抖硬件消抖用電容軟件消抖可以在回調(diào)里加時(shí)間判斷中斷優(yōu)先級(jí)要配置好否則會(huì)互相打斷。4.3 定時(shí)器與PWM控制電機(jī)和調(diào)光的基礎(chǔ)定時(shí)器是STM32里最復(fù)雜但也最有用的外設(shè)之一?;居猛居腥N定時(shí)中斷、PWM輸出、輸入捕獲。以PWM控制LED亮度為例選擇一個(gè)定時(shí)器比如TIM2配置通道1為PWM Generation。設(shè)置預(yù)分頻器和自動(dòng)重裝載值決定PWM頻率。比如72MHz時(shí)鐘預(yù)分頻72-1重裝載1000-1得到1kHz PWM。在代碼里用__HAL_TIM_SET_COMPARE(htim2, TIM_CHANNEL_1, duty)來改變占空比。控制電機(jī)也是類似原理只是頻率要求不同。舵機(jī)一般用50Hz直流電機(jī)用幾kHz到幾十kHz。步進(jìn)電機(jī)則要用到更復(fù)雜的脈沖序列比如五線四相步進(jìn)電機(jī)的八拍控制。注意事項(xiàng)PWM頻率不能隨便設(shè)。頻率太低LED會(huì)閃電機(jī)嘯叫頻率太高可能超出驅(qū)動(dòng)能力。一般LED用1kHz以上電機(jī)用8kHz到20kHz比較合適。4.4 串口通信與調(diào)試嵌入式開發(fā)的“眼睛”串口是你調(diào)試嵌入式程序最重要的工具。沒有串口你就像閉著眼睛修車。配置串口很簡(jiǎn)單CubeMX里選異步模式設(shè)置波特率115200生成代碼后用HAL_UART_Transmit發(fā)送數(shù)據(jù)。但實(shí)際使用中我建議你重定向printf到串口這樣調(diào)試信息輸出會(huì)方便很多int __io_putchar(int ch) { HAL_UART_Transmit(huart1, (uint8_t *)ch, 1, HAL_MAX_DELAY); return ch; }然后在代碼里直接printf(count%d\r\n, count);。注意要加\r\n否則串口助手顯示不換行。串口還能用來跟其他模塊通信比如藍(lán)牙模塊、WiFi模塊、GPS模塊。很多物聯(lián)網(wǎng)項(xiàng)目就是通過串口把STM32采集的數(shù)據(jù)發(fā)給通信模塊再上傳到云平臺(tái)。巴法云這類平臺(tái)就支持MQTT協(xié)議STM32通過串口連WiFi模塊再走M(jìn)QTT上報(bào)數(shù)據(jù)是一個(gè)很典型的入門物聯(lián)網(wǎng)項(xiàng)目。5. FreeRTOS怎么學(xué)才不懵5.1 為什么裸機(jī)跑得好好的要用RTOS很多人學(xué)到一定階段會(huì)問我裸機(jī)寫得好好的為什么要上RTOS答案在于任務(wù)復(fù)雜度和實(shí)時(shí)性要求。裸機(jī)程序通常是一個(gè)大循環(huán)所有事情按順序做。如果某個(gè)任務(wù)耗時(shí)太長(zhǎng)其他任務(wù)就會(huì)被耽誤。比如你在循環(huán)里做串口打印打印本身可能耗時(shí)幾毫秒這期間按鍵響應(yīng)就會(huì)變慢。RTOS的核心價(jià)值是任務(wù)調(diào)度你把不同功能拆成獨(dú)立任務(wù)每個(gè)任務(wù)有自己的優(yōu)先級(jí)和??臻g調(diào)度器負(fù)責(zé)在它們之間切換。高優(yōu)先級(jí)任務(wù)可以搶占低優(yōu)先級(jí)任務(wù)保證關(guān)鍵響應(yīng)及時(shí)。同時(shí)RTOS還提供了信號(hào)量、隊(duì)列、事件組等機(jī)制方便任務(wù)之間通信和同步。但RTOS不是銀彈。任務(wù)多了??臻g要分配好優(yōu)先級(jí)要設(shè)計(jì)好否則會(huì)出現(xiàn)優(yōu)先級(jí)反轉(zhuǎn)、棧溢出、死鎖等問題。我見過不少項(xiàng)目上了RTOS之后反而更不穩(wěn)定就是因?yàn)闆]理解這些機(jī)制。5.2 任務(wù)、隊(duì)列、信號(hào)量三個(gè)核心概念一次講透FreeRTOS的概念很多但最核心的就三個(gè)任務(wù)、隊(duì)列、信號(hào)量。任務(wù)一個(gè)獨(dú)立的執(zhí)行流有自己的棧和優(yōu)先級(jí)。用xTaskCreate創(chuàng)建任務(wù)函數(shù)通常是一個(gè)無限循環(huán)里面要有阻塞點(diǎn)比如vTaskDelay否則低優(yōu)先級(jí)任務(wù)永遠(yuǎn)得不到執(zhí)行。隊(duì)列任務(wù)之間傳遞數(shù)據(jù)的通道。比如一個(gè)任務(wù)采集傳感器數(shù)據(jù)通過隊(duì)列發(fā)給另一個(gè)任務(wù)處理。隊(duì)列是拷貝傳遞不是引用傳遞所以數(shù)據(jù)不能太大。信號(hào)量用于同步和互斥。二值信號(hào)量常用于中斷通知任務(wù)互斥信號(hào)量用于保護(hù)共享資源。QueueHandle_t xQueue xQueueCreate(10, sizeof(int)); xTaskCreate(Task1, Task1, 128, NULL, 2, NULL); xTaskCreate(Task2, Task2, 128, NULL, 1, NULL); void Task1(void *pv) { int val 0; while (1) { val; xQueueSend(xQueue, val, portMAX_DELAY); vTaskDelay(pdMS_TO_TICKS(100)); } } void Task2(void *pv) { int recv; while (1) { if (xQueueReceive(xQueue, recv, portMAX_DELAY)) { printf(recv%d\r\n, recv); } } }這段代碼創(chuàng)建了兩個(gè)任務(wù)Task1每100ms往隊(duì)列發(fā)一個(gè)數(shù)Task2阻塞等待接收。這就是最典型的RTOS任務(wù)通信模式。5.3 棧溢出與優(yōu)先級(jí)反轉(zhuǎn)新手最容易踩的坑棧溢出是FreeRTOS新手最常見的問題。每個(gè)任務(wù)創(chuàng)建時(shí)都要指定棧深度單位是word4字節(jié)。如果你在任務(wù)里定義了大的局部數(shù)組或者調(diào)用了深層遞歸棧就會(huì)溢出。溢出后可能表現(xiàn)為硬件錯(cuò)誤、任務(wù)跑飛、數(shù)據(jù)錯(cuò)亂。FreeRTOS提供了棧溢出檢測(cè)機(jī)制在FreeRTOSConfig.h里把configCHECK_FOR_STACK_OVERFLOW設(shè)為1或2然后實(shí)現(xiàn)vApplicationStackOverflowHook函數(shù)在里面打印出錯(cuò)任務(wù)名。這樣一旦溢出就能及時(shí)發(fā)現(xiàn)。優(yōu)先級(jí)反轉(zhuǎn)是另一個(gè)坑。假設(shè)低優(yōu)先級(jí)任務(wù)A持有互斥鎖高優(yōu)先級(jí)任務(wù)B等待這個(gè)鎖中優(yōu)先級(jí)任務(wù)C搶占了A導(dǎo)致B一直等不到鎖。解決辦法是用互斥信號(hào)量不是二值信號(hào)量FreeRTOS的互斥量支持優(yōu)先級(jí)繼承能緩解這個(gè)問題。實(shí)操心得任務(wù)優(yōu)先級(jí)不要設(shè)得太接近也不要把所有任務(wù)都設(shè)成高優(yōu)先級(jí)。一般建議中斷相關(guān)任務(wù)最高控制任務(wù)次之顯示和通信任務(wù)較低空閑任務(wù)最低。??臻g先給大一點(diǎn)跑穩(wěn)定了再優(yōu)化。5.4 FreeRTOS移植LVGL和實(shí)際項(xiàng)目中的任務(wù)劃分LVGL是一個(gè)輕量級(jí)圖形庫在STM32上跑LVGL是很多帶屏項(xiàng)目的標(biāo)配。移植LVGL的關(guān)鍵是給LVGL一個(gè)定時(shí)器心跳通常1ms在任務(wù)里調(diào)用lv_tick_inc和lv_task_handler。LVGL本身不是線程安全的所以最好放在一個(gè)獨(dú)立任務(wù)里其他任務(wù)通過隊(duì)列或消息通知它刷新界面。一個(gè)典型的STM32FreeRTOSLVGL項(xiàng)目任務(wù)劃分如下任務(wù)名優(yōu)先級(jí)棧大小職責(zé)GUI_Task21024LVGL界面刷新、觸摸處理Sensor_Task3256傳感器采集、濾波Comm_Task2512串口/WiFi通信、協(xié)議解析Control_Task4256電機(jī)/PWM控制Log_Task1256日志輸出、調(diào)試信息這個(gè)劃分不是固定的要根據(jù)實(shí)際項(xiàng)目調(diào)整。原則是實(shí)時(shí)性要求高的任務(wù)優(yōu)先級(jí)高耗時(shí)長(zhǎng)的任務(wù)優(yōu)先級(jí)低任務(wù)之間盡量通過隊(duì)列通信減少全局變量。6. 嵌入式Linux要不要學(xué)什么時(shí)候?qū)W6.1 從單片機(jī)到Linux的跨越點(diǎn)在哪嵌入式Linux和STM32裸機(jī)/RTOS是兩個(gè)世界。STM32你直接操作寄存器和外設(shè)代碼跑在裸機(jī)或RTOS上嵌入式Linux你跑在一個(gè)完整的操作系統(tǒng)上通過驅(qū)動(dòng)和文件系統(tǒng)來操作硬件??缭近c(diǎn)在于你需要理解操作系統(tǒng)、進(jìn)程、文件、驅(qū)動(dòng)、設(shè)備樹、交叉編譯這些概念。什么時(shí)候?qū)WLinux我的建議是當(dāng)你已經(jīng)能熟練使用STM32RTOS做項(xiàng)目并且工作中需要跑更復(fù)雜的應(yīng)用比如網(wǎng)絡(luò)服務(wù)、圖形界面、數(shù)據(jù)庫時(shí)再學(xué)Linux。如果你連單片機(jī)都沒跑通直接上Linux會(huì)非常痛苦因?yàn)槟阋瑫r(shí)面對(duì)硬件、系統(tǒng)、工具鏈三座大山。6.2 根文件系統(tǒng)掛載與NFS調(diào)試的實(shí)操記錄嵌入式Linux開發(fā)中根文件系統(tǒng)掛載是一個(gè)關(guān)鍵環(huán)節(jié)。常見方式有三種從Flash掛載、從SD卡掛載、通過網(wǎng)絡(luò)掛載。網(wǎng)絡(luò)掛載NFS在開發(fā)階段非常方便因?yàn)槟憧梢灾苯釉赑C上修改文件開發(fā)板上就能看到變化不用反復(fù)燒錄。配置NFS掛載的步驟PC上安裝NFS服務(wù)配置/etc/exports導(dǎo)出根文件系統(tǒng)目錄。開發(fā)板內(nèi)核啟動(dòng)參數(shù)里設(shè)置root/dev/nfs nfsrootPC_IP:/path/to/rootfs。確保開發(fā)板和PC網(wǎng)絡(luò)互通。啟動(dòng)開發(fā)板內(nèi)核會(huì)通過網(wǎng)絡(luò)掛載根文件系統(tǒng)。注意事項(xiàng)NFS版本要匹配。有些開發(fā)板默認(rèn)用NFS v3有些用v4配置不對(duì)會(huì)掛載失敗。另外PC防火墻要放行NFS相關(guān)端口否則會(huì)卡在掛載階段。6.3 嵌入式Linux學(xué)習(xí)路徑與項(xiàng)目推薦如果你決定學(xué)嵌入式Linux我建議按這個(gè)順序Linux基礎(chǔ)命令行、文件系統(tǒng)、權(quán)限、進(jìn)程、網(wǎng)絡(luò)。交叉編譯在PC上編譯ARM程序理解工具鏈。BootloaderU-Boot的編譯、燒錄、環(huán)境變量。內(nèi)核移植配置內(nèi)核、編譯、設(shè)備樹。根文件系統(tǒng)BusyBox、Buildroot、Yocto。驅(qū)動(dòng)開發(fā)字符設(shè)備、平臺(tái)設(shè)備、設(shè)備樹。應(yīng)用開發(fā)網(wǎng)絡(luò)編程、多線程、數(shù)據(jù)庫。項(xiàng)目推薦從“網(wǎng)絡(luò)攝像頭”或“物聯(lián)網(wǎng)網(wǎng)關(guān)”入手。比如用STM32做傳感器采集通過串口發(fā)給嵌入式Linux開發(fā)板Linux板子跑MQTT客戶端上傳數(shù)據(jù)。這樣既能用到單片機(jī)又能學(xué)到Linux應(yīng)用開發(fā)。7. 常見問題與排查技巧實(shí)錄7.1 STM32下載失敗、串口亂碼、中斷不觸發(fā)怎么辦這三個(gè)問題幾乎是每個(gè)STM32新手都會(huì)遇到的。我整理了一個(gè)速查表問題可能原因排查方法下載失敗下載器驅(qū)動(dòng)、接線、芯片鎖檢查ST-Link驅(qū)動(dòng)、SWD接線、用CubeProgrammer解鎖串口亂碼波特率不匹配、時(shí)鐘配置錯(cuò)確認(rèn)兩邊波特率一致、檢查系統(tǒng)時(shí)鐘中斷不觸發(fā)NVIC未使能、優(yōu)先級(jí)配置錯(cuò)檢查CubeMX NVIC設(shè)置、確認(rèn)中斷標(biāo)志清除程序不運(yùn)行啟動(dòng)文件錯(cuò)、復(fù)位電路檢查BOOT引腳、復(fù)位電路、啟動(dòng)文件ADC讀數(shù)跳動(dòng)參考電壓不穩(wěn)、采樣時(shí)間短加濾波電容、增加采樣時(shí)間7.2 FreeRTOS任務(wù)跑飛、堆棧溢出、Flash寫入被打斷FreeRTOS項(xiàng)目里任務(wù)跑飛通常跟棧溢出、優(yōu)先級(jí)配置、中斷安全有關(guān)。如果Flash寫入被打斷可能是因?yàn)樵谥袛嗬镎{(diào)用了Flash操作而Flash寫入需要關(guān)閉中斷。解決辦法是把Flash操作放在任務(wù)里寫入前掛起調(diào)度器或關(guān)閉中斷。taskENTER_CRITICAL(); HAL_FLASH_Program(...); taskEXIT_CRITICAL();但注意臨界區(qū)不能太長(zhǎng)否則會(huì)影響系統(tǒng)實(shí)時(shí)性。如果Flash寫入數(shù)據(jù)量大建議分塊寫入每塊之間讓出CPU。7.3 CAN通信突然連不上、藍(lán)牙配對(duì)失敗、ADC通道切換異常CAN通信突然斷掉常見原因是總線終端電阻不匹配、波特率不一致、節(jié)點(diǎn)地址沖突。用示波器看CAN_H和CAN_L的差分信號(hào)正常應(yīng)該有明顯的高低電平變化。如果信號(hào)幅度不對(duì)檢查終端電阻通常120歐姆。藍(lán)牙配對(duì)失敗先確認(rèn)模塊波特率和AT指令模式。很多藍(lán)牙模塊上電后需要先進(jìn)入AT模式配置好名稱、波特率、配對(duì)碼再切換到透?jìng)髂J?。STM32通過串口發(fā)AT指令時(shí)要注意加回車換行并且等待模塊返回“OK”。ADC多通道切換時(shí)如果讀數(shù)不對(duì)可能是采樣時(shí)間不夠或者通道切換后沒有重新校準(zhǔn)。STM32的ADC在切換通道后建議丟棄第一次采樣值從第二次開始讀。8. 項(xiàng)目實(shí)戰(zhàn)從超聲波測(cè)距到物聯(lián)網(wǎng)網(wǎng)關(guān)8.1 超聲波測(cè)距OLED顯示串口上報(bào)完整實(shí)現(xiàn)這個(gè)項(xiàng)目適合作為STM32FreeRTOS的綜合練習(xí)。硬件清單STM32F103C8T6、HC-SR04超聲波模塊、0.96寸OLED、USB轉(zhuǎn)串口模塊。任務(wù)劃分Trig_Task每100ms觸發(fā)一次超聲波讀取回響時(shí)間計(jì)算距離。Display_Task接收距離數(shù)據(jù)刷新OLED顯示。Report_Task每1秒通過串口上報(bào)一次距離。超聲波測(cè)距原理Trig引腳給10us高電平模塊發(fā)出8個(gè)40kHz脈沖Echo引腳變高回響結(jié)束后變低。Echo高電平持續(xù)時(shí)間就是聲波往返時(shí)間距離時(shí)間×聲速/2。float get_distance(void) { uint32_t time; HAL_GPIO_WritePin(TRIG_GPIO_Port, TRIG_Pin, GPIO_PIN_SET); delay_us(10); HAL_GPIO_WritePin(TRIG_GPIO_Port, TRIG_Pin, GPIO_PIN_RESET); while (!HAL_GPIO_ReadPin(ECHO_GPIO_Port, ECHO_Pin)); time 0; while (HAL_GPIO_ReadPin(ECHO_GPIO_Port, ECHO_Pin)) { time; delay_us(1); } return time * 0.034 / 2; }注意事項(xiàng)超聲波測(cè)距有盲區(qū)一般小于2cm測(cè)不準(zhǔn)。測(cè)量周期不要小于60ms否則會(huì)收到上一次的回波。多個(gè)超聲波模塊同時(shí)用會(huì)互相干擾要分時(shí)觸發(fā)。8.2 STM32FreeRTOS巴法云物聯(lián)網(wǎng)網(wǎng)關(guān)搭建物聯(lián)網(wǎng)網(wǎng)關(guān)的核心是采集數(shù)據(jù)→處理→上傳云平臺(tái)。STM32通過串口連接WiFi模塊比如ESP8266WiFi模塊連上路由器后通過MQTT協(xié)議連接巴法云。巴法云MQTT接入流程在巴法云注冊(cè)賬號(hào)創(chuàng)建主題獲取客戶端ID和密鑰。STM32通過串口發(fā)AT指令給ESP8266配置WiFi和MQTT參數(shù)。連接成功后STM32把傳感器數(shù)據(jù)發(fā)布到主題。手機(jī)或電腦訂閱主題就能看到數(shù)據(jù)。這個(gè)項(xiàng)目涉及的知識(shí)點(diǎn)很多串口通信、AT指令、MQTT協(xié)議、JSON格式、FreeRTOS任務(wù)劃分。做完這個(gè)你對(duì)物聯(lián)網(wǎng)的整個(gè)鏈路就清楚了。8.3 嵌入式AI測(cè)試在MCU上跑輕量級(jí)神經(jīng)網(wǎng)絡(luò)嵌入式AI是最近的熱點(diǎn)。在STM32上跑神經(jīng)網(wǎng)絡(luò)通常用TensorFlow Lite Micro或者STM32Cube.AI。流程是PC上訓(xùn)練模型→轉(zhuǎn)換成C數(shù)組→集成到STM32工程→調(diào)用推理接口。實(shí)際測(cè)試中一個(gè)簡(jiǎn)單的MNIST手寫數(shù)字識(shí)別模型在STM32F4上推理一次大概幾十毫秒。如果模型再大一點(diǎn)F4就跑不動(dòng)了需要F7或H7系列。嵌入式AI目前適合做關(guān)鍵詞喚醒、簡(jiǎn)單圖像分類、異常檢測(cè)等輕量任務(wù)復(fù)雜的視覺和語音還是得上LinuxNPU。9. 學(xué)習(xí)資源與進(jìn)階方向9.1 開源項(xiàng)目怎么選、怎么讀、怎么改嵌入式開源項(xiàng)目很多但質(zhì)量參差不齊。我建議從這幾個(gè)維度篩選Star數(shù)、最近更新時(shí)間、文檔完整度、Issue響應(yīng)速度。推薦幾個(gè)方向STM32的HAL庫例程、FreeRTOS官方Demo、LVGL的STM32移植例程、RT-Thread的BSP包。讀開源項(xiàng)目的正確姿勢(shì)先跑起來再改參數(shù)看現(xiàn)象然后跟蹤調(diào)用鏈最后嘗試增加一個(gè)小功能。不要一上來就逐行讀代碼那樣效率很低。9.2 從會(huì)用到會(huì)做如何積累自己的代碼庫工作幾年后你會(huì)發(fā)現(xiàn)真正值錢的是你自己的代碼庫。我建議從第一天就開始積累GPIO操作、串口收發(fā)、定時(shí)器配置、FreeRTOS任務(wù)模板、常用傳感器驅(qū)動(dòng)、通信協(xié)議解析。每個(gè)模塊都寫成獨(dú)立的.c和.h文件接口清晰方便復(fù)用。我的代碼庫里有一個(gè)bsp文件夾放板級(jí)支持包一個(gè)drivers文件夾放外設(shè)驅(qū)動(dòng)一個(gè)middlewares文件夾放FreeRTOS、LVGL、MQTT等中間件一個(gè)app文件夾放應(yīng)用邏輯。這個(gè)結(jié)構(gòu)在多個(gè)項(xiàng)目中直接復(fù)制省了大量時(shí)間。9.3 嵌入式架構(gòu)師需要具備哪些能力從工程師到架構(gòu)師差距不在寫代碼而在設(shè)計(jì)能力。架構(gòu)師要能根據(jù)需求選型芯片、設(shè)計(jì)軟件架構(gòu)、劃分任務(wù)和模塊、定義接口、評(píng)估資源和風(fēng)險(xiǎn)。還要懂成本、功耗、認(rèn)證、量產(chǎn)。具體來說需要具備扎實(shí)的C語言和數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)、熟悉至少一種RTOS和一種Linux、懂硬件原理圖和PCB基本知識(shí)、會(huì)看芯片手冊(cè)和協(xié)議文檔、有多個(gè)完整項(xiàng)目的落地經(jīng)驗(yàn)、能帶團(tuán)隊(duì)和做技術(shù)決策。這個(gè)目標(biāo)不是一兩年能達(dá)到的但只要你沿著“做項(xiàng)目→總結(jié)→優(yōu)化→再做更復(fù)雜的項(xiàng)目”這個(gè)循環(huán)走五到八年是可以摸到架構(gòu)師門檻的。關(guān)鍵是不要停留在“只會(huì)點(diǎn)燈”的階段要主動(dòng)挑戰(zhàn)復(fù)雜項(xiàng)目主動(dòng)復(fù)盤和沉淀。我個(gè)人在實(shí)際操作中的體會(huì)是嵌入式入門最快的路徑不是看視頻而是買一塊板子定一個(gè)項(xiàng)目逼自己在兩周內(nèi)做出來。過程中遇到問題就查、就問、就試這種“問題驅(qū)動(dòng)”的學(xué)習(xí)效率比按部就班高得多。踩過的坑越多成長(zhǎng)越快。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲欧美国产中文视频| 白嫩嫩一区| 成人无码专区精品视频| 97超碰人妻| 免费看久久久性性| 女人18精品一区二区三区| 色就色综合| 91国产丝袜足交精品视频| 久久日韩肥臀| 99激情| 少妇贴图| 东京日日夜夜| 日本国产高清色www视频在线| 青久操| www.久久制服糖| 后入人妻一区| 亚洲无码超碰免费| 欧美韩国你懂得在线 | 97自拍一区| 91被操| 99天天超碰| 翔田千里一区二区三区奶水| 欧美久久人妻少妇一区二区| 熟女人妇一区二区三区| 殴美性天天| 色爱欲亚洲| 大香蕉视频一二三区| 大香蕉综合久久| 男人天堂黄片| 人人澡人人干| 九九久久一区二区三区| www..com操老师| 九一国产精品| 久热婷婷| 黄色AAAAAAAAAAA大片| 狠狠操狠狠燥| 97精品一二区| 免费亚洲黄色视频在线观看| 欧日韩一二三f区| 色色热| 在线日韩精品一区二区三区| 骚人妻少妇视频| 久久婷婷热| 亚洲一区二区三区春色| 色区97| 青青草原综合久久大伊人精品| 亚洲国产欧美另类自拍| 亚洲第二页| 69人妻人人揉人人躁人人精品| 欧美性爱精品七区| 中文有码9| 99热导航| 丁香五月天婷婷姐| 久久激情五月| 男女激烈网站最新| 青娱乐91| 国产熟女自拍| 久久一二三四不卡 | 一级性爱aaaa| 国产黄色视频久久| 九九草| 丝袜美女诱惑 91 视频| 操91| 激情熟女12P| 色婷婷aV一区二区三区麻豆综合| 99少妇| 欧美 亚洲 制服 精品| 干我久操| 日韩有码中文字幕女同性恋 | 麻豆国产精品午夜视频| 亚洲精品国产拍免费91在线| 粉嫩AV一区夜夜嗨| 久久超碰爱| 久久黄色视频一区二区三区| 91亚洲欧洲| 91国产丝袜美女| 97视频网站在线观看| 久久精品日韩| 少妇一区二区三区高速| 亚洲在线91| 国产丸一视频| 亚洲AV不卡在线观看尤物| 亚洲综合色男人网| 国产又色又爽又舒服的三级视频| 久久久久久久国产视频| 在线色导航| 精品人妻一区二区免费蜜桃视频| 亚欧美色图| 午夜精品久久久久| 欧美综合加勒比在线| 久操不卡视频| 久久精品色欧美aⅴ一区二区| 国产粉嫩蜜臀av一区二区三区| 久久精品日韩专区免费观看| 亚洲青色欧美| 四虎在线免费视频| 一本色道久久综合熟妇| 天天摸夜夜操视频| 一级黄碟在线观看| 久久久婷| www.久久99| 婷婷色色五月天| 天天色综亚洲91污| 国产精品欧美日韩久久| 99精品视频在线观看免费| 福利视频合集| 亚洲色图欧美色图另类图片| 日韩一级二级三级在线不卡观看完整| …亚洲黄色厕厕女女在线播…| 欧美偷偷网| 1024午夜激情男人的天堂| 久久男人网| 天美精品av| 国产亚洲99久久精品| 欧亚在线视频| 婷婷丁香五月综合| 五月丁香综合网| 超碰在线人妻| 人人天天欧洲| 老熟女熟妇| 蜜桃在线观看一区二区三区 | 少妇人妻太紧太深av| 久久精品国产AV一区二区三区| 91五十路| 91视频精品| 欧美性爽xyxOOOO| 熟妇一区二区| 久久夜夜| 少妇3P性爱自拍| 日本操逼视频导航| 大色综合网| 亚洲超碰在线| 青青网三级视频| 精品久久久九九九孕妇| 精吧天堂| 久久激情婷婷| 欧美日韩黄片精品在线| AA丁香综合激情| 91人妻超碰| 天天综合网久久ww| 五十路成人在线视频二区三区| 日韩精彩视频| 97网色| 男女做爰猛烈动高潮A片免费应用 少妇厨房愉情理伦片bd在线观看 不卡中文字幕aⅴ在线 | 青青草影视蜜久久| 亚洲国产丝袜熟女av| 视频一区二区三区精品| 中文字幕成人理论在线| 九九热在线视频| 欧美久久九九| 日本精品国产视频| 97ai亚洲| 亚洲国产精品9999在线观看| 人人摸人人干人人拍97| 色老汉玖玖爱| 精品人妻伦一区二区三区久久| 免费精品AB| 福利天天都操| 成人性爱AV在线免费观看| 日韩一级特黄av毛片| 91黑人无码激情在线| 国产高清1234区| 欧美综合制服在线| 三及片网站| 中国AV美女| 国产精品视频精品一二| 中文97国产| 日韩射图| 亚洲素人网| 天天射日日干| www成人啪啪18秘 免费| 日韩精品电影| 亚洲无992tv| 尤物网址| 国产久久日韩网站导航| 九九无码| 久久久久久人妻| 男生女生啊啊啊啊| 国产乱子伦久久精品综合一区二区三| 围产精品一区二区三区视频播放| 另类av天堂| 日本媚薬中文字幕在线| 国产精品国产拍高清AV| 九草在线大香蕉| 欧美性性性| 操操逼操操逼操操逼逼| 久草久日| 久久久久久久伊人精品| 大香蕉碰碰| 日本黄色精品| 天天干天天狼在线视频| 欧美色图自拍| 亚洲一本色道中文无码aV天美| 成年男人的天堂| 久久香蕉国产线看观看亚洲女人 | 欧美亚洲激情| baisiav| 后入福利| 欧亚综合一卡二卡中文字幕| 香蕉精品二区二区| 蜜臀va69| 又大又长又粗又爽又黄| 加勒比伊人综合| 日韩激情毛片一级久久久| 人妻啊啊人妻啊| 美女91AV| 亚洲棕合电彰| 国内毛片国产欧美拍| 成人贴图日韩欧美| 91伊人| 混色激情av| 麻豆久久一区二区三区| 97 亚洲 日韩 欧美 在线| 91天天| 少妇二级| 高清无码在线播放网站| 亚洲欧美日产国产91毛片| 国产一级特黄大片处女| 亚洲日产专区婷婷| 国产色精品午夜大片| a男人的天堂| 国产女同视频在线播放| 超碰久久草| 久久综合资源一区二区| 久久99精品九九久久久婷婷| 国产精品一二三在线看| 蜜臀99久久精品| www.久久| 久操91视频| 神马午夜久久久| 三级激情网站| 亚洲色天堂九9| 亚洲人人操| 亚洲欧美另类激情小说| 国产日韩人人| 亚洲精品无码少妇久久| 日韩一二三区| 欲射影视| 婷婷视频网| 操屄日韩| 亚洲图片偷拍欧美| 99热这里只有精| 超碰免费人妻人人| 4tube欧美女厕所| 91美女丝袜诱惑视频| 午夜舔阴达高潮视频免费看| 亚洲97资源| 国产精品麻豆成人AV艾秋| 久久大黄片| 人妻爽爽啪视频| 黄色av一区二区在线| 欧美se综合| 国产婷婷一区| 操逼日韩无码 | 2000亚洲男人天堂| 一区二区日韩欧美久久| 日韩人妻播放| 啪啪综合网| 国产成人精品一区| 欧美日韩午夜精品一区二区三区| 操逼无毒无码免费视频| 国产白嫩精品久久| 国产亚洲国产超碰| 国产女s强制榨精视频| 欧美日韩人妻精品一区二区三区| 欧美亚洲丝袜美女电影| 操逼操操操91| 日韩欧美大力操| 96麻豆精品一区二区三区| 九九拍拍精品视频在线播放| 久久超碰爱| 1024人妻熟女一区二区三区| 无码天天操| 97天堂| 欧美肥臀在线| 男女香蕉一区二区| 日日黄色三级网站| 久久久久久亚洲精品中文字幕人妻| av午夜影院在线播放| 欧美夜夜| 欧美日韩亚洲天堂| 竹菊一区二区三区AV线| 青草影院内射高潮| 日韩人妻网站| 人人爽夜夜操| 混色激情av| 女人爽到高潮潮喷18禁网站| 日韩免费大片一级播放| 乱伦熟女专区| 国产精品久久aV| 色妺妺AⅤ| 国产尤物在线三区| 欧美人妖内射| 国产品精品自在在线午夜免费| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 韩国一级婬片A片AAAAA| 国产三级多多影院2022国产AA一级毛片无码| 啊v在线观看视频| 亚洲综合色图欧美| 自拍啪啪视频| 另类欧美综合| 欧美春色| 老熟女综合| 国产农村妇女毛片精品久久| 亚洲一区中文字幕| 国内毛片四区| 屁股久久久久久| 九九九网站| 亚洲国产精品成人久久蜜臀| 天天视频黄| 国产肏逼网站| 综合欧美激情网| 国产曰批免费观看久久久| 亚洲黄色视频在线观看视频| 一级做a爰片久久毛片图片| 永久免费av无码网站国产app| 青娱乐福利99| 久久久久亚洲AV无码专区少妇| 777琪琪午夜免费A片| 午夜超爽| 五月天婷精品激情| 色五月婷婷五月天| 啊啊啊用力在线观看| 日韩天堂av电影在线观看| 欧美性,色九九| 久久最新视频免费观看| 国产精品大屁股999| 热热色AV| 九九九久久久| 日本506070| 伊人黄色片| 岛园激情| 麻豆蜜桃视频在线观看| 久久国产精品熟女人妻| 熟女高潮精品一区二区| 欧美性爱第1 页| 亚洲黄片免费在线播放| 伊人久操| 国产日韩精品一区二区三区| 热热色色综合| 国产成人欧美精品在线| 欧美性爱1080p| 91色色色| 69精品人人人人| 亚洲涩图欧美| 99e久久国产精品| 中日韩欧美精品无码AⅤ一区二区| 乱老女人一区二区视频| 九九成人精品| 少妇大屁屁| 13小男生GAY自慰脱裤子| 美国一区二区三区视频| 欧美精品四区| 久久超碰天天| 高清国产性猛交xxxx乱大交| 色婷婷99| 久久九操在线观看| 中日韩一区二区三区欧美| 黄色AAAAAAAAAAA大片| 人妻熟女字幕一区二区| 99蜜月精品久久| 国产精品人妻免费精品| 图片区小说区| 精产国品一区二三产品| 亚洲综合欧美| 五月婷婷性爱| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照| 国产拍偷精品网站| 韩日精品四区| 亚洲,欧美,综合网| 亚洲精品国产熟女| 午夜精品久久久99| 操东北女人| 日日碰狠狠添天天爽超| 日韩99神马视频片| 九九九九九精品| 亚洲日本韩国在线| 97欧美色综合| 九月丁香婷婷色| 久久人人爽爽爽人久久久| 日韩欧美麻豆 | 啊啊啊免费| 人人妻人人狠人人| 午夜综合在线| 日本1区2区不卡视频| 日韩人妻精品久久久久| 国产丝袜啪啪| 狠狠色婷婷777| 天天操天天日天天干| 日婷婷| 欧美美女啪啪视频| 欧美综合色| 国产动漫操逼视频| 久久亚洲一区女同性恋中文字幕| 久久亚洲AV成人精品无码| 久久爱超碰网| α√在线| 老司机福利社视频在线观看| 性做久久久久久免费观看软件| 裸体1区| 欧美精品99久久久**| 嗯嗯啊好大| 欧美黄色片在线播放| 天天综合精品| 日韩成人私密一级精品av| 女人天堂AV五区在线| 欧美 亚洲 第一页 | 色色色日本| 一道本东京热加勒比一区二区三区| 97超碰色色| 久久综合18p| 2024年最新色情网站在线观看| 超碰在线人妻| 久久精品| 国产精品久久久九九九| www.丁香五月| 欧美精品97| 大香蕉 222| 亚欧免费| 性欧美| 天天流夜夜操| 国产精品午夜福利亚洲综合网| 亚洲一二三四区机械| 国产精品无码久久久久2028| 久久亚州大香蕉| 一块操欧美| 色五月AV| 亚州Av天美传媒| 亚洲精品三| 97在线免费| 精品乱码久久久久| 极品极品色影院| 亚州男人天堂| 日韩图区| a久久| 一二三区操逼国产91| 婷婷丁香一区二区三区| aaaa少妇高潮大片| 久操免费在线| 18禁久极品美女久久哦哟呀!| 强奸a片网| 超碰在线一区二区| 粉嫩av一区二区三区四季| 99久久九九| 人妻精品视频一区二区三区| 校园春色欧美| 丁香六月婷婷久久综合| 亚洲小电影免费涩涩成人在线高清 | 国产一区在线播放| 自拍亚洲综合| 丝袜熟女2P| 深夜国产一区二区三区在线看 | 性性久久| 久热伊人99re| 在线观看日韩av不卡| 黑人免费福利视频| 亚洲熟女少妇免费视频| 国产久久久9999| 思思热免费视频观看| 秋霞午夜成人福利片片| 日本一卡二区在线| 国模不卡一本二本三电影| 日本狠狠干| 成人午夜小视频手机在线看| 亚洲影院365| 久久欧美激情| 亚洲麻豆18发?| 精品福利视频| 91美女中出| 福利在线黄片| 国产精品视频麻豆入口| 视频国产欧美在线播放| 国内外毛片在线观看| 亚洲精品 欧美精品| 一区=区三区视频| 九九99久久| 嫖老熟女A片一二三区| 成人午夜高潮av猛片| 久久激情婷婷| 人妻天堂网| 国产中文日韩欧美一区二区三区人妻丝袜美腿 | 夜夜欢天天干| 天天添天天干电影| 上床啊啊啊| 婷婷在线视频| 国产女同在线观看视频| 欧美78p| 精品无码久久久久久久久果冻糖心| 久久综合久色欧美综合狠狠| 18禁超污无遮挡无码免费网| 97超碰影音| 精品久久久久,69国产成人精| 曰韩人妻中文字幕在线| 久久999久| 欧美熟女少妇| 精品一区二区三区四区女| 国产成人一级av88| av影院十区| 国产又黄又猛又粗又爽的网站| 无码精品久久| 国产欧洲精品亚洲午夜拍精品| 另类图片五月天| 中日韩一区二区三区欧美| 日韩中文字幕av在线播放| 日韩免费看黄片| 干超碰碰熟女| 丝袜高跟澳门91视频| www五月| 国产一区二区三区高清视频| 中文欧丝袜诱惑| 99热97| 国产 亚洲 丝袜 制服| 欧美激情 亚洲色图| 香港成人一级视频在线青青草| 日本激情免费大片| 亚洲另类春色| 久久久91福利姬| 色性荡荡荡荡视频| 日本精品第一视频在'| 国产91精品在线免费| 天美一二三在线观看Av| 九九热免费视频| 久久精品日韩| 久操免费观看| 黑人干亚洲| 超碰 另类 欧美| 国产大学生口爆吞精合集| 精品一区二区三区麻豆| jiujiujiujingpin| 亚洲中文字幕97久久精品少妇| 久操网线| 欧美日韩大香蕉| 天天射天天色成人| 欧美 熟女 日韩| 美女超碰978| av婷婷色婷婷色六月| 91国产操逼视频| 精品在线78| 九九人妻| 麻豆国产成人精品| 嗯嗯啊啊用力视频免费| 九九热精品| 亚洲一本色道中文无码aV天美| 亚洲高清视频在线免费观看| 欧美亚洲特P| 婷婷九月国产| 国产十八禁视频| 蜜桃精品一区二区三区ww| 婷婷久久综合久| 久久精品店| 九月丁香婷婷色| 欧美v亚洲v综合v国产v妖精| 国产精品96| 骚女天天综合网| 亚洲欧美天| 伊人久久大香线综合无码| 大香蕉十区| 国模限制级电影| 99精品久久| 三级三久久线久久99久目本WW| 成人八戒网站| 国产熟女完整版中字 | 乱老熟女一区二区三区| 97超碰无码网| 美女刺激久久国产欧美| 日本99久久| 婷婷久久五月| 亚码激情| WWW4虎| 美女诱惑1区2区| 精品一区二区啪啪啪| 色激情五月天| 啊灬啊灬啊灬好深灬快高潮了动漫-国产字幕国产在线观看-B049AV | 神马午夜久久| 国产高清成人免费视频| 亚洲 暴爽 AV人人爽日日碰| 国产综合日韩伦理| 国产日韩精品suv| 欧美组图日韩亚洲中文字幕| 九九视频黄色片| 精品成人无码| 黄色电影观看久久9| 亚洲 国产 精品一区| 无码乱人伦中文视频| www.av在线观看| 色青青久久影视| 激情四射五月天| 95人妻爽爽人人做人人澡 | 伊人国产视频| 91劲爆| 秘书高跟黑色丝袜国产91在线| 男人天堂毛片| 99热在线观看| 性饥渴少妇av无码毛片| 色爱三区| 色婷婷丁香五月| 99自拍B亚洲| 性性久久| 国产嫩草精品A88AV| 99999re| 国产福利视频精品视频| 欧美日韩岛国大片在线观看| 五月综合色| 日本人妻一区二区| 超碰欧美在线欧美| 97超级久久| 尤物视频视频官网| 亚洲中文日韩欧美大香蕉视频| 国产乱人伦AVA麻豆软件.| 精品国产久热在线观看| 爱爱动态120秒| 国产欧美日韩臀| 少妇久久久免费| 国产精品久久久久久久久久久久| 不卡中文字幕aⅴ在线| 亚洲国产成人精品久久久国产成人一区二区三. | 青草青青久久久久久国产| 97色欧州| 国语精品对白| 亚洲制服aⅴ中文字幕| 一块操欧美| 好爽,再快点啊哈嗯嗯嗯嗯| 少妇第一页| 啊啊啊草死我| 亚洲AV秘 精品久久老牛影视| 毛片电影一区二区三区| www.一本大99| 亚洲欧美校园| 亚洲日韩视频二区| 涩五月婷婷| 美美91成人国产精品欧美精品久久久久久久 | 亚洲国产一区二区入口| 久草免费在线一区二区| 日本日日色视频| 校园春色美腿丝袜 | 影音先锋少妇| 亚洲无码99| 欧美中字二区| 天天肏天天干| 3p国产色噜噜一区| 欧美少妇第一页| 国产乱码久久久| 国产Av超碰| 亚洲色五月| 天天内射| 精品免费视频国产一区| 久久98| ...日韩成人一区二区三区字幕| 男人天堂网址| 天天躁日日躁AAAXX| 啊操爽品善一区二区三区| 亚洲学生妹高清av| 婷婷久久久| 男人的天堂久久狠| 亚洲av无码国产精品字幕| 色情综合网| www.acm成人黄色毛片| 中文字幕日韩电影人妻| 99999精品成人| 美女诱惑久久| 九月丁香综合网| 大香蕉在线视频重口味毛片在线| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 色女99一级片在线观看| 色欲久久99国产精品久久久久久| 家庭乱伦网站国产| 精品一区二区三区四区外站| 高清国产无码av| 天美国产精品| 综合 亚洲 欧美| 一本道综合色图| 久久久亚洲熟妇资源| 91动漫操逼视频| 加勒比AV天堂| 色在线亚洲视频www| 久久综合中文国产| 超碰美国| 超AV色女| 校园春色综合网| 精品少妇一区二区三区免费观看| 精品玖九九久| 色色色综合网| 日韩一卡二卡三卡| 黄色一级视| 亚洲高清男人天堂| 精品一区二区人妖| 天天操福利视频综合网站| 中文字幕av乱伦| 97超碰影音| www.91久久| 72av视频| 97精品国产97久久久久久| 久久久四区| 天天日老熟妇| ji熟女.com| 蜜屁Av| 国产精品爽爽va在线观看98| 日本道日本道中文字幕日本道最新日本道在线观看 | 9久久久久| 久久久工口| 偷拍 欧美 日韩| 久久久久久91香蕉国产| 最新亚洲人成网站在线影院| 国产久久久久影院老熟女| 欧美日韩国产中文精品字幕自在自线| 久久久精品九| 好吊妞转入那个网| 伊人国产成人av网站| 日韩/97| 操逼www.| 91精品国产91久久久久久久久久久久| 亚洲日产专区| 精品性爱| 吊色| 五月丁香网站| 日韩强奸av| 欧美日韩国产三级黄色| 人妻丰满熟妇av无码区蜜桃| 91九色网| 欧美高清无码免费视频高清版| 天天看片麻豆| 亚洲欧美日韩夜夜| 九九九九精| 欧美 熟女 日韩| 狠狠激情综合狠狠操中文字幕| 亚欧美综合网| 欧美久久婷婷| 欧美黄色大香蕉一区二区| 凹凸精品熟女在线观看| 99热综合在线| 亚洲一级性爱视频免费看| 天天影视综合色| 91暧暧| 日亚韩精品视频二区三| 男人午夜天堂| 欧美黑人日韩少妇色情| 美女黄页| 国产网站在线播放| 97干97色| 精品乱码在线观看| 天天摸夜夜摸| 亚洲av乱伦色图网站| 丁香七月婷婷| 一区二区播放| 60秒试看最爽10分钟网站| 日本一区二区不卡精品| 曰韩中文人妻视频| 国产AB视频| 中文字幕av久久爽Av| 亚州AV无码国产精品| 无码人妻精品酒店| 亚洲综合嫩| 中文字幕久久精品一区| 中文字幕成人| 日本成人A片免费看| 九九亚洲| 99re99在线视频| 9长久久精品| 99久久com免费视频′| 福利在线观看一区二区| 极品销魂美女一区二区| 亚洲视频精选| 综合97久久| 亚洲视频,小说| 日本91白丝| 日本午夜精品理论片A级APP发布| 91精品人妻偷情| 久久粉色| 人人操人人精品影片| 色爱欲亚洲| 性爱动态120秒| 精品国产乱码久久久久久口爆网站 | 亚洲丝袜色| 欧美日韩性爱操大逼| 成人av在线播放| 久久精品操| 俺也射| 牛牛久久国产精品视频一二三| 亚洲综合网电影91| 亚洲精品视频在线播放| 亚洲一欧洲中文字幕在线| 巨爆乳一区二区爆乳区 | 9精品久久久久| 一区二区亚州激情久婷婷欧美| 成人一区二区三区四区| 日本日日色视频| 欧美制服另类丝袜| 丁香五月天社区| 日韩在线观看中文字幕视频| 日韩性爱网址| 久久精品国产亚洲AV无码电影 | 啊啊啊97视频| 草蕉影视亚洲无码| 午夜福利久久久噜久噜久久综合| 久久精品一区二区三区不卡| 色播五月婷婷| 婷婷久久五月| 久久五月份| 欧美夜夜狠| 淫妻综合网| 日韩97超碰中文字幕| 丁香五月激情网| 亚洲18禁| www四虎| 嗯阿好爽好紧| 99爱久久视频频| 久久婷婷在线观看视频| 欧美日韩国产电影| 中文字幕78| 人妻五十路在线| 色亚州人久干视频在线观看免费版| av操操不卡| 色娱乐色呦呦夜夜夜夜av| 美腿丝袜高跟网免费视频免费视频| 亚洲影院小综合| 精品国产91久久久久久一区黄无| 青苹果影院男人的天堂| 亚洲天堂人人妻| 久草精品一区| 国产熟女自拍| 91欧美情色| 一起草视频在线| 在线观看不卡一区二区三区| 丁香九月 婷婷| 国内毛片婷婷六月色| 国产中文字幕曰本毛片| 久久精品性| 天天日日舔舔| 日本A级视频| 日本九九久久99| 精品人妻视频一区二区在线播放 | 熟女丰满人妻一区| 丰满少妇一区二区三区专区| 97碰碰日本乱偷人妻中文的| 伊人少妇久久久| 日韩本不卡视频在线观看| 亚洲精品九九九| 蜜臀一区二区三区亚洲最新章节在线观看 - 高清蜜臀一区二区三区亚洲全集播放 | 亚洲精品国产精品乱码不99| 夜夜操狠狠操| 日本丝袜美腿人妻九九| 熟妇激情| 粉嫩av一区二区三区天美传媒 | 亚洲aV性爱| 日韩国语字幕| 日本超碰97日韩精品人妻| 欧美日韩天堂| 1024精品在线| 无码137片内射在线影院| 日本精品无码三级网站| 久久婷综合| 五十路熟女工口| 久久精品无码熟妇一区二区三区视频导航 | 亚洲图片偷拍欧美| 清纯唯美综合| A一区片| 欧美黄色片AAAAA| 熟妇最新先锋一二三区| 午夜福利在线合集| 免费精品无码一级毛片牛牛影视| 欧美一区二区三区另类精品| 久久98| 亚州 综合 色图| 2017,超碰| 无码操逼网| 久久人妻视频网| 中文字幕一区二区三四五区日日骚| 青青青青青手机视频| 久久久9999| 中文字幕av乱伦| 中文字幕乱碼在线| 中文字幕第二页| 人人妻碰人人免费| 91精品伊人久久久大香线蕉91| 超碰人人乐97| 亚洲中文字幕一区| 日韩极品无码B| 色五月婷婷中文字幕| 亚洲精品不卡一二三区| 欧美91精品国产自产| 五月天婷精品激情| 成人网欧美风情| 9九九国产| 强奸国产在线| 一牛影视久久久一区二区三区| 精久久久| 国产美女裸体秘 永久无遮挡| 日韩乱码av| 丝袜狠狠草尤物 91| WWW.操逼.COM| 丰满人妻一区二区三区| 综合激情一一91| 蜜乳AV.COM| 十八禁网站在线| 久久精品国产97欧美精品亚洲 | 国产又粗又大硬免费色网视频| 深田咏美亚洲精品福利社| 人妻夜夜爽天天爽麻豆三区网站| 97se亚洲综合自| 网页导航五月天免费一二三区| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 久久大香蕉手机高清视频| 婷婷五月天丁香| 乱子伦一区二区三区国产精品| 亚洲中文字幕av| 人妻99p| 欧美亚州色的图| 色综合V| 97干com| 国产美女高潮| 国产一区二区三区中文字幕| 91热热色| 久久精品99| 亚洲美腿丝袜香蕉影视欧美成人| 日韩国产在线观看av| 九九九九九用不成了| 欧美性爱第一页久久| 999久久久久久久精| 青草影院内射高潮| 啪啪资源网| 好舒服视频| 中国大陆国产高清AⅤ毛片| 啊啊啊啊二区好大| 丁香五六月啪啪| 日韩一区二区熟女| 无码直播久久久| 老熟女熟妇| 成人AV超碰免费在线| oumeisetupian| 国产精品白丝| 熟女色图在线| 国产资源中文字幕在线| 欧美一区二区情色| 人人么人人操| 久久亚洲熟妇在线视频| 日韩无码三级影院| 很很很很操| 亚洲精美粉嫩嫩泬在线观看| 呻吟 欧美 日本 中出| 一区二区三区精品视频| 国产乱码久久久| 五月婷婷综合网| 黑人猛交| 久久精品72| 天天躁日日躁AAAAXXXX国产| 久久久久久9999| 能直接看AV的网站| 天堂网亚洲区手机版| 国产刺激视频| 久久精品国产亚洲AV清纯| 五月婷婷六月色| 亚洲无码com| AV丝袜少妇| 久久成人午夜精品影院| 免费国产| 色香阁在线| 久久久久久久久久久免费精品| 国产精品第二页| wwwcaobibi| 夜夜骑夜夜操| 操人妻逼91| 激情视屏国产乱伦强奸| 日韩大香蕉AV影片| 97这里都是精品| 日韩色欲久久一二三四区| 好爽要喷了| 无码99| 日本性爱网址| 色九久| 亚洲影院小综合| 欧美精品成人在线播放| 欧美综合1性辶| 亚洲精品97在线| 草莓精品视频在线免费观看| 欧美 亚洲 91| 韩国三级理论在线| 国产高清成人免费视频| 欧色综合| 国产福利av精彩对白| 超碰97COm中文| 亚洲蜜臀懂色| 人干人人人操人人摸| 亚州男人天堂| 综合欧美日韩在线| 99欧美| av在线免费一区二区| 亚洲熟妇A V黑人| 日本黄色裸日本黄色裸体 | 久湿久久| 殴美牲| 国产三级中文有码在线视频| 熟女探花啪啪| 欧美色图自拍| 一区麻豆 高清中文字幕| 国产亚州日韩欧美看片| 熟女激情综合网| 熟人人妻少妇精品久久| 蜜桃精久三区| 人妻啊啊人妻啊| 国产精品无码av嫩草| 欧美亚洲中文| 国产9熟妇视频网站| 蜜臀在线免费观看在线免费观看| 美国一区二区免费视频| 日本熟女不卡视频| 色欲av国内精品久久久久久| 啊啊啊啊啊啊啊在线| 青青草原狼av| wwwcaobibi| 色婷婷六月丁香七月婷婷| 天天天肏屄肏屄肏屄欧美欧美| 欧美色日本| 欧美色图片91| 五月丁香六月激情| 色官网色综合| 欧洲亚洲国产综合在线| 91亚洲人| …中文字幕亚洲乱,97人妻无码费视…| 五月天激情小说| 欧美亚洲中文字幕| 在线综合 亚洲 欧美中文字幕| 高清孕妇孕交 交| 亚洲网污污污污| 欧美 亚洲 大香| 一区二区三区在线资源| 操逼操操操91| 每日更新AV| 久久无码成人| 亚洲精品自拍| 综合网亚洲| 九九九九九九九九九国产精品| 日韩欧美蜜桃精品久久中文字幕久久| 天天操天天射青青草| 天综合网| 五月婷婷激情网| 亚洲AV成人在线| 亚洲午夜av| 亚洲一区二区中文字幕| 亚洲一区二区三区中文字幕| 国产家庭乱伦性爱视频| 无遮挡又黄又刺激的视频| 天天伊人| 欧美第五页| 日韩精品亚洲一二三| 亚洲激情网| 噜噜噜在线视频| 日本性爰一道本| 日本一区二区三区免费观看| 国产精品女aA片爽爽视频| 亚洲伊人成综合成人网| 亚洲欧美日韩偷拍色图| 日本道不卡| 搡老熟女免费视频 | 欧美国产有色电影| 色大师网站www永久网站视频| 青青草日本中文字幕| 人妻无码后入| 精品网站99999| 亚州男人的天堂| 久久精品视频一区三区小泽玛利亚| 欧美色日本| 综合久欧洲| 精品无码久久久久| 亚洲精品一区二区免费在线观看| 青青操少妇| 国产女人9999| 超碰精品人妻狠狠干| 亚洲激情深爱文学小说网站| 亚洲九九视频| 天堂成人网| 久久久亚洲| 麻豆国产视频精品观看| 国产精品久久久久久无码红治院| 淫荡少妇免费| 99久久九九| 亚洲国产欧美日韩人妻日中文| 蜜臀AV一区二区三区激情综合| 国产免费一区二区三区最新不卡| 超碰免费人人| 精品国产乱码久久久久久久久1| 一区二区三区 丝袜 高跟 美腿 | 久久久夜夜嗨免费视频| 99久久婷婷国产综合精品草原| 亚洲麻豆精品二区三区| 不卡人妻少妇精品毛片一区23区视频| 日韩在线人妻网站| 欧美 青青草| 青青草字幕AV| 桑老女人九区| 久久超碰网| 色欲av一区二区三区蜜芽| 日本高清_区二区三区 | 亚洲小说视频| 97超碰人人模人人拍人人| 久久国产热视频97电影| 狠狠操综合| 熟妇视频一区二区三区在线观看| 中文字幕第23区| 欧美日韩欧美| 91亚洲网| 日本国产高清色www视频在线| www.色婷婷| 91啪9色| 亚洲精品白丝| 成人性生活高清视频在线播放| 樱花蜜乳av| 久久久精品国产亚洲AV无码| 人人妻人人操人人乐| 精久久久| 麻豆久久一区二区三区| 亚洲伊人a线观看视频| 激情五月天丁香| 亚洲欧美setu| 91丝袜人妻| 黄色大片免费在线| 强奸乱亚洲| 欧美情色贴图| 天堂成人网| 国产av波波国产精品| 久久久久13| 丝袜色综合| 色逼综合| 国产AV久久野战精品| 六六久久日韩不卡| 啊啊啊在线看| 熟女激情综合网| 日日操丁香五月天| 久久久久久久少妇| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 97av在线视频| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 最新岛国大片| 91人人看| 91欧美情色| 亚洲欧美自拍偷拍| 欧美天天谢综合网| 国产精品丝袜在线| 92性色国产午夜福利在线661| 色色色综合网| 亚洲电影91| 国产成人无码a| 神马精品视频| yazhouzaixian| 色网在线视频观看免费| 四虎 精品 WWW| 中文字幕福利视频一区二区三区在线观看| 成全在线观看免费观看| 免费av在线播放二区| 蜜臀久久99精品久久久电影| 热99这里只有精品| 日日AV加勒比| 综合伊人网12色| 婷婷激情五月| 少妇蹲下买菜露大唇0| 香蕉热人人精品| 热天堂一区二区| 美女91AV| 色吧综合网| 中文字幕神马久久| 国产精品九九九|