精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

FreeRTOS 中如何定位 HardFault?

開發(fā) 架構(gòu)
今天繼續(xù)聊聊開發(fā)中常見的 HardFault,這個問題應(yīng)該從學(xué)習(xí) STM32 開發(fā)以來就一直伴隨著我們,很多人遇到這種問題也是不知道該如何定位。

如果只是獨立開發(fā),遇到這種問題,一般都是看代碼、修改代碼等等這些常規(guī)手段,因為自己寫的代碼最熟悉,改動一般也不會太大,容易縮小范圍,也更容易定位。

但現(xiàn)在的產(chǎn)品越來越復(fù)雜,目前的開發(fā)模式都是合作開發(fā),每個人負(fù)責(zé)各自的模塊,這樣的項目代碼量大、復(fù)雜度高,也就更難定位問題。

而有的時候,剛?cè)肼氁患夜荆裁创a都不熟悉,又出現(xiàn)了 HardFault,更是讓人崩潰,分分鐘有跑路的沖動(你和代碼,有一個能跑就行)。

此時,有一個能解決這種疑難雜癥的大牛是能大大節(jié)省時間的,而我在公司也解決不少類似的問題,所以經(jīng)驗也算豐富,充當(dāng)?shù)囊彩沁@一類角色。

而魚鷹定位 Hardfault 的方法一般是靠 KEIL在線調(diào)試+C語言+權(quán)威指南 中的知識搞定。

目前魚鷹的解 BUG 差不多是這樣的:

1、必現(xiàn),代碼熟悉的情況下,幾個小時內(nèi)搞定。

2、偶現(xiàn),根據(jù)出現(xiàn)情況決定解決問題的時間,一般出現(xiàn)個四五次,基本就能定位。

3、難現(xiàn)。這種一般要掛一個記錄儀實時記錄運行情況。

經(jīng)歷了這么多,已經(jīng)很少有能讓魚鷹需要花費幾天時間才能解決的 Hardfault 問題了(猶記得剛來深圳時,因為別人寫的一個 BUG 導(dǎo)致的 Hardfault,不得已加了幾天通宵,要不是偶然機會還不一定能搞定)。

這里打個小廣告,如果難解決,可以有償請魚鷹解決 Hardfault 問題哦。

不過最近工作上因為用了 C++,這個基礎(chǔ)不是很熟悉,解決 Hardfault 的速度又下降了。而工程編譯優(yōu)化等級 -O2 也加大了不少調(diào)試難度,因此掌握下面的方法是很重要的:

這里需要一個大佬寫的組件 :CmBacktrace(事實上,如果能在線調(diào)試,魚鷹是不需要借助這個組件的,但是難復(fù)現(xiàn)的情況下用這個組件還是比較香的)。

gitee 倉庫:https://gitee.com/Armink/CmBacktrace

這個組件估計很多道友都聽說過,也用過,但魚鷹想說的是,有些道友在用的組件可能比較老,沒有下面這種追蹤功能,建議大家更新一下。

圖片

上面可以看到出錯時,函數(shù)的調(diào)用棧(有時可能是錯誤的,需要實際分析,僅做參考)

_call_main ->  main -> fult_test_by_div0

相當(dāng)實用。

同時,本篇筆記不僅適用于在 FreeRTOS 定位 Hardfault,實際上uCOS、rt-thread 等其它 RTOS 照樣可以修改后使用(裸機更不用說了)。 

倉庫例子支持的平臺:裸機、rt-thread、ucoss-ii、freertos。

這里重點在如何移植這個組件到 freertos 中(實際上,倉庫的說明文檔也非常詳細(xì),可以參考)。由于 freertos  也是不斷更新中,所以這個組件的例子不能完全適用于新版本,而魚鷹剛好移植好了,在此記錄一下,方便大家移植。

1、將倉庫中的 cm_backtrace(源碼文件) 整個文件夾拷貝到自己的工程文件夾下。

圖片

2、在自己的工程中添加這些文件(我們可以打開 demos -> os -> freertos 工程查看)。

圖片

只有兩個文件,相當(dāng)簡單。

一個是核心源碼,另外一個則是匯編代碼,代碼執(zhí)行入口。

注意,根據(jù) IDE 不同,選擇的匯編文件也不同:

圖片

其實就是將 startup_stm32f10x_hd.s 中的hardfault 默認(rèn)處理函數(shù)重定位到 cmb_fault.S 中了。

