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

ARTICLE DETAIL

資訊詳情

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

復(fù)旦微FMQL45T900開發(fā)實(shí)戰(zhàn):從交叉編譯到BSP配置與啟動(dòng)調(diào)試全解析

復(fù)旦微FMQL45T900開發(fā)實(shí)戰(zhàn):從交叉編譯到BSP配置與啟動(dòng)調(diào)試全解析 拿到復(fù)旦微 FMQL45T900 核心板的第一周我基本是在查文檔、翻論壇、試錯(cuò)、再看文檔的循環(huán)里度過的。這塊板子的定位很明確國產(chǎn)化 ARMFPGA 單芯片方案PS 端雙核 Cortex-A9PL 端是大規(guī)??删幊踢壿嫼?Xilinx Zynq-7045 屬于同一梯隊(duì)。但它畢竟不是 Zynq開發(fā)環(huán)境的搭建鏈路里藏著不少只有踩過才知道的細(xì)節(jié)。這篇文章就把我從零開始搭 ARM 開發(fā)環(huán)境、啃 BSP 配置的全過程整理出來重點(diǎn)覆蓋交叉編譯工具鏈的選擇、BSP 各組件的作用、從 BOOT.BIN 到內(nèi)核 rootfs 的完整構(gòu)建流程以及調(diào)試時(shí)最容易翻車的幾個(gè)地方。無論你是剛從 STM32 切到這種異構(gòu) SoC還是已經(jīng)在做國產(chǎn)化替代項(xiàng)目這篇都值得存一份當(dāng)參考。1. FMQL45T900到底是個(gè)什么芯片架構(gòu)與核心板選型分析1.1 PS與PL雙域架構(gòu)為什么說它是單片系統(tǒng)FMQL45T900 最核心的概念是 PSProcessing System和 PLProgrammable Logic雙域架構(gòu)。PS 端是一顆完整的雙核 ARM Cortex-A9 處理器帶 NEON 浮點(diǎn)加速、L1/L2 Cache、DDR 控制器、豐富的外設(shè)接口UART、SPI、I2C、USB、SDIO、Ethernet 等PL 端則是大規(guī)模 FPGA 邏輯資源你可以把它理解成一張可以反復(fù)重新配置電路的白紙。這兩個(gè)域不是各自獨(dú)立工作而是通過 AXI 高性能總線互聯(lián)。PS 可以把 PL 里的自定義硬件模塊映射成內(nèi)存地址直接讀寫PL 也可以主動(dòng)發(fā)起 DMA 訪問 DDR甚至給 PS 發(fā)中斷。所以這顆芯片和普通的 ARM SoC 有個(gè)本質(zhì)區(qū)別它不只是CPU 加外設(shè)而是CPU 加可重構(gòu)硬件加速器特別適合通信基帶處理、圖像采集預(yù)處理、高速數(shù)據(jù)采集、工業(yè)控制這類需要貼著硬件做定制的場景。很多從 STM32 轉(zhuǎn)過來的朋友容易有一個(gè)誤解覺得 FPGA 就是用來代替 CPU 寫邏輯的。實(shí)際上在 FMQL45T900 里L(fēng)inux 跑在 PS 端PL 更像是一塊聽話的加速電路。你寫好的 Verilog 模塊算出的結(jié)果通過 AXI 總線交給 Linux 應(yīng)用程序讀取或者反過來由應(yīng)用程序下發(fā)控制參數(shù)。系統(tǒng)架構(gòu)層面它就是一個(gè)標(biāo)準(zhǔn)的 ARM Linux 主機(jī)加若干自定義硬件外設(shè)。1.2 核心板起步的選型邏輯拿到手的是核心板而不是自己畫的底板這個(gè)選擇在項(xiàng)目初期非常關(guān)鍵。FMQL45T900 的 PS 端對 DDR 的布線要求很高等長、阻抗、參考電壓、電源時(shí)序任何一環(huán)出問題都會(huì)導(dǎo)致系統(tǒng)啟動(dòng)不穩(wěn)定。核心板廠家已經(jīng)把 DDR3/DDR4 顆粒、電源管理、時(shí)鐘、啟動(dòng) Flash、千兆網(wǎng) PHY 這些難啃的骨頭全部做好了并且經(jīng)過量產(chǎn)驗(yàn)證我在底板上只需要關(guān)心怎么把擴(kuò)展引腳引出來、按什么接口標(biāo)準(zhǔn)設(shè)計(jì)自己的外設(shè)電路。核心板通常引出的接口包括PS 端的 MIO 引腳、PL 端的 HP/HR Bank、JTAG、串口、以太網(wǎng)、USB、SD 卡接口等。我在項(xiàng)目里把 PL 端一部分引腳接到了自研的高速 ADC 子板上PS 端則通過 MIO 接了 LED、按鍵和一個(gè) RS485 收發(fā)器。這樣一來硬件設(shè)計(jì)的工作量主要集中在底板的外設(shè)電路和電源上而不用碰最復(fù)雜的 DDR 和 PL 配置。有一件事要特別提醒拿到核心板先查清楚它的啟動(dòng)模式撥碼和默認(rèn)串口映射。不同廠家的核心板對 UART0/UART1 的默認(rèn)映射可能不一樣我第一次就因?yàn)樵阱e(cuò)誤串口上干等日志浪費(fèi)了半小時(shí)。先把板子附帶的硬件手冊里關(guān)于啟動(dòng)模式、串口、JTAG 的章節(jié)讀透再上電。1.3 與Zynq-7000生態(tài)的關(guān)聯(lián)與邊界FMQL45T900 在架構(gòu)設(shè)計(jì)上參考了 Zynq-7000 系列很多基礎(chǔ)概念FSBL、U-Boot、設(shè)備樹、bootgen 生成 BOOT.BIN是相通的。這意味著網(wǎng)上大量的 Zynq 開發(fā)教程、U-Boot 編譯方法、Linux 內(nèi)核移植經(jīng)驗(yàn)大部分思路可以直接借用。尤其是 Xilinx 維護(hù)的 u-boot-xlnx、linux-xlnx 代碼倉庫在很多以 Zynq 為藍(lán)本的國產(chǎn)化 SoC 上都能編譯通過或小改即可用。但參考不等于照搬。復(fù)旦微的工具鏈和 Xilinx Vivado 并不完全一致硬件描述文件類似 XSA/HSI 的工程導(dǎo)出文件的格式、FSBL 源碼的細(xì)節(jié)、部分外設(shè)寄存器地址都可能存在差異。所以正確姿勢是用 Zynq 的資料理解框架和原理但最終一切以復(fù)旦微配套的《FMQL45T900 軟件調(diào)試手冊》和 BSP 發(fā)布包為準(zhǔn)。我自己踩過的一個(gè)典型坑是直接拿了 Zynq 的 U-Boot defconfig 去編結(jié)果串口初始化參數(shù)不對啟動(dòng)日志全亂碼。后來換了 BSP 自帶的 defconfig基本一次通過。2. 開發(fā)環(huán)境選型的現(xiàn)實(shí)考量授權(quán)工具鏈還是開源GCC2.1 三條主流環(huán)境路線的橫向?qū)Ρ却罱?ARM 開發(fā)環(huán)境的第一步不是裝軟件而是想清楚走哪條路。針對 FMQL45T900 這種 Cortex-A9 核我實(shí)際比較過三條路線各有各的適用場景。第一是 ARM 官方商業(yè)套件也就是 DS-5 配 ARM Compiler 5。這套工具鏈對 ARM 架構(gòu)的支持最深入編譯優(yōu)化也好但需要 License。網(wǎng)上很多人找arm compiler 5.06 update 7 (build 960)下載其實(shí)都是想繞過授權(quán)限制這個(gè)我不建議你折騰一方面是合規(guī)風(fēng)險(xiǎn)另一方面是后續(xù)維護(hù)成本高。第二是復(fù)旦微/類似 Vivado 的圖形化 IDE 完整流程。它會(huì)幫你生成 FSBL、設(shè)備樹、啟動(dòng)鏡像比較適合 FPGA 工程師習(xí)慣的點(diǎn)按鈕式開發(fā)。但 IDE 對環(huán)境的封裝太多一旦啟動(dòng)過程出問題黑盒很難排查而且 IDE 版本和交叉編譯器版本經(jīng)常綁死升級很痛苦。第三條是純命令行路線Linaro 出品的 arm-linux-gnueabihf- 交叉編譯器加上手動(dòng)編譯 U-Boot、內(nèi)核、設(shè)備樹、根文件系統(tǒng)。整個(gè)過程全部可見、可控、可復(fù)現(xiàn)出了問題能順著 Log 一層層查這是我最推薦的做法也是這篇文章采用的方式。路線工具鏈來源優(yōu)點(diǎn)缺點(diǎn)適用人群DS-5 ARM CompilerARM 商業(yè)授權(quán)架構(gòu)支持最佳、調(diào)試器強(qiáng)大License 貴、環(huán)境封閉商業(yè)項(xiàng)目正規(guī)授權(quán)用戶圖形化 IDE 全流程芯片廠商配套上手快、集成度高黑盒、排錯(cuò)難、版本綁死FPGA 背景工程師Linaro GCC 命令行開源免費(fèi)全流程可見可控、社區(qū)資料多需要 Linux 基礎(chǔ)、初期配置繁瑣想徹底搞懂 BSP 的嵌入式工程師2.2 為什么我最終選了Linaro GCC路線我選 Linaro GCC 的核心原因就一個(gè)可控性。BSP 移植這件事本身就是在跟底層打交道如果工具鏈也是黑盒出了問題根本分不清是代碼問題、編譯問題還是鏈接腳本問題。用開源工具鏈雖然初期要手敲命令但整個(gè)編譯過程每一步都清清楚楚。另外一個(gè)重要考量是社區(qū)生態(tài)。Zynq 系列在工業(yè)界用得極廣幾乎所有 BSP 相關(guān)問題都能在論壇上搜到解決方案而 Linaro GCC 就是大多數(shù) Zynq 項(xiàng)目默認(rèn)的交叉編譯工具鏈。FMQL45T900 和 Zynq 在 ARM 內(nèi)核架構(gòu)上同源所以這些經(jīng)驗(yàn)可以直接平移到復(fù)旦微平臺上。真到了出問題的時(shí)候你能搜到的資料、能請教的人都是以這套工具鏈為基礎(chǔ)的。版本選擇上建議用 GCC 7.5 或 GCC 8.x 的 linaro 版本太老的 4.9 在編譯新版內(nèi)核時(shí)會(huì)有兼容問題太新的 12.x 又可能引入額外的 ABI 差異。我最后固定在 gcc-linaro-7.5-2019.12-x86_64_arm-linux-gnueabihf 這個(gè)版本上編譯 U-Boot、內(nèi)核、Qt 5.5.10 應(yīng)用都表現(xiàn)穩(wěn)定。2.3 交叉編譯工具鏈的安裝與自檢安裝 Linaro GCC 的步驟其實(shí)很簡單核心是解壓、加載 PATH、驗(yàn)證三件事。我習(xí)慣把工具鏈放在 /opt 下這樣所有用戶都能使用而且目錄路徑固定后Makefile 里的 CROSS_COMPILE 變量可以一直寫絕對路徑。# 下載后解壓到 /opt包名根據(jù)實(shí)際版本調(diào)整 sudo tar -xJf gcc-linaro-7.5-2019.12-x86_64_arm-linux-gnueabihf.tar.xz -C /opt/ # 添加環(huán)境變量建議寫到 ~/.bashrc 末尾 export PATH/opt/gcc-linaro-7.5-2019.12-x86_64_arm-linux-gnueabihf/bin:$PATH source ~/.bashrc # 驗(yàn)證工具鏈可用并確認(rèn)版本 arm-linux-gnueabihf-gcc -v驗(yàn)證輸出里要重點(diǎn)看三行Target 是否為 arm-linux-gnueabihf、gcc version 是否為所選版本、線程模型是否為 posix。確認(rèn)無誤后再交叉編譯一個(gè)最小可執(zhí)行文件放到 ARM 板子上試運(yùn)行。cat hello.c EOF #include stdio.h int main() { printf(FMQL45T900 ARM OK\n); return 0; } EOF arm-linux-gnueabihf-gcc hello.c -o hello file hellofile 命令輸出顯示 ELF 32-bit LSB executable, ARM, EABI5 就說明編譯目標(biāo)正確。把這個(gè) hello 通過 U 盤或網(wǎng)絡(luò)傳到板子上chmod x 后執(zhí)行能打印出對應(yīng)字符串就算環(huán)境通了。這一步千萬別跳過很多后續(xù) BSP 編譯的詭異錯(cuò)誤根源都是交叉編譯器本身沒裝好提前驗(yàn)證能省一整天的排查時(shí)間。3. BSP配置核心流程從交叉編譯到內(nèi)核與根文件系統(tǒng)3.1 BSP里面到底裝了什么BSPBoard Support Package這個(gè)名詞聽起來很抽象實(shí)際拆開看就是一套讓 Linux 能在特定板卡上跑起來的軟件集合。一個(gè)完整的 Zynq 類 BSP 至少包含四部分FSBLFirst Stage Boot Loader、U-Boot、Linux 內(nèi)核、設(shè)備樹再加上外圍的根文件系統(tǒng)和各種驅(qū)動(dòng)模塊。FSBL 是芯片上電后第一個(gè)由用戶控制的程序它負(fù)責(zé)最基礎(chǔ)的硬件初始化尤其是 DDR 控制器的配置和 CPU 頻率設(shè)置。這塊代碼通常由芯片廠商以源碼形式提供編譯出來是一個(gè) ELF 文件。U-Boot 是第二階段引導(dǎo)程序負(fù)責(zé)加載內(nèi)核鏡像和設(shè)備樹到內(nèi)存然后跳轉(zhuǎn)到內(nèi)核執(zhí)行。內(nèi)核就是 Linux 本身設(shè)備樹則是一份描述硬件拓?fù)涞恼f明書告訴內(nèi)核我有幾個(gè)串口、DDR 多大、PL 里掛了什么外設(shè)分別映射在哪個(gè)地址。理解這條鏈的關(guān)鍵在于每一級 bootloader 只做有限的事然后把手里的控制權(quán)交給下一級。FSBL 不需要知道 Linux 是什么只需要把 DDR 初始化好、加載 U-BootU-Boot 不需要知道怎么跑應(yīng)用只需要把內(nèi)核和設(shè)備樹按約定地址放好并跳轉(zhuǎn)。這種模塊化設(shè)計(jì)讓每一層都能獨(dú)立調(diào)試這也是為什么我建議你按順序編譯并逐個(gè)驗(yàn)證而不是一把梭。3.2 編譯U-Boot讓第一階段引導(dǎo)跑通拿到復(fù)旦微提供的 BSP 發(fā)布包之后里面通常會(huì)有 u-boot 源碼目錄。我的習(xí)慣是先看兩個(gè)文件README 和 configs/ 目錄下是否有對應(yīng)板卡的 defconfig。復(fù)旦微 BSP 里一般會(huì)帶一個(gè)類似于 fsm 或 fmql 開頭的 defconfig如果沒有就找 xilinx_zynq_virt_defconfig 作為基準(zhǔn)再手動(dòng)改。export ARCHarm export CROSS_COMPILEarm-linux-gnueabihf- make distclean make 你的板卡defconfig make -j$(nproc)編譯過程如果順利會(huì)在 u-boot 目錄下生成 u-boot.elf 和 u-boot.bin。u-boot.elf 是給 FSBL 加載用的u-boot.bin 是裸二進(jìn)制后面打包 BOOT.BIN 時(shí)通常用 .elf??吹?U-Boot ... for FPGA 之類版本號就說明編出來了。這里有個(gè)容易忽略的細(xì)節(jié)U-Boot 的環(huán)境變量默認(rèn)是寫死在編譯配置里的比如 bootcmd、bootargs、串口波特率。如果你板子的以太網(wǎng)地址、DDR 大小和默認(rèn)值不同編譯前最好先查一下 defconfig 里的 CONFIG_BOOTCOMMAND 和 CONFIG_EXTRA_ENV_SETTINGS把默認(rèn) bootargs 里的 console 參數(shù)改成你的實(shí)際串口設(shè)備比如 consolettyPS0,115200。否則后面啟動(dòng)內(nèi)核時(shí)你會(huì)遇到串口毫無輸出或者亂碼的尷尬。3.3 編譯內(nèi)核與設(shè)備樹PL側(cè)外設(shè)怎么暴露給系統(tǒng)內(nèi)核編譯比 U-Boot 稍微復(fù)雜一點(diǎn)因?yàn)槟阈枰却_定內(nèi)核版本再考慮配置裁剪。FMQL45T900 的 BSP 基于哪個(gè)內(nèi)核分支就以哪個(gè)為準(zhǔn)一般 4.19 或 5.4 比較多見。編譯前先清理掉之前的配置防止殘留的 .config 造成干擾。export ARCHarm export CROSS_COMPILEarm-linux-gnueabihf- make distclean make BSP自帶的內(nèi)核defconfig make -j$(nproc) UIMAGE_LOADADDR0x8000 uImage make -j$(nproc) dtbs編內(nèi)核的時(shí)候UIMAGE_LOADADDR0x8000 是必須的因?yàn)?ARM 內(nèi)核一般以 uImage 格式加載這個(gè)地址告訴 U-Boot 把內(nèi)核放到哪里。dtbs 會(huì)生成對應(yīng)的設(shè)備樹二進(jìn)制文件比如 zynq-fmql45t900.dtb在 arch/arm/boot/dts/ 目錄下。設(shè)備樹是 BSP 配置的核心難點(diǎn)。它本質(zhì)上是給內(nèi)核看的一張硬件清單。其中 PL 側(cè)的 IP 核比如 AXI GPIO、DMA、自研 IP地址和中斷號都是在 FPGA 工程里定義好的需要手動(dòng)在設(shè)備樹里添加節(jié)點(diǎn)。比如我在 PL 里加了一個(gè) AXI GPIO 模塊基地址是 0x40000000中斷號是 31設(shè)備樹里就要寫類似的節(jié)點(diǎn)/ { amba_pl: amba_pl { compatible simple-bus; ranges; axi_gpio_0: gpio40000000 { compatible xlnx,xps-gpio-1.00.a; reg 0x40000000 0x10000; interrupt-parent intc; interrupts 0 31 4; #gpio-cells 2; gpio-controller; }; }; };很多新手在這里卡住根本原因是沒有把 FPGA 工程里的地址分配和 dts 里的 reg 字段對應(yīng)起來。我建議你在配置設(shè)備樹之前先回頭把自己的 FPGA 工程地址映射 table 打出來逐個(gè)核對。這個(gè)核對過程雖然繁瑣但一旦對錯(cuò)一次后面 Linux 里讀外設(shè)寄存器全部會(huì)是總線錯(cuò)誤或者讀到 0xffffffff排查起來更痛苦。3.4 根文件系統(tǒng)buildroot與SD卡方案二選一內(nèi)核和設(shè)備樹編好之后還缺一個(gè)能用的根文件系統(tǒng)。這里有兩種主流方式。第一種是用 buildroot 從源碼構(gòu)建一個(gè)精簡的 rootfs完全可控、體積小適合正式產(chǎn)品。第二種是直接用現(xiàn)成的 Ubuntu/Debian rootfs 包解壓到 SD 卡省時(shí)省力適合功能驗(yàn)證和日常開發(fā)調(diào)試。Buildroot 的方式是配置、編譯、產(chǎn)物三條命令但它最大的成本在于首次編譯要下載大量源碼包而且要等很長時(shí)間。如果你只是想讓系統(tǒng)先跑起來看啟動(dòng)日志建議直接用 ubuntu-base 或 debian rootfs。# 以 ubuntu-base 為例 sudo mkdir -p /mnt/rootfs sudo tar -xJf ubuntu-base-18.04.5-base-armhf.tar.gz -C /mnt/rootfs # 用 qemu-user 進(jìn)入 rootfs 安裝必要軟件在 x86 主機(jī)上模擬 ARM sudo mount --bind /proc /mnt/rootfs/proc sudo mount --bind /sys /mnt/rootfs/sys sudo mount --bind /dev /mnt/rootfs/dev sudo mount --bind /dev/pts /mnt/rootfs/dev/pts sudo cp /etc/resolv.conf /mnt/rootfs/etc/resolv.conf sudo chroot /mnt/rootfs /bin/bash # 在 chroot 環(huán)境里安裝軟件 apt-get update apt-get install -y network-manager openssh-server vim得益于 qemu-user 的靜態(tài)模擬能力在 x86 主機(jī)上就能直接改 ARM rootfs 里的內(nèi)容非常方便。這種方式下系統(tǒng)起來之后基本就是一個(gè)完整的 Ubuntu 環(huán)境可以聯(lián)網(wǎng)裝軟件、跑服務(wù)對調(diào)試效率提升很大。當(dāng)然代價(jià)是可靠性不如 buildroot 精細(xì)打磨過的產(chǎn)物所以我的建議是驗(yàn)證階段用 Ubuntu rootfs 快速跑通產(chǎn)品化階段再切 buildroot。4. 啟動(dòng)燒寫與調(diào)試鏈路把系統(tǒng)真正跑起來的完整過程4.1 Zynq類SoC的啟動(dòng)鏈BootROM到用戶空間的每一步FMQL45T900 的啟動(dòng)流程和 Zynq 一脈相承整體分四步。芯片上電后片內(nèi) BootROM 先運(yùn)行它根據(jù)啟動(dòng)模式引腳的電平狀態(tài)決定從哪里加載 FSBL——可能是 QSPI Flash也可能是 SD 卡或者 JTAG。BootROM 把 FSBL 加載到片內(nèi) RAMOCM并跳轉(zhuǎn)執(zhí)行這一步?jīng)]有串口日志輸出屬于靜默階段。FSBL 運(yùn)行后會(huì)完成 DDR 控制器的初始化這是整個(gè)啟動(dòng)鏈里最關(guān)鍵也最容易出問題的一步。DDR 沒配置好后續(xù)所有代碼都無法正常運(yùn)行。FSBL 接著把 U-Boot 從啟動(dòng)介質(zhì)加載到 DDR并引導(dǎo) U-Boot 執(zhí)行。U-Boot 啟動(dòng)后才會(huì)在串口打印出那一行行熟悉的版本信息所以如果你的串口完全沒有輸出問題大概率出在 BootROM、啟動(dòng)模式、FSBL 或 DDR 配置這幾環(huán)。再往后U-Boot 根據(jù) bootcmd 環(huán)境變量執(zhí)行啟動(dòng)命令把內(nèi)核鏡像和設(shè)備樹加載到指定內(nèi)存地址并跳轉(zhuǎn)。內(nèi)核接管之后掛載根文件系統(tǒng)然后運(yùn)行 PID 1init 或 systemd最終進(jìn)入用戶空間彈出一個(gè) root 登錄 Shell。整條鏈路每一級都有明確的輸出標(biāo)志U-Boot 版本號、內(nèi)核版本號、init 進(jìn)程啟動(dòng)日志順著這些標(biāo)志能很快定位問題出在哪一環(huán)。4.2 用bootgen拼裝BOOT.BINFSBL、bitstream、U-Boot 三樣?xùn)|西編譯好之后需要用 bootgen 工具打包成 BOOT.BIN這是 SD 卡或 QSPI 啟動(dòng)時(shí) BootROM 能直接識別的鏡像格式。bootgen 的用法是通過一個(gè) .bif 描述文件來定義打包內(nèi)容# boot.bif 內(nèi)容 the_ROM_image: { [bootloader] zynq_fsbl.elf fmql45t900.bit u-boot.elf } # 生成 BOOT.BIN bootgen -image boot.bif -o i BOOT.BIN -w on.bif 文件里的順序是有講究的bootloader 關(guān)鍵字標(biāo)記 FSBL緊接著是 PL bitstream然后是 U-Boot。BootROM 會(huì)先加載 FSBLFSBL 會(huì)把 bitstream 配置進(jìn) PL再啟動(dòng) U-Boot。如果你的 PL 邏輯需要在 Linux 起來之前就工作bitstream 必須打包在這個(gè)位置如果你希望 Linux 起來后用 fpga manager 再動(dòng)態(tài)加載 PL 邏輯也可以不在 BOOT.BIN 里放 bitstream但那樣系統(tǒng)啟動(dòng)的早期階段 PL 就是空白的。一個(gè)常見的坑是 bootgen 工具路徑不在 PATH 里或者版本和 BSP 要求不一致。建議把 bootgen 的完整路徑寫到 Makefile 或者打包腳本中并把版本信息記錄在 README 里避免換電腦之后打包出來的 BOOT.BIN 行為異常。4.3 SD卡分區(qū)與燒寫檢查SD 卡啟動(dòng)是最方便的開發(fā)方式只需要把 BOOT.BIN、內(nèi)核鏡像、設(shè)備樹、rootfs 按約定放好。SD 卡需要分兩個(gè)區(qū)第一個(gè)分區(qū)是 FAT32大小建議 500MB 左右存放 BOOT.BIN、uImage、dtb 文件第二個(gè)分區(qū)是 ext4存放 rootfs 內(nèi)容。# 假設(shè)SD卡設(shè)備是 /dev/sdb注意確認(rèn)設(shè)備名別把主機(jī)磁盤覆蓋了 sudo fdisk /dev/sdb # 刪除舊分區(qū)創(chuàng)建一個(gè) W95 FAT32 (LBA) 主分區(qū)剩余空間做 Linux 主分區(qū) sudo mkfs.vfat -F 32 /dev/sdb1 sudo mkfs.ext4 /dev/sdb2 sudo mkdir -p /mnt/boot /mnt/rootfs sudo mount /dev/sdb1 /mnt/boot sudo mount /dev/sdb2 /mnt/rootfs cp BOOT.BIN /mnt/boot/ cp uImage /mnt/boot/ cp zynq-fmql45t900.dtb /mnt/boot/ cp -ra /mnt/rootfs_orig/* /mnt/rootfs/ sync燒寫完別急著拔卡先檢查兩件事。第一FAT32 分區(qū)里的文件名是否和 U-Boot 環(huán)境變量 bootcmd 里寫的一致比如 U-Boot 里寫的是fatload mmc 0:1 0x3000000 uImage那文件名就必須叫 uImage大小寫敏感。第二rootfs 分區(qū)里關(guān)鍵目錄是否完整尤其是 /lib 和 /etc很多系統(tǒng)啟動(dòng)失敗都是因?yàn)?rootfs 解壓不完整或者動(dòng)態(tài)鏈接器缺失。4.4 串口日志解讀與NFS調(diào)試串口是嵌入式 Linux 開發(fā)的生命線。連接 FMQL45T900 的調(diào)試串口一般波特率是 1152008N1無流控。Linux 下用 minicom 或 picocom 都行我更快的是寫腳本方式sudo picocom -b 115200 /dev/ttyUSB0上電瞬間就要開始觀察串口輸出。如果完全無輸出先用萬用表確認(rèn)串口電平是否正常、TX/RX 是否接反、板子是否已經(jīng)處在正確的啟動(dòng)模式。如果只有 U-Boot 輸出但內(nèi)核沒起來用 CtrlC 打斷 U-Boot手動(dòng)執(zhí)行 bootcmd 一步步看日志配合printenv檢查環(huán)境變量是否被 U-Boot 重置。如果內(nèi)核起來了但掛載不上 rootfs那要么是設(shè)備樹里 chosen 節(jié)點(diǎn)的 bootargs 沒寫對要么是 rootfs 分區(qū)有問題。調(diào)試過程中我強(qiáng)烈建議配一個(gè) TFTP/NFS 網(wǎng)絡(luò)調(diào)試環(huán)境。把內(nèi)核和設(shè)備樹放到 TFTP 服務(wù)器把 rootfs 放到 NFS 導(dǎo)出目錄U-Boot 里設(shè)置 bootargs 為root/dev/nfs nfsroot192.168.1.100:/srv/nfs/rootfs ipdhcp。這樣每次編譯完內(nèi)核和 rootfs 之后不用反復(fù)拔插 SD 卡燒寫直接重啟板子從網(wǎng)絡(luò)加載就行開發(fā)效率翻倍。等全部調(diào)通之后再固化到 SD 卡或 QSPI做最終驗(yàn)證。5. 踩坑記錄與性能實(shí)測給后來者的一組關(guān)鍵參考5.1 坑一DDR初始化失敗導(dǎo)致啟動(dòng)中斷這是我遇到的第一個(gè)重大問題。板子上電后串口完全沒輸出用 JTAG 連接調(diào)試器后發(fā)現(xiàn) CPU 一直停在 FSBL 里 DDR 初始化調(diào)用處。FSBL 源碼里對 DDR 的配置是一大段寄存器序列這些參數(shù)必須和板子上實(shí)際焊接的 DDR 顆粒型號、容量、位寬嚴(yán)格匹配。排查過程是先把核心板硬件手冊里 DDR 型號和容量找出來再和 BSP 自帶的 FSBL 源碼中的配置參數(shù)對照。發(fā)現(xiàn)核心板配的是 1GB DDR3而 BSP 默認(rèn)配置只初始化了 512MB高地址訪問全部異常。解決辦法是找到 FSBL 中 DDR 配置的宏定義把地址映射和行/列/ bank 數(shù)按實(shí)際顆粒數(shù)據(jù)手冊修改同時(shí)更新設(shè)備樹里內(nèi)存節(jié)點(diǎn)的reg 0x00000000 0x40000000為實(shí)際容量。這個(gè)坑的教訓(xùn)是拿到任何新板子的第一件事一定是核對內(nèi)存配置。DDR 參數(shù)沒有通用的默認(rèn)值只能以板卡手冊為準(zhǔn)。你抄別人的配置大概率會(huì)在啟動(dòng)階段栽跟頭。5.2 坑二交叉編譯器版本與內(nèi)核版本匹配問題有段時(shí)間我編譯出來的內(nèi)核一啟動(dòng)就報(bào) undefined instruction 錯(cuò)誤有時(shí)甚至編完鏡像都不能解壓。后來查內(nèi)核文檔才發(fā)現(xiàn)新版內(nèi)核4.16默認(rèn)開了CONFIG_AEABI和各種新的編譯選項(xiàng)對編譯器版本有最低要求。Linaro GCC 4.9 太老生成的代碼在某些指令序列上會(huì)和 4.19 內(nèi)核的期望不一致。解決方案就是換編譯器版本直接從 GCC 4.9 升到 7.5。換了之后重新編譯內(nèi)核問題消失。這件事給我一個(gè)啟示BSP 發(fā)布包一般會(huì)標(biāo)注推薦的工具鏈版本最好嚴(yán)格按照它來。如果不確定優(yōu)先選社區(qū)驗(yàn)證最多、資料最多的中版本編譯器不要盲目追求新版本。同時(shí)保留好編譯器的下載地址和版本號在項(xiàng)目 README 里寫清楚換電腦、換同事接手時(shí)都能快速復(fù)現(xiàn)環(huán)境。5.3 坑三PL bitstream加載與fpga managerSPL 方案里 BOOT.BIN 里已經(jīng)打包了 bitstreamFSBL 會(huì)在 U-Boot 之前配置 PL這種方案的好處是硬件邏輯在 Linux 啟動(dòng)早期就緒適合那些需要 PL 立即參與系統(tǒng)的場景。但如果你后續(xù)在 Linux 運(yùn)行過程中需要更新 PL 邏輯就得用 fpga manager 框架。用 fpga manager 動(dòng)態(tài)加載 bitstream 時(shí)需要注意 bitstream 的格式。有些廠商的 bitstream 是二進(jìn)制 .bit但內(nèi)核 fpga manager 驅(qū)動(dòng)需要的是不帶頭部信息的 .bin 文件。我在開發(fā)中先用 FPGA 工具把 .bit 轉(zhuǎn)換為 .bin再在系統(tǒng)里用fpgautil -b xxx.bin寫入 PL或者直接調(diào)用 sysfs 接口/sys/class/fpga_manager/fpga0/load。這個(gè)環(huán)節(jié)最常見的錯(cuò)誤是加載后 PL 邏輯工作不穩(wěn)定表現(xiàn)為讀到全 0 或者全 1。原因多半是 PL 的時(shí)鐘沒有正確供給或者 PL 配置時(shí) DDR 控制器仍在忙。我最終建議如果項(xiàng)目允許盡量把核心 bitstream 固化在 BOOT.BIN 里運(yùn)行時(shí)的更新需求放在 rootfs 里做全量替換減少動(dòng)態(tài)加載的復(fù)雜性。動(dòng)態(tài)加載功能留作后臺維護(hù)的備用通路即可。5.4 Qt for ARM Linux開發(fā)的快速路徑很多使用 FMQL45T900 的項(xiàng)目都會(huì)涉及人機(jī)界面Qt 是 ARM Linux 上的主流選擇。構(gòu)建 Qt 交叉編譯環(huán)境有兩種方式一種是用 buildroot 直接構(gòu)建帶 Qt 的 rootfs適合最終產(chǎn)品另一種是單獨(dú)交叉編譯 Qt 庫部署到目標(biāo)板適合在 x86 主機(jī)上開發(fā) Qt 應(yīng)用。Qt 5.5.10 配 arm-linux-gnueabihf 是一套驗(yàn)證過的組合。交叉編譯 Qt 前要確保工具鏈支持 ARMv7-A 和 NEON并且在 configure 時(shí)明確指定./configure -release -opensource -confirm-license \ -xplatform linux-arm-gnueabihf-g \ -prefix /opt/qt5.5.10-arm \ -no-opengl -no-gtk -nomake examples -nomake tests這里有個(gè)非常容易踩的坑Qt 的 qmake 會(huì)用到目標(biāo)板上的 sysroot也就是 ARM rootfs。如果 sysroot 路徑不對編譯出來的程序在板子上運(yùn)行時(shí)會(huì)缺少一堆動(dòng)態(tài)庫。建議先把 rootfs 完整解壓到主機(jī)某目錄編譯 Qt 和編譯應(yīng)用時(shí)都用-sysroot指定這個(gè)目錄并在鏈接時(shí)用-rpath指向 Qt 庫安裝目錄避免運(yùn)行時(shí)找不到庫。界面性能方面FMQL45T900 的 PL 端如果放了顯示控制器 IP那 Qt 可以直接走 framebuffer 插件不需要 OpenGLCPU 渲染 800x480 分辨率的界面基本流暢。如果對動(dòng)畫性能有更高要求再考慮在 PL 端接 Mali 等 GPU IP但復(fù)雜度會(huì)明顯上升。5.5 一組實(shí)測數(shù)據(jù)與后續(xù)擴(kuò)展方向經(jīng)過完整搭建和調(diào)優(yōu)后用這套方案跑通 FMQL45T900 的啟動(dòng)和數(shù)據(jù)采集應(yīng)用我記錄了幾個(gè)關(guān)鍵數(shù)據(jù)供參考項(xiàng)目結(jié)果從上電到 U-Boot 串口輸出約 2.6 秒從 U-Boot 到內(nèi)核啟動(dòng)完成約 3.2 秒內(nèi)核到 rootfs 掛載并進(jìn)入 Shell約 5.8 秒U(xiǎn)buntu rootfssystemduImage 大小4.19 內(nèi)核基礎(chǔ)驅(qū)動(dòng)約 5.3 MB設(shè)備樹大小約 22 KB靜態(tài)編譯的最小 hello約 780 KB啟動(dòng)后系統(tǒng)空閑內(nèi)存約 750 MB1GB DDR 配置這些數(shù)字不是最優(yōu)值但作為開發(fā)板狀態(tài)足夠用。如果你做正式產(chǎn)品建議用 buildroot 替換 Ubuntu rootfs把啟動(dòng)時(shí)間壓進(jìn) 5 秒以內(nèi)在工業(yè)場景中很常見。后續(xù)擴(kuò)展方向我自己的計(jì)劃是先在 PL 端加一個(gè) DMA 采集模塊用 Linux 里的 u-dma-buf 驅(qū)動(dòng)做零拷貝數(shù)據(jù)通路把高性能 ADC 的采集數(shù)據(jù)直接送到用戶態(tài)同時(shí)在 Linux 里添加遠(yuǎn)程升級機(jī)制通過 U-Boot 的 distro boot 特性做雙分區(qū) A/B 互備升級。這套環(huán)境跑通之后后面的擴(kuò)展基本就是在往這條穩(wěn)固的鏈路上添磚加瓦心里會(huì)有底得多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
五月综合久久| 久8色色| 91人操| 噜噜噜狠狠色综合| 97婷婷丁香| 疯狂做受XXXX高潮A片| 天天爱天天爽| 丁香五月在线观看| 97色色在线视频| 操97| 极品少妇高潮啪啪AV无码| 激情五月六月丁香| 大香蕉久操| 久婷狼色诱惑在线| 五月婷婷丁香六月| 五月丁香在线| 丁香六月婷婷| 深爱婷婷网| 亚洲色五月婷婷| 开心五月激情站| 在线你懂的亚洲欧| 在线观看av网站| 久久99最新地址| 色色99| 激情视频综合| 射久久丁香五月| 亚州性爱99| 亚洲色爽| 99re思思热这里| 婷婷五月天免费小说| 久超超碰| 538午夜激情| 99热碰碰| 日韩人妻在线观看| 婷婷五月天成人五月天| 五月天第四色开心色播| 玖玖福利视频资源| VfJxEwPH| 久久综合中文字幕| 色播婷婷五月天| 九九热99热| 骚货艹网站视频| 五月激情偷拍婷婷| www激情com| 久久婷婷五月天激情唯美| 日韩无码一区二区三区四区| 五月综合在线婷婷图片| 午夜电影网VA内射| 98永久精品| 狠狠色狠狠操| 久久这里只有精品99| 97色在线视频| 99只有精品| 久久九九国产精品怡红院| www99热| 丁香久久综合| 五月综合激情婷婷六月色窝| 99热99日天天干| 超碰五月婷婷五月天| 999热这里只有美国精品| 在线视频区| 97操操网| 97视频91| 五月天婷婷色播在线网| 亚洲激情久久| 香蕉AV福利精品导航| 成人做爰A片免费看视频| 超pen个人视频97| 9视频在线成人网站| 色啪久| 久久婷婷丁香花综合网| 婷婷丁香激情综合色情| 五月婷婷成人w| 色五月婷婷激情五月| 久久久人妻系列| 色啪影院| 香蕉影院色| 久久精品熟女亚洲AV麻豆| www.一区二区三区| 亚洲欧洲另类| 人。妻久久| 99亚洲视频| 99色在线视频| www:99热视频| 99精品自拍视频| 天天五月丁香五月| www.minyis.com【JT】实力收量可预付QQ2101460746 | 91色色色| 午夜]香婷婷深深爱| 五月天大香焦| 丁香五月大香蕉在线99| 碰人人97| 亚洲人人96@| 亚州日本欧州韩美高青高潮一| 丁香色情五月综合网站| 婷婷丁香五月亚洲17cao| 岛国在线观看91| 色婷婷丁香社综合| 狠狠狠狠狠操| 丁香啪啪| 51XX午夜影福利| 99精品无码网站| 五月天亚洲色| 99久热视频在线| 91丁香五月| 狠狠干2007| 97 A I色色| 二色av| 91人无码久久久久久| 五月丁香猫咪久久婷婷综合视频激情四射网入口 | 女人被男人吃奶到高潮| 1024操逼| 日本成人噜噜噜噜噜| 日韩一级网站| 丁香五月天婷婷久久| 九九精品9| 丁香五月欧美色综合| 丁香午月AV中文字幕| 九九热在线观看视频| 国产真实乱了老女人视频| 97干在线播放| 99精品这里只有免费视频| 激情婷婷五月天在线观看| 日日干日日| 五月丁香六月| 成人五月天在线观看| 日日天天干| 精品夜夜澡人妻无码AV| www.日日日.com| 色欲天天综合| 337p大胆噜噜噜噜噜91Av| 国产精品VA在线| 五月丁香本色在线观看| 人人操人av| 婷婷午夜| 日批在线看| 九九成人| 深爱五月中文字幕| JlZZJlZZ8JlZZ亚洲熟女| 色青青五月| 桃色五月天| 综合网亚洲| 熟女人妻视频| 夜夜操,天天撸| 1024亚洲无码| 久久色这里只有精品| 99国产精品久久久久久久久久久| 丁香五月激情月| 久热大香蕉| 久9热| 综合网啪| 91色久| 成功精品影院| 天天透天天摸天天舔| 九九色色| 日本五月婷| 五月婷婷爽爽爽| 色色色综合色| 丁香五月亚洲AV| www色五月| 日本www免费九九| 日本色婷婷久久99精品91| 亚洲中文字幕网| 五月天无码视屏播放| 婷婷久久久| 日韩99色| 久久九九99.www| 噜综合| 337p午夜影院| 国内一级片| 五月丁香天堂网婷婷| 激情综合五月天| 婷婷黄色五月天在线视频| 日本视频久久| 婷婷五月精品中文字幕| 丁香五月花婷婷开心| 激情五月综合网| 99re这里只有精品首页| av在线免费播放| 丁香五月影院| 五月天久久婷婷| 成人电影AV在线观看| 91天天操天天干天天射| 欧美熟女乱又伦| 色射7856五月天激情四射| 婷婷涩涩五月天| 97在线精品| 无码日本精品XXXXXXXXX| 337午夜福利| 色婷婷综合电影| 色色五月丁香| 很很干夜夜干| 天天舔天天摸天天射| 日本天堂网站99| 激情婷婷色色| 婷婷综合五月天亚洲综合| 婷婷丁香五月天大香蕉| 性欧美大战久久久久久久83| 亚洲AV综合在线观看| 开心激情色婷婷五月天| 五月丁香啪综合| 影音先锋女人AA鲁色资源| 色婷婷的五月天| 丁香丁婷五月激情| 开心五月婷婷婷美女| 丁香六月激情| 日韩啪啪视频| 六月婷婷综合| 日日日日操| 97人人操人人| 久热99久热| 色色射| 天天操狠狠操| 欧洲高清免费久久| 激情五月天综合图片小说网站| 久久人操-久草婷婷-成人AV| 538在线精品| 色五月婷婷av| 啪啪婷婷五月天激情| 国产精品国产成人国产三级| 国产激情久久久| 丁香蜜臀黄色婷婷五月天| 91欧美| 中文字幕高清av| 99热色精品| 久热亚洲| 狠狠五月天| 97色五月天| 久99久视频| 久久区区一二三av| 第1影院之五月婷婷| 中文中文在线| 成人无码精品1区2区3区免费看 | 婷婷黄色| 久操无码| 婷婷五月天在线看| 狠狠色丁香久久久婷| 色九月欧美| 99久高清视频| 丁香五月婷婷天堂大香蕉| 性爱网五月婷婷| 色色热| 激情五月婷婷视频一区二区三区| 婷婷五月天亚洲| 欧美婷婷日本| 久久综合五月天| 影音先锋xfplay资源男人网| 99丁香五月婷| 五月丁香六月婷婷,婷| 欧美超级视频97| aaaa久久| 免费啪啪啪网站| 色五月丁香五月| 精品久久久久久久人妻| 激情小说婷婷五月| 国产无人区大片| www.99热| 99热在线播放| 99ER热精品视频| 性生生活大片又黄又| 男女啪啪做爰高潮无遮挡| 色五月婷婷网| AV六月丁香| 婷婷九九色| 39视频第二区| 久久人人看| 99天堂网| 天天成人丁香美女AV| 丁香婷婷久久老熟女综合网| 人人爱人人草| 五月天.com| 五月丁香影视| 色综啪啪网| 99久久五月婷婷| 欧美性交一区二区三区| 丁香六月综合激情| 99色视频免费在线规看| 超碰大香蕉网| 五月丁香婷婷五月色| 日韩啪啪自拍| 五月丁香色婷婷婷基地| 婷婷五月激情视频在线| 亚洲人人操| 天天射天天插天天干| 狠狠色婷婷综合开心影视| 婷婷五月天最新网址| 金品在线视频99| 99自拍网| 婷婷五月色亚洲| 99无码精品| 亚洲综合五月| WWW.久久久久久久久久久久久| 影音先锋色婷婷| 丁香五月婷婷动漫| h亚洲| 99精品久久| 婷婷色资源| 精品久久99码| 成人免费va| 五月天综合视频| 精品热九九| www.色综合.com| 另类图片 五月激情| 五月天激情丁香| 91Chinese在线| 丁香五月婷婷社区| 天天日日人| 天天摸色吧天天摸色吧| 99热官网| 97久久视频| 五月天六月婷婷电影| 91久操| 2025超碰| 亚洲日本韩国| 国产五月丁香在线| 99久久99九九99九九九| 伊人五月天97| 天天天天天天噜| 色偷偷综合| 丁香五月婷婷亚洲激情四射| 六月天丁婷婷| 免费看成人AA片无码视频吃奶| 黄网在线免费播放| 99热这里只有精品8| 北京熟妇搡BBBB搡BBBB| 色八月婷婷| 色五月婷婷老师| 日逼影音先锋男人AV资源站| 五月天 综合 在线| 99热综合网| 五月天婷婷久草丁香| 玖玖资源网站最新站| PORNY九色9l自拍视频成人| 99日热在线视频| 九九视频这里只有精品在线播放| 思思热视频在线观看| 我去色色网五雨天| 天天干一干| 97色一二三| 激情婷婷丁香色五月综合| 国产免费AV网站| 五月丁了香蕉综合| 久久九九色| 欧美A A A A A| 天天操天天日天天爽| 六月激情婷婷| 包操45分钟网站| 岛国av网站| 五月色丁香| 丁香五月AV| 日韩无码人妻一区二区| 欧美色色色色色色| 久久99婷婷| 9月色婷婷| 六月丁香狠狠爱| 五月婷婷99热| 大香蕉久久| 九色无码| 成人网站在线观看视频| 丁香六月开心| 免费看欧美成人A片无码| 激情婷婷五月久久| 久久久久久久人妻| 天天拍久久| 国产无套精品一区二区| 夜夜撸日日骑| 婷婷色五月开心五月| 五月天婷婷在线观看| 超碰A V在线| 五月天婷婷在线播放免费| 色婷婷影音| 天天插天天日| 丁香婷婷五月综合色情| 粉嫩AV久久一区二区三区| 亚洲99视频| 欧美日韩国产一二区| 国产精品热搜丁香五月婷婷| 婷婷九月在线| www五月| 26uuu欧美亚洲日韩| 91丁香色五月| 99re熱| 国产美女无遮挡裸体毛片A片| 五月天播播综合| 丁香五月天久久| 色播播婷婷| 超碰免费大香蕉| 少妇综合网| 五月花成人网| 婷婷大乡焦噜噜| 91蜜桃婷婷狠狠久久综合9色| 免费99情趣网视频| 免费亚洲成人电影AV| 91久久婷婷| 五月天无码视屏播放| 狠狠一日| 夜夜操夜夜操| 97久久婷婷色| 五月婷婷六月激情| va婷婷在线| 亚洲AV永久无码影院黑人| 婷婷成人五月天成人文学| 欧美精产国品一二三区| 一起草AV入口| AV在线中文| 日本熟妇人妻在线| 中文资源在线a| 超碰在线观看三级片| 天天色噜| WWW.夜夜| 亚洲色色图片| 亭亭色网| 9 1大香蕉| 无码任你操| 婷婷精品性性性性性性性| 丁香婷婷性爱| 精品无码av丁香五月激情| 在线综合婷婷| 亚洲一级AV在线免费播放| 丁香六月五月天| 六月丁香婷婷六月激情综合| 综合激情五月丁香9999久久精| 奇米影视777在线_在线观看午夜_h小视频在线观看_岛国大片 | 超碰国产在线观看| 啊v视频在线观看| 丁香五月另类小说| 99热在线中文字幕| 久久综合激情五月天| 操人精品| 啪啪视频99| 无码少妇高潮喷水A片免费| 久狠狠| 可以直接看的AV网站| 色播五月婷婷| 4399亚洲视频| 久久99精品日本| 五月丁香综缴情性爱| 五月丁香六月天| 天堂综合久久 | 大香蕉伊人99| 九九色播五月丁香| 六九色综合婷婷五月天| 五月天婷婷亚洲| 九九婷婷五月天影视| 久久这里只有精彩| 天天操夜夜啊| 丁香六月婷婷开心| 色婷婷丁香六月| 久久99久久99精品免视看婷| 久草A片| 超碰97免费在线| 婷婷激情啪啪| 国产资源在线视频| 大香蕉人在线65| 国产女人十八水真多1| 操操操B| 欧美成人AAA片一区国产精品| 婷婷婷婷婷婷婷五月丁香| 久久久久久久久99精品| 色综合综合色| 五月婷婷中文| 免费无码毛片一区二区A片| 五月天综合| 日本狠狠干| 久久婷婷热| av人人干| 双性美人被调教到喷水A片| 欧美成人猛片AAAAAAA| 国产精产国品一二三在观看| 久婷婷视平| 九热网站| www一起操| www.婷婷,com| 婷婷丁香色五月亚洲| 五月丁香激情片| 无码一区二区日韩| 亚洲综合婷婷五月天| 激情网婷婷婷| 8区视频在线| 久操婷婷| 99久久九九视频| 九九精品免费视频99| 成人视频免费观看高清完整版在线观看| 男同色五月开心五月激情五月| 激情五月九九九| 色综合狠狠色| 精品婷婷五| 狠狠干青青草| 人人摸人人澡人人| 五月婷婷激情| 久久丁香婷婷色情综合| 久久综合爱| 丁香五月AV| 免费不卡狠操美女视频网 | 五月丁香六月婷婷手机无线| 色婷狠狠| 大香蕉综合在线| 久99999热视频在线观看免费| 天天日色情| 国产亚洲网站在线| 六月色婷婷欧美| 色久综合天天做视频| 涩五月婷婷| 中文av网| 天啪色| 丁香六月啪| 777精品成人a v久久| 99精品在线观看视频| 夜夜谢天天干| 热久69| 99在线爽| 午夜婷婷久久| 久久婷综| 婷婷五月成年人| 精品久久久人妻| 人人摸人人摸| 91色碰| 色99亚洲| 色欲丁香| 日韩成人电影av| 激情美女五月天| 五月婷婷六月丁香综合| 八戒青柠影视剧在线观看| 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 婷婷区日本| 丁香六月婷| 午夜不卡久久精品无码免费| 国产精品电影| 亚洲无码yw| 亚洲黄网在线| 日本五月丁香| 九九热AV| 亚洲1区| 六九色综合婷婷五月天| 在线看AV| 天天日人人爽| 欧美成人AAA片一区国产精品| 色色色色色五月丁香| 天天射天天射一道本日本社区| 九九久久网| 东京热免费视频网站| 婷婷五月综合啪| 天天影院色| 综合色影院| 五月婷婷激情四月| 丁香五月综合网| 午夜丁香六月婷| 天天爽天天日| 高清无码.com| 婷婷五月色| 激情久久久久| 色色婷婷五月| 久/久精品99看9| 在线观看中文字幕亚洲| 性生活视频98791| 九九激情| 激情九色| 久草天堂| 天天摸.天天mo| 久热大香蕉| 国产精品视频| 少妇高潮一区二区三区99欧美| 天堂五月婷婷| 丁香婷婷五月色成人网站| 日韩无码人妻一区二区| 婷婷五月天小说| 久一网站| 91久热| 久草婷婷| 亚洲字幕AV一区二区三区四区| 五月婷婷狠天天色综合| 综合福利网| 狠狠插狠狠| AⅤ在线播放网| 天天操天天曰| 一起草Av| 超碰AV在线| 欧美激情xxxXX| 成人无码髙潮喷水A片| 人妻久久久久久久久妻久久久久| 日本性视频| 激情深爱五月| 97人人操在线| 噼里啪啦在线观看免费完整版视频 | 亚洲va综合va国产va中文| 亚洲婷婷丁香五月天激情小说 | 国产成人+亚洲+欧洲| 国产黄色大片| 97人人搞| 婷婷操逼网| 色色色色色日韩午夜激情 | 日本一級黃色一級片| 五月成人综合| 丁香综合网| 国产亚洲精品AAAA片APP| 99只有这里是精品| 日韩久久色| 亚洲va综合va国产va中文| 久热中文字幕在线线观看| 任我肏视频精品| 久久综合丁香| 1995年关宝慧版蜘蛛女| 高清成人综合| 日韩中文字幕| 六月婷婷色色色| 亚洲va日| 丁香五月天堂网AV| 国产肥白大熟妇BBBB视频| 色五月婷婷五月丁香五月| 久久久婷婷五月亚洲97号色| 无码少妇高潮喷水A片免费| 天天日,天天插| 99热久| 丁香五月天堂亚洲社区| 色欲av伊人久久大香线蕉影院| 伊人六月丁香婷婷| 国产精典视频在线观看| 激情色五月天| 六月婷婷五月丁香| 六月丁丁香| 婷婷五月天激情在线观看 | 国产av天天插天天操天天爽| 99re免费精品视频| ji'qi'luan'ren'lun| 怕怕視頻| 色五月激情| 国产干逼片| www,五月丁,com| 激情6月| 色五月婷婷丁香五月| 岛国AV网| 五月丁香五月激情综合色综合| 99视频91| 欧美一级a| 婷婷九月丁香| 九月激情综合婷婷| 色色热| 夜夜爽天天干| 大伊久久| 天天色天天爱天天舔| 67194中文字幕| 九九成人电影婷婷| 丁香五月av| www.91操| 久久久久激情| 中文成人在线| 九九综合久久| 婷婷六月丁香1| 婷婷五月丁香啪啪| 婷婷网影院| 噜噜五月天综合| 婷婷五月丁香综合亚洲| 人妻在线网站| 岛国AAAV| 久久婷婷超碰| 97人人妻人人艹| 人妻体体内射精一区二区| 五月开心久久| 婷婷色中文字幕| 久久婷婷六月综合| 超碰av在线| 粉嫩av蜜桃av蜜臀av| 五月天天久久香| 五月丁香六月婷婷姐| 另类五月激情| 日韩AAAAAAAAAAA片| 99热在线观看精品免费| 99热久久这里只有精品2010| 色色网五月激情| 狠色色狠网| 婷婷五月丁香伊人| 天天色天天日| 91九色|疯狂|高潮|对白|| 激情久久久久久久久久久| 九九热精品| 啪啪色区| 综合色99| 天天做天天爱| 丁香婷婷激情网站| 亚洲人人艹| www热久久yy9| 九九香蕉网| 激情四射五月天偷偷看婷婷| 99热在线免费观看精品| 精品怡红九九九| 婷婷久久草| 97丁香五月| 亚洲色在线观看| 九九成人| www.91五月| 五月激情久久| 精品亚洲国产成AV人片传媒 | 97久久视频| 色爱99| 久久久五月激| 免费视频无码| 99综合视频| 99精品综合| 玖玖精品婷婷| 婷婷色五月天第7色| 99综合一区| 五月婷婷导航| 国产这里只有精品| www.91AV.COM| 婷婷五月天激情文学小说| 午夜激情五月| 丁香九月激情| 5月丁香美女影院| 9婷婷内射| 九九精品这里只有| 噜噜视频| 色婷婷久久| 色五月色情| 色五月婷色彩免播放器| 狠狠搞狠狠操| 色九九九九| 久久这里都是精品免费| 激情婷婷综合五月少妇| 91精品无码| 国产做爰视频免费播放| 青996青| 婷久看人爽| 综合啪啪| 蜜臀综合久草| 色婷婷五月天天天天天| 天天爱天天操| 性做爰A片免费视频A片直播 | 五月天婷婷社区久久综合| 99热香港| 99热日韩| 免费在线a| 亚洲婷婷开心五月| 久月婷婷| 国产超碰av| 五月色导航| 六月婷婷色综合| 五月激情久久| 六月天六月婷| 五月激情视频| 婷婷天堂综合| 色婷婷五月天久久| 婷婷在线五月综合| 婷婷五月天色丁香| 色婷婷婷婷| 婷婷婷五月香蕉| se99在线| 日本片日本片祼观看网站在线看中文版网页在线看 | 久久婷婷六月综合| 影音先锋五月婷婷| 天天综合天天做天天综合| 五月婷色色| www.无码com| 婷婷五月成人系列| 丁香五月激情图片婷婷| 人人舔人人色人人高潮| 五月天伊人| 碰碰91| 91九色精品| 99在线视频女女视频| 色婷婷综合网站| 日韩色色色色| 26uuu激情五月天| 婷婷综合五月天| 婷婷六月丁香激情| 亚洲第一第二网站| 永久无码色| 天天色宗合| AV在线大香蕉| 国产激情综合| 久久激情综合| 噜噜噜狠狠色综合| 九月色婷婷| 九九精品热| 天天干,天天舔| 丁香五月五月婷婷| 天天肏屄夜夜爽| 99综合| 狠狠狠婷婷五月综合| 激情第四色| 视频免费精品免费精品免费精品免费精品免费精品免费精品免费99 | 天天cha成人综合网| 国产亚洲精品AAAAAAA片| 在线VA视频| 亚洲字幕AV一区二区三区四区| 五月激情综合婷婷| 婷婷五月色播天| WWW,婷婷,COM| 欧美人人超级碰| 美欧成人视频| 久久久久9999| 色婷婷成人做爰A片免费看网站| 深爱开心激情网| 国产一区二区av免费| 狠狠五月天激情| 国产免费一区二区三州老师F1F1……| 91se在线观看| 99久久亚洲精品视频| 无码色| www.久久66| 婷婷激情啪啪| 91碰碰| 五月丁香综合久久| 99久久久精品| 五月丁香婷婷色色| 午夜九九电影| 激情婷婷综合网| 五月丁香婷婷色| 九九草热在线观看| 婷婷五月中文字幕| 天天操天天干天天日| 操日本人妻视频| 色五月大| CHINESE熟女老女人HD视频| 另类图片婷婷五月天| 97色色综合| 五月丁香色色网| 日本五月天一页| 色五月天激情| 九九艹女| 日本色道视频网站| 久久这里只有精品无码| 九九综舍久久| 人妻熟人中文字幕一区二区| 五月久久婷婷成人网| 99这里有精品久久97| 色婷婷AV久久| 五月婷婷啪啪| 思思国产99| 色色综合成人网| 97热超碰| 五月色综合| www.99热在线| 日韩六六久久电影| 五月丁香婷婷在线| 中文字幕高清av| 96丁香六月婷婷蜜桃综合久久| 五月丁香六月婷婷视频| 色五月婷色彩免播放器| 97国产精品女人碰碰| 99热这里只有精品3| 丁香五月欧美激情| 激情婷婷五月亚洲| 91热视频色网站| 91狼友视频网页更新| 欧美va在线| 激情丁香五月婷婷| 这里只有九九精品| 久久66er久久| 综合色影院| 人人操9| 狠狠操狠狠插| 久久婷五月婷| 五月精品| 五月婷婷丁香在线| 五月婷婷中文网| 久久婷婷五月综合| 人人性久久| 婷婷五月综合免费在线| 九九亚洲天堂| 被男人添B超爽视频| 五月丁香激情啪啪| 丁香六月狠狠干| 99热久| 丁香五月色欲| 五月婷婷色情| 丁香六月 人妻| 噜噜色五月| 97色婷婷成人综合在线观看| 秋霞丝袜啪啪啪| 五月婷婷伊| 天天久综合网永久入口18| 色色色综合网| 久热免费| 色色色999| 色欲丁香| 国产 亚洲 在线| 丁香久久综合| 91青娱乐青青草| 五月婷婷六月情| 婷婷五月激情丁香| 99久久五月婷婷| 综合成人小说婷婷| 99综合| 六月份天丁香婷婷| 五月丁香婷婷免费视频| 日本爆乳片手机在线播放| 成人免费va| 天天爽夜爽| 色五月综合资源推荐| 色播播五月天| 久久网日本| 五月婷婷黄色| 五月婷婷婷婷| www.色综合| 蜜桃人妻无码AV天堂三区 | 91精品久| 九月av在线| 丁乡久久| 五月色婷婷综合| 丁香五月天无码| 欧美丁香六月在线观看视频| 第2色五月婷| 亚洲色爽| 国色天香伊人狠狠色| 欧美爆乳一区二区三区| 这里只有精品免费观看网占| 草综合14| 婷婷五月色情天| 五月天色区| 少妇搡BBBB搡BBB搡毛茸茸| 思思99精品视频在线观看| 欧美va精品va老师va| 婷婷亚洲五月丁香综合在线| 热久久视频99| nvrentiantang av| 99热啪啪| 欧美 日韩 人妻 高清 中文| 波多野结衣不卡AV| 激情宗合 激情宗合| 午夜天堂啪啪| 狠狠擼综合| 99爱在线精品视频免费观看| 人人妻人人澡| 亚洲精品又粗又大又爽A片| 99视频综合| 婷婷久久性爱| 華人性愛AV在線| 99色一| 五月婷婷综合视频| 五月天激情网站| 日操夜操天天操不卡| www.色婷婷.com| 99成人网站| 91成人性爱视频| 色情五月综合婷婷| 草榴成人影片| 综合啪啪| 99爱在线视频观看| 草草视频91| 182无码| 久久9精品| 欧洲亚洲激情五月天在线| 色五月婷婷操逼| 国产精产国品一二三在观看| 国产肏屄大片| 综合性视频99| 国产91视频| 超碰色碰碰| 亚洲1区| 国产综合网在线| 97av在线视频| 亚洲色人妻| 五月天伊人手机在线播放AV| 九九激情综合| 色色综合五月| 色婷婷丁香五月观看| 色五月天丁香婷婷| 九日日夜夜69| 再次出发二| 夜夜大香蕉婷婷丁香| 色啦啦视频| 色五月综合婷婷久久综合婷婷久久综合婷婷久久综合婷婷久久 | 人妻人人操| 99热这里全是精品| 天天综合色| 六月丁香av| 啪啪亚洲综合| 五月丁香性爱| 秋霞AV吧| 9久视频| WWW,五月| 国产精产国品一二三在观看| 国产成人av在线| 天天色域综合网| 色婷婷成人做爰A片免费看网站| 99精品一二三四视频| www色综合| 色色综合成人网| 五月综合久久| 97热久久五月婷婷| 免费视频这里只有精品| 丁香六月婷| 人妻22p| 久久精品系列| 操操熟女| 婷婷五月天六月| 中文字幕有多少字| 激情欧美婷五月| 亚洲国产精品VA在线看黑人| 超碰二区| 手机旧版看人妻1025| ...婷婷五月综合不卡,国产在线手机| 天堂婷婷丁香六月网| 五月天开心网| xxxx五月| 99热精品在线观看| 五月丁香久人妻中文| 色五月色五天色情网| 26uuu丁香婷婷五月| 开心五月婷婷| 激情九月天天天天婷婷| 婷婷五月激情图片| 色 五月 天 婷婷 丁香 九月| 九九激情视频| 五月色婷婷夜色| 激情五月天激情小说| 久草婷婷视频| 久久久久久久人妻| 另类 在线| 久99热在线观看| 啪啪婷婷五月天激情| 久久98热re| 色婷婷综合久久久久| 99人碰碰碰| 一级片sese片.COM| 亚洲人人操| 日本五月丁香| www.金莲av| 五月五婷婷| av操一操| 国产成人av在线播放| 亚洲欧洲另类| 色综合五月天| 五月天婷婷色小说| 久久密臀婷婷| 五月天婷婷丁香| 婷婷丁香九月| 99精品热| 中文字幕日韩无码制服诱或| 黄色国久久| 丁香婷婷基地| 99热在线中文字幕| 色噜噜狠狠色综合日日| 欧美激情五月天在线观看| 丁香五月婷婷av影院| 五月婷婷六月丁香在线| 综合激情在线| 婷婷五月天福利| 中文字幕色色| 1000部毛片A片免费观看| 能直接看的av网站| av线电影| 久久久噜噜噜久久人妻| 天天色伊人| 九色视频入口91| 欧美色久| 激情校园 亚洲| AV在线收看| 人人摸人人干| 亚洲色情网站| 日本久久网| 婷婷综合中文字幕| 激情久久久久久久久| 激情网五夜婷婷| 二区成人视频| 色综合激情| 99热这里只有精品最新地址获取| 五月丁香久久呀| 国产精品久久久久久妇女6080| 婷婷丁香色无五月| 色丁香久久| 亚洲欧洲美女在线观| 五月丁香福利| 成人色色视频| 99九九久久| 97操女视频| 六月丁香五月婷婷| 日本色狠狠| 五月婷婷六月丁香综合视频在线| 手机在线视频观看9| 天天爽天天爽| 婷婷五月激情中文字幕| 丁香五月婷婷动漫视频| 久热超碰91| 色六月 婷婷| 超碰在线观看99| 激情久久综合网| 操操操操操操婷婷五月天| 五月婷九九草| 中字幕视频在线永久在线观看免费 | 婷婷天天色| 99热这里有精力| 这里只有视频精品| 99干日本| 99视频日韩| 国产精品第一国产精品| 伊人玖玖精品| 亚洲天码视频www蛋播视频| 秋霞午夜理论| 色99热| 婷婷五月六月丁香| 国产视频色色色色色色色| 五月天色图| 五月丁香激情综合网| 久久久人人人妻丝丝丝| 天天干,天天舔| 9999热在线免费观看| av在线免费播放观看| 玖玖色综合| 综合婷婷| 五月花婷婷| 激情婷婷五月基地| 激情婷婷丁香色情五月天| 免费九九热| 91超碰在线播放| 成人资源在线| 婷婷五月天丁香久久| 狠狠婷婷综合| 国产精品A成V人在线播放| 婷婷五月天AV| 婷婷色中文字幕| 96精品久久久久久久久| 第四色五月天| 99精品小视频| 色色哒五月婷婷六月丁香| 天天插夜夜爽| 色综合xx| site:picc-up.com| 婷婷五月蜜桃成人桃色丁香| 黄网在线免费观看| 9操在线| www.婷婷六月天| 久久总和99| 开心五月婷婷婷美女| 亚洲有码在线视频| 日韩伊人大香蕉| 麻豆精品| 丁乡久久| 九月婷婷色色| 亚洲第一成人无码A片| 91人操人人人操人| 五月婷婷综合久久| 97在线视频人妻九色| 色综合久久天天综合网| 五月天丁香网站| 99热18| 五月丁香综合激情在线观看| 狠狠看狠狠| 日韩成人五月天| 五月花成人网| 五月婷婷开心六月激情小说| 五月丁香花开综合网| 婷婷五月天激情基地| 五月六月伦理| 六月色播| 五月天国产| 成人精品视频99在线观看免费| 青青草免费公开视频| 日韩在线观看网址| 97干在线免费| 偷拍91九色| 大香蕉久久伊人婷婷五月丁香| 深爱女色婷婷丁香五月亚洲图区| 色色婷五月天| 亚洲夜夜操| 六月婷婷视频| 五月丁香婷婷基地| 人妻丰满精品一区二区A片| 91久女| 色九九七七| 色很很96| 五月色俺婷婷| 六月婷婷五月丁香| www.99热这里只有精品| 免费观看全黄做爰的视频| 九九99热精品| 日韩不卡DvD| 婷婷的激情五月| 开心五月婷婷99| 丁香五月婷婷五月天| 26uuu欧美日本| 亚洲成人无码专区| 久久思思99| 狠狠色婷婷在线| 中国激情网| 在线婷婷| 精品国产AV色一区二区深夜久久 | 99热精品9| 色噜噜狠噜噜视频| 狼人久草| 亚洲综合碰| 天天射影| 亚洲色无码| 色色色综合网| 超碰一区二区| 99热久| 激情五月婷婷丁香综合网| 99热这里都是精品| 逼特逼在线免费播放| 色你久久| 婷婷丁香五月天狠狠| 狼人久草| 午夜激情四射影院| 九九成人精品免费视频| 99亚洲无码| 久/久精品99看9| 久久思思99| 婷婷五月丁香色情| 久久久8| 色都都狠狠色都都色综合色| 丁香五月激情宗合网| 少妇达人正片在线播放_ikun_福利吧| 青青草成人网| 性爱七区| 天天综合天天玩夜夜玩天天玩夜夜玩 | 九九这里都是精品| 激情五月婷婷视频一区二区三区| 久久这里有精品| 深爱激情六月天| 天天天天天天操| 中文字幕黄色片| avv在线| 丁香六月亚洲| 午夜亚洲国产精品av一区二区| 日本不卡一区二区三区| PORNY九色9l自拍视频成人| 婷婷噜噜| 日本精品人妻无码77777| 97久久人人操| 激情综合网五月婷婷| 丁香五月狠狠在线观看| 他改变了拜占庭| 五月天伊人综合| 丁香五月婷婷久久久| 午夜不卡成人一区二区| 婷婷欧美| 91人人操人人| 色婷另类| 久久精品女人天堂AAA| 五月丁香六月停停| 五月婷婷丁香| 无码九九| 五月天开心激情综合网| 婷婷免费无马| 日日夜夜狠狠| 九月大香蕉| 天天激情| 91制片厂久久久国产电影| 色五月激情五月丁香五月婷婷啪啪综合 | 久碰视频| 大香网伊人久久综合| 综合一区二区三区| 五月天婷婷小说| 91精品国产色猫| 色J香五月天| 99ri6在线视频| 99国产小视频| 淫视馆av三区| 色五婷婷| 婷婷综合久久综合| 丁香五月开心婷婷| 91九九九九九九| 激情网综合| 97色碰碰公开视频| 九九精品视频在线观看| 婷婷成人av| 婷婷伊人五月天| 日韩大片艹艹| 五月天桃色深爱网| 97碰碰视频| 九九热啪啪| 日本欧美在线| 伊人99热| www.minyis.com【JT】国内CDN落地页保证转化QQ2101460746 | 99热这里只有精品最新| 日本色超碰|