99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

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在线| 91碰视频| 九九精品视频在线观看| 色综合夜夜| 色一情一乱一乱一区91| 久久小说| 欧日韩成人| 97色色综合| 色五月婷婷内射| 午夜免费试看| 亲子乱AV-区二区三区| 丁香五月偷拍| 99热精品在线免费观看| 夜夜夜夜做天天天做无码视频| 91久久国产自产拍夜夜91久久精品文字>91麻豆精品国产 | 色天堂97| 天综合日日夜综合7799| 色婷婷丁香AV综合| 国产精品成人AV在线| 婷婷五月综激情| 五月婷婷丁香六月| 五月婷婷影视| 九九热123| 色五月激情婷婷| 亚洲婷婷五月天激情综合| 婷婷射图| 91婷婷在线| 9|在线观看视频| 拍真实国产伦偷精品| 五月天丁香| 久久综合天天综合| 日本在线噜噜| www.五月丁香| 婷婷九月在线| 午夜福利成人AV91| 色啪网| 色色色色欧美| 婷婷中文字幕欧美| 婷婷黄色网| 欧美槡BBBB槡BBB少妇| 怡红院视频| 天天日天天舔| 五月天婷婷基地| www好屌操| 五月婷五月婷伊人伊人五月婷| 伦99热| 超碰99热精品在线| 东北熟女高潮99综合99| 东京热人妻一区二区三区在线| 国产日韩精品SUV| 天天综合网在线| www.婷婷五月| 五月婷婷丁香色吧网| 色播五月婷婷综合| 一本婷婷丁香久久| av电影在线播放| 日本美女五月天| 五月婷婷开心综合| 996er热| 天天插天天操| 99色 | tingtingzonghewang| 日日日,com| 色五月天丁香| 天天婷婷操| 玖玖色综合网| 亚洲天堂AV免费片| 美欧成人视频| 婷婷久久五月天丁香| 色综合九九| 99少妇精品| 播丁香五月婷婷欧美| 五月婷婷久久大片| 91oumei| 久久丁香婷婷五月| 婷婷成人网五月天| 日本九九热| 99热99这里有免费的精品| 成人AV片播放| 激情五月天的婷婷| 月月AV| 天天做天天爱天天爽在| 天天婷婷色六月| 欧美大道不卡| AV网站免费在线| 亚洲色视频| 丁香 婷婷 亚洲 熟女| 婷婷五月av| 五月天亚洲色| 五月婷婷在线视频| 日日操夜夜操中国无码| 色色色99| 五月丁香激情婷婷综合| 日韩欧洲亚洲| www五月婷婷| 97日日碰碰| 1区2区视频| 91婷婷丁香五月| 亚洲美女裸体被操在线观看| 六月丁香婷| 婷婷五月天色综合翘| 99热一区| 99热这里只要精品免费| 26uuu精品国产| 亚洲亚洲人成综合网络| 久9热视频在线观看| 婷婷五月天激情网| 六月丁香婷婷综合在线| 亚洲爆乳无码精品AAA片蜜桃| 97涩婷婷婷婷基地| 久久五月六月| 婷婷五月综合社区| 丁香八月综合激情| 婷婷五月天伊人在线| 中文不卡一二区| 婷婷午夜精品久久久| 久色网| 精品九九婷婷| 色色亚洲99com| 五月花激情网| 九九精品视频在线观看| 变态另类9| 伊人网色婷婷五月天| 五月天婷婷免费| 亚洲日韩26uuu| 综合久久高清| 日韩三级视频一区二区| 久久五月丁香六月婷| 婷婷丁香色五月| 九九碰九九爱97超碰| 中文AⅤ大全| 色五月婷婷色| 黄色一级影片| 九九精品re免费视频| 丁香婷婷综合激情五月色,开心五月丁香花综合网,激情综合五月亚洲婷婷,五月天 | 两性婷婷丁香五月| 五月丁香 六月婷婷a| 欧美天天干五月丁香| 91啪啪网| www.激情com| 亚洲狠狠婷婷综合久久久| 99免费在线视频| 九九视频在线| 日韩一级A片黄色| 五月丁香六月香综合激情| 99热综合网| 9婷婷内射| 欧洲高清免费久久| 香蕉久久av一区二区三区| 国产一区18| 99色热视频| 丁香五月婷婷在线| 日日噜人人人做人| 五月天婷婷激情在线色图| av在线不卡播放| 色色色色色色色色色999| 色五月综合在线| WWW·色色色·COM| 久久99综合网| 97碰碰视频在线观看| 五月婷婷综合丁香视频| 久操人| 六月色丁香中文字幕| 无码AV免费精品一区二区三区| 日本啪啪天堂| 婷婷色婷婷| 日韩成人电影在线播放| 国产免费AV网站| 激情婷婷九月| 婷婷色在线观看| 2017人人操| 婷婷在线激情| 九九九热精品| 超碰在线99| 精热在线综合网| 九九精品免费| 五月婷庭丁香在线| 色婷婷丁香AV综合| 五月天另类激情在线| 97男人天堂| 婷婷激情五月综合丁香社| 精品无码久久久久久久久 | 久久激情网| 伊人久久大香| 噜噜干日本| 色色五月天丁香婷婷| 99热9999| 99热这里只有精品98| 色播播五月天| 久久精彩视频99| 成人无码髙潮喷水A片| 色婷婷五月天激情久久| 色综合99无码| 六月色婷婷| 久久久久8888| 99热这里有精品| 人人爱天天摸摸天天爱| 九九综合九| 婷婷开心久久| 六月丁香av| 久久亚洲婷婷| 99色色最新视频| 超91热| www.狠狠艹| 超碰猛烈的性猛交| 99精品无码| 亚洲婷婷六月天| 97午夜一区二区| 丁香五月婷老师| 久久免费操| 99热在线播放| 啄木鸟丝袜美女福利视频| 五月婷婷九九热| 丁香六月婷婷综合| 五月婷婷激情综合视频| 综合久久久婷| 五月激情小说| 五月天婷婷无码| 超碰人人超碰| 99操九九网| 五月久久婷婷天堂视频| 狠狠狠人妻| 久9热插入| 日本激情91| 亚洲爱爱无码婷婷色五月| 99精品手机在线视频| 97丁香婷婷| www.99热最新视频8| 亚洲乱码日产精品BD| 99热精品在线播放| 小视频在线亚洲| 色99久草在线| 香蕉婷婷色五月| 天天色爽| 色播婷婷五月天| 嫩草AV久久伊人妇女超级A| 丁香五月六月婷婷殴美综合| 99亚洲精品视频在线观看| 色婷婷伊人激情在线观看| 五月丁香在线| 甈你aaaaa| 五月停亭六月,六月停亭的英语| 日韩精品色| 激情丁香六月| 国产在线自| 五月婷婷六月丁香| 丁香婷婷大香蕉| 色丁香婷婷| 99久久97久久欧美综合网| 1000部毛片A片免费观看| 婷婷va| VA国产在线综合网站| 色五月 婷婷, 大香蕉| 久久婷婷色| 超碰狠狠色| 99久热| 亚洲中文AV网站| 99视频| 天天爽天天干| 婷婷六月丁香欧美视频在线| 久久综合天天综合| 日韩无码人妻一区二区三区综合 | 午夜不卡成人一区二区| 综合欧美五月婷婷| 日本综合色图| 9月色婷婷| 久久九九Com| 超碰99在线观看| 久久大香蕉同僚| 99re最新地址| 99惹精品视频| 五月婷婷激情色情网| 免费亚洲婷婷中文字幕| 五月久久网| 草榴视频黄色网| AA片在线观看视频在线播放| 天天拍天天操| 第九色区av天堂| www.zbzhongsen.com| 成人短视频在线免费观看| 久色五月| 激情婷婷色五月| 五月婷婷插一插| 玖玖色综合| 九九热99视频在线| 色婷婷六月天| 久久9久| 99玖玖在线视频| 人人叉久| 婷婷操超碰| www.AV在线| 97色综合| 人妻有码乱操| 亚洲天堂青草| 久久久五月天网站| 天天日夜夜欢| 成人版视频在线观看| 丁香五月www| 大香人妻| 另类激情四射| 五月天天综合| 色欲久久综合| 精品久久人妻热| 丁香五月天天哦| 综合欧美五月婷婷| 涩涩婷婷五月| 五月综合视频| 99啪啪| 99热免费精品| 亚洲视频在线观看| 日韩国产AV播放| 久久艹网| 日本熟妇精品99| 久热九九| 色婷婷六月综合| 亚洲色欲AAAAAA| 欧美激情-区二区三区| 五月丁香色婷婷熟女| 五月婷婷深爱六月| 99色色视频| 99爽视频| 欧美丰满熟妇BBB久久久| 欧美成人AAA片一区国产精品| 99re热视频这里只精品| 丁香狠狠操| 色玖玖综合网| 久久精品国产一区二区三区四区| 婷婷五月天亚洲综合网| 99在线69| 五月婷婷m| 天天天操天天天日| 五月婷婷无码| 精品一二三区久久AAA片| 日操熟女| 久久久8| 色亚洲视频| 婷婷五月伦理| 色三级色三级| 国产成人AV不卡| 五月婷婷色欲| 亚洲激情综| 久久九九怡红院| 狠狠色狠狠色综合日日91| www激情com| 日韩人妻无码精品| 国自产拍偷拍精品啪啪一区二区 | 亚洲色欲欧美一区二区三区| 99热在线观看免费| 思思re99视频在线观看| 嘿嘿视频免费看9| 超碰成人在线观看| 激情五月狠狠| 天天干天天干天天| 玖玖激情网| jiqingtaose五月天| 婷婷五月丁香久久| 色婷久久| 久久五月婷综合网| 六月综和久久| 亚洲天堂啪啪| 欧美日本不卡黄色片| 超碰AV在线| 狠狠操狠狠色| 七七九色| 天天色综合综合| 国产精品电影| 婷婷五月天久| 五月激情开心婷婷| 操99| 9久久久| 亚洲AV无码久久精品色欲| 丁香五月天激情综合| 亚州美女| 亚洲综合在线伊人婷| 天天干天干| 女人天堂AV| 中文在线成人| 99愛国产| 日日噜噜夜夜狠狠久久丁香五月| WWW.天天日| 色婷婷视频在线| 狠狠干,狠狠操| 热99免费在线| 色色色色色网| www.激情五月天.com| 99热这里只有精品亚洲| 狠狠干综合| 久久日曰| 亚洲A色| 精品一二三区久久AAA片| 99热在线爱| 99热这里精| 夜夜干 夜夜操| 天天综合色丁香| 性色99| 99综合| 色婷婷大香蕉| 大香蕉综合| 色色色色区| 99热这里只有精品最新地址获取| 成人.在线日韩| 亚洲综合色成丁香五月色| 天天爽爽日日做做| 婷婷色五月天在线观看| 色婷婷先锋| 亚洲激情五月天| 久久婷婷原创视频| 日韩操| 欧美性生交XXXXX无码小说| 婷婷丁香69精华| 久久九九综合| 丁香五月婷婷狠狠色| www.婷婷.com| 97人人操在线| 久久这里都是精品| 五月综合激情久久| 中文字幕日产A片在线看| 五月丁香手机在线| av国产精品| sS丁香五月婷婷| 久久综合婷婷| 色色啊| 婷婷五月天激情小说| 九九热中文| 9 1超碰九色| 六月丁香综合| 婷婷五月天久久| 噜噜噜噜婷婷五月天| 91色在线 | 日韩| 六月婷婷综合久久| 99精品热| 天天日日天天| 中文AⅤ大全| 六月丁香影院| 2020日日干| 狼友超碰| 毛片网站谁有| 综合激情站| 色欧美日| 婷婷激情四射| 色插综合网| 婷婷六月色| 激情五月丁香色婷婷| 青青久在线视频免费观看| 第一区久久网站| 97操碰在线97| www.婷婷五月天| 天天狠狠婷婷在线| 欧美日韩成卜| 婷婷的色色五月天| 狠狠色噜噜狠狠色噜噜噜999| 欧美槡BBBB槡BBB少妇| 色色亚卅| 中文字幕在线不卡视频| www.色综合| 思思视频这里是精品| 国产精品天天狠天天看| 色婷婷五月天偷拍| 欧美丁香婷婷天天操| 91肏肏肏| 99热综合网| 国产99美少妇| 2021日韩无码| 天天综合网站| 99这里只有| 婷婷丁香五月91| 天天爽天天操| 激情五月婷婷网| 久9视频| 国精产品一区一区三区免费视频| 精品人妻一区二区| 五月天色五月天| 天天综合中文| 久久丁香婷| 五月婷婷影院| 这里只有精品69| 五月停停色色丁香| 热99色| 婷婷成人综合| 欧美激情2025| 99re6热在线精品视频播放速度| 超碰婷婷色| 色婷精品91| 青青草婷婷综合五月| 99噜噜| 色婷婷激情五月天丁香| 69精品人人人人| 日本五月天一页| 久久综合首页| 中文婷婷狠狠| 无码日本精品XXXXXXXXX| 极品另类| 天天撸天天干天天插| 激情久久久| 39视频第二区| 丁香婷婷九月在线| www.婷婷| 久热久| 色色色图| 丁香五月大片| 性色欲情 网站| 色综合视频| 性爱激情综合网| 99热这里只有精品22| 欧美VA在线| 夜夜夜夜操| 久久97| 五月丁香综合中文| WWW久久99久久99久久| 婷婷中文字幕| 色婷婷五月婷婷五月婷婷五月| 色色丁香婷婷综合| 在线不卡中文字幕| 超碰京东热av男人的天堂| 精品一二三区久久AAA片| 婷婷中文在线| 婷婷五月综合社区| 在线观看婷婷5月| 久久精品66| 五月天婷婷丁香花| 婷婷丁香五月视频| 免费的日逼视频| 国产免费AV在线| 九色地址91视频| 超碰操日| 亚洲人成播放网站| 五月停停大香蕉| 成人午夜视频精品一区| 欧美人与性动交CCOO| 色婷婷五月在线| 五月丁香婷婷基地| 可以看的av| 精品成人a v无码内射| 激情五月激情综合网一级丸片 | 丁香六月婷婷久久综合| 久青操| 噜噜在线| 丁香久久综合| 五月丁香婷婷中文| 99爱在线精品视频免费观看| 怡红院视频| 色婷婷丁香| 91干| 丁香六月婷婷综合| 丁香六月综合激情| 超碰在线免费观看日韩| av大片在线| 婷婷五月丁香基| 琪琪色网址| 99干在线视频| 日韩欧美老妇性视频91久久久| 色综合香蕉视频| 色综合香蕉| 色人久夂| 五月丁香手机在线| 夜夜做天天爽| 婷婷噜噜| 亚洲AV中文在线| 亚洲黄色影视| 国产国产乱老熟女视频网站97| 国外亚洲成AV人片在线观看| 久久五月婷综合| 超级碰碰99| 在线99精品| 丁香五月天啪啪| 色99在线| 丁香五月大香蕉在线99| 久久婷婷五月激情综合| 狠狠干婷婷| 三区激情四射av| 五月天久久www| 91婷婷五月天综合视频| 久久久性爱视频| 97干在线播放| 色色99| 色五月美女| 大香蕉五月| 中文网AV| 欧美激情综合色丁香婷婷五月天| 婷婷五月天伊人| 五月婷婷激情久久| 激情综合网激情五月婷婷| 男人天堂AV在线一区二区| 99九色视频在线观看| 人人玩人人橾| 丁香六月在线| 五月天婷婷基地| 国产精品久久欧美久久一区| 丁香婷婷五月人体| 熟女婷婷网站一婷婷五月一丁香婷婷一婷婷激情网 | 亚洲AV网址| 亚洲激情无码久久| 色99网站| 蜜桃人妻无码AV天堂三区| 日本97人人| 九九RE视频在线精品| 99久久成人| 婷婷综合视频| 日碰日| 色五月91| 97精品自拍视频| 五月丁香六月婷婷综合在线| 天天日日综合| 久久久中文| 影音先锋男士资源网一区| 九九成人精品| 99噜噜噜在线播放| 99热精品中文字幕| 91欧美| 操逼电影免费看| 成人 在线 日韩| 丁香六月天婷婷开心综合| 超碰九九热| 97日本在线播放| a在线观看| 九九热只有精品| 日本一级一级一级一级| 丁香久久综合| 激情深爱五月| 亚洲国产精品VA在线看黑人| 久99视频在线观看| 天天操夜夜玩!| 97干在线| 香蕉久久五月| 蜜乳.comcom| 99热这里| 亚洲丁香花五月丁香花| 综合激情网五月激情| 激情网婷婷五月天| 99精品久| 99热日韩这里只有精品| 91九色精品女同系列| 男人的天堂99| 色就是色婷婷五月亚洲激情| 色香久久| 日韩AV一区二区三区| 这里只有精品视频看看| 天天干天天干天天干| 九九综合伊人| 日本色久| 伊人色综合久久久| 俺去也五月| 中文无码婷婷| 久99综合婷婷| 免费看欧美成人A片无码| www.五月天婷婷| 成人无码精品1区2区3区免费看| aⅤ79成人片| 久久久久激情| 一本婷婷丁香久久| www,婷婷五月天,com| 无码任你操| 97久久人人操| 婷香五月| 啪啪综合网| 97热视频| 久久久精品免费啪啪国| 五月天停停基地| 色亭亭影园| 深爱五月天 开心网| 无码日本精品XXXXXXXXX| 99er这里只有精品视频| 亚洲色婷婷| 五月丁香婷婷综合久久| 九九色图| 成人噜噜网| 久久五月丁香| 思思热在线视频观看精品| 激情综合网五月婷婷| 99热只有精品在线播放| 激情婷婷色色| 五月天激情小说婷婷| 成人电影在线免费试看| 99日在线视频| 五月婷婷开心网| 天天综合色丁香| 亚洲无AV在线中文字幕| 色色婷婷综合网| 超碰免费观看| 色99欧洲色19| 97久久五月丁香婷婷| 99色中文| 91人人操.COM| 中文字幕成人| 艾小青av| 99热全是精品| 伊人激情| 久久天堂色| 免费看欧美成人A片无码| 婷婷欧美综合| 国产精品国产成人国产三级| 亚洲人妻五月丁香婷婷| 9久久AV| 五月天久久久| 色五月视频无码播放| 九九成年视频| 六月婷婷激情| 热久久66| 99精品国产在热久久婷婷| 婷婷五月天色色| 熟女五月天久久综合| 亚洲AV久久久久久久久久久久久久久久 | 99热在线观看免费精品| 黄网在线播放| 99五月香婷婷丁香在线视频| 婷婷五月天视频| 99热大全在线观看| 99久久婷婷精品视频| 五月丁香做爱视频| 91九色国产| 99视频在线观看地址| 色色色色色色网| 另类激情五月天。| 五月激情综合婷婷| 婷婷丁香六月| 欧美激情综合色丁香婷婷五月天| 婷婷六月综合基地| 91丨九色丨东北熟女| 2w在线视频| 久久超级碰碰| 五月丁香婷婷欧美色图视频五月丁香777电影 | 五月婷婷中文字幕| 婷婷五月天亚洲丁香| 9操在线| 99人妻碰碰久久久禁片| 欧美日韩成人一区二区| 色五月婷婷激情五月| 九月色婷婷综合亚洲| 91丨九色丨熟女丰满| 五月婷人妻| 久久精品五月天| 亚洲精品字幕在线观看| 五月婷婷激情中文字幕| 丰满人妻一区三区三区| 思思久久99热| 五月丁香六月婷婷久久肏| 婷婷5月久久综合网站| 九九99精品| 色色色色网站| 九九热视频免费观看| 97热九九| 日笨久久网| 欧亚成人A片一区二区| 性爱久久| 九九精品视频在线6| 99久在线观看| 午夜福利成人AV91| 日韩在线观看网址| 久热免费视频| 成人在线不卡| 日日日影院| 99爱免费在线观看| 99乱视频| 色婷婷色五月综合| 日日操夜夜操不卡| 大香蕉综合在线| 久久婷狠狠色| 99色在线| 五月成人天| 另类小说五月天综合网| 天天噜天天爱| 成人天天爽| www.五月丁香| 2020日日干| 男人大jjc女人免费视频| 亚洲亚洲人成综合网络| 丁香五月影院| 成人日韩欧美| 婷婷五月天小说| 五月天开心网| 九九热在线99| 五月丁香色色网| 婷婷五月成人| 天天综合色| 丁香五月大香蕉| 色婷婷久久综合中文久久一本| 色综合天天| 九九青草热| 丁香五月六月婷婷综合| 超碰日日操| 大香线蕉伊人| 99久久网站| 九九久久综合| 色丁香五月婷婷| 二色av| 三男玩一女三A片| 亚洲视频一区| 99九九这里有免费视频| 久久涩视频| 999九九九久久久99HD| 在线日韩av| 丁香五月大香蕉AV| 国产97色在线 | 日韩| 天天肏在线观看| 成人av在线网站| 伊人影音无码一区二区三区| 丁香五月天色综合| WWW激情五月天| 天天色综合综合| 婷婷香五月天| 69色婷婷| 激情丁香五月| 欧美性生交XXXXX无码小说| 激情综合网婷婷五夜| 超碰五月婷婷五月天| 性生活视频98791| 99丁香五月婷婷在线| 久久99精品久久久久久噜噜| 色欲av伊人久久大香线蕉影院 | 婷婷九月| 99热精品在线观看| 91VIP在线观看| 天天色99| 青青草a在线| 色婷婷亚洲在线| 激情久久丁香| 色婷婷激情| 久久探花91swag| 9视频1在线| 丁香五月综合久久八| tingtingzonghewang| 开心婷婷五月| 中文字幕在线观看视频www| 无码激情AAAAA片-区区| 丁香六月综合| 丁香五月天导航| 天天操夜夜玩!| 亚洲熟妇无码乱子AV电影| 99热97| 精品9l九九九九九77777| 午夜婷婷久久 | 操逼棍操逼| 色碰碰视频| 免费观看全黄做爰的视频| 激情五月婷黄版| 亚洲综合激情五月天婷婷 | 丁香婷婷成年| www.色9| 丁香五月深爱五月婷婷| 开心激情综合| 精品夜夜澡人妻无码AV| 丁香色五月AV在线| 成人久久天天x资源站| 青草青青草| 伊人激情| www.久久婷婷| w婷婷五月婷婷w| 色爽九九| 成人国产网| 这里只有精品在线视频精品| 激情五月天伊人影院| 97人人干人人操| 婷婷五月激情视频网| 秋霞午夜理论| 一本色道久久综合狠狠躁小说| 国产精品久久欧美久久一区| 婷婷久久18| 国熟女视频| 夜夜资源站| 蜜乳AV成人| 密黄站| 亚洲成人无码网站| 婷婷五月激情黄色| 五月天激情综合网站| 996er热| 碰99在线| 婷婷丁香成人在线视频| 啪啪 综合网| 国内精品99| 亚洲中文丁香| 久久性爱视频| 亚洲国产网站| 婷婷激情六月天视频| 亚洲色网络| 日韩色久| 婷婷五月天男人影院色色网| 色色色色热| 97干免费视频| 丁香五月播播| 五月天啪啪网| 色六月天天激情综合网| 91青娱乐青青草| 天啪色| 国色天香伊人狠狠色| 国产肥白大熟妇BBBB视频| 日本久久视频| 天天天在线观看| 婷婷五月丁香国产| 思思热在线视频99| 欧美婷婷| bbwcuckold精品熟妇| 99在线观看| 日本97在线| 66色在线日韩| 另类亚洲电影| 九九精品视频在线观看| 伊人丁香在线| 色婷婷九月综合| 欧美成人精品A片免费一区99| 99热情这里只有精品在线播放| 中文字幕丰满人妻无码专区| 五月天丁香综合在线| 婷婷丁香18| 亚洲图色五月天| 日本色色视频| 久热精彩视频98| 久久人妻伦理| 丁香五月婷婷香| 久久一热| 国自产拍偷拍精品啪啪一区二区| 99久久国产成人精品| 色五月婷婷在线| 狠狠五月激情在线| 五月激情在线| 天堂爱爱| 少妇性BBB搡BBB爽爽爽视頻| 天天爽天天日人人爱| 99热亚洲| 天天插天天干天天舔| 色欧美色色色| 丁香五月天天高清在线| 中文不卡av| 五月花激情| 久99精品视频| 午夜成人天堂久久无码日韩久久| 九月激情综合| 夜夜爽天天干| 色播播之激情五月婷婷| 国产成人精品一区二三区熟女在线| 亚洲婷婷丁香五月天激情小说| 婷婷五月天色| 青青福利网| 色婷婷91激情小说| 日本爆乳片手机在线播放| 成人电影在线免费试看| 丁香激情网| 激情五月图| 人妻丰满精品一区二区A片| 伊人网色婷婷五月天| www.韩日视频| 99热碰碰| 久久99精品久久久久子伦| 婷婷五月天黄色| www.夜夜操.con| 人人摸人人操人人爱| 色色色免费视频| 中文字幕激情综合| 婷婷久久综合| 天天五月情| 五月婷婷色白丝| 9色在线| 婷婷久久免费看| 成人精品网站在线观看| 丁香五月激情综合| 欧美狠狠一在草| 抽插特写| 一区二区三区视频| 亚洲亚洲人成综合网络| 日韩在线五月天婷婷| 五月婷婷激情久久| 久久久97| 五月激情久久| 婷婷六月激情小说网| 国产偷人爽久久久久久老妇APP| 婷婷色五月丁香六月欧美啪| 五月婷婷,六月婷婷| 九九这里是免费的视频5| 狠狠va| 99热热热国产超碰| 青青草成人网| 婷婷丁香人妻天天久久| 亚洲区视频| 超碰在线观看三级片| 天天操狠狠操| 久9视频| 97超喷视频在线观看| 五月伊人网| 五月网网站| 玖玖午夜视频| 无码AV免费精品一区二区三区| 色婷久久| 色综合五月在线| 黄网网站在线播放| 丁香五月影院| 亚洲熟妇无码乱子AV电影| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 亚洲小说欧美激情| 亚洲啪啪啪啪| 97超级碰| 久久99久久99久久99人受| 九九热在线视频| 激情五月综合六月丁香婷婷狠狠干| 亚洲午夜一区二区| 极品人妻VIDEOSSS人妻| 中文字幕,综合,91| 99成人网一区| 久久 无毛。| 日韩在线看AV| 色婷婷网| 免费观看的av| 99色这里| 五月丁香综合激情网| 国内9l视频自拍老熟女九色| 99精品视频免费观看| 色婷婷激情| 99色视频在线观看| 久久五月丁香婷婷| 色七七九九| 亚洲人成播放网站| 乱岳熟女50岁| 激情五月天社区| 伊人婷婷五月天| 精品久久久久久久人妻| 色婷婷五月天亚洲| 99热综合在线| 成人色图情色成人网 www.5b5b5bcom 五月天| www五月| 九九热在线视频观看| 成人丁香五月| 五月天俺去也| 亭亭五月激情亚洲在线| 婷婷六月丁香开心深深爱| 色婷婷中文在线| 亚洲成人无码片| 97婷婷五月| 色色色激情网| 最近中文字幕大全免费版在线| 久久综合婷婷| 久久综合五月天| 丁香婷婷色五月激情综合| 六月丁香婷婷六月激情综合| 色综合色欲综合天天免费| 五月天激情综合网站| 天天射综合网站| AV性爱在线| 色婷婷9| 色色色地址| 狠狠色综合精品视频在线| 亚洲国产色色| 婷婷五月天99| caopeng97日韩| 狠狠色五月| 激情网 五月天| 久久精品在线| 丁香五月aV| 婷婷亚洲激情在线观看视频| xxxx五月激情| 欧美又粗又大一区二区在线观看| 五月丁婷香| 六月婷婷五月丁香首页| 婷婷成人综合| 激情五月天激情网| 欧美丁香六月在线观看视频| 久久精品爱爱| 五月丁香亭亭成人电影| 日日爽日日操| 丁香五月婷婷六月婷| 亚洲婷婷婷| 五月丁香在线国产| 婷婷五月综合视频| 五月婷婷五月天激情网| 色狠狠综合入口| 夜夜躁爽日日| 夜夜爱伊人| 五月天久久综合| 色五月天在线观看| 激情五月天啪啪| 二色av| 色99视频| 国外亚洲成AV人片在线观看| 国产五月视频| 丁香五月婷婷综合激情啪啪啪| 免费色婷婷| 九九久久高清| 91久久久久久久久| 五月天激情黄色小说在线观看| 色婷婷婷av | 女同激情久久av久久| 国产欧美第五十五页| 婷五月丁香俺| 青青草日本亚洲| 五月激情婷婷女| 久热69| 婷婷社区五月天| 色婷婷五月综合| 婷婷酒色网| 婷婷五月色综合| 大香蕉综合在线| 777精品成人a v久久| 亚洲 无码 中文字幕 中出| 能直接看的av网站| 激情五月天色色| 97色色视频| 超级久久久| 天堂久久精品| 精品一区二区三区四区五区六区介绍 | 成人无码中文| 综合 蜜月 婷婷| 婷婷丁香六月| 五月丁香六月停停| 开心五月网| 色播五月天激情| 91碰碰视频在线观看| 99久热精品在线| 五月丁香六月婷婷,婷| 日韩精品无码99| 夜夜爱伊人| 人妻丰满精品一区二区A片| 亚洲蜜乳AV| 婷婷五月天在线看| 五月婷婷自拍视频| 色色色99| 99在线精品免费视频| 色五月综合激情| 久操香蕉| 99热综合网| 婷婷娱乐丁香综合网| 激情综合五月天| 精国产品一区二区三区A片| 激情久久 婷婷| 9999热精品在线免费播放| 人人爱国产| 可以看的av| 欧美激情中文字幕| 狠狠另类视频| 情色婷婷五月天| 五月天婷婷青青草| 久99久在线| 国产VA亚洲VA96| 超碰狠狠操| www.久9| 激情小说五月天中文字幕| 国产婷婷五月天| 欧美精品在线观看| 久草大| 第五色色色婷婷| 色综合色综合网| 9久热免费视频99| 婷婷六月情| 亚洲超碰在线| 九九热99免费视频| 噜噜色com| 97香蕉碰碰人妻国产欧美| 午夜在线成人网站免费观看| 五月丁了香蕉综合| 91大神操美女| 婷婷色网址| 桃色激情婷婷伊人网| 久久久www| 涩涩激情五月婷婷| 五月色丁香婷婷中文字幕| 五月天婷婷色色| 五月天色色色色色| 久久久五月婷婷| 乱精品一区字幕二区| 五月丁香成人| 久久激情网| 色爱爱综合网| 狠狠做五月| 激情婷婷丁香五月天| 9热久久| 久久这里有精品视频在线免费观看| wwwss在线观看| 色色五月婷婷久久| 538在线精品| 激情98色婷婷五| 五月婷婷成人网首页| 可以看的av网站| 国产免费一区二区三区三州老师F1F1.CC| 这里只有精彩视| 婷婷丁香九色| 热99国产精品| 91丨九色丨43老版熟女| 婷婷六月综合| 色综合五月天| 日本97在线看片| 亚洲丁香五月在线观看| 欧美三9久九观看| 新99思思视频| 99精品在线| 26uuu美女三级视频| 久久九九爽| 玖玖爱伊人| 国产成人网站在线观看| 久热黄色| 97欧美在线| 91狠狠色色丁香婷婷综合久久| 国产这里只有精品| 日日操夜夜操中国无码| 超碰熟女拍拍| 欧美激情-区二区三区| 美女要搞搞天天搞搞搞网站| 99热66| 五月婷婷开心深| 色婷婷亚洲婷婷| 激情桃色网| 成AV人片一区二区三区久久| 亚洲色色图片| 91久久久久久久久18| 五月天精品| 五月丁香香蕉| 婷婷激情伍月网| 激情五月天视频| 激情五月天综合网站网站网站| 久久婷婷热| 天天插天天插天天操| 激情五月天色色网| 五月婷婷新网站| 日日夜夜干| 五月丁香伊人网| 五月天自拍网| 久久综合五月天| 校园激情 亚洲| 影音先锋男士资源网一区| 操你av| 成人一区在线观看| 激情综合网五月| 98色花堂98t.R| 五月婷婷六月丁香综合| 婷婷五月天堂网| 99在线精品免费视频| 夜夜夜夜做天天天做无码视频| 五月激情四射网站| 亚洲操b| 欧美色宗和激情| 97人人草| 五月丁香天堂网婷婷| 国产综合A片| 久久五月婷天天干| 婷婷丁香91| 国产无套精品一区二区| 婷婷五月情色| 啪啪日本欧美| 欧洲色| aaa丁香五月天| 热91久| 天天综合中文| 丁香五月欧美成人| A片试看50分钟做受视频| 男人的天堂五月丁香| 伊人玖玖综合| 99热免费| 亚洲成人噜噜| 婷婷久久免费| 狠狠做婷婷| 色综合综合色| 色99热| 大香蕉手机视频| 五月丁香狠狠地噜噜噜噜| 色噜久| www.色婷婷.com| 婷婷丁香五月亚洲综合网在线视频观看| 久久婷婷丁香视频网| 99久久综合网| 97色色在线视频| 97婷婷狠狠| 久久无码成人| 婷婷五月激情图片| 色大综合| 五月激情射| 久久精品国产一区二区三区四区 | 国产69久久久欧美黑人A片 | 超碰二区| 久久成人天| 丁香久久综合|