在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

VSCode搭建STM32開發(fā)環(huán)境的一些常規(guī)且使用的功能

大魚機(jī)器人 ? 來源:CSDN ? 作者:CSDN ? 2022-10-20 14:14 ? 次閱讀
眾所周知,Keil是一款收費(fèi)軟件,雖然可以Po解使用,但很多公司還是有點(diǎn)害怕,想必有不少讀者都收到過**函。 之前,開發(fā)單片機(jī)項(xiàng)目,可以說 Keil 是最佳選擇之一,但VSCode橫空問世之后,這種格局被打破。 因?yàn)?VSCode 免費(fèi)且好用,可以安裝各種插件,很多工程師逐漸從Keil 轉(zhuǎn)向了 VSCode。而且,VSCode還能實(shí)現(xiàn) Keil 不能實(shí)現(xiàn)的一些功能。 e7691d84-503c-11ed-a3b6-dac502259ad0.png ?下面就給大家分享一下 VSCode 搭建 STM32 開發(fā)環(huán)境的一些常規(guī)且使用的功能。

01

需要的軟件和工具
  1. 下載最新版VS Code: 安裝好插件,具有良好的代碼補(bǔ)全與調(diào)試功能。
VS Code下載地址:https://code.visualstudio.com/
  1. 下載 LLVM:用于代碼補(bǔ)全,其實(shí)可以理解為 Clang。因?yàn)閂S Code 中“C/C++”插件的自動(dòng)補(bǔ)全功能不太好用。STM32中好多庫函數(shù)都補(bǔ)全不出來。記得按照好之后,將路徑添加到環(huán)境變量里。
LLVM下載地址:http://releases.llvm.org/download.html
  1. 下載安裝 Git for Windows: 提供Git支持和MINGW64指令終端。
Git下載地址:https://gitforwindows.org/
  1. 下載安裝 arm-none-eabi-gcc:選擇gcc-arm-none-eabi-5\_4-2016q3-20160926-win32.exe (md5)這里是一個(gè)2016年的,我目前也是用的這個(gè),好像還有其他的新版的下載,GNU Arm Embedded Toolchain。正常安裝后,記得需要將軟件的安裝目錄下的bin文件夾設(shè)置進(jìn)入環(huán)境變量PATH中。
arm-none-eabi-gcc下載地址:https://launchpad.net/gcc-arm-embedded/+download
  1. 下載 OpenOCD for Windows:一個(gè)開源的片上調(diào)試器(Open On-Chip Debugger)。在Windows下自己編譯可能有問題 。所以,我們選擇編譯好的。下載后的文件不是安裝包,把程序文件夾放入自己的軟件安裝目錄下,將軟件的bin文件夾路徑加入用戶環(huán)境變量PATH中。
OpenOCD下載地址:http://gnutoolchains.com/arm-eabi/openocd/
  1. STM32CubeMX:用于生成帶makefile的工程。這樣我們就可以不用自己寫MakeFile了。套用他的模板,然后修改為自己的目錄就可以。
STM32CubeMX鏈接:http://www.stm32cube.com/

02

搭建編譯環(huán)境

1. 用STM32Cube創(chuàng)建工程。

STM32CubeMX生成的是用HAL庫開發(fā)的項(xiàng)目,具體怎么配置這里就不介紹了,只介紹與主題有關(guān)的部分。(1)STM32CubeMx芯片包(固件庫)下載,注意事項(xiàng):

e7a1dd5e-503c-11ed-a3b6-dac502259ad0.png

需要選擇help -> updater settings ->Connection Parameters設(shè)置好網(wǎng)絡(luò)后,才能下載固件包。(2)生成工程。選擇MakeFile選項(xiàng)。注意: 4.18.0以下的版本是沒有Makefile這個(gè)選項(xiàng)的。最后下載一個(gè)中間版本,因?yàn)?.0以上的版本界面很亂。我選擇的是 4.27.0.

e7ab645a-503c-11ed-a3b6-dac502259ad0.png

2.配置VS Code

(1)打開工程所在的文件夾。在右鍵“用VS Code打開工程文件夾”,

