免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

ARTICLE DETAIL

資訊詳情

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

nRF Connect SDK入門指南:基于Zephyr RTOS的Nordic物聯(lián)網(wǎng)開發(fā)框架

nRF Connect SDK入門指南:基于Zephyr RTOS的Nordic物聯(lián)網(wǎng)開發(fā)框架 1. 從零開始認(rèn)識 nRF Connect SDK如果你正準(zhǔn)備踏入 Nordic 半導(dǎo)體生態(tài)或者正在評估一個基于 nRF52、nRF53、nRF91 系列芯片的物聯(lián)網(wǎng)項目那么“nRF Connect SDK”這個名字會是你繞不開的核心。它不是一個簡單的“庫”或“工具鏈”而是一個龐大、集成且持續(xù)演進(jìn)的開發(fā)框架。簡單來說你可以把它理解為 Nordic 為自家芯片量身定制的“操作系統(tǒng)”和“開發(fā)全家桶”。我第一次接觸它時感覺像是從玩單片機(jī)的“手工作坊”一步跨入了現(xiàn)代化的“自動化工廠”既有撲面而來的強(qiáng)大生產(chǎn)力也有需要重新適應(yīng)的一套新規(guī)則。這篇文章我就以一個過來人的視角幫你拆解 nRF Connect SDK 到底是什么、為什么需要它、以及如何開始與它打交道讓你在后續(xù)的實戰(zhàn)中少走彎路。很多從傳統(tǒng) MCU比如 STM32 配合 Keil/IAR轉(zhuǎn)過來的開發(fā)者最初可能會困惑我寫個藍(lán)牙應(yīng)用用 Nordic 提供的 nRF5 SDK 不行嗎答案是對于全新的項目尤其是涉及復(fù)雜協(xié)議如藍(lán)牙 Mesh、Thread、Matter或需要高級功能如 DFU、安全啟動的項目nRF Connect SDK 幾乎是唯一且未來的選擇。它基于 Zephyr RTOS 構(gòu)建這意味著你獲得的不僅僅是一個藍(lán)牙協(xié)議棧而是一個完整的、模塊化的實時操作系統(tǒng)以及一個由開源社區(qū)和 Nordic 共同維護(hù)的龐大驅(qū)動與組件生態(tài)。它的出現(xiàn)是為了應(yīng)對物聯(lián)網(wǎng)設(shè)備日益增長的復(fù)雜性——低功耗管理、多協(xié)議并發(fā)、無線升級、硬件安全等這些在 nRF Connect SDK 中都被設(shè)計為可配置的模塊而非需要你從頭啃起的硬骨頭。2. nRF Connect SDK 的核心架構(gòu)與生態(tài)位理解 nRF Connect SDK首先要把它放在 Nordic 整個產(chǎn)品和技術(shù)藍(lán)圖中去看。它不是孤立存在的而是連接芯片硬件、開發(fā)工具、云服務(wù)和最終應(yīng)用的樞紐。2.1 基于 Zephyr RTOS 的基石這是 nRF Connect SDK 最根本的特性也是它與舊版 nRF5 SDK 最本質(zhì)的區(qū)別。Zephyr 是一個小型、可擴(kuò)展的實時操作系統(tǒng)專為資源受限的嵌入式設(shè)備設(shè)計但功能卻非常強(qiáng)大。nRF Connect SDK 并非簡單“使用”Zephyr而是深度集成并擴(kuò)展了它。模塊化與可配置性 在 nRF Connect SDK 中幾乎所有功能從內(nèi)核調(diào)度算法、內(nèi)存管理到每一個外設(shè)驅(qū)動如 I2C、SPI、網(wǎng)絡(luò)協(xié)議棧如 Bluetooth LE, Bluetooth Mesh, Thread, Wi-Fi都是以“模塊”Kconfig 選項的形式存在。開發(fā)者通過一個圖形化或命令行的配置工具menuconfig來勾選自己項目需要的功能系統(tǒng)會自動處理依賴關(guān)系并生成最優(yōu)化的固件。這極大地避免了代碼膨脹讓你能為資源緊張的 nRF52810 和性能更強(qiáng)的 nRF5340 使用同一套代碼框架只是編譯時的配置不同。設(shè)備樹Device Tree的引入 這是另一個從 Linux 借鑒來的重要概念。硬件描述如哪個引腳是 I2C 的 SDA哪個中斷號對應(yīng)某個外設(shè)不再硬編碼在驅(qū)動代碼里而是通過一個結(jié)構(gòu)化的.dts設(shè)備樹源文件來描述。這意味著你的應(yīng)用程序代碼與具體硬件板卡的耦合度大大降低。換一塊不同的 Nordic 開發(fā)板通常只需要更換對應(yīng)的設(shè)備樹覆蓋文件即可應(yīng)用層代碼幾乎不用動。這對于產(chǎn)品線有多個硬件變種的情況來說是巨大的維護(hù)優(yōu)勢。統(tǒng)一的 API 與抽象層 Zephyr 提供了一套統(tǒng)一的操作系統(tǒng) API比如線程、信號量、消息隊列、定時器等。無論底層是 Cortex-M0 還是 Cortex-M33你用的都是同一套k_thread_create(),k_sem_give()。這種一致性降低了學(xué)習(xí)成本也提高了代碼的可移植性。2.2 Nordic 的獨家“增強(qiáng)包”如果只有 Zephyr那它就是一個優(yōu)秀的通用 RTOS。nRF Connect SDK 的價值在于Nordic 在 Zephyr 之上添加了大量針對自家芯片深度優(yōu)化和定制的“增值服務(wù)”。藍(lán)牙協(xié)議棧的深度集成 Nordic 的藍(lán)牙軟核控制器和鏈路層軟件被無縫集成到 Zephyr 的藍(lán)牙子系統(tǒng)中。你通過 Zephyr 的標(biāo)準(zhǔn)藍(lán)牙 API如bt_enable,bt_le_adv_start進(jìn)行操作但底層享受的是 Nordic 經(jīng)過市場千錘百煉的、功耗和性能俱佳的私有實現(xiàn)。同時Nordic 還提供了許多便利的擴(kuò)展比如用于簡化 GATT 服務(wù)構(gòu)建的bt_gatt_service宏以及更強(qiáng)大的藍(lán)牙 DFU空中升級方案。專有外設(shè)與低功耗管理 Nordic 芯片有很多獨特的外設(shè)比如高性能、低功耗的 PPI可編程外設(shè)互連和 GPIOTEGPIO 任務(wù)和事件以及復(fù)雜的電源管理模塊。nRF Connect SDK 為這些硬件提供了直接、易用的驅(qū)動和示例。特別是其電源管理框架與 Zephyr 的電源管理集成可以讓你非常方便地實現(xiàn)從“運(yùn)行模式”到“深度睡眠”甚至“關(guān)斷模式”的切換并自動管理外設(shè)時鐘和電源域這是實現(xiàn)超低功耗的關(guān)鍵。nRF Connect 桌面工具鏈 這通常與 SDK 一同被提及。它包含幾個關(guān)鍵桌面應(yīng)用nRF Connect for Desktop 一個承載各種工具如 Programmer, Bluetooth Low Energy, Power Profiler的框架。nRF Connect for VS Code 這是目前官方主推的集成開發(fā)環(huán)境。它不是一個簡單的插件而是一個深度定制的 VS Code 發(fā)行版內(nèi)置了項目創(chuàng)建、配置、編譯、調(diào)試、燒錄、日志查看等一系列功能極大簡化了開發(fā)流程。nRF Command Line Tools 包含nrfjprog編程/擦除工具、mergehex合并 HEX 文件等適合自動化腳本和 CI/CD 流程。2.3 在 Nordic 產(chǎn)品線中的定位清晰地區(qū)分 nRF Connect SDK 和它的“前任” nRF5 SDK 非常重要這決定了你的技術(shù)選型。特性維度nRF5 SDKnRF Connect SDK核心基礎(chǔ)裸機(jī)/簡單調(diào)度器基于 Zephyr RTOS開發(fā)模式庫文件鏈接相對直接模塊化配置基于 CMake 和 Kconfig硬件抽象通過nrf_drv_xxx驅(qū)動與芯片系列強(qiáng)相關(guān)通過設(shè)備樹描述應(yīng)用與硬件解耦協(xié)議支持以藍(lán)牙為主其他協(xié)議如Thread支持有限或為獨立SDK原生集成Bluetooth LE/ Mesh, Thread, Matter, Wi-FinRF70系列, LTE-M/NB-IoTnRF91系列開發(fā)工具主要依賴 Segger Embedded Studio, Keil, IAR主推 nRF Connect for VS Code 兼容其他維護(hù)狀態(tài)維護(hù)模式僅修復(fù)嚴(yán)重bug不再增加新功能積極開發(fā)是未來所有新功能和芯片支持的唯一平臺適合場景維護(hù)遺留項目或?qū)?RTOS 無需求的極簡藍(lán)牙應(yīng)用所有新項目尤其是需要多協(xié)議、復(fù)雜功能、長期維護(hù)的項目注意 對于全新的項目除非有極其特殊的限制如必須使用某款已停產(chǎn)且僅被 nRF5 SDK 支持的舊芯片否則都應(yīng)毫不猶豫地選擇 nRF Connect SDK。它代表了 Nordic 技術(shù)發(fā)展的未來方向。3. 首次接觸環(huán)境搭建與第一個項目理論說得再多不如動手一試。nRF Connect SDK 的環(huán)境搭建過程本身就能讓你體會到它的設(shè)計哲學(xué)。這里我以在 Windows 系統(tǒng)上使用官方推薦的 nRF Connect for VS Code 為例帶你走一遍流程并分享幾個我踩過的坑。3.1 安裝 nRF Connect for VS Code這不是安裝一個普通的 VS Code 插件而是去 Nordic 官網(wǎng)下載一個完整的、預(yù)配置好的 VS Code 安裝包。下載與安裝 訪問 Nordic 官網(wǎng)的下載頁面找到 “nRF Connect for VS Code” 的安裝程序。運(yùn)行安裝它會將 VS Code 以及所有必要的擴(kuò)展如 nRF Connect, CMake, C/C一并安裝到一個獨立的目錄中。這樣做的好處是隔離不會影響你電腦上已有的 VS Code 和其他開發(fā)環(huán)境。首次啟動與工具鏈管理 啟動安裝好的 nRF Connect for VS Code。第一次啟動時它會引導(dǎo)你進(jìn)行初始設(shè)置。最關(guān)鍵的一步是“安裝工具鏈”。這里它會自動下載并安裝以下核心組件Toolchain 基于 GNU Arm Embedded Toolchain 的編譯鏈。nRF Connect SDK SDK 本體包含所有源代碼、庫、示例和配置文件。其他依賴 如 CMake, Ninja, DTK (Device Tree Kernel) 等。安裝路徑選擇強(qiáng)烈建議使用默認(rèn)路徑或者選擇一個沒有中文和空格的純英文路徑。這是無數(shù)血淚教訓(xùn)的總結(jié)很多編譯和腳本問題都源于路徑中的特殊字符。實操心得 網(wǎng)絡(luò)環(huán)境是安裝過程中的第一個“坑”。由于需要從 GitHub 等源下載大量內(nèi)容如果網(wǎng)絡(luò)不穩(wěn)定或速度慢很容易失敗。如果遇到問題可以查閱官方文檔其中提到了設(shè)置代理或使用本地鏡像的方法。安裝過程可能會比較耗時取決于網(wǎng)速請耐心等待。3.2 創(chuàng)建并構(gòu)建你的第一個應(yīng)用Blinky安裝完成后讓我們創(chuàng)建一個最經(jīng)典的“點燈”程序這是檢驗環(huán)境是否就緒的終極標(biāo)準(zhǔn)。創(chuàng)建新項目 在 VS Code 中通過命令面板CtrlShiftP輸入 “nRF Connect: Create a new application”。你會看到一個模板選擇器。選擇示例 為了方便我們直接選擇一個現(xiàn)成的示例。在模板列表中找到并選擇sample: basic/blinky。這個示例位于 SDK 的zephyr/samples/basic/blinky目錄下是一個最簡單的 Zephyr 應(yīng)用。選擇開發(fā)板 接下來你需要為這個應(yīng)用選擇一個目標(biāo)硬件。假設(shè)你手頭有一塊最常見的nRF52840 DK開發(fā)套件就在列表中選擇nrf52840dk_nrf52840。這個命名格式通常是“板卡型號_芯片型號”。選擇構(gòu)建目錄 選擇一個空文件夾作為你的項目構(gòu)建目錄。SDK 會在這里生成所有中間文件和最終的可執(zhí)行文件。等待初始配置 VS Code 會花一些時間初始化項目解析設(shè)備樹并生成默認(rèn)的構(gòu)建配置prj.conf文件。構(gòu)建項目 初始化完成后在 VS Code 左側(cè)的 “nRF Connect” 活動欄中找到你的項目點擊 “Build” 按鈕一個錘子圖標(biāo)。終端窗口會開始輸出編譯信息。第一次構(gòu)建 會非常慢因為需要編譯整個工具鏈和 SDK 中你應(yīng)用所依賴的所有模塊。請耐心等待這很正常。后續(xù)構(gòu)建 如果你只修改了應(yīng)用代碼增量構(gòu)建會快很多。如果一切順利你會在終端看到Build complete的字樣并在構(gòu)建目錄下找到編譯生成的zephyr.hex或zephyr.merged.hex文件。3.3 燒錄與調(diào)試有了 HEX 文件下一步就是把它燒錄到開發(fā)板上。連接開發(fā)板 用 USB 線將 nRF52840 DK 連接到電腦。開發(fā)板應(yīng)該會被識別為一個 J-Link 調(diào)試器和一個串行端口COM。燒錄固件 在 VS Code 的 “nRF Connect” 側(cè)邊欄找到你的項目點擊 “Flash” 按鈕一個閃電圖標(biāo)。它會自動調(diào)用nrfjprog工具將固件燒錄到芯片中。觀察結(jié)果 燒錄完成后你應(yīng)該能看到開發(fā)板上的 LED 開始閃爍。恭喜你的第一個 nRF Connect SDK 應(yīng)用成功運(yùn)行了查看日志 在 VS Code 中你可以打開串行終端比如使用 “Serial Monitor” 擴(kuò)展選擇開發(fā)板對應(yīng)的 COM 口波特率設(shè)置為 115200就能看到應(yīng)用通過printk或LOG_INF輸出的調(diào)試信息。這是后續(xù)調(diào)試的重要手段。踩坑記錄 我曾遇到燒錄失敗提示 “Cannot connect to J-Link” 或 “SWD DPIDR read failed”。這通常有幾個原因一是開發(fā)板供電不足或連接不穩(wěn)嘗試換一根質(zhì)量好的 USB 線二是其他程序如 Keil, IAR占用了 J-Link關(guān)閉它們即可三是開發(fā)板上的調(diào)試接口被意外禁用通過復(fù)位按鈕或擦除芯片可恢復(fù)。多備幾根可靠的 USB 線能解決很多玄學(xué)問題。4. 深入項目結(jié)構(gòu)從文件看門道成功運(yùn)行 Blinky 后讓我們回過頭來看看這個項目的文件結(jié)構(gòu)。理解這些文件和目錄的作用是掌握 nRF Connect SDK 開發(fā)的關(guān)鍵。your_blinky_project/ ├── CMakeLists.txt # 項目的頂層 CMake 構(gòu)建定義文件 ├── prj.conf # **項目的核心配置**用于 Kconfig 系統(tǒng) ├── src/ │ └── main.c # 應(yīng)用程序的主入口源文件 ├── boards/ # 可選板級覆蓋文件用于自定義硬件 ├── dts/ # 可選自定義設(shè)備樹綁定和覆蓋 └── build/ # 構(gòu)建輸出目錄由構(gòu)建系統(tǒng)生成CMakeLists.txt 這是現(xiàn)代 C/C 項目的構(gòu)建系統(tǒng)定義文件。在 nRF Connect SDK 中它通常非常簡單主要作用是指定項目名稱并“引入” Zephyr 的構(gòu)建系統(tǒng)。你不需要像傳統(tǒng) Makefile 那樣手動指定每一個源文件和庫因為 Zephyr 的 CMake 系統(tǒng)會根據(jù)你的配置prj.conf自動收集所有依賴。# 示例 CMakeLists.txt cmake_minimum_required(VERSION 3.20.0) find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) project(blinky) target_sources(app PRIVATE src/main.c)關(guān)鍵的一行是find_package(Zephyr ...)它建立了你的項目與整個 SDK 構(gòu)建系統(tǒng)的連接。prj.conf 這是項目的心臟。所有功能模塊的開啟與關(guān)閉都在這里通過 Kconfig 符號來設(shè)置。例如Blinky 項目里至少會有CONFIG_GPIOy這表示啟用 GPIO 驅(qū)動。如果你想使用日志系統(tǒng)就需要添加CONFIG_LOGy。所有可配置的符號都可以通過 VS Code 內(nèi)置的menuconfig工具在命令面板搜索 “nRF Connect: Launch Configuration GUI”來圖形化地瀏覽和修改它會自動同步到prj.conf文件。強(qiáng)烈建議新手多使用 GUI 工具來探索可用的配置項這比直接啃文檔高效得多。src/main.c 應(yīng)用程序代碼。它的結(jié)構(gòu)遵循 Zephyr 的約定#include zephyr/kernel.h #include zephyr/drivers/gpio.h /* 定義 LED 設(shè)備樹節(jié)點標(biāo)識符 */ #define LED0_NODE DT_ALIAS(led0) /* 獲取 LED 的設(shè)備實例 */ static const struct gpio_dt_spec led GPIO_DT_SPEC_GET(LED0_NODE, gpios); void main(void) { int ret; /* 檢查設(shè)備是否就緒 */ if (!device_is_ready(led.port)) { return; } /* 配置 LED 引腳為輸出 */ ret gpio_pin_configure_dt(led, GPIO_OUTPUT_ACTIVE); if (ret 0) { return; } /* 主循環(huán)閃爍 LED */ while (1) { gpio_pin_toggle_dt(led); k_sleep(K_SECONDS(1)); } }注意代碼中DT_ALIAS(led0)和GPIO_DT_SPEC_GET的用法。它們不是硬編碼的引腳號而是通過設(shè)備樹led0這個別名在開發(fā)板的.dts文件中定義為了具體的引腳比如 P0.13來獲取硬件信息。這使得代碼與具體硬件解耦。build/目錄 這是構(gòu)建過程的工作區(qū)和輸出區(qū)。里面包含了生成的zephyr/.config最終的完整配置、zephyr/include/generated/自動生成的頭文件如設(shè)備樹宏、編譯的中間文件.obj和最終鏡像。通常我們不需要手動修改這個目錄下的任何文件。如果構(gòu)建出現(xiàn)詭異問題嘗試刪除整個build目錄并重新構(gòu)建往往能解決。理解了這個結(jié)構(gòu)你就掌握了 nRF Connect SDK 項目的基本組織方式配置驅(qū)動功能prj.conf代碼描述邏輯main.c構(gòu)建系統(tǒng)負(fù)責(zé)組裝CMakeLists.txt設(shè)備樹描述硬件。這種清晰的分離是應(yīng)對復(fù)雜項目的基石。5. 進(jìn)階第一步配置系統(tǒng)Kconfig深度探索當(dāng)你不再滿足于修改示例開始創(chuàng)建自己的應(yīng)用時prj.conf和背后的 Kconfig 系統(tǒng)將成為你最親密的伙伴也可能是最讓你頭疼的部分。它強(qiáng)大但繁雜理解其工作原理至關(guān)重要。5.1 Kconfig 層次結(jié)構(gòu)與優(yōu)先級nRF Connect SDK 的配置不是一個平面列表而是一個有層次、有繼承關(guān)系的系統(tǒng)。板級默認(rèn)配置Board Default 每個開發(fā)板定義在boards/目錄下都附帶一個_defconfig文件。它設(shè)定了這塊板卡硬件能支持的基本功能比如有幾個 UART、默認(rèn)的時鐘源是什么。你的項目會首先繼承這些配置。應(yīng)用配置prj.conf 這是你作為開發(fā)者主要操作的文件。你在這里的配置會覆蓋板級默認(rèn)配置。例如板級可能默認(rèn)關(guān)閉了某個外設(shè)以省電但你的應(yīng)用需要它就在prj.conf里打開。額外配置片段.conf 文件 你可以創(chuàng)建多個.conf文件如prj_debug.conf,prj_release.conf并通過 CMake 變量CONF_FILE來指定使用哪一個。這在管理不同構(gòu)建變體調(diào)試版、發(fā)布版時非常有用。環(huán)境變量與命令行覆蓋 最高優(yōu)先級。你可以在構(gòu)建時通過-DCONFIG_XXXy的 CMake 參數(shù)來強(qiáng)制設(shè)置某個選項這常用于自動化腳本。實操心得 當(dāng)你發(fā)現(xiàn)某個功能按文檔配置了卻不起作用時首先檢查最終生成的build/zephyr/.config文件。這個文件是所有配置來源合并后的最終結(jié)果。用文本編輯器打開它搜索你關(guān)心的配置符號如CONFIG_BT看看它的值是不是你期望的y。如果不是說明有更高優(yōu)先級的配置覆蓋了它你需要順藤摸瓜去找原因。5.2 常用關(guān)鍵配置項解析以下是一些幾乎每個項目都會用到的核心配置項理解它們能幫你快速搭建項目骨架。內(nèi)核與系統(tǒng)CONFIG_HEAP_MEM_POOL_SIZE 動態(tài)內(nèi)存堆大小。如果你的應(yīng)用用了malloc或某些需要動態(tài)內(nèi)存的庫如某些網(wǎng)絡(luò)協(xié)議棧必須設(shè)置足夠大。默認(rèn)值可能很小如 1024 字節(jié)。CONFIG_MAIN_STACK_SIZE 主線程的棧大小。如果主線程里做了比較深的函數(shù)調(diào)用或分配了較大的局部數(shù)組需要調(diào)大此值否則會導(dǎo)致棧溢出和系統(tǒng)崩潰。CONFIG_LOG和CONFIG_LOG_DEFAULT_LEVEL 啟用日志系統(tǒng)并設(shè)置默認(rèn)日志級別0-4從錯誤到調(diào)試。這是最重要的調(diào)試手段之一。外設(shè)與驅(qū)動CONFIG_GPIOy 啟用 GPIO 驅(qū)動。CONFIG_SERIALy和CONFIG_UART_CONSOLEy 啟用串口驅(qū)動并將控制臺輸出重定向到串口這樣printk才能工作。CONFIG_I2Cy,CONFIG_SPIy 啟用對應(yīng)的總線驅(qū)動。無線協(xié)議CONFIG_BTy 啟用藍(lán)牙核心功能。如果要作為外圍設(shè)備Peripheral通常還需要CONFIG_BT_PERIPHERALy作為中心設(shè)備Central則需要CONFIG_BT_CENTRALy。CONFIG_BT_DEVICE_NAMEMyDevice 設(shè)置藍(lán)牙設(shè)備名稱。CONFIG_BT_MAX_CONN3 設(shè)置最大連接數(shù)根據(jù)需求調(diào)整會占用內(nèi)存。CONFIG_NETWORKING和CONFIG_NET_IPV4等 啟用網(wǎng)絡(luò)協(xié)議棧這是使用 Thread, Wi-Fi 等協(xié)議的基礎(chǔ)。配置系統(tǒng)是 nRF Connect SDK 學(xué)習(xí)曲線中最陡峭的部分之一。我的建議是從模仿開始。多參考 SDK 中自帶的示例項目的prj.conf文件看看實現(xiàn)類似功能需要開啟哪些選項。同時善用menuconfig的搜索功能它能幫你快速找到配置項并查看其幫助文檔。6. 設(shè)備樹Devicetree實戰(zhàn)連接真實硬件設(shè)備樹是另一個核心概念它描述了硬件。對于大多數(shù)應(yīng)用開發(fā)者你主要與“設(shè)備樹覆蓋Overlay”文件打交道用于調(diào)整或補(bǔ)充標(biāo)準(zhǔn)開發(fā)板的硬件定義或者為你自己的定制硬件板編寫定義。6.1 為什么需要設(shè)備樹覆蓋假設(shè)你在 nRF52840 DK 上想用另一個 GPIO 引腳而不是板載 LED 對應(yīng)的引腳來控制一個外接的 LED。你有兩種選擇在代碼中硬編碼新引腳號 這違背了設(shè)備樹“代碼與硬件分離”的哲學(xué)不推薦。使用設(shè)備樹覆蓋文件 創(chuàng)建一個.overlay文件在其中重新定義led0這個別名指向你的新引腳。這樣你的main.c代碼完全不用改依然使用DT_ALIAS(led0)但控制的硬件變了。6.2 創(chuàng)建并使用一個簡單的覆蓋文件在你的項目根目錄下創(chuàng)建一個新文件命名為app.overlay文件名可以自定義但通常用.overlay后綴。在文件中寫入/ { aliases { // 將 led0 別名重新指向 P0.15 引腳 led0 gpio0_15; }; }; gpio0 { gpio0_15: gpio0_15 { gpio-hog; gpios 15 GPIO_ACTIVE_HIGH; output-high; }; };這段代碼做了兩件事一是修改了led0別名使其指向一個名為gpio0_15的新節(jié)點二是在gpio0節(jié)點下定義了這個gpio0_15節(jié)點并將其配置為輸出高電平的“hog”引腳即由系統(tǒng)初始化時直接控制而非動態(tài)申請。為了讓構(gòu)建系統(tǒng)識別這個覆蓋文件你需要在CMakeLists.txt中或在 VS Code 的項目配置中指定它。一種簡單的方法是在項目根目錄創(chuàng)建一個CMakeLists.txt的補(bǔ)充文件CMakeLists.txt.user并添加set(DTC_OVERLAY_FILE ${CMAKE_CURRENT_SOURCE_DIR}/app.overlay)或者在CMakeLists.txt中直接添加set(DTC_OVERLAY_FILE app.overlay)。重新構(gòu)建項目。構(gòu)建系統(tǒng)會將你的覆蓋文件與開發(fā)板默認(rèn)的設(shè)備樹描述合并生成最終的定義。你的 Blinky 代碼現(xiàn)在就會去控制 P0.15 引腳了。6.3 為自定義硬件板創(chuàng)建完整板級定義如果你在做自己的產(chǎn)品需要為定制電路板創(chuàng)建完整的板級支持。這更復(fù)雜但遵循固定模式在項目下創(chuàng)建boards/目錄。在boards/下創(chuàng)建以你的板卡命名的目錄如my_custom_board/。在該目錄下至少需要兩個文件my_custom_board.dts 描述所有硬件包括 CPU、內(nèi)存、外設(shè)、引腳復(fù)用等。my_custom_board_defconfig 板級的默認(rèn) Kconfig 配置。你還可以添加my_custom_board.yaml板卡描述文件和Kconfig.board、Kconfig.defconfig等。在CMakeLists.txt中通過board_root設(shè)置指向你的boards/目錄或者直接將這個目錄放在 SDK 的boards/目錄下不推薦因為會污染 SDK。編寫完整的.dts文件需要深入理解設(shè)備樹語法和硬件知識通常從復(fù)制一塊相近的現(xiàn)有開發(fā)板的定義文件開始修改。這是硬件驅(qū)動工程師的主要工作之一應(yīng)用層開發(fā)者更多是使用和編寫覆蓋文件。設(shè)備樹的價值在于當(dāng)你的硬件需要更改比如 LED 換了個引腳或者換用了不同型號的傳感器時你通常只需要修改.overlay文件而無需觸碰核心的業(yè)務(wù)邏輯代碼。這種解耦極大地提高了代碼的復(fù)用性和可維護(hù)性。7. 調(diào)試與問題排查從崩潰到穩(wěn)定運(yùn)行即使環(huán)境搭建成功第一個程序也跑起來了在后續(xù)開發(fā)中你依然會遇到各種問題。掌握有效的調(diào)試方法是提高效率的關(guān)鍵。7.1 日志系統(tǒng)你的第一道防線Zephyr 提供了功能強(qiáng)大的日志系統(tǒng)遠(yuǎn)比簡單的printk好用。在prj.conf中啟用CONFIG_LOGy后你可以在代碼中這樣使用#include zephyr/logging/log.h // 定義一個日志模塊名字為app LOG_MODULE_REGISTER(app, LOG_LEVEL_DBG); // 設(shè)置此模塊的日志級別為 DEBUG void some_function(void) { int error -1; // 不同級別的日志 LOG_ERR(Operation failed with error: %d, error); // 錯誤 LOG_WRN(This is a warning); // 警告 LOG_INF(System started); // 信息 LOG_DBG(Variable value: %x, some_var); // 調(diào)試默認(rèn)可能不輸出 }在menuconfig中你可以全局設(shè)置日志級別CONFIG_LOG_DEFAULT_LEVEL也可以為每個模塊單獨設(shè)置。通過串口終端你可以看到帶時間戳、模塊名和級別的彩色輸出如果終端支持非常清晰。7.2 常見的構(gòu)建與運(yùn)行問題構(gòu)建失敗找不到頭文件或符號可能原因 對應(yīng)的驅(qū)動或模塊沒有在prj.conf中啟用。例如代碼中包含了zephyr/drivers/i2c.h但CONFIG_I2C沒有被設(shè)置為y。排查 檢查編譯錯誤信息看是哪個頭文件或函數(shù)未定義。然后去menuconfig中搜索相關(guān)的配置符號并啟用它。程序運(yùn)行崩潰或卡死棧溢出 這是最常見的原因之一。癥狀可能是莫名其妙的復(fù)位或卡在某個地方。增大CONFIG_MAIN_STACK_SIZE或相關(guān)線程的棧大小試試。內(nèi)存訪問錯誤 比如空指針解引用、數(shù)組越界。啟用CONFIG_DEBUG和CONFIG_ASSERT有助于在開發(fā)早期捕獲這類問題。也可以使用 Segger Ozone 或 J-Link RTT 進(jìn)行更底層的調(diào)試。中斷服務(wù)程序ISR處理不當(dāng) 在 ISR 中調(diào)用了可能導(dǎo)致阻塞的 API如k_sleep或者 ISR 執(zhí)行時間過長。外設(shè)不工作如 GPIO 無法輸出檢查設(shè)備樹 首先確認(rèn)在設(shè)備樹中該引腳沒有被其他功能如 UART、SPI復(fù)用。使用app.overlay明確配置你的引腳。檢查設(shè)備狀態(tài) 像前面 Blinky 代碼一樣使用device_is_ready()檢查驅(qū)動是否初始化成功。檢查電源和時鐘 有些外設(shè)如某些系列芯片的 I2C、SPI需要額外的電源域或時鐘使能。參考芯片手冊和 SDK 中的驅(qū)動示例。功耗高于預(yù)期檢查空閑線程 系統(tǒng)進(jìn)入空閑線程后才會進(jìn)入低功耗模式。確保你的應(yīng)用沒有一直處于忙碌循環(huán)。使用 Power Profiler Nordic 的 nRF Connect for Desktop 中的 “Power Profiler” 工具是分析功耗的神器。它能以高采樣率測量板子的電流消耗幫你定位是哪個模塊、哪段代碼導(dǎo)致了異常耗電。檢查外設(shè)狀態(tài) 未使用的外設(shè)是否被正確關(guān)閉GPIO 在輸入模式下是否配置了上拉/下拉以避免浮空輸入耗電調(diào)試是一個系統(tǒng)性工程需要耐心和邏輯。養(yǎng)成良好習(xí)慣充分利用日志、從小功能模塊開始驗證、善用官方示例代碼作為參考、在修改配置后徹底清理并重建west build -t clean或刪除build/目錄。隨著經(jīng)驗積累你會逐漸形成自己的問題排查直覺。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
草操AV在线| 五月婷婷九| 天天综合五月| 色五月色图| 极品人妻VideOssS人妻| 蜜臀AV在线成人| 丁香六月婷婷综合激情欧美| 麻豆雪千夏| 9999热免费视频视频| 99免费视频网| 色色丁香五月婷婷| 婷婷丁香五月天狠狠| 射久久丁香五月| 色噜噜狠狠一区二区三区| 欧美婷婷五月无砖| 99精品视频在线观看| 26uuu91| 极品另类| 在线综合啪| 99热.com| 一区视频网站| 99∨VTV| 婷婷涩涩网| 黄色片精品| 日韩欧美成人一区二区三区| 黄桃AV无码免费一区二区三区 | 婷婷五月天伦理| 996热re视频在线观看视频| 婷婷五月激情热播| 婷婷五月色影视先锋| 婷婷色五月大香蕉在线| 欧美电影在线观看| 国产日产亚洲系列最新| 国产精品99久久久久久久女警| 丁香婷婷色五月天| 天天色激情| 五月天婷婷在看| 青青草原爱爱网| 大战熟女丰满人妻AV| 狠狠爱综合| 久久九九在线视频| 5月婷婷激情网| 思思综合热| 好吊操这里只有精品| 丁香大香蕉| 国精产品一区二区三区| 欧美精品A片一区在线观看| 狠狠狠狠狠狠草| 人人97碰| 久草热在线视频| 伊人狠狠丁香婷婷综合尤物| 欧美精品99| nvrentiantang av| 这里只有精品1| 思思热天天看| 黄色99网| 午夜婷婷五月天| 热99re| 97色射| 99热这里只有精品8| 99无码超碰| 五月天婷婷丁香基地在线观看| 开心五月深爱婷婷| 五月99久久| 婷婷淫淫狠狠六月| 国产激情av| 开心五月深爱五月| 天天射美女| 亚洲另类婷婷综合| 99综合免费视频| 天天操综合网| 亚洲精品又粗又大又爽A片 | 五月婷婷啪啪啪| 久久激情五月天| 97色色网| 国产亚洲精品久久久久久牛牛| 丁香五月电影| 日逼AV影音先锋男人资源站| www网站在线观看| 婷婷五月成人系列| 人人干人人操人人摸| 9久热在线精品| 日本A片一区| 狠狠色综合无线观看| 日本色99网站| 久久婷婷五月综合成人d啪| 9热在线观看| 欧美在线看| 国产操逼视频网站| 美女激情综合| 国产免费一区二区三州老师F1……| 激情五月婷婷综合| 大香蕉人人网| 天天插天天插天天操| 五月丁香婷婷在线| 甈你aaaaa| 国产五月天欧美色| 九九碰九九爱97| 影音先锋自拍网| 色色999三级片| 亚洲色婷婷五月天| 狠狠999| 丁香五月成人av| 九九精品综合| 丁香激情五月| 五月婷婷九九热| 超碰91在线| 五月天久久婷| 五月婷亚洲精品AV天堂| 五月丁香欧美综合| 综合网五月| 久久AAAA片一区二区| 天天久久婷婷| 久久婷婷五月天综合| 六月丁香婷婷综合在线| YJLZZJLZZ亚洲乱熟无码| 五月婷婷深深爱| 少妇高潮呻吟A片免费看软件| 天天综合网色欲香| 久久网站观看免费欧洲国产| 五月婷婷AV| 精品乱码久久久久| 91丁香综合| 香蕉大综综综合久久| 9er热在线精品视频| 99视频这里只有久久精品| 婷婷在线激情| 色欲AVV| 婷婷色色丁香五月天| 五月青青草综合| 激情综合网五月婷婷| 91Chinese在线| 99亚州综合精品成人网| 婷婷中文字幕网站| 中文久久久人妻| 六月婷婷在线视频| 五月开心网| 丁香五月综合激情久久潮喷| 五月伊人视频在线看| 伊人婷婷大香蕉| 色色操| 91热久| 国产五月丁香在线| 日韩一级片| 欧美日韩精品人妻狠狠躁免费视频| 丁香五月综合久久| 人人噜天天上| 无码碰碰| 亚洲乱码成人| 国产精品涩涩涩视频网站| 99色精品| 五月欧美丁香在线观看| 丁香婷婷婷婷十二月在线观看视频| 欧美噜噜久久久XXX| 色婷婷www| 精品99久久久久成人网站免费| 激情五月天影院| 成人网在线观看视频| 国产超碰在线| 色情综合网| 亚洲av成人电影在线观看| 天天插夜夜爽| 99免费超碰在线| 99自拍视频| 激情深爱综合网| 国产亚洲色婷婷久久99精品91| www.com色播五月天| 色欲天天综合| 色婷婷丁香AV综合| 丁香五月婷久久| 激情综合丁香六| 99热思思在线观看| 日韩精品无码一区二区| 婷婷五月天综合激情| 久久丝袜婷婷| 婷婷色五月丁香六月欧美啪| 婷婷五月天小说网| 99热这里只有精品268| 99热在线播放| 五月婷婷激情综合| 蜜乳.comcom| 亚洲午夜AV| 久久停停超碰| 色婷五月| 操逼在线视频| 国产亚洲精品AAAAAAA片| 亚洲综合色色| 激情五月婷婷| 国产精品久久久久久五月天加勒比| 色五月激情五月| 婷婷五月免费观看| 男同色五月开心五月激情五月| 香蕉五月婷婷| 91se在线观看| 九九精品99| 婷婷五月丁香91| 国产免费一区二区三州老师F1F1| 夜夜嗨一区二区三区直播内容| 亚洲成色综合网站免费观看| 91re色综合视频| 久久96热| 激情五月婷婷视频一区二区三区| 九九色逼| 丁香五月网站| 秋霞少妇AV网站| 天天天天天天天操| 色五月婷婷影院| 五月婷婷五月天| 伊人干综合| 99热8| 成人婷婷色综合| www.sezonghe| 91综合在线视频| 久草狼人| 99久在线精品99re8热| 思思热精品在线观看| 丁香六月婷婷色XXXXX| 色综合伊人网| 草美女在线观看视频在线播放| 九九色网专区| 日韩高清成人| 伊人婷婷五月天av| 99ri国产| WWW.五月com| 五月综合视频| 婷婷丁香六月综合激情站| 99热免费观看| 色狠狠婷婷| 超碰在线国产| 久在线综合69| 99色色视频| 久久96热| 五月天婷婷综合久久| 最近中文字幕2019视频1| 综合网亚洲| 99re热精品在线视频| 色婷婷五月天视频在线| 91操碰| 五月婷婷黄色网址| AA丁香综合激情| 开心激情站婷婷五月天| 婷婷中文无码| 欧洲第一无人区观看| 五月天激情亚洲| 精品思思久久| 天堂网啪啪| 91丨九色丨东北熟女| 亚美欧色影院| 大香蕉婷婷| 久热精彩视频98| 色五月大香蕉| 日日干天天| 97操视频| 九月丁香八月婷婷久久综合久97| 色色六月| 在线看片h站| 自拍偷窥99热| 99re热久久| 另类视屏| 殴美97色| 五月花婷婷| 超碰人人操| 五月丁香婷婷啪啪综合网| 超级碰91| 婷婷丁香六月天激情四射网| 最近免费中文字幕大全高清大全1| 日本啪啪网| 桃色五月婷婷| 另类图片五月天| 欧美影院| www.久热| 天天婷婷| 激情五月,婷婷五月,丁香五月| WWW丁香五月| 亚洲AV日韩AV永久无码网站| 五月婷婷综合在线视频| 91919191919久久成人视频| 丁香九月婷婷综合| 亚洲黄色精品| 五月丁香婷婷婷激情爱爱| www.思思99热| 婷婷五月天性| 丁香五月激情视频在线| 亚洲综合网激情五月天| 狼友视频在线观看18| 久久天堂色| 狠狠色噜噜狠| 国产99久久久国产精品免费看| 欧洲色| 婷婷五点亚洲| 九九精品网| 九九机热| 成人免费va| 婷婷五月天成人综合网| 99热99日…..| 丁香婷婷人妻综合网| 人人妻人人澡| 亚洲愉拍99热成人精品| 日日夜夜狠狠| 麻豆雪千夏| 久久这里只精品| 日日肏夜夜干| 九九热视频精品| va亚洲中文在线| 丁香婷最新动态| 久久精品4| 激情久久 婷婷| 综合久久首页| 婷婷丁香九月| 婷婷丁香69精华| 综合网色| 日本3级片偷拍网站| 亚洲人妻Av| 色色色在线| 另类激情码| 日韩超碰在线| 影院久久久| 久久一伦| 99热都是精品| 精品九九在线观看视频| 久久黄色免费视频| 99热精品一| 欧美亚洲操逼| 91久久色| 婷婷五月丁香91| 欧美综合激情五月丁香| 99热的无码| 亚洲成人噜噜| 97性视频| 第九色区av天堂| 日韩乱轮AV| 激情性爱婷婷| 大香蕉五月丁香| 99久久综合| 99在线观看亚洲| 久久三级视频| 五月婷婷和六月| 丁香 婷婷 亚洲 熟女| 婷婷五月天欧美| 丁香婷婷色色| 色色色免费视频| aa久久| 五月天久久久| 色情五月| 激情综合五月激情| 新激情五月天色播| 人妻少妇色综合| 婷婷操逼| 五月天久久小说| 五月婷婷 自拍| 五月伊人婷婷999| 99热最新网址| 99九九玖玖| 99热成人永久免费| 成人婷婷五月| 丁香激情久久| 亚洲天堂青草| 色五月超碰| 天堂婷婷五月色| 99视频只有精品| 婷婷丁香91综合| 五月天婷婷基地综合网| 五月天激情国产综合婷婷| 色婷婷AV在线| 天天操婷婷| 丁香婷五月天开心六月| 天天色天天射天天日| 婷婷综合视频| 久久亚洲激情五码| 天天日天天爽| 国产白丝在线一区| 婷婷婷婷色| 中文av网站| 九色综合五月天婷五月| 国产午夜精品AV一区二区麻豆| 激情久久综合网| 亚洲视频在线观看99| 六九色综合婷婷五月天| 99国产精品久久久久久久久久久| 啪啪婷婷五月天激情| 涩涩婷婷五月| 深夜激情网| 久综合网| 色色色欧美| 亚洲第一第二网站| 久久婷婷五月综合色欧美| 就是色婷婷五月亚洲色| 9999三级片| 好叼操在线观看| 九九热这里只有精品556| 五月天亚洲综合网| WWW、日本色丁香、co m| 千人斩操逼| 伊人久久艹| 丁香五月WWW| 丁香五月天激情综合网| 亚洲中文乱字字幕在线永久| www.五月婷婷久久.com| 久99热在线观看| 香蕉久久国产AV一区二区| 久久99精品九九久久久婷婷| 九色91国产| 秋霞av不能| 九九久久综合网站| 日日夜夜九九| 97干干干丁香| 亚洲爆乳无码精品AAA片蜜桃| 欧美日韩国产一区| 在线观看欧美| 六月婷婷色色色| 婷婷五月天激情五月天深爱五月天| www.minyis.com【JT】国内CDN落地页保证转化QQ2101460746 | 网站免费一站二站| eeuus五月婷| 综合婷婷| 午夜理论片最新午夜理论剧| 亚洲综合另类| 99热日本| 日本大人久久| 四色五月婷婷在线观看| 极品另类| 色停停香蕉视频| 久久9久久| 99热免费| 日韩成人中文字幕| 人妻少妇色综合| 只有精品视频在线观看| 国产亚洲精品AAAA片APP| 99在线观看视频免费| 97 A I色色| 国产Va视频| 五月天激情网图片| 伊人五月天婷婷| 婷婷丁香五月综合久久| www.婷婷,com| 久久97| 久久这里只有精品热在99| 9久久精品| 色色五月天婷婷| 亚洲精品操一操、噜一噜、摸一摸、爽| 色婷婷小说网| 79成人网| 婷婷五月天丁香久久| WWW.婷婷| 久久这里只有精品久久| 全部老头和老太XXXXX| 九九热在线观看视频网站| W色综合| 丁香六月情| 婷婷丁香激情综合色情| 拍真实国产伦偷精品| 丁香激情合作五月| 国产操逼网站| 久久六月天| 五月天激情图| 97极品在线| 成人短视频在线观看| 色婷婷五月六月丁香综合视频| 激情99| 人妻操逼视频| 人妻狠狠操| 精品一区久热| 狠狠丁香| 欧美va精品va老师va| www.99.色| 亚洲综合另类| 99热99思午夜精品| 午夜激情久久| 五月丁香网站| 开心激情站| 婷婷欧美偷拍综合| 色欲色香综合网站| www.夜夜| 91九色在线视频| 婷婷四月 成人 狠狠干| 色原狠狠综合| 成人做爰A片免费看视频| 天天日夜夜曹| 丁香五月成人论坛| 4438激情网| 精品亚洲国产成AV人片传媒| 人人干av| 久久思思热视频| 九九九色综合| 97自拍视频网| 五月天婷婷影院| 日日夜夜干| 综合狠狠干| 伊人五月综合网| 五月天婷婷成人网| 婷婷综合亚洲| 久久激情五月| 色综合网综合| 九九蜜臀精品| 五月天操逼网| 五月情涩综合婷婷| 狠狠色噜噜狠| 激情六月天| 五月丁香激情综合网| 1024手机在线观看看片_日韩精品| 黄色片久久| 少妇高潮一区二区三区99欧美| 丁香五月停停av| 天天人人综合| 婷婷爱在线观看| 性爱七区| #NAME?| 五月丁香综合| 五月婷婷六月丁香| 婷婷五月天狠狠搞干| 综合色情网| 色婷婷AⅤ| 日韩av变天就操逼不卡区| 九九色热| 五月婷婷五月色| 九九亚洲视频| 亚洲综合狠狠艹| 欧美日韩AAAAA| 久久婷婷色| 欧美大香蕉视频| 狠狠色婷婷色| 色婷婷成人久久| 亚洲电影在线观看| 婷婷丁香社区| 五月激情影院| 超碰av在线| 九九Av| 99自拍视频在线观看| 色七七色九九| 成人开心五月天| 这里只有精品视频在线看| 人人干Av| 色婷婷五月天在线| 人人操人av| 午夜不卡成人一区二区| 婷婷色色综合激情| 婷婷五月俺要去| 五月婷五月婷伊人伊人五月婷| 九九综合| 五月丁香六月在线欧美| 久久中文人妻系列| 深爱五月激情网| 99视频超级精品| 久99热| 久操b网| 五月天激情综合网俺也去| 91se在线视频| www.粉嫩av.com| 97色色色视屏| 婷婷久久六月费| 丁香五月23111| 色色色欧美色色| 五月天色婷婷伊人网| 五月成人综合| 天天色天天日天天舔| 五月丁香五月婷婷| 99热18| 开心激情婷婷| 欧美槡BBBB槡BBB少妇| 成人亚洲精品久久久久| 99在线视频操999| 五月丁香色色色| 激情婷婷黄色五月| 99久扒热| 秋霞黄色一级久久| 色五狠狠| 中文字幕人妻在线| 99啪啪| 夜夜爽77777妓女免费下载| 色欧美一级| 久久99草五月婷婷| 成人精品人妻| 韩日在线熟女| 99精品大片| 91丨九色丨熟女丰满| 99热伊人| 高清资源站日A美A欧亚…| 婷婷性爱综合| 337p大胆噜噜噜噜噜91Av| 丁香午月AV中文字幕| 婷婷五月精品在线| 香蕉操亚洲| 亚洲无码99| a级毛片一区二区免费视频| 99碰视频| 五月婷婷无码专区| 狠狠狠狠狠狠色| 91丨九色丨熟女高潮| 久婷婷视平| 日韩一级A片黄色| 狠狠另类视频| 精品人妻伦一二三区久久| 国产亚洲色婷婷久久99精品91| 精品久久久久成人码免费动漫| 五月婷综合| 99操逼| 天堂婷婷丁香六月网| 91九色中文字幕女在线观看| 99在线精品免费视频| 日韩三级视频一区二区| 五月天婷婷色在线视频免费观看| 激情五月六月婷婷| 五月婷在线| 五月天色欧美| 狠色狠色狠色狠色狠色网| 婷丁香五月天| 日曰躁夜夜躁2026| 噜噜噜狠狠色综| 草婷婷在线| 大香蕉九九| 国产性爱大片久久| 五月天婷婷久久日| 能看的AV| 色约约视频一区二区三区四区五区| 婷婷五月激情网| 日日夜夜综合| 综合另类视频| 97自拍99| 性99网站| 人妻AV在线| 嫩模aV在线| 日日舔夜夜操| 亚洲精品久久久久AV无码| 国产综合婷婷| 五月丁香婷婷综合视频| 亚洲精品又粗又大又爽A片| 9久热在线视频精品| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 色婷婷四色| 久久成人综合五月天| av在线观看免费| 婷婷五月天丁香久久| 亚洲日韩26uuu| 久久xx| 91日韩美女被插视频| 狠狠狠狠狠操| 99超超碰| 天天摸天天舔天天爽| 综合色五月天| 秋霞九九无码| 日日夜夜天天爽| 五月婷婷色| 色色色网站| 99激情网| 玖玖婷婷五月| 久久综合播放| 亚洲婷婷欧美婷婷| 六月婷婷网| 丁香激情综合| www.99操.com| 五月婷婷影视| 丁香六月婷婷基地| 婷婷五月天激情亚洲小说| 五月激情啪啪| 亚洲射激情| 亚洲激情综合| 天天肏屄夜夜爽| 丁香婷婷色五月| 婷婷五月天AV| 99视频久久| 国产人妻操逼| 99九色视频在线观看| 九热久| 91九色视频在线观看| 婷婷99丁香| 婷婷玖玖五月天| 天天干,天天操,天天射| 激情五月丁香六月综合AVXXXX| 亚洲色色五月| 国产精品久久在线观看技巧| 99热这里全都是精品| 99re66热这里只有精品| 极品人妻VIDEOSSS人妻| 这里只有国产精品在线| 无码一区精品一区视频| 思思热久久婷婷五月天| WWW.久久久久久久久久久久久| 色五月色五天免费视频| 久久久久98| 日本婷婷五月天| 亭亭色网| 丁香婷婷基地| 五月www| 五月婷婷欧洲| 五月久久婷婷天堂视频| 色9999日韩国产| 午夜少妇在线观看视频| 综合综合网| 亚洲成人综合网在线免费观看| 五月婷婷六月丁香色| 98色花堂98t.R| 五月天久久婷婷| 第四色色六月色综合| 五月婷婷影| 天天干天天操天天干天天操天天干天天操 | 婷婷色基地在线看 | 丁香婷婷六月激情文学| 这里只有精品网站| 99日精品视频| 99热免费| 婷婷综合激情| 成人在线日韩| 五月婷婷影视| 久久婷婷综| 99热6这里之有精品| 久久久宗合视频88| 五月婷婷激情综合网| 久操婷婷| 精品久9| 五月天丁香久久| 成人欧美一区二区三区在线观看| 九月停停| 在线不卡视频| 日本社区五月天激情| 超碰成人在线观看| 狠狠干最新地址| 丁香五月在线播放| 天天爽曰日爽| 久久精品五月天| 图片区 小说区 区 亚洲五月| 五月婷婷五月| 日日操夜夜爽天天天| 操操熟女| 97色碰| 国产精品VA在线| 五月丁香综合啪啪啪啪啪| 成人免费超碰| 五月天激情国产综合婷婷婷 | 亚洲激情婷婷| 丁香五月大片| 大香蕉五月婷婷| 99re欧美精品| 国产这里只有精品| 99热66| 五月丁香六月婷婷亚洲激情综合| 婷婷伊人久久| 色碰97| 综合激情五月天| 亚洲精品色| 丁香五月天激情综合| 久久性爱视频| 色情婷婷五月天| 婷婷免费成人视频| 黄网在线免费播放| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 亚洲另类在线观看| 天天插AV丝袜中| 婷婷的激情五月| 99热播放| 丁香五月婷婷欧美成人色图| 丁香五月激情久久麻豆| 大香蕉伊人久久| 热99精品视频五月| 日日操夜夜骑| 懂色AⅤ| 99精品色色| 二色AV| 午夜九九九九九九九九九九九九九| 国产婷伊人| 69精品人人人人| 中文AV网站| 天天摸人人摸| 人妻操操色| 激情婷婷色小说| 一起草无码视频| 日韩精品999| 九九99在线| 六月综合婷婷开心伊人| 蜜臀av 粉嫩av 懂色av | 尤物一区二区| 色99色| 99热这里只有精品在线| 直接看的av| 日本91在线| 国产综合婷婷| 97影院一级片| 玖玖99免费视频| 青青草五月天| 偷偷操99| 99操免费视频| 五月婷婷九| 91碰超| 久久精品99久久久久久| 色色热| 六月婷久久| 色色五月婷婷久久| 91丨九色丨熟女|老版| 狠色狠色综合久久| 五月婷婷激情久久| 欧美成人A片AAA片在线播放| 婷婷五月天综合小说网| 六月激情久久| 天堂久久性| 日本久久人| 色婷婷综合网站| 婷婷五月天AV| 五月天婷婷基地| 99网| 五月桃花网综合| 久久久久久久久久人妻| 综合五月天完整| 亚洲五月花| 亚洲精品永久久久久久| 欧美精品99| 激情五月六月婷婷| www99热| 九月丁香八月婷婷加勒比| ..真实国产乱子伦毛片| 九九爱激情| 97超级碰碰碰| 青青草tp| 蜜臀av无码久久久久久久久| 色人妻五月| 婷婷激情视频欧美视频自拍视频欧美剧| 可以看的AV| 九九色99| 北京熟妇搡BBBB搡BBBB| 久草婷婷在线| 天天综合 99久久婷婷| 天天肏视频| 久久99热这里| 99热这里只有精品3| 深爱五月天| 天天干夜夜谢| www,99视频| 五月天婷婷亚洲| 91美女被操| www.丁香黄色五月天人与| 日韩AV大全| 久婷| 秋霞av吧| 女人天堂久久| 99免费视频久久| 日韩欧美一级大黄网站| WWW免费视频碰碰碰碰| 丁香五月婷婷偷拍| 成人做爰A片免费看视频| 亚洲mm免费| 人妻中文av| 婷五月天天| 色99欧洲色19| 婷婷五月激情中文字幕| 狠狠干夜夜干| 色欲AVV| 久久HD| 日本熟女一区二区| 久久这里只有精品热在99| 色婷婷五月天偷拍| 午夜]香婷婷深深爱| 激情五月婷婷| 婷婷五月天BBw| 亚洲欧洲另类| 人人操碰| 在线视频色五月| 日日夜夜久| 综合久| 2022人人操人人看| 亚洲成人色五月婷婷综合| 九九在线精品| 国产XXXX搡XXXXX搡麻豆| 亚洲五月花| 微拍92| 最新热中文字幕| 天天干天天 亚洲| 婷婷操逼| 5五月综合网亚洲| 色五月丁香激情视频| 99九九玖玖| 北条麻妃伊人| 色五月婷婷成人视频| 五月综合视频| 大香蕉综合网| 综合久久久婷| 五月开心婷婷| AV大香蕉| 人妻AV在线观看| 婷婷色色婷婷| 色色五月婷婷网| sesesesezonghe| 五月婷婷啪啪啪| 国产性爱大片久久| 思思久久96热在精品国产,| 综合大香蕉| 婷婷五月六月| 亚洲亚洲永久无码777777| 99久久婷婷| 91人人操人人| 黄色三级日本| 青青草六月丁香| 热99在线| 99碰超| 激情网婷婷五月天| 精品热九九| 亚洲激情视频网| 六月天婷婷| 九月丁香婷婷综合| 丁香五月激情五月| 在线一起草av| 丁香五月综合在线观看| 国产3p露脸普通话对白| 伊人青草成人| 激情五月天综合| 激情六月婷婷| 国产成人av在线播放| 热久久色| 五月婷六月丁香| 国内一级片| 婷五月丁香| 国产亚洲成AV人片在线观黄桃| 激情婷婷五月天。| 五月婷婷色情| 九九热九九| 五月丁香婷婷综合久久| 色狠狠999综合| 99色色| 天天se在线视频| 大香线蕉伊人| 日韩黄色网络| 婷婷五月丁香综合| 日本3级片偷拍网站| 亚洲成人AV在线播放| 色综合天堂| 色噜噜狠狠色综合网| 日韩欧美老妇性视频91久久久| 狠狠爱五月婷婷| 久久久久99精品成人网站| 亚洲AV日韩无码| 性爱网五月天| 五月婷久久| www久久五月com| 91蜜桃婷婷狠狠久久综合9色| 婷婷久久五月天亚洲欧美国产日韩在线观看 | 五月天成人综合| 成人五月天在线视频在线观看| 99成人在线观看| 9999热在线免费观看| 五月丁香六月婷婷久久| 日本精品干| 色情五月丁香婷婷网| 97五月天| 色色激情网| 五月丁香综合激情| 99久久黄色顶级视频| 国产日韩欧美| 秋霞影音91人妻久久| 一区=区操屄高清大全av| 激情综合网五月激情网| 中文字幕人妻在线| 久久丁香五月| 亚洲AV无码久久精品色欲| 五月天激情亚洲| 激情网婷婷五月天| 婷婷色婷婷亚洲成人| 五月婷婷六月丁香| 丁香五月激情澎湃一区| 操人精品| 久久婷五月| 五月丁香九九九综合| 国产伊人大香蕉| 97香蕉久久超级碰碰高清版| .操區COm| 综合网精品99| 色婷婷在线播放| jiujiu无码五区| 婷婷五月成人| 五月色影院| 婷婷激情九月| 91精品国产综合久久久不卡电影| 激情五月天伊人影院| 色婷婷色99国产综合精品| 噼里啪啦完整版中文在线观看| 九色色| 九色91美女| 婷婷大香蕉| 另类激情中文| 密黄站| 婷婷五月丁香99| 天天天天天日| 丁香婷婷成人在线播放| 婷婷久久五月| 六月五月天婷婷涩播在线| 婷婷婷婷色| 男人的天堂999| 婷婷五月天久| 色色色99| 天天狠狠六月婷丁香影院| 丁香五月网络网络| www999日韩精品| 久久亚洲A| 区啪精品| 超碰精品在线| 婷婷中文字幕| 天天爽—爽| 啪啪99| 教师性爱毛片| 狠狠色综合网| 精品一区二区三区木瓜| 99色热视频| 久久ri精品视频| 国产精品色| 操日视频| 五月丁香六月婷婷婷婷| 狠狠五月激情丁香六月| 男女啪啪做爰高潮无遮挡 | www.超碰在线| 99热这里只有精品4| 色五月天天| 狠狠久久婷五月| 国产探花一片区| 涩五月婷婷| 色五狠狠| 韩国婷婷丁香五月| 婷婷在线精品| 五月天激情四射网站| 亚洲综合色成丁香五月色| 26uuu亚洲| 狠狠操狠狠插| 深爱五月天 开心网| 超碰人人艹| 日韩精品无码AV| 国av网| 丁香五月婷婷基地| www激情| 五月天丁香婷婷社区| 深爱婷婷丁香五月激情| 亚洲熟妇AV综合网五月丁香伊人 | 美女天天艹人人爽| 欧洲亚洲免费视频9| 丁香婷婷综合色五月激情国产基地| 538在线精品| 久久婷婷六月综合综合| 色婷婷先锋| 99爱视频| 激情婷婷五月社区| 六月婷婷九月丁香亚洲综合| 丁香五月第九色| 99色最新在线视频| 国产免费一区二区在线A片视频| 亚洲综合在线播放| 美女伊人久久| 少妇真实被内射视频三四区| 五月婷婷激情网| 亚洲五月婷| 亚洲综合九九| 97热精品| 九九色人| 亚洲日本激情| 三级黄网站| 国产av基地| 色色丁香五月天| 久操干| 婷婷五月大香蕉| 九九人人自拍| 久久加勒比| 婷婷六月综合| av激情在线| 欧美在线看| 99黄色在线视频精品熟女| 婷婷五月天综合久久| 99热99操| 婷婷五月天综合网| 青青草原亚洲天堂| 久久9视频欧美| 丁香五月综合高清在线| 日本综合色图| 丁香五月天色| 免費亭亭成人| 日日操,天天操| 99综合一区| 99ri精品在线| 123草逼网| 五月日韩中文字幕| 九九色热| 岛国在线观看91| 色九月丁香婷婷蜜桃在线观看| 国产亚洲av片| 欧美激情久| 狠狠久久婷五月| 中文字幕在线免费观看视频| 亚洲视频在线观看99| ,99视频久久| 婷婷五月天激情五月天| 丁香五月婷综合网| 狼人婷婷综合| 人人爱操| 97干干干丁香| 亚洲成人AV电影网| 五月丁香六月成人| 丁香六月婷婷综情欧美| 色高清无码视频| 久久这里只| 九热精品| 五月婷在线| 中文超碰视在线| 高清国产AV| 99人人干人人| 人妻狠狠操| 天天做综合| 五月婷婷开心综合| 99热无码| 伊人久久艹| 嫩BBB槡BBBB搡BBBB| 狠狠色丁香久久综合婷婷亚洲成人福利| 色色999三级片| 久久九九玖玖| 色之综合网| 九九这里都是精品| 亚洲av网站| 韩日另类| 秋霞AV美国| 26UUU成人网| 久久性爱视频久久性爱视频| 日本久久人| 久久人妻精品| 亚洲精品444久久久久久| 中文字幕在线免费观看视频| 婷婷五月开心中文字幕色| 久久这里只有精品99| 久久婷婷成人综合色怡春院| 天天干天天插| 99这里只有精品视频| 丁香五月停停av| 99热在线精品播放| 热久久视频99| 久久大香蕉同僚| 天天碰夜夜操| 另类精品视频在线观看| 婷婷五月综合激情小说| 国产五月天欧美色| 99爱在线视频| 九七色色六月丁香| 99色在线观看| 99热这里只有精品2024| 26UUU欧美激情一区二区| 九九色情网站| 色五月天堂| 99热在线观看精品| 五月丁香六月激情综合| 9热久久| 色婷婷五月丁香在线观看| 色色狼人综合| 亚洲激情四射色| 99国产小视频2013| www.99视频| 爱爱网址9| 丁香婷婷性爱| 久久久久久人妻| 少妇真实被内射视频三四区| 99精品自拍视频| 这里只有精品免费观看网占| 狠狠干狠狠干| 狠狠爱婷婷爱| 天天精品视频免费观看| 91精品久久久久久久久久| 在线另类视频| 色婷婷狠狠| 国产精品日本一区二区在线播放| 狠狠爱综合| 久热这里只有精品6| 激情图片亚洲| 久久婷婷六月| 六月色色| 久久99精品久久久久久青青AR | 丁香婷婷九月| 99久久人人| 六月香五月婷| 亚洲综合碰| 成人AV在线电影| 九九人人自拍| AAAA网站| 亚洲天堂婷婷丁香| 精品一二三区视频立| 蜜桃人妻无码AV天堂三区| 丁香婷婷五月天成人| 免费精品66| www婷婷| 欧美色图天堂网色| 97色色色| 67194中文在线| 熟女强人妻一区二区三区四区无| 激情视频婷婷五月花| 久久久久久综合88| 五月激情综合婷婷| 激情五月视频| 五月婷婷香蕉| 26UUU在线观看| 欧美大片| 99在线观看这里都是精品| 99在线免费视频| 99啪啪视频| 色婷视频| 第1影院之五月婷婷| 99免费在线| 婷婷激情五月天小说| 色停停五月天| 色五月色情| 开心五月深爱婷婷| 午夜激情久久| 五月婷婷六月综合| 久久激情婷婷| 婷婷色综合| 91在线日本| 97香蕉久久超级碰碰高清版 | 99热国产这里只有精品| 五月天伊人久久| 色婷婷久久综合中文久久一本| 超碰人人操人人9| 国产午夜一区二区三区| 99草视频在线观看| 天天插天天爽| 99热最新精品| 久久九九热视频| 成人毛片在线免费观看| 五月婷婷亚洲| 涩综合网| 99这里有精品视频| WWW色五月天| 丁香五月婷婷综合啪啪| 五月综合婷婷开心网| 免费在线观看AV网站| 99久久免费精品| 婷婷五月天丁香久久| 操逼巨乳91| 五月丁香婷婷色色色| 五月婷婷在线视频| 大香蕉啪啪啪| www五月| 日本激情五月天‘| 亚洲成人AV一区在线观看| 美国十月色婷婷在线观看| 成人 视频免费观看网站| 五月天激情婷婷| 亚洲精品性色| 九九综合五月欧美| 亚洲中文字幕AV| 婷婷基地成人五月天| 五月婷婷香蕉| 午夜婷婷久久 | 激情99热| 欧美精品99久久久| www.minyis.com【JT】币址百万U预算可预付QQ2101460746 | 久久久九九九 99| 色综合色五月| 他改变了拜占庭| seuuu婷婷| 国产无人区大片| 97在线精品| 性爱激情五月| 久久九九国产精品怡红院| 激情小说五月天社区丁香| 狠狠噪| 亚洲色色色| 成人超碰AV| www.色婷婷.com| 丁香六月婷婷综合色| 亚洲中文字幕翔田千里| 97碰人人操| 五月色婷婷综合丁香精品无遮挡| 丁香花综合永久入口| 91狠狠色| 五月天成人在线播放丁香| 色五月偷偷| 丰满少妇猛烈A片免费看观看 | 久久ab| 26uuu亚洲精品国产| 影音先锋一区|