圖片

注意這里有一個weak,這樣鏈接的時候就不會鏈接這個,而是 cmb_fault.S 這個:

圖片

為了更方便的定位問題,我們后面還需要修改一下這個代碼才行。

注意,如果你的啟動文件內(nèi)的 hardfault 代碼被修改了,而你不懂匯編,建議恢復(fù)成上面那種,不然可能運行不正常。

3、主函數(shù)中初始化代碼。

圖片

這里的字符串需要和這個一樣(根據(jù)自己的工程名修改):

圖片

所以建議用英文建工程。這個在輸出錯誤信息的時候用的上,否則每次查看調(diào)用棧都需要修改一下,比較麻煩。

如果開啟了內(nèi)部看門狗,建議關(guān)閉一下:

// HAL 庫
__HAL_DBGMCU_FREEZE_IWDG1();
// 標(biāo)準(zhǔn)庫
DBGMCU_Config(DBGMCU_IWDG_STOP, ENABLE);

在斷言失敗的位置添加該函數(shù) cm_backtrace_assert:

圖片

這樣斷言失敗了也能看到調(diào)用棧了。

4、FreeROTS 內(nèi)核文件修改(內(nèi)核版本 V10.2.1)。

為了分析出錯的代碼,必須知道每個任務(wù)的棧信息,而 FreeRTOS 可能沒有這些信息,因此,我們需要添加進(jìn)去。

 task.c

圖片

FreeRTOS.h

圖片

注意,老版本freertos 是只要修改一處的,但新版本需要修改兩處,否則會斷言失敗,運行不下去。

建議把注釋也一起添加進(jìn)去。

UBaseType_t     uxSizeOfStack;      /*< Support For CmBacktrace >*/

相關(guān)函數(shù)修改  task.c    prvInitialiseNewTask() :

圖片

task.c 文件最后添加如下代碼用于獲取棧地址、大小、名字:

圖片

為方便復(fù)制,在此貼代碼

/*-----------------------------------------------------------*/
/*< Support For CmBacktrace >*/
uint32_t * vTaskStackAddr()
{
return pxCurrentTCB->pxStack;
}


uint32_t vTaskStackSize()
{
#if ( portSTACK_GROWTH > 0 )
return (pxNewTCB->pxEndOfStack - pxNewTCB->pxStack + 1);
#else /* ( portSTACK_GROWTH > 0 )*/
return pxCurrentTCB->uxSizeOfStack;
#endif /* ( portSTACK_GROWTH > 0 )*/
}


char * vTaskName()
{
return pxCurrentTCB->pcTaskName;
}
/*-----------------------------------------------------------*/

5、根據(jù)所屬 RTOS 平臺和芯片內(nèi)核修改組件配置信息

cmb_cfg.h

圖片

1)需要定義打印輸出函數(shù),一般用 printf 打印,也可以用你自定義的一些打印函數(shù),功能和 printf 類似即可。

#define cmb_println(...)               printf(__VA_ARGS__);printf("\r\n")

2)使能 RTOS 支持

#define CMB_USING_OS_PLATFORM

3)具體 RTOS 選擇 FreeRTOS

#define CMB_OS_PLATFORM_TYPE           CMB_OS_PLATFORM_FREERTOS

4)芯片內(nèi)核根據(jù)實際選擇,目前支持 M0、M3、M4、M7。

#define CMB_CPU_PLATFORM_TYPE          CMB_CPU_ARM_CORTEX_M3

5)打印虛擬棧,可以將出錯時的原始棧信息打印出來,可能對分析有些幫助

#define CMB_USING_DUMP_STACK_INFO

6)語言支持:英語。實際也支持中文,但建議使用英語(不配置,默認(rèn)就是英語)

#define CMB_PRINT_LANGUAGE             CMB_PRINT_LANGUAGE_ENGLISH

7) 如果是 C++ 編譯的,有可能出錯,可以在開頭定義這個:

#define __CLANG_ARM

7、根據(jù)需要修改組件,方便使用(這些看看能不能有機會合并到大佬的分支里面)

1)因為功能涉及范圍小,因此可以將相關(guān)頭文件包含形式改成這種,這樣就不需要改頭文件路徑了,移植更方便:

#include <cm_backtrace.h>
-->>
#include "./cm_backtrace.h"


#include <cmb_cfg.h>
-->>
#include "./cmb_cfg.h"


#include "cmb_def.h"
-->>
#include "./cmb_def.h"