e7bb0342-503c-11ed-a3b6-dac502259ad0.png

你將會(huì)看到這樣的目錄結(jié)構(gòu)

e7e337d6-503c-11ed-a3b6-dac502259ad0.png


.ioc文件是STM32Cube的工程文件,Inc和Src是供用戶修改的源碼,Driver里是STM32和ARM CMSIS的庫,最好不要修改。不過,如果你要采用標(biāo)準(zhǔn)庫開發(fā)的話,就修改為標(biāo)準(zhǔn)庫的Driver.

(2)安裝VS Code插件,需要這幾樣:

e7fc0de2-503c-11ed-a3b6-dac502259ad0.pnge808f1e2-503c-11ed-a3b6-dac502259ad0.png

(3)配置VS Code內(nèi)置終端

這里將我們上面安裝的 Git for Windows 設(shè)置為VScode 的內(nèi)置終端。文件–首選項(xiàng)–設(shè)置,搜索terminal,設(shè)置內(nèi)置終端的Shell為Bash(安裝VS Code的時(shí)候它會(huì)推薦你安裝Git,里面有這個(gè)Bash)。或者打開 Settings.json添加下面兩句。

	 "terminal.integrated.shell.windows":"D:\ProgramFiles\Git\bin\bash.exe", "terminal.external.windowsExec":"D:\ProgramFiles\Git\bin\bash.exe" 然后按Ctrl+` 就可以打開終端,看到Bash了 

e81784f0-503c-11ed-a3b6-dac502259ad0.png

(4)配置智能補(bǔ)全、智能感知插件。

前面我們安裝了 LLVM 用它來實(shí)現(xiàn)智能補(bǔ)全,與糾錯(cuò),自然就需要一個(gè)路徑去尋找這些文件。因此我們需要一個(gè)。c\_cpp\_properties.json文件的配置文件。我們在當(dāng)前目錄的.vscode文件夾下創(chuàng)建c\_cpp\_properties.json配置文件,用來告訴VS Code我們定義的宏與文件的路徑。

	{ "configurations":[ { "name":"Win32", "browse":{ "path":[ "${workspaceFolder}/", "${workspaceFolder}/Drivers/CMSIS", "${workspaceFolder}/Drivers/FWlib/inc", "${workspaceFolder}/Drivers/CMSIS/startup", "${workspaceFolder}/User/inc", "${workspaceFolder}/User", "${workspaceFolder}/ThirdParty/crclib/include" ], "limitSymbolsToIncludedHeaders":true }, "includePath":[ "${workspaceFolder}/", "${workspaceFolder}/", "${workspaceFolder}/Drivers/CMSIS", "${workspaceFolder}/Drivers/FWlib/inc", "${workspaceFolder}/Drivers/CMSIS/startup", "${workspaceFolder}/User/inc", "${workspaceFolder}/User", "${workspaceFolder}/ThirdParty/crclib/include" ], "defines":[ "_DEBUG", "UNICODE", "_UNICODE", "__CC_ARM", "USE_STDPERIPH_DRIVER", "STM32F10X_HD" ], "compilerPath":"C:\ProgramFiles\LLVM\bin\clang-format.exe", "cStandard":"c11", "cppStandard":"c++17", "intelliSenseMode":"clang-x64" } ], "version":4 } 注意:如果提示variable “uint32\_t” is not a type name不是一個(gè)type類型。則需要 添加宏定義\_\_CC\_ARM,如果沒有該宏定義,則uint32\_t類型會(huì)報(bào)錯(cuò)。并且結(jié)構(gòu)體中使用了uint32\_t定義的成員,也會(huì)補(bǔ)全不了。

(5)編譯程序

gcc下編譯過程如下圖所示:
  • .c文件 經(jīng)過 arm-none-eabi-gcc 編譯成 .o文件
  • .s文件 經(jīng)過 arm-none-eabi-as 編譯成 .o文件
  • .o文件 和 .a文件 經(jīng)過 arm-none-eabi-ld 鏈接成 .elf文件
  • .elf文件 經(jīng)過 arm-none-eabi-objcopyarm-none-eabi-objdump 轉(zhuǎn)換成 hex文件/dis文件
  • arm-none-eabi-gdb 使用 .elf文件 進(jìn)行debug
e81d2bee-503c-11ed-a3b6-dac502259ad0.png
在Terminal下輸入make指令,即會(huì)開始build程序
e87564e4-503c-11ed-a3b6-dac502259ad0.png
編譯完成后,生成的所有文件都會(huì)放在Build文件夾下.

e8a1b18e-503c-11ed-a3b6-dac502259ad0.png

注意: 由于我安裝了 Qt. Qt中自帶了 mingw32-make.exe。我把這個(gè)文件復(fù)制了一份,重命名為make.exe。并且添加進(jìn)了環(huán)境變量中。因此我可以直接使用 make。如果你沒有 make 的環(huán)境。可以下載一個(gè)choco包管理器,它類似于linux下的apt,只不過是windows下使用的。然后用choco安裝make即可:

e8c3028a-503c-11ed-a3b6-dac502259ad0.png

如果改了source code,需要重新編譯程序,那就得先執(zhí)行make clean指令去刪除之前build好的所有東西。然后重新執(zhí)行make指令即可。

03

布局

搭建調(diào)試環(huán)境

1.配置openocd。

要運(yùn)行openocd這個(gè)gdb server,需要配置如下幾個(gè)參數(shù):
  • 用什么仿真器?(J-link, ST-link…)
  • 用什么接口?(JTAG, SWD…)
  • 目標(biāo)芯片是什么?(STM32F4x, tm4c123g…)
首先我們打開openocd的安裝目錄,打開share/openocd/scripts,里面有很多提前寫好的配置文件。

e8ce2bc4-503c-11ed-a3b6-dac502259ad0.png

target里存放目標(biāo)芯片的配置文件,例如stm32f4.cfginterface里存放仿真器相關(guān)的配置文件,例如jlink.cfg,stlink.cfg.當(dāng)我們啟動(dòng)openocd時(shí),可以用-f參數(shù)來指定一個(gè)配置文件。例如:

	openocd–finterface/stlink.cfg–ftarget/stm32f4.cfg 【注】配置仿真器的參數(shù)必須在配置目標(biāo)MCU的參數(shù)之前,否則將報(bào)錯(cuò)。如果我們不帶參數(shù)啟動(dòng),openocd就會(huì)自動(dòng)查找當(dāng)前目錄下有沒有名為openocd.cfg的文件,并把它作為配置文件來啟動(dòng)。因此,我們就在當(dāng)前工程下創(chuàng)建一個(gè)名為openocd.cfg的文件。e8ddf2c0-503c-11ed-a3b6-dac502259ad0.png我們選擇使用ST-link,SWD接口,目標(biāo)芯片為stm32f1x。 (PS:這里注釋掉了SWD接口,如果采用Jlink 則需要SWD接口)。這樣,我們連好板子上好電,直接在終端里敲openocd,即可啟動(dòng)。e8e840a4-503c-11ed-a3b6-dac502259ad0.pngopenocd運(yùn)行時(shí),這個(gè)shell終端就被占用了,我們一會(huì)要新開一個(gè)終端。

2.用gdb連接上openocd

(1)直接啟動(dòng)gdb,參數(shù)為編譯好的調(diào)試文件(.elf)

e8f5f9a6-503c-11ed-a3b6-dac502259ad0.png

(2)使gdb連接上openocd 前面已經(jīng)說過openocd留給gdb的TCP/IP端口是3333,因此輸入:

	targetremotelocalhost:3333 

e914905a-503c-11ed-a3b6-dac502259ad0.png

注意,在連接openocd的時(shí)候,一定需要先運(yùn)行 openocd 服務(wù)才能通信上,否則一直出現(xiàn) taget remote 錯(cuò)誤。(3)下載代碼.

e94237c6-503c-11ed-a3b6-dac502259ad0.png

后面就和普通的gdb一樣操作了,加斷點(diǎn),單步運(yùn)行什么的,網(wǎng)上可以搜到很多教程。【注】 最后記得輸入q來退出gdb,以免影響后面的配置。

3.配置openocd任務(wù)與build任務(wù)

為了避免每次都在終端輸入 make 和 make clean ,與 openocd 。我們可以在VSCode 中,建立一個(gè) Task 來幫我們完成這個(gè)任務(wù),

(1)在當(dāng)前目錄下創(chuàng)建build.py的文件。

e964f298-503c-11ed-a3b6-dac502259ad0.png

(2)在VSCode界面下,單擊“任務(wù)”,選擇“配置任務(wù)”

按 F1,選擇"配置任務(wù)" .vscode目錄下就會(huì)創(chuàng)建一個(gè)tasks.json配置文件.

e972a12c-503c-11ed-a3b6-dac502259ad0.png

打開 tasks.json ,修改內(nèi)容如下:

e97e6d0e-503c-11ed-a3b6-dac502259ad0.png

注意上面是兩個(gè)任務(wù),一個(gè)是openocd.用于連接st-link調(diào)試。一個(gè)是 build 用于編譯。它相當(dāng)于是創(chuàng)建了一個(gè)名為build的任務(wù),任務(wù)的內(nèi)容是在shell里面執(zhí)行 python build.py這個(gè)命令。只是不用我們手動(dòng)輸入而已。

4.配置VS Code的調(diào)試功能

使用VS Code,肯定是圖方便,圖好看。所以我肯定不會(huì)讓大家靠敲命令來調(diào)試,這樣豈不是開倒車,還不如用keil。因此,這里要配置VS Code的調(diào)試功能,相當(dāng)于對gdb的一個(gè)圖形化吧。在VS Code內(nèi)選擇debug(就是左邊那個(gè)??蟲子圖標(biāo)),選擇“添加配置”,類型為GDB。就會(huì)在.vscode文件夾下生成launch.json配置文件。 按照下面來配置:

	{ "version":"0.2.0", "configurations":[ { "name":"ARMDebug", "type":"cppdbg", "request":"launch", "program":"${workspaceFolder}/Build/STM32F103RC_Template.elf", "args":[], "stopAtEntry":false, "cwd":"${workspaceFolder}", "environment":[], "externalConsole":false, "MIMode":"gdb", "miDebuggerPath":"C:\ProgramFiles(x86)\GNUToolsARMEmbedded\5.42016q3\bin\arm-none-eabi-gdb.exe", "targetArchitecture":"arm", "setupCommands":[ { "description":"選擇調(diào)試文件(.elf)到gdb", "text":"fileE:/VScode/STM32_VSCode/stm32f103_temp/Build/STM32F103RC_Template.elf", "ignoreFailures":false }, { "description":"連接GDBServer", "text":"targetremotelocalhost:3333", "ignoreFailures":false }, { "description":"ResetMCU", "text":"monitorreset", "ignoreFailures":false }, { "description":"Halt", "text":"monitorhalt", "ignoreFailures":false }, { "description":"下載代碼到MCU", "text":"load", "ignoreFailures":false } ], "preLaunchTask":"build", } ] } 可以看到,setupCommands里面就是我們之前試用gdb時(shí)操作過的流程:連接GDB Server——reset——halt——下載代碼。而preLaunchTask中是我們之前在tasks.json中配置的build任務(wù)。它可以讓我們每次調(diào)試時(shí)都先編譯一遍。保存后,隨便打幾個(gè)斷點(diǎn),按下F5,就可以快樂調(diào)試了。可以看到功能還是很齊全的。 

e9af4d02-503c-11ed-a3b6-dac502259ad0.png

【注意】:在進(jìn)行調(diào)試的時(shí)候,需要先 按 F1 --> 任務(wù):運(yùn)行任務(wù)里選擇 openocd 任務(wù)運(yùn)行。

e9cd2142-503c-11ed-a3b6-dac502259ad0.png

因?yàn)檎{(diào)試,需要連接st-link進(jìn)行調(diào)試,而openocd任務(wù)是開啟st-link的服務(wù)。這樣客戶端才能連接上。否則會(huì)一直出現(xiàn) target remote localhost:3333 的錯(cuò)誤。 看到這里,基本就差不多了,開發(fā)STM32完全沒問題了。
審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6058

    文章

    44821

    瀏覽量

    644570
  • STM32
    +關(guān)注

    關(guān)注

    2283

    文章

    10986

    瀏覽量

    361234
  • vscode
    +關(guān)注

    關(guān)注

    1

    文章

    166

    瀏覽量

    8277

原文標(biāo)題:用 VS Code 搭建 STM32 開發(fā)環(huán)境。

文章出處:【微信號(hào):All_best_xiaolong,微信公眾號(hào):大魚機(jī)器人】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    技術(shù)融合實(shí)戰(zhàn)!Ollama攜手Deepseek搭建知識(shí)庫,Continue入駐VScode

    Ollama、Deepseek-R1、AnythingLLM 搭建強(qiáng)大的本地個(gè)人知識(shí)庫,并詳細(xì)介紹 Continue 在 VScode 中的本地集成,帶你解鎖全新的技術(shù)應(yīng)用體驗(yàn),開啟高效知識(shí)管理與開發(fā)
    的頭像 發(fā)表于 03-04 14:47 ?328次閱讀
    技術(shù)融合實(shí)戰(zhàn)!Ollama攜手Deepseek<b class='flag-5'>搭建</b>知識(shí)庫,Continue入駐<b class='flag-5'>VScode</b>

    如何搭建企業(yè)AI開發(fā)環(huán)境

    搭建企業(yè)AI開發(fā)環(huán)境個(gè)復(fù)雜而細(xì)致的過程,涉及硬件選擇、操作系統(tǒng)配置、軟件安裝、工具選用以及實(shí)踐等多個(gè)方面。下面,AI部落小編將詳細(xì)介紹如何搭建
    的頭像 發(fā)表于 12-20 10:37 ?528次閱讀

    SSM開發(fā)環(huán)境搭建教程 SSM與Spring Boot的區(qū)別

    SSM開發(fā)環(huán)境搭建教程 SSM(Spring+SpringMVC+MyBatis)開發(fā)環(huán)境搭建
    的頭像 發(fā)表于 12-16 18:13 ?1080次閱讀

    【MM32F5270】Keil開發(fā)環(huán)境搭建

    本文是對MM32F5270相關(guān)的靈動(dòng)官網(wǎng)資料和社區(qū)現(xiàn)有幾篇環(huán)境搭建帖的整理和總結(jié)。詳細(xì)完整的記錄了——如何從零搭建MM32F5270 Keil開發(fā)
    的頭像 發(fā)表于 11-06 16:14 ?3463次閱讀
    【MM32F5270】Keil<b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>

    VSCode插件的安裝和使用

    今天介紹款我工作上經(jīng)常用到的VSCode的插件-VsCode Action Buttons,這個(gè)插件可以釋放手敲命令行清除、編譯、運(yùn)行、部署到目標(biāo)機(jī)等操作,具體
    的頭像 發(fā)表于 11-04 15:36 ?660次閱讀
    <b class='flag-5'>VSCode</b>插件的安裝和使用

    嵌入式學(xué)習(xí)-飛凌嵌入式ElfBoard ELF 1板卡-開發(fā)環(huán)境搭建VScode的安裝及使用

    VScode的下載及安裝 Visual Stuio Code(以下簡稱VSCode)是微軟出的款免費(fèi)開源的輕量級(jí)編輯器。VSCode支持多平臺(tái),有 Windows、Linux和mac
    發(fā)表于 10-09 15:44

    飛凌嵌入式ElfBoard ELF 1板卡-開發(fā)環(huán)境搭建VScode的安裝及使用

    VScode的下載及安裝Visual Stuio Code(以下簡稱VSCode)是微軟出的款免費(fèi)開源的輕量級(jí)編輯器。VSCode支持多平臺(tái),有 Windows、Linux和macO
    發(fā)表于 09-30 09:40

    QT5+OpenCV4搭建應(yīng)用開發(fā)環(huán)境

    作為深度學(xué)習(xí)算法工程師,必須要掌握應(yīng)用開發(fā)技能嗎?搞工程肯定是必須要會(huì)界面開發(fā),QT就是個(gè)很不錯(cuò)的選擇。本文以QT5.15 + OpenCV4.8 + OpenVINO2023為例,搭建
    的頭像 發(fā)表于 07-23 11:23 ?1329次閱讀
    QT5+OpenCV4<b class='flag-5'>搭建</b>應(yīng)用<b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b>

    PyTorch深度學(xué)習(xí)開發(fā)環(huán)境搭建指南

    PyTorch作為種流行的深度學(xué)習(xí)框架,其開發(fā)環(huán)境搭建對于深度學(xué)習(xí)研究者和開發(fā)者來說至關(guān)重要。在Windows操作系統(tǒng)上
    的頭像 發(fā)表于 07-16 18:29 ?1891次閱讀

    用ESP32s2的mesh組網(wǎng)測試一些功能,可以在window下用vscode來編譯嗎?

    要用s2的mesh組網(wǎng)測試一些功能,mdf的例程比較接近,是否可以類似idf樣,可以window下用vscode來編譯呢?
    發(fā)表于 06-28 12:43

    請問vscode和eclipse哪個(gè)好使?

    如題,最近開發(fā)esp32,在windows環(huán)境下。 說實(shí)話,idf的開發(fā)環(huán)境比以前搭建起來簡單多了,無論是
    發(fā)表于 06-21 06:43

    請問如何在32位的WIN7上搭建開發(fā)環(huán)境

    公司的電腦是32位的WIN7 在VSCode搭建開發(fā)環(huán)境失敗(vscode IDF插件自動(dòng)下載的都是64bit的軟件)有沒有解決方法或者
    發(fā)表于 06-18 06:53

    VSCODE搭建的IDF編譯環(huán)境,如何配置調(diào)試串口的波特率呢?

    VSCODE搭建的IDF編譯環(huán)境,如何配置調(diào)試串口的波特率呢? 可以支持console命令交互嗎?
    發(fā)表于 06-18 06:17

    求助,通過VScode構(gòu)建的集成開發(fā)環(huán)境如何更新環(huán)境下的ESP-IDF版本?

    通過VScode構(gòu)建的集成開發(fā)環(huán)境如何 更新 環(huán)境下的ESP-IDF版本? 通過VScode 構(gòu)建開發(fā)
    發(fā)表于 06-17 06:38

    如何在離線環(huán)境下安裝VSCode的ESP-IDF擴(kuò)展插件?

    出于一些原因,我的工作電腦無法連接互聯(lián)網(wǎng),所以需要在離線環(huán)境下安裝ESP-IDF的開發(fā)環(huán)境,我使用了esp-idf-tools-setup-offline安裝包配置了ESP-IDF工具
    發(fā)表于 06-13 07:56
    主站蜘蛛池模板: 日韩种子 | 人人干狠狠操 | 午夜嘿咻 | 婷婷激情狠狠综合五月 | 亚洲啪啪免费视频 | 手机在线看片福利盒子 | 性夜影院爽黄a爽免费视 | 婷婷激情六月 | 日韩免费一级 | 高颜值大长腿美女啪啪 | 日本久久综合视频 | 一级做a爰片久久毛片人呢 一级做a爰片久久毛片图片 | 97超频国产在线公开免费视频 | 四虎永久免费网站 | 天天摸天天干 | 天天操夜夜爱 | 久久青草精品一区二区三区 | 婷婷久久综合九色综合九七 | 视频一区 中文字幕 | 成人激情在线 | 在线播放免费观看 | 色男人在线 | 欧美精品一区二区三区在线播放 | 美女天天干 | 久久久久国产免费 | 天天爽夜夜爽免费看 | 久久这里只有精品免费视频 | 五月激情丁香 | 深夜视频在线 | www.色亚洲 | 奇米精品| 香蕉久久精品 | 免费大片看黄在观看 | 日日摸人人看97人人澡 | 久久夜色精品国产亚洲噜噜 | 欧美黄色片网站 | 日产精品卡二卡三卡四卡无卡乱码 | 免费的两性视频网站 | 国产成人精品视频一区二区不卡 | sss欧美一区二区三区 | 日本三级网址 |