main 中也不需要包含頭文件,而是在需要位置直接聲明這個函數(shù)即可,因為外部只需要調(diào)用這個函數(shù)

#include <cm_backtrace.h
-->
void cm_backtrace_init(const char *firmware_name, const char *hardware_ver, const char *software_ver);

這樣一來,就不需要添加頭文件的路徑了。

或者使用相對路徑的方式添加頭文件:

#include "../../driver/cm_backtrace/cm_backtrace.h"

另外,我們可以讓程序進(jìn)入 Hardfault 前,讓代碼自動停止,這樣我們能更好的利用在線調(diào)試代碼。

HardFault_Handler    PROC
LDR r0, =0xE000EDF0; DEMCR
LDR r0,[r0,#0x00]
AND r0,r0,#0x00000001
CBZ r0,not_in_debug
BKPT 0
not_in_debug
MOV r0, lr ; get lr
MOV r1, sp ; get stack pointer (current is MSP)
BL cm_backtrace_fault

因為剛進(jìn)入 Hardfault 時的信息最全,又不想每次打斷點,上面的代碼很好的實現(xiàn)了功能,同時也不會影響程序的正常運行(會自動判斷是否處于調(diào)試模式)。

8、實驗。

上面都搞定了,就可以驗證一下效果了。這里我們我們可以模擬仿真看看情況。(修改工程配置,這些內(nèi)容魚鷹以前分享過,不多說)

圖片

運行倉庫例子后,應(yīng)該能打印下面的信息,告訴我們出現(xiàn)了 div 0 錯誤

圖片

而你移植好的工程也應(yīng)該打印類似的信息(加入測試代碼 :fault_test_by_div0();)如果打印不出來,有兩種可能:

1、打印函數(shù)沒初始化好就進(jìn)入了Hardfault

2、打印函數(shù)有問題。

圖片

之后我們復(fù)制最后一行,然后運行倉庫 tools 里面的 add2line 工具看看調(diào)用棧信息:

圖片

在 git bash 中可能會執(zhí)行失敗,可以加入程序路徑,當(dāng)然也可以將該工具路徑加入到Windows 環(huán)境變量中。有可能提示找不到 axf 文件,把這個文件拷貝到工具下即可。

正確的做法是,將該工具放到 C 盤目錄下,同時添加環(huán)境變量,之后就可以在 axf 目錄下打開 gitbash 或者 cmd 窗口執(zhí)行命令即可。

這里只作為演示,就不多介紹這些了。

最后再簡單介紹一下這個組件的實現(xiàn)原理:

如果出現(xiàn)hardfault, 首先進(jìn)入?yún)R編文件的 HardFault_Handler 處理,這里會得到當(dāng)前的棧指針和 LR,并且根據(jù) LR 確定出錯的棧是哪個《STM32 兩個棧,你用哪一個?》(這里是 PSP 棧)

根據(jù)錯誤寄存器信息,確定哪種錯誤(這里為 除 0 錯誤)。

然后對棧信息 和 LR 、PC 進(jìn)行 FLASH 上的匯編代碼分析,找出可能的跳轉(zhuǎn)指令,這里找到的兩個跳轉(zhuǎn)地址為 0x08001f96 0x08000368,進(jìn)而得到調(diào)用棧。

因此,要能準(zhǔn)確的得到調(diào)用棧,有兩點重要前提條件(建議優(yōu)化等級 -O0):

1、棧未被破壞

2、芯片運行代碼和 axf 文件保持一致。

即使如此,你也不能保證找出的調(diào)用棧就是正確的,比如你使用 fault_test_by_unalign() 測試,得到的結(jié)果如下: 

圖片

中間多了一個 fputc。

因此,這些打印信息只能作為參考使用。

但在線調(diào)試不同,它更專業(yè),不容易出現(xiàn)錯誤調(diào)用關(guān)系。

圖片

責(zé)任編輯:武曉燕 來源: 魚鷹談單片機
相關(guān)推薦

2011-09-07 14:34:55

Android Wid控件

2018-02-13 21:20:57

FreeRTOSAmazon控制器

2022-02-20 21:35:43

MySQLDDL阻塞

2025-09-01 00:00:00

2024-03-01 08:38:35

Hybrid頁面JS

2020-08-13 08:45:09

多線程死鎖

2021-04-07 10:38:43

MySQL數(shù)據(jù)庫命令

2011-08-01 15:07:00

域控制器客戶機

2011-05-24 09:23:00

中電信定位云

2025-09-04 01:25:00

樓層定位技術(shù)

2020-03-31 17:05:39

Redis熱 key代理

2011-05-23 10:06:15

2010-09-14 16:57:29

DIV絕對定位CSS

2017-01-12 15:17:27

線程CPU定位

2010-08-10 11:19:28

路由器故障

2017-11-13 15:46:07

2010-07-29 08:41:11

路由器故障

2020-07-08 09:50:37

Java內(nèi)存快速定位

2019-11-05 08:24:34

JavaOOM快速定位

2011-08-12 09:48:24

iPhoneCoreLocatio定位
點贊
收藏

51CTO技術(shù)棧公眾號

精品嫩草影院久久| 国产成人在线看| 亚洲欧美日韩另类| 欧美亚洲精品一区二区| 亚洲欧美日韩精品永久在线| 国产亚洲高清视频| 亚洲欧美日韩成人| 9久久婷婷国产综合精品性色| 国产在线观看黄| 久久精品国产久精国产| 久久高清视频免费| 日本69式三人交| 天堂在线中文网官网| 91女厕偷拍女厕偷拍高清| 97在线观看视频| 亚洲午夜精品久久久久久高潮| 伊人久久大香| 婷婷久久综合九色综合伊人色| 日本一区二区在线视频| 国产日韩免费视频| 翔田千里一区二区| 久久天天躁狠狠躁老女人| 97精品人妻一区二区三区蜜桃| 依依综合在线| ㊣最新国产の精品bt伙计久久| 国产精品国产三级欧美二区| 日韩精选在线观看| 国一区二区在线观看| 一区二区三区在线播放欧美| 成人三级做爰av| 91p九色成人| 亚洲v日本v欧美v久久精品| 日韩av电影免费观看| 精品国产乱码一区二区三| 乱码第一页成人| 欧美成人合集magnet| 最近中文字幕在线mv视频在线 | 久久久久国产精品免费| 三级网站在线免费观看| 欧美一区一区| 在线视频综合导航| 欧美视频在线观看视频| 精品51国产黑色丝袜高跟鞋| 久久久不卡网国产精品一区| 高清视频在线观看一区| 亚洲专区在线播放| 国产精品毛片一区二区三区| 欧美精品一区二区免费| 日本不卡一区视频| 蜜乳av综合| 欧美精品一区二区久久婷婷| 色18美女社区| 巨大黑人极品videos精品| 黄色精品在线看| 麻豆视频传媒入口| 香蕉视频网站在线观看| 国产日韩欧美麻豆| 欧美午夜精品久久久久免费视| 亚洲风情第一页| 国产精品456露脸| 成人福利免费观看| 亚洲综合免费视频| 卡一卡二国产精品| 国产精品视频免费观看www| 无码人妻av免费一区二区三区 | 中日韩免费视频中文字幕| 久久精品日产第一区二区三区乱码 | 国产成人精品综合| www.com国产| 99在线精品视频在线观看| 久久久免费观看视频| 久久伊人成人网| 欧美人成在线| 欧美黄色www| 国产一级性生活| 欧美日韩三级电影在线| 色综合久久久888| 国产一级做a爰片在线看免费| 911精品美国片911久久久| 色妞久久福利网| 免费一级suv好看的国产网站| av一区二区在线播放| 国产亚洲激情在线| 阿v天堂2014| 久久在线电影| 久久久av一区| 国产一级二级毛片| 在线一区免费观看| 国产999在线观看| 中文字幕 自拍偷拍| 久久激情五月婷婷| 91av免费看| 少妇高潮一区二区三区99小说| 成人教育av在线| 久久一区二区三区欧美亚洲| 黄色毛片在线看| 中文字幕一区二区三区精华液| 99亚洲精品视频| 亚洲欧美成人影院| 欧美日韩国产一区在线| 国产xxxxx视频| 自拍偷自拍亚洲精品被多人伦好爽| 在线观看亚洲专区| 国产精品久久久久久9999| eeuss国产一区二区三区四区| 亚洲激情视频在线观看| 97在线观看免费视频| 午夜精品国产| 奇米精品一区二区三区在线观看一| 久久国产精品99国产精| 日本高清www免费视频| 日韩avvvv在线播放| 亚洲影院色无极综合| 无码精品在线观看| 中文字幕在线观看不卡视频| 日韩欧美视频免费在线观看| 小h片在线观看| 91精品国产欧美一区二区成人| 性高潮免费视频| 成人在线国产| 国内精品久久久久影院优| 国产乡下妇女三片| av综合在线播放| 国产精品一区在线免费观看| 成人美女大片| 日韩三级视频在线观看| 69xxx免费| 国产精品社区| 国产精品在线看| 日韩有码第一页| 亚洲欧美在线aaa| 国产黄页在线观看| 日韩高清在线观看一区二区| 亚洲香蕉伊综合在人在线视看| 青娱乐91视频| 久久国产精品第一页| 麻豆精品传媒视频| 免费网站在线观看人| 欧美另类z0zxhd电影| 黄色正能量网站| 精品91视频| 91久久久久久| 天天影视久久综合| 色婷婷狠狠综合| yy6080午夜| 国产精品v一区二区三区| 国产欧美一区二区白浆黑人| 毛片网站在线| 伊人性伊人情综合网| 国产肥臀一区二区福利视频| 福利电影一区 | 国产永久av在线| 欧美日韩一区二区三区在线免费观看| 三上悠亚 电影| 一本一本久久a久久综合精品| 91精品久久久久久久| 搞黄视频免费在线观看| 欧美日韩在线第一页| 天堂www中文在线资源| 狠狠色综合网| 99精品国产高清一区二区| 超碰在线最新| 欧美一级搡bbbb搡bbbb| 国产精品99久久久久久成人| 精品中文字幕一区二区| 亚洲午夜高清视频| 怡红院成人在线| 一本色道久久88精品综合| 久久精品视频5| 久久久国产午夜精品| 欧美 日韩 国产 激情| 国产乱码精品一区二区亚洲| 秋霞av国产精品一区| 久草福利在线视频| 欧美日韩在线精品一区二区三区激情 | 成人欧美大片| 亚洲人午夜精品| 探花国产精品一区二区| 国产亚洲精品福利| 欧美特级aaa| 66国产精品| 97人人香蕉| 热三久草你在线| 亚洲视屏在线播放| 综合久久中文字幕| 日韩毛片在线免费观看| 免费欧美一级片| 禁久久精品乱码| 麻豆成人小视频| 久久久加勒比| 久久亚洲春色中文字幕| 国产免费福利视频| 亚洲影视在线播放| 中文字幕在线播放一区| 久久深夜福利| 国产又粗又爽又黄的视频| 一区二区三区国产好| 97久久精品人搡人人玩| 国产小视频免费在线观看| 欧美日韩国产首页| 久久中文字幕无码| 久久久久久免费| 欧美xxxxxbbbbb| 国产欧美亚洲一区| 中文字幕av日韩精品| 久久99国产精品久久99大师| 97香蕉久久超级碰碰高清版| 国产在线视频资源| 日韩欧美国产综合在线一区二区三区 | 亚洲+变态+欧美+另类+精品| 国产精品久久久久久久久久久久| av在线导航| 亚洲男人天堂2024| 亚洲熟女乱色一区二区三区久久久| 亚洲制服欧美中文字幕中文字幕| 粉嫩av蜜桃av蜜臀av| 国产麻豆精品theporn| 中文字幕日本最新乱码视频| 久久久国产精品| 欧美色图亚洲自拍| 澳门精品久久国产| 国产日韩欧美在线看| 亚洲精品日产| 欧美精品久久久久a| 中文字幕在线视频区| 日韩av在线最新| 精品国产伦一区二区三区| 色诱视频网站一区| 精品午夜福利视频| 亚洲欧美一区二区三区极速播放| 李宗瑞91在线正在播放| 国产.精品.日韩.另类.中文.在线.播放| 不卡av免费在线| 国产精品人人爽人人做我的可爱| 青青草综合在线| 色琪琪久久se色| 日本在线观看一区| 女人抽搐喷水高潮国产精品| 99re国产视频| 韩国女主播一区二区| 2019中文字幕全在线观看| 性欧美video高清bbw| 久久久精品久久久| 在线免费观看黄| 国产亚洲欧美日韩精品| 欧美视频综合| 日韩精品免费在线视频观看| 人妻少妇精品无码专区| 日韩天堂在线观看| 国产精品无码在线播放 | 日韩极品视频在线观看 | 亚洲色欲久久久综合网东京热| 亚洲a在线视频| 亚洲一区二区在线免费观看| 日韩高清欧美| 亚洲精美视频| 日韩欧美不卡| 欧美一区二区福利| 久久a级毛片毛片免费观看| 97免费资源站| 99re91这里只有精品| 97碰碰视频| 国产精品久久久网站| 国产免费一区二区| 久久久免费毛片| 久久国产精品亚洲va麻豆| 精品国产影院| 快播亚洲色图| 国产不卡av一区二区| 日韩高清av| 精品视频国产| 亚洲精品无人区| 天天超碰亚洲| 精品久久久无码人妻字幂| 欧美成人嫩草网站| 免费网站永久免费观看| 亚洲免费成人| 久久久精品在线视频| 日本午夜一区二区| 一区二区在线免费看| 精品一区二区久久| 丰满人妻一区二区三区大胸| 成人免费av资源| 37p粉嫩大胆色噜噜噜| 国产欧美日韩麻豆91| 久久精品在线观看视频| 尤物在线观看一区| 国产免费av一区二区| 欧美午夜不卡视频| 国产精品丝袜黑色高跟鞋| 91麻豆精品国产91久久久资源速度 | 欧美另类专区| 国产精品videossex国产高清| 伊人影院久久| 已婚少妇美妙人妻系列| 狠狠色2019综合网| 中文字幕一区二区久久人妻网站 | 国产精品一区二区三区久久| 天堂久久一区| 国产欧美亚洲日本| 波多野结衣的一区二区三区 | 成人羞羞国产免费| 91精品啪在线观看国产手机 | 天堂网2014av| 中文字幕亚洲无线码a| 国产99re66在线视频| 国产精品热视频| 极品一区美女高清| 欧美伦理一区二区| 在线国产一区| 男女激情无遮挡| 青草av.久久免费一区| jjzz黄色片| 中文字幕高清不卡| 日韩大片免费在线观看| 91麻豆精品国产91久久久久久| 涩涩视频免费看| 九色成人免费视频| 精品欧美日韩精品| 韩国精品一区二区三区六区色诱| 日本女优一区| 99999精品视频| 国产毛片精品视频| 国产视频久久久久久| 中文字幕一区二区三区av| 中文字幕一区在线播放| 欧美成人猛片aaaaaaa| 在线观看a视频| 日本精品视频网站| 美日韩黄色大片| 香蕉视频免费版| 日韩黄色免费网站| 午夜不卡久久精品无码免费| 最新中文字幕一区二区三区| 黄色污污视频软件| 日韩av影视综合网| 黑人玩欧美人三根一起进| 国产在线观看一区二区三区 | 免费永久网站黄欧美| 三上悠亚 电影| 亚洲丝袜精品丝袜在线| 国产情侣免费视频| 日韩电影免费观看中文字幕| 3d动漫精品啪啪| www黄色在线观看| 久久久精品国产网站| 中文字幕日本一区| 手机成人av在线| 国产精品综合久久| 久久婷婷一区二区| 欧美精品一区二区久久婷婷 | 日韩理论在线观看| 国产精品自产拍| 精品综合久久久久久97| eeuss鲁片一区二区三区| 成人性免费视频| 久久午夜电影网| 在线观看视频中文字幕| 久久国产精品网站| 国产香蕉精品| 欧美日韩大尺度| 亚洲欧美一区二区在线观看| 99热这里只有精品1| 久久久日本电影| 久久99国产精品视频| 亚洲欧洲日本精品| 一区二区免费视频| 天天av综合网| 国产精品狼人色视频一区| 久久精品亚洲人成影院| 久久免费精品国产| 欧美影院精品一区| av免费在线网站| 美女黄毛**国产精品啪啪| 蜜桃久久av一区| 国产精品成人av久久| 亚洲精品视频二区| 亚洲视频资源| 乱人伦xxxx国语对白| 国产精品丝袜黑色高跟| 精品人妻伦一二三区久久| 欧美在线视频观看| 日韩精品91| 朝桐光av一区二区三区| 欧美色爱综合网| 操人在线观看| 亚洲精品中文字幕在线| 成人h动漫精品一区二区| 中文字幕一二区| 欧美高跟鞋交xxxxhd| 欧美一区三区| 污污污www精品国产网站| 欧美日韩午夜影院| 91老司机福利在线| 麻豆中文字幕在线观看| 久久综合色婷婷| 午夜精品在线播放| 国产精品第七影院| 在线观看的日韩av| 亚洲一二三四视频|