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

ARTICLE DETAIL

資訊詳情

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

嵌入式GPMC總線實戰(zhàn):FPGA連接、時序配置與設(shè)備樹驅(qū)動調(diào)試

嵌入式GPMC總線實戰(zhàn):FPGA連接、時序配置與設(shè)備樹驅(qū)動調(diào)試 在嵌入式圈子待久了你會發(fā)現(xiàn)一個規(guī)律只要是在TI的Sitara平臺AM335x、AM437x這些Cortex-A8/A9處理器上做過項目基本都繞不開GPMC這個名字。全稱General Purpose Memory Controller翻譯過來就是通用內(nèi)存控制器處理器的并行總線接口。它最典型的應(yīng)用場景就是用類似SRAM的時序去連接FPGA、并行AD/DA、NOR Flash或者SRAM這類外設(shè)。我最早接觸GPMC是被一個項目逼的FPGA和AM335x之間要高速交換數(shù)據(jù)SPI太慢UART更不用說最后只能老老實實把GPMC調(diào)通。這篇文章就把我在實際項目中啃GPMC的筆記整理出來包括硬件連接、設(shè)備樹時序參數(shù)、驅(qū)動編寫和排錯經(jīng)驗適合正在調(diào)GPMC的同學(xué)也適合準(zhǔn)備在TI平臺接并行外設(shè)但還沒入門的開發(fā)者。1. GPMC到底是什么嵌入式工程師為什么繞不開它1.1 一句話講清GPMC的定位把GPMC想成處理器對外開放的一扇“內(nèi)存窗口”就好理解了。處理器內(nèi)部有一大片地址空間其中一塊被劃給了GPMC控制器。當(dāng)CPU訪問這塊地址空間時GPMC會把讀寫的請求自動變成一組并行信號發(fā)送到外部引腳上。外部設(shè)備只要按SRAM接口的標(biāo)準(zhǔn)來響應(yīng)CPU就能用最簡單的方式讀寫它——不需要像I2C那樣先發(fā)設(shè)備地址、再發(fā)寄存器地址、再等應(yīng)答也不需要像SPI那樣一bit一bit地搬運(yùn)。CPU一條LDR指令下去數(shù)據(jù)就到寄存器里了整個過程對CPU來說是透明的。這也是GPMC和普通低速總線的本質(zhì)區(qū)別它的工作方式接近內(nèi)存總線而不是外設(shè)總線。對外部設(shè)備來說它像一顆SRAM對CPU來說它就是一塊可以隨機(jī)訪問的地址空間。你在代碼里寫*(volatile unsigned short *)0x08000000 0x55AA地址0x08000000正好落在GPMC的片選窗口上這行代碼就會觸發(fā)一次實實在在的并行總線寫周期。能像訪問內(nèi)存一樣訪問外部器件這是GPMC最迷人的地方。1.2 接FPGA為什么優(yōu)先選GPMC一次性把帶寬賬算明白很多人第一次選型時第一反應(yīng)是“FPGA不就是傳數(shù)據(jù)嗎用SPI不就行了”。這句話在數(shù)據(jù)量小的時候沒毛病但一旦涉及圖像采集、高速ADC采樣、基帶信號處理這類場景SPI立刻就成了瓶頸。算一筆賬假設(shè)SPI時鐘40MHz一個時鐘傳1bit8位數(shù)據(jù)就需要8個時鐘周期理論峰值也就5MB/s。再算上片選、命令開銷、軟硬件交互的間隙實際有效帶寬能到3MB/s就不錯了。而GPMC走16位異步讀周期就算每個讀周期100ns理論帶寬已經(jīng)達(dá)到20MB/s——這還只是最普通的異步模式完全沒用到指令流水和突發(fā)機(jī)制。如果外設(shè)支持同步burst模式GPMC_CLK可以跑到100MHz16位總線一個周期傳2字節(jié)理論峰值直接跳到200MB/s的量級。這中間的差距不是一個量級而是幾十倍。當(dāng)然會有人說為什么不用DDR接口或者EMIF去擴(kuò)展存儲。這里要澄清一個概念GPMC和DDR控制器是兩套獨(dú)立的接口。DDR控制器走專用的DDR PHY時序訓(xùn)練、刷新管理都很復(fù)雜不是拿來隨便接FPGA的。GPMC是專用的并行外設(shè)總線時序可配置范圍廣、信號簡單、調(diào)試難度低最重要的是它不占DDR通道不會影響系統(tǒng)的內(nèi)存帶寬。所以在TI的Sitara平臺上接FPGA、并口AD/DA、NOR Flash這些場景GPMC幾乎是不可替代的存在。1.3 GPMC到底能接哪些設(shè)備按TI的官方定位GPMC支持以下類型的外設(shè)設(shè)備類型典型產(chǎn)品使用方式NOR Flash并口NOR、SPI轉(zhuǎn)并口芯片異步/同步讀地址隨機(jī)訪問NAND Flash大容量NANDGPMC內(nèi)置ECC/BCH引擎配合軟件做壞塊管理SRAM/PSRAM外部擴(kuò)展內(nèi)存最標(biāo)準(zhǔn)的異步SRAM時序FPGA/CPLDXilinx、Intel、紫光等把GPMC做成軟核外設(shè)的寄存器窗口最常見并行ADC/DAC高速AD/DA轉(zhuǎn)換器采樣數(shù)據(jù)可以直接被CPU信箱式讀取顯示控制器老式TFT LCD并口屏、LCD控制器利用GPMC作為顯示數(shù)據(jù)通道值得一提的是很多人以為GPMC只是拿來接NAND Flash的其實在工業(yè)控制和數(shù)據(jù)采集項目里GPMC接FPGA才是真正的重頭戲。FPGA內(nèi)部可以起一個SRAM接口的時序邏輯把采集到的數(shù)據(jù)放在一塊雙口RAM里CPU通過GPMC直接讀這塊RAM就完成了高帶寬的軟硬數(shù)據(jù)交換。后面要講的設(shè)備樹配置也主要以FPGA這個場景為例展開。2. 硬件設(shè)計先把引腳信號摸透再寫第一行代碼2.1 關(guān)鍵信號與連線原則GPMC的引腳非常多但如果把信號按功能分類其實很好記。地址總線GPMC_A[0:27]、數(shù)據(jù)總線GPMC_AD[0:15]這是最核心的兩組線。然后是控制信號nCS片選、nWE寫使能、nOE讀使能、nADV地址有效、nBE0/nBE1字節(jié)使能、WAIT等待信號。如果走同步burst模式還有一個GPMC_CLK時鐘輸出。連接層面的原則并不復(fù)雜片選信號nCS一個GPMC控制器最多支持8個片選CS0~CS7每個片選在地址空間中對應(yīng)一段獨(dú)立的窗口。接FPGA通常只用其中一個片選周圍的其它引腳可以保持懸空。nWE與nOE就是讀和寫的開關(guān)。外部設(shè)備必須根據(jù)這兩個引腳的時序來驅(qū)動數(shù)據(jù)總線。FPGA側(cè)要特別注意三態(tài)控制本設(shè)備沒被選中時數(shù)據(jù)引腳必須處于高阻態(tài)否則會跟別的設(shè)備打架。nADV地址有效很多老式NOR和SRAM都靠這個信號鎖存地址。它在外設(shè)接口上不是必需的但對某些器件來說沒有nADV就沒辦法正常操作。WAIT信號這是GPMC的“剎車”機(jī)制。外部設(shè)備覺得處理不過來時可以拉低WAIT讓總線周期自動延長。做FPGA連接時如果FPGA內(nèi)部RAM的響應(yīng)時間可能超過CPU配置的訪問周期建議一定要把WAIT用起來能省很多事。2.2 muxed和non-muxed選錯了就是災(zāi)難GPMC的地址和數(shù)據(jù)線有兩種組織形式這在TI的寄存器里叫MUXADDDATA位。non-muxed模式下地址線是地址線數(shù)據(jù)線是數(shù)據(jù)線兩組信號完全獨(dú)立硬件設(shè)計最簡單。而muxed模式下低16位地址和數(shù)據(jù)公用同一組AD[0:15]引腳訪問時先輸出地址再由nADV鎖存然后切換成數(shù)據(jù)通道。這種模式能省引腳但時序復(fù)雜、需要外部鎖存對FPGA內(nèi)部邏輯的要求也更高。在我見過的問題里最多的一種就是硬件工程師畫板子時按muxed方式連軟件配置卻按non-muxed方式初始化。結(jié)果表現(xiàn)為每次讀寫數(shù)據(jù)都錯位或者讀到的東西是地址信號和數(shù)據(jù)信號的混合體。排錯時如果不先確認(rèn)軟硬件模式是否一致會繞非常大的彎子。我的建議很簡單項目不是特別缺引腳就一律用non-muxed模式。16位數(shù)據(jù)總線加上足夠多的地址線已經(jīng)能覆蓋絕大多數(shù)場景。muxed模式省下的那十幾個引腳通常會以幾倍的調(diào)試成本還回來。2.3 電平、上拉、走線這些“低級問題”反而最致命GPMC的I/O電壓在不同平臺上有差異AM335x的GPMC引腳電平由對應(yīng)的VDDS電源域決定可能是1.8V也可能是3.3V。接FPGA時FPGA的Bank電壓必須跟GPMC電平匹配否則輕則讀不到數(shù)據(jù)重則電流倒灌損傷器件。數(shù)據(jù)總線浮空是另一個高頻問題。如果外部設(shè)備沒有被使能數(shù)據(jù)線既沒人驅(qū)動也沒人拉高讀回來的內(nèi)容就會是隨機(jī)電平反映在CPU眼里通常是一大片0xFF或者亂跳的數(shù)。解決方法是外加10k47k上拉電阻或者在FPGA內(nèi)部給數(shù)據(jù)IO配上弱上拉保證總線空閑時處于確定電平。PCB走線上不要大意。GPMC雖然不像DDR那樣嚴(yán)格但高速同步模式下地址線和數(shù)據(jù)線之間最好做等長處理至少不要出現(xiàn)某些線長了十幾厘米、某些線短到貼芯片這種極端不均衡的情況。地平面要連續(xù)別讓數(shù)據(jù)總線跨越分割線。異步模式可以寬松一些同步burst跑到100MHz時信號完整性就變得相當(dāng)重要了。真到了調(diào)不出來的時候先拿示波器看波形再回來審視板子設(shè)計往往比死磕代碼更快。3. 時序才是GPMC的靈魂寄存器與設(shè)備樹參數(shù)逐項拆解3.1 從一個具體讀周期看GPMC在干什么GPMC的整個動作過程可以描述成一條嚴(yán)格的時間軸。以一次典型的異步讀為例地址和片選先有效。CPU發(fā)出訪問請求后GPMC把目標(biāo)地址放到地址總線上同時拉低對應(yīng)的nCS宣告“我要訪問掛在片選上的設(shè)備了”。nADV信號產(chǎn)生一個脈沖告訴外部設(shè)備“地址已經(jīng)準(zhǔn)備好”。對SRAM這類自帶鎖存的設(shè)備來說這個沿就是鎖存地址的時刻。nOE拉低讀使能生效。外部設(shè)備檢測到nOE有效后把目標(biāo)地址的數(shù)據(jù)放到數(shù)據(jù)總線上。等待一段固定的時間由access-ns等參數(shù)控制GPMC在某個采樣點(diǎn)把數(shù)據(jù)總線上的值鎖存進(jìn)內(nèi)部寄存器。nOE拉高nCS釋放一個讀周期結(jié)束。這個過程看起來很直觀但每個動作前后的延遲都有對應(yīng)的可配置參數(shù)。嵌入式工程師做得最多的就是根據(jù)外部設(shè)備的數(shù)據(jù)手冊把這些“時間坐標(biāo)”一個一個填進(jìn)GPMC的時序寄存器。設(shè)備樹方式只是把寄存器換算成了更好讀的納秒單位。3.2 設(shè)備樹時序?qū)傩灾饌€說清楚在Linux設(shè)備樹里GPMC子節(jié)點(diǎn)的時序參數(shù)全部以gpmc,開頭后綴為納秒。下面這張表是我在實際項目里最常用的一組設(shè)備樹屬性作用參考設(shè)置原則gpmc,cs-on-ns片選信號建立時間一般設(shè)0片選和地址同時有效gpmc,cs-rd-off-ns讀周期片選釋放時間不能小于讀寫周期的外部響應(yīng)需求gpmc,cs-wr-off-ns寫周期片選釋放時間同上gpmc,adv-on-ns地址有效信號建立時間一般設(shè)0或很小gpmc,adv-rd-off-ns讀周期地址有效釋放時間留足地址保持時間gpmc,adv-wr-off-ns寫周期地址有效釋放時間同上gpmc,oe-on-ns讀使能拉低時間地址穩(wěn)定后再拉OEgpmc,oe-off-ns讀使能釋放時間保證OE低電平脈沖寬度gpmc,we-on-ns寫使能拉低時間地址穩(wěn)定后再拉WEgpmc,we-off-ns寫使能釋放時間保證WE低電平脈沖寬度gpmc,rd-cycle-ns讀周期總時間必須大于所有讀時序需求之和要留余量gpmc,wr-cycle-ns寫周期總時間同上寫周期同理gpmc,access-ns數(shù)據(jù)采樣點(diǎn)時間決定GPMC在哪一刻采集數(shù)據(jù)總線最關(guān)鍵gpmc,page-burst-access-ns頁/突發(fā)模式下每次額外訪問時間只有burst模式用到需要注意不同內(nèi)核版本對屬性的命名略有差異比如有些版本用gpmc,xxx-off-ns有些地方用ti,min-access-time-ns做輔助限制。以你手頭內(nèi)核Documentation里的omap-gpmc.txt為準(zhǔn)。但概念是共通的你要理解的是“這個參數(shù)決定哪個信號在哪個時刻動作”而不是死記某一個字符串。3.3 手把手計算一組可用的時序參數(shù)假設(shè)FPGA側(cè)的數(shù)據(jù)手冊給了下面這組要求片選有效后地址穩(wěn)定地址建立時間最小10ns讀使能nOE有效后數(shù)據(jù)必須在60ns內(nèi)出現(xiàn)在總線上數(shù)據(jù)保持時間要求nOE釋放后5ns讀脈沖寬度OE低電平要求不低于40ns地址保持時間要求不低于5ns?,F(xiàn)在要配置GPMC的讀周期我會這樣計算片選CS和地址同時有效所以gpmc,cs-on-ns 0。地址穩(wěn)定需要10ns讀使能不要拉得太早所以gpmc,oe-on-ns 10。讀脈沖寬度要40ns那么在OE有效40ns后釋放gpmc,oe-off-ns 50。數(shù)據(jù)從OE有效開始最長60ns出現(xiàn)而OE在50ns處就釋放了GPMC如果也在50ns處采樣就太早了。這里需要把采樣點(diǎn)gpmc,access-ns放到數(shù)據(jù)手冊允許的極限附近也就是60ns附近。但為了安全我通常會把OE釋放時間再往后推一點(diǎn)比如gpmc,oe-off-ns 80這樣采樣點(diǎn)設(shè)在gpmc,access-ns 70既能保證數(shù)據(jù)到位又有余量。讀周期總時間必須大于CS釋放時間gpmc,rd-cycle-ns 100留出20%以上的余量。所以初版配置會是gpmc,cs-on-ns 0; gpmc,cs-rd-off-ns 90; gpmc,adv-on-ns 0; gpmc,adv-rd-off-ns 20; gpmc,oe-on-ns 10; gpmc,oe-off-ns 80; gpmc,access-ns 70; gpmc,rd-cycle-ns 100;寫周期也是同理只不過關(guān)注的是WE脈沖寬度和數(shù)據(jù)建立時間。最后再強(qiáng)調(diào)一句初版參數(shù)一定不要追求極限。先把所有時間放寬一倍讓系統(tǒng)跑起來確認(rèn)軟硬件邏輯全部正確之后再拿示波器一點(diǎn)一點(diǎn)壓縮。很多項目調(diào)不出來不是因為方案不行而是一上來就把總線時序壓到了芯片的臨界值。4. 實操把設(shè)備樹和驅(qū)動跑起來4.1 設(shè)備樹節(jié)點(diǎn)與pinctrl配置在Linux內(nèi)核里GPMC控制器本身是一個節(jié)點(diǎn)每個外部設(shè)備則是掛在它下面的子節(jié)點(diǎn)。拿AM335x舉個例子完整配置長這樣am33xx_pinmux { gpmc_pins: gpmc_pins { pinctrl-single,pins 0x30 0x38 /* GPMC_AD0 - MODE0, INPUT */ 0x34 0x38 /* GPMC_AD1 - MODE0, INPUT */ /* ... GPMC_AD2~AD15 同理 ... */ 0x78 0x28 /* GPMC_CSN0 - MODE0, OUTPUT */ 0x7c 0x28 /* GPMC_OEN_REN - MODE0, OUTPUT */ 0x80 0x28 /* GPMC_WEN - MODE0, OUTPUT */ 0x84 0x28 /* GPMC_ADVN_ALE - MODE0, OUTPUT */ ; }; }; gpmc { status okay; pinctrl-names default; pinctrl-0 gpmc_pins; /* CS0映射到CPU地址0x08000000范圍256MB */ ranges 0 0 0x08000000 0x10000000; fpga0,0 { compatible vendor,my-fpga; reg 0 0 0x10000; /* CS0偏移064KB空間 */ bank-width 2; /* 16位數(shù)據(jù)總線 */ gpmc,cs-on-ns 0; gpmc,cs-rd-off-ns 100; gpmc,cs-wr-off-ns 100; gpmc,adv-on-ns 0; gpmc,adv-rd-off-ns 30; gpmc,adv-wr-off-ns 30; gpmc,oe-on-ns 10; gpmc,oe-off-ns 80; gpmc,we-on-ns 10; gpmc,we-off-ns 80; gpmc,rd-cycle-ns 110; gpmc,wr-cycle-ns 110; gpmc,access-ns 80; gpmc,page-burst-access-ns 30; }; };這里ranges的意思是子節(jié)點(diǎn)訪問地址0x0時父總線看到的是0x08000000映射范圍0x10000000即256MB。FPGA子節(jié)點(diǎn)只在CS0窗口內(nèi)占64KB空間reg 0 0 0x10000的三個字段分別是片選號、片選內(nèi)偏移、空間長度。pinctrl的引腳偏移量每個平臺各不相同我給的0x30這類數(shù)值只是示意。實際做板子時必須對照對應(yīng)芯片的TRM翻出GPMC引腳的具體Pad配置然后再填寫。AM335x上GPMC相關(guān)引腳默認(rèn)就是模式0但有些引腳的上下拉和輸入輸出方向需要手動設(shè)置好否則信號根本出不來。4.2 不寫驅(qū)動先devmem驗證硬件通路驅(qū)動開發(fā)最忌諱的就是一上來就寫大段代碼然后出了問題不知道是設(shè)備樹錯了、引腳配置錯了還是驅(qū)動邏輯錯了。正確做法是先用devmem工具把整條通路打通。開發(fā)板正常啟動進(jìn)入Linux后執(zhí)行下面的命令# 讀CS0首地址的16位數(shù)據(jù) devmem 0x08000000 16 # 向CS0首地址寫入0x55AA devmem 0x08000000 16 0x55AA # 再讀回來驗證 devmem 0x08000000 16 # 連續(xù)讀幾個不同偏移驗證地址譯碼 devmem 0x08000010 16 devmem 0x08000020 16驗證的時候有幾點(diǎn)要注意剛上電時讀0x08000000如果讀回0xFFFF且后續(xù)一直不變大概率是數(shù)據(jù)總線浮空或者CS沒有正確映射。寫入0x55AA后再讀回0x55AA只能說明讀寫通路正常。想驗證16根數(shù)據(jù)線是否全部連通建議寫0xAAAA、0x5555、0xF0F0這類交替方波數(shù)據(jù)。如果有某一位固定懸空讀回來的值會出現(xiàn)明顯的位模式異常。地址線是否連對可以間隔寫入不同偏移然后讀回確認(rèn)FPGA側(cè)抓到的地址和CPU發(fā)出去的一致。devmem讀不到數(shù)據(jù)不要急著去懷疑驅(qū)動先用示波器掛在nCS和nOE引腳上看波形。一個正常的訪問周期應(yīng)該能觸發(fā)一次明確的片選和讀使能脈沖。如果CPU執(zhí)行了讀命令示波器上卻沒有任何波形那就是設(shè)備樹映射或引腳復(fù)用配置的問題如果波形有但數(shù)據(jù)不對再回頭檢查FPGA時序。4.3 一個最小字符設(shè)備驅(qū)動模板devmem驗證通過后基本可以確定硬件側(cè)沒大問題了。接下來就可以寫正式的驅(qū)動。下面是我常用的一個最簡單模板直接通過platform_driver匹配設(shè)備樹中的FPGA節(jié)點(diǎn)#include linux/module.h #include linux/platform_device.h #include linux/io.h #include linux/of.h #include linux/of_address.h struct fpga_dev { void __iomem *base; }; static int fpga_probe(struct platform_device *pdev) { struct resource *res; struct fpga_dev *priv; priv devm_kzalloc(pdev-dev, sizeof(*priv), GFP_KERNEL); if (!priv) return -ENOMEM; res platform_get_resource(pdev, IORESOURCE_MEM, 0); priv-base devm_ioremap_resource(pdev-dev, res); if (IS_ERR(priv-base)) return PTR_ERR(priv-base); dev_info(pdev-dev, GPMC FPGA base: %pa\n, res-start); /* 測試讀寫 */ writew(0x55AA, priv-base 0x00); dev_info(pdev-dev, read back: 0x%04x\n, readw(priv-base 0x00)); platform_set_drvdata(pdev, priv); return 0; } static const struct of_device_id fpga_of_match[] { { .compatible vendor,my-fpga }, { } }; MODULE_DEVICE_TABLE(of, fpga_of_match); static struct platform_driver fpga_driver { .probe fpga_probe, .driver { .name my-fpga, .of_match_table fpga_of_match, }, }; module_platform_driver(fpga_driver); MODULE_LICENSE(GPL);這里有幾個容易踩的坑第一platform_get_resource(pdev, IORESOURCE_MEM, 0)拿到的資源對應(yīng)的是設(shè)備樹里reg屬性聲明的地址區(qū)間。所以reg描述的范圍一定要和FPGA實際占用的寄存器窗口一致。第二訪問GPMC映射后的地址一定要用readw、writew、readl、writel這一組訪問函數(shù)而不是直接解引用volatile指針。ioremap提供的內(nèi)存通常是strongly-ordered映射直接服用沒問題但用訪問函數(shù)能在不同ARM平臺上獲得更好的移植性和緩存一致性保障。第三讀寫時序上GPMC總線不存在cache一致性問題因為這塊地址是外設(shè)內(nèi)存映射不走CPU的DMA一致性協(xié)議。但如果后面引入了DMA傳輸就要用dma_alloc_coherent或dma_map_single來管理緩沖區(qū)不能直接把kmalloc的內(nèi)存丟給DMA。4.4 從異步到同步burst的提速思路異步模式下GPMC的帶寬再高也有上限因為每個周期都在等OE/WE的脈沖序列走完。想進(jìn)一步提速就要上同步burst模式。這時候GPMC輸出一個GPMC_CLK時鐘外設(shè)按照這個時鐘邊沿連續(xù)輸出或接收多個數(shù)據(jù)一次總線訪問就能搬運(yùn)一大塊數(shù)據(jù)。設(shè)備樹中開啟同步burst需要在子節(jié)點(diǎn)增加gpmc,sync-clk-ps等屬性把同步時鐘周期配好同時把gpmc,rd-cycle-ns等異步參數(shù)朝著burst時序方向調(diào)整。FPGA側(cè)的改動也不小需要實現(xiàn)一個簡單的狀態(tài)機(jī)外部地址在nADV階段被鎖存之后每來一個時鐘沿FPGA內(nèi)部地址自增一次同時把數(shù)據(jù)放到總線或從總線采走。我的經(jīng)驗是burst提速放在最后做。先把異步模式全部調(diào)通數(shù)據(jù)讀回穩(wěn)定然后才引入同步時鐘一次只改動一個變量。這樣就算崩了也能快速定位是時鐘相位問題、burst長度配置問題還是FPGA狀態(tài)機(jī)bug。很多團(tuán)隊把異步和burst一起改出了錯根本無從下手。5. 踩坑記錄與排查技巧5.1 讀回0xFF先查硬件再查軟件GPMC調(diào)試中讀回0xFF占掉了我至少三分之一的時間。這個錯誤看似簡單背后原因卻五花八門。最常見的原因是數(shù)據(jù)總線浮空。外部設(shè)備沒有被片選選中或者FPGA內(nèi)部邏輯還沒起來總線上的引腳全部處于高阻態(tài)上拉電阻把電平拉高讀回來自然就是0xFF。排查方法是拿萬用表量GPMC_AD引腳的電平如果全是高電平說明總線空轉(zhuǎn)下一步要查CS信號有沒有確實拉低。第二個高發(fā)原因是設(shè)備樹里片選窗口配置錯誤。子節(jié)點(diǎn)的reg和父節(jié)點(diǎn)的ranges對應(yīng)不上CPU訪問的地址根本沒映射到GPMC的CS上。這時候訪問地址時示波器上看不到任何CS脈沖讀操作實際訪問的是一段空洞內(nèi)存。還有一個容易被忽略的坑是FPGA側(cè)的片選譯碼。FPGA內(nèi)部如果只做了部分地址譯碼或者把CS0和CS1的窗口共用了也會出現(xiàn)某些偏移讀回固定值的情況。遇到這種問題我的做法是寫一個循環(huán)把CS0窗口內(nèi)前幾KB每個地址都讀一遍打印出數(shù)據(jù)分布。如果是全0xFF基本就是總線層問題如果有些地址有反應(yīng)、有些沒有那就是地址譯碼問題。5.2 偶發(fā)錯值與時序余量有一個項目讓我印象特別深。板子正常起來后讀FPGA里的寄存器90%的時候值都是對的但偶爾會冒出一次錯誤數(shù)據(jù)。最初的排錯方向全錯了懷疑FPGA邏輯bug懷疑數(shù)據(jù)線受干擾甚至懷疑電源紋波。最后拿示波器對比波形才發(fā)現(xiàn)問題純屬時序余量不足。當(dāng)時的gpmc,rd-cycle-ns配置成了80ns表面上看FPGA數(shù)據(jù)手冊寫的最大讀取時間是60ns80ns應(yīng)該夠。但實際電路里存在PCB走線延遲、FPGA內(nèi)部組合邏輯延遲、芯片溫度漂移所有因素疊加起來80ns就變得非常緊張。某個溫度點(diǎn)或者電壓波動稍微大一點(diǎn)數(shù)據(jù)到達(dá)GPMC采樣點(diǎn)的時刻就晚了那么幾納秒于是偶發(fā)錯值就出現(xiàn)了。解決方案很簡單把gpmc,rd-cycle-ns放寬到130nsgpmc,access-ns也同步后移。整條總線速度雖然降了但系統(tǒng)穩(wěn)定了。后來做性能優(yōu)化時才一檔一檔往回壓每壓一檔就做長時間加壓測試。這里有個經(jīng)驗只要發(fā)現(xiàn)數(shù)據(jù)偶發(fā)錯誤第一反應(yīng)應(yīng)該是放寬時序而不是去懷疑芯片壞了或者代碼邏輯錯了??偩€時序是物理信號偶發(fā)錯誤絕大多數(shù)是建立時間或保持時間不夠。5.3 muxed模式的幾個翻車點(diǎn)上面提過muxed模式容易踩坑這里展開說幾個具體的翻車現(xiàn)場。第一個是地址鎖存時機(jī)不對。muxed模式下低16位地址在總線訪問最開始就出現(xiàn)在AD[0:15]上需要外部設(shè)備在合適的邊沿鎖存這個地址。如果FPGA側(cè)把鎖存邊沿選錯了比如用了nADV上升沿而GPMC實際下降沿才撤走地址鎖存到的地址就會歪掉。排查時可以固定寫幾個不同的地址偏移讀數(shù)據(jù)看看地址錯亂有沒有規(guī)律性。如果偏移0x00和0x01的數(shù)據(jù)一樣、0x02和0x03一樣那多半是LM位對不齊。第二個是總線方向切換。muxed模式里AD線既要輸出地址又要傳輸數(shù)據(jù)中間存在方向切換。如果切換間隙沒有留足時間地址線剛撤走馬上被外部設(shè)備驅(qū)動數(shù)據(jù)兩條驅(qū)動源就會短暫碰撞造成電流尖峰和邏輯混亂。GPMC內(nèi)部有bus turnaround機(jī)制但設(shè)備樹參數(shù)里要留好這個間隔比如在地址有效撤銷后、數(shù)據(jù)采樣前留出足夠的緩沖區(qū)。第三個是軟件和硬件模式不匹配。這個最無解因為代碼看起來完全正常讀數(shù)據(jù)卻怎么都不對。調(diào)試時先確認(rèn)設(shè)備樹里有沒有顯式配置muxed模式再看原理圖上的接線方式。GPMC寄存器里MUXADDDATA位和原理圖不一致一切分析都白搭。我的習(xí)慣是硬件設(shè)計評審時就把這個問題當(dāng)面和硬件工程師確認(rèn)好寫成會議紀(jì)要避免后面互相扯皮。5.4 當(dāng)FPGA工程師和驅(qū)動工程師互相對峙時做GPMC聯(lián)調(diào)最經(jīng)典的場面就是FPGA工程師和驅(qū)動工程師互相對峙。驅(qū)動工程師拿著設(shè)備樹配置說“我這邊時序都是按手冊寫的沒問題?!盕PGA工程師拿著邏輯分析儀抓到的波形說“你看這個OE的下降沿和數(shù)據(jù)變化幾乎同時肯定是你驅(qū)動配置不對?!边@種事我經(jīng)歷了幾輪后總結(jié)出一個順手的流程第一步先確認(rèn)過去的是否是“同一張波形圖”。GPMC時序參數(shù)以納秒為單位兩邊最好坐在一起把示波器的波形截圖放大到同一時間尺度把每個事件打上標(biāo)簽比如“CS有效”對應(yīng)時鐘t0“OE有效”對應(yīng)t1“數(shù)據(jù)出現(xiàn)”對應(yīng)t2“GPMC采樣點(diǎn)”對應(yīng)t3。一張圖把所有時間坐標(biāo)列出來矛盾立即清晰。第二步把驅(qū)動實際的配置參數(shù)打印出來而不是看代碼里寫了什么。代碼里的值可能被內(nèi)核、bootloader或者pinctrl影響實際生效的可能不一樣。在fpga_probe里把讀回的GPMC_CONFIG寄存器全部打印出來和期望值對比一眼就能看出問題。第三步做一個“最小驗證用例”。比如先讓驅(qū)動只讀固定地址一個寄存器讓FPGA側(cè)只在那個地址上輸出固定常量0x5A5A。如果這樣都能讀錯那說明總線物理層和時序問題如果固定地址讀對了但隨機(jī)地址會錯那就是地址譯碼或bus turnaround問題。一個最小用例可以把聯(lián)調(diào)問題快速隔離。5.5 調(diào)試速查表把上面所有問題收斂成一張表掛在工位上非常管用現(xiàn)象可能原因排查方向讀回數(shù)據(jù)全是0xFF數(shù)據(jù)總線浮空、外部設(shè)備未使能量AD引腳電平查nCS是否拉低查上拉電阻讀回數(shù)據(jù)全是0x00數(shù)據(jù)線被強(qiáng)下拉或FPGA輸出驅(qū)動能力不夠查FPGA IO驅(qū)動強(qiáng)度、OE方向、外部下拉讀/寫偶發(fā)出錯時序余量不足、電源波動、信號質(zhì)量差放寬rd-cycle/wr-cycle觀察波形找臨界點(diǎn)寫入后讀回不變WE脈沖過窄、FPGA內(nèi)部鎖存沿不對加寬WE低電平時間核對FPGA握手邊沿地址錯亂muxed/non-muxed模式不匹配、地址鎖存沿錯誤核對原理圖與寄存器配置固定地址讀常量訪問時系統(tǒng)卡死地址映射越界、訪問了不存在的窗口嚴(yán)格檢查ranges和reg避免空洞訪問同一地址有時對有時錯總線仲裁/方向切換未留間隔加大bus turnaround檢查FPGA三態(tài)控制與FPGA握手失敗WAIT信號沒接或沒配置啟用WAIT監(jiān)控降低同步時鐘關(guān)于調(diào)試習(xí)慣最后說兩句在GPMC上栽過跟頭之后我養(yǎng)成了兩個習(xí)慣。第一調(diào)GPMC一定先架好邏輯分析儀或者示波器再動代碼不要憑感覺調(diào)參。第二調(diào)試初期所有時序全部放寬等全鏈路通了再一點(diǎn)一點(diǎn)壓。尤其是第一次做GPMC接FPGA的新項目先保證系統(tǒng)可靠再談性能永遠(yuǎn)比一開始就追求極限參數(shù)靠譜得多。TI的GPMC手冊內(nèi)容龐雜但核心就是那么幾個時間點(diǎn)把這些時間點(diǎn)吃透剩下的事情都會順利很多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
大香蕉狼人久久| aaaaaa片| 无码激情AAAAA片-区区| 婷婷婷婷婷婷婷婷| 婷婷综合五月天激情| 超级碰碰碰久久网站| 色婷婷激情| 26uuu淫色| 噜噜吧天天爱| 色小说婷婷五月天天天| 原琪琪色影院| 天海翼中文字幕高| 丁香激情网| 99色网站| 丁香五月婷在线| 色五月婷婷综合在线| 蜜桃人妻无码AV天堂三区 | 99热综合在线| 超级碰碰视频无码| 久久ri精品| 97碰人人操| 色婷婷丁香五月天| 精品牛仔裤超碰| 另类小说色婷婷| 五月丁香六月婷婷久久| 久久久久久久久久久久久久人妻视频 | 日日噜噜久久婷婷五月天| 五月天激情图片| 五月丁香婷婷婷婷综合网| 综合亚洲AV| 丁香五月综合| 丁香五月成人| 深爱五月婷婷| 丁香六月情| 五月丁香在线看| 六月色日韩| 91干99| 狠狠五月天| 天天干天天干天天| 丁香婷五月| 99热新网址| 久久性都花花世界成人免费视频| 黄急一级视频| 婷婷97色| 不卡成人免费| 91亚洲视频| 九九在线精品| 日韩精品无码一区二区| 亚洲 在线 另类| 综合久久影院| 91精品久久久久久| 欧美视频五区| 久久久久久久久久8888| 少妇人妻综合色6699| 有码人妻久久| 五月天成人在线| 五月天婷亚洲天综合网综合| 狠狠干2007| 久久免费精品小视频| 日本色99| 五月丁香影院| www.婷婷| 精品色色| 五月天丁香网站| 九九在线精点品| 26uuu另类| 婷婷五月噜噜| 五月婷婷开心五月| 色婷婷五月天堂资源| site:esunnet.com| 99久久婷婷五月天| 久久美女五月天| 色偷偷色婷婷| 五月丁香婷婷综合网| 丁香激情网| 在线婷婷| 99干日日干| 色五月丁香五| 伊人久久综合| 九九视频网| 色婷婷五月天亚洲| 六月丁香基地| 五月网网站| 丁香婷婷在线| 色七七色九九| AA丁香综合激情| 99热精品中文字幕| 九九99免费视频| 黄色一级影片| 九九热精品视频在线观看| 另类图片五月天| 99re热视频这里只精品| 91人人爽人人操| 色色五月激情| 深爱 五月天| 九月婷婷综合八月丁香在线观看 | 九九干视频| 色婷婷六月天| 日日干夜夜干| 麻豆AV一区二区三区| 国产精品91抖高| 久久精彩视频18| av超碰在线| 亚洲一区二区无遮挡A片| 玖玖在线视| 超碰在线9| 亚洲综合色网站| 欧美综合五月丁香五月天| 五月婷婷丁香网| 国产精品国产| 丁香伍月婷电影全集| 亚洲无码激情| 第四色婷婷最爱| 亚洲国产色色| 六月丁香啪啪啪| 婷婷无五月无码视频| 久啪欧美| 淫荡综合网| 久久99久久99精品免观看粉嫩| 在线播放成人网站| 色播色丁香五月| 曰曰久久| 激情丁香五月天图片| 丁香色色网| 黃色三级三级三级三级 qixing300.shrkbk.com www.jinbozs.com tianmiaosw.com | 好好干Av| 无码动漫av| 天天肏夜夜肏| 99精品在线观看视频| 超碰AAAAAAV| 婷婷久久精品| 色玖玖网| 欧美成人网婷婷综合在线| 久色五月丁香视频| 97人人干视频| 色五月久久成人婷婷| 激情丁香五月婷婷| av婷婷丁香| 婷婷久久五月| 超碰国产在线观看| 丁香久久激情俄| 天天噜天天插| 热99在线精品| 色婷婷亚洲在线观看| 狠狠88综合久久久久噜噜噜| 九九久久精品| 色婷婷影| 色婷婷AV久久久久久久| 精品亚洲国产成AV人片传媒| caopeng超碰| 开心五月网| 综合色99| 97成人丁香婷婷| 婷香五月激情视频| 青青操丝袜美腿| 色国产五月| 久色网址| Av九九| 五月天色婷婷成人| 五月天丁香久久综合| 日本色色图| 综合五月婷婷| 操比激情五月| 色五月xxx| AV在线免费播放| 婷婷五月精品中文| 婷婷五月天视频亚洲| 亚洲V国产V欧美V久久久久久| 五月婷婷色综图片| 欧美丁香五月97色| 无码人妻激情| 99热网站| 欧美色骚婷婷五月天| 久久香蕉影院| 高清无码.com| 伊人婷婷五月天| 99热免费精品| 五月天色图| 五月天婷综合| 欧美在线97| 综合色色综合| 免费观看亚洲AV片| 99婷婷| 超碰人人干| 亚州操操| 成片免费播放| 伊人婷婷激情| 欧美69久成人做爰视频| 婷婷五月六月丁香综合| 9久久网| 婷婷五月天第三页| 色偷偷色婷婷| 五月婷婷综合在线| 五六月丁香激情视频| 91九色在线| 五月丁香日本一抹本| 亚洲日日日| 97操在线视频| 婷色五月天| 伊人六月丁香婷婷| 亚洲图色五月天| 亚洲一区二区无码蜜乳av| 久久性爱99国产| 热这里| 九月丁香婷婷网| 婷婷五月天在线观看第二页| 夜夜爱伊人| 九九热中文| 丁香五月婷婷亚洲人| 色五月av| 六月婷婷影院| 久色激情| 免费无码毛片一区二区A片| 夜夜夜叫天天天做| 91婷婷色 | 丁香婷婷婷婷十二月在线观看视频| 婷婷五月免费观看| 九九久久污| 日本欧美国产| 成人五月天在线视频在线观看| 青草视频在线播放| 色五月天丁香婷婷| 午夜 外网 精品 在线| 9热在线| 丁香婷婷影院| 丁香无月在线观看| 亚洲色情网站| 九月婷婷综合网| 九九色影视| 天堂爱爱| 性色av大香综合| 色婷婷六月天| 丁香六月色情| 久99热在线观看| 婷婷伊人中文字幕| 丁香六月天婷婷色| 无码人妻激情| 婷婷六月香| 日本在线视频播放91| 免费的日逼视频| 日本nghangse中文字幕| 五月天丁香婷| 夜夜操天天爽| 国产永久一二一起草| 五月婷护士| 久久这里只| 99热久| 欧美日韩婷婷五月天| www.五月婷婷.com| 色丁香婷婷| 日日爽日日| 庭庭久久内射| 啪啪91| 狠狠色情婷婷| 中文字幕在线观看视频www| 97日本在线播放| 色播五月天激情| 色444综合网| 任我肏| 中文久久婷婷| 色色色丁香| 婷婷五月天成人影片| 狠狠狠激情网| 亚洲精品字幕在线观看 | 婷婷激情丁香六月| 色色婷婷丁香| 开心激情色婷婷五月天| 国产成人精品亚洲线观看| 欧美丁香婷婷天天操| 久久综合丁香激情五月| 激情文学久久| 丁香激情五月天| 噜噜噜噜婷婷五月天| 五月激情久久综合网| 国产精产国品一二三在观看| 蜘蛛女免费观看完整版高清电影| 色婷婷成人做爰A片免费看网站| 伊人五月天日日夜夜久久久天天| 五月丁香激情综合| 六月婷婷七月丁香| 亚洲成人在线电影网站| 亚洲情a| 玖久久网站| www.夜夜騎夜夜狠| 久久99三级在线视频| 五月婷婷乱| 激情五月天网站| 色五月婷婷久久爱| 亚洲狠狠色丁香婷婷综合久久| 无码激情精品色婷婷久久久久| 婷婷五月天 丁香五月天 裸体| 天天日日爽| 99精品丰满| 思思热精品在线视频| 99热日本精品| www.激情| 蜜乳A√| 激情五月婷婷色综合| 免费播放AV| 99色免费观看全部| 97碰碰视频在线观看| 日韩婷婷| 色婷婷五月丁香在线观看| 1024在线一区| 激情五月天网| 99人妻碰碰碰久久久久禁片| 人妻熟人中文字幕一区二区| 天天综合社区| 大香蕉av在线| 免费无码毛片一区二区A片| 一根材五月婷成人| 婷婷丁香先锋资源网站| 日日操日日撸| 婷婷五月色网| 黄色成人网站在线播放| 欧美激情综合色综合啪啪五月| 天天干天天操天天上| 1024在线视频| 五月激情六月宗合| 操逼棍操逼| 碰碰人人人| 五月婷精品| 大香蕉九九热| 搡BBBB搡BBB搡五十| 五月开心深深爱激情综合| 99亚洲精美视频在线观看| 色香欲综合| www.五月激情红色| 日本三级日本三级三级人妇四虎| 亚洲国产精品成人午夜| 久久92| 色亚洲中文| 婷婷干六月综合旧址| 97资源碰碰| 丁香五月天在线直播观看| 久久精品日| 91九色精品熟女内射| 婷婷五月天视频小说| 五月丁香最新| 日本不卡高字幕在线2019| 五月丁香六月激情在线| 夜夜操少妇| 成人毛片在线免费观看| 超碰在线免费观看日韩| 超碰国产AV| 99热这里只有精品98| 丁J香六月首页| 91久久99久久91熟女精品| 99在线看片| 伊人玖玖精品| 色婷婷狠狠久久综合五月| 97精品欧美91久久久久久久| 这里只有免费精品| 久久与婷婷| 欧美性爱中文字幕| 色色网站毛片| www超碰| 五月在线| 天天日天天干天天插天天射| 婷婷丁香午夜综合影视| AV动漫不卡无码免费| 欧美亚洲色色色色| 午夜天堂啪啪| 99热这里只有精品1025| 日本色视| 国产一二三四五六七八视频| 丁香六月色情| 日韩三级片一区二区| 99在线视频免费| 久久五月天激情| 天天插天天插天天插天天插| 另类精品视频在线观看| 五月天亚洲综合网| 亚洲天堂aaa| 色婷婷五月基地在线| 97色干| 日韩伊人大香蕉| 免费无码毛片一区二区A片| 色色婷| 九九色视频| www.精品99| 99热国产精品| 香蕉97碰碰碰超视精品| 影音先锋AV男人站| 国av网| 天天爽天天摸| 操你av| 天天色五月| 五月天色婷婷激情综合| 久热这里只有精品6官网亚洲| 九九热99免费视频| 香蕉99网| 婷婷六月久久| 婷综合六月| 国产真人做爰视频免费| 激情五月天色播| 五月色婷婷综合| 久久伦乱| 精品久久9| 五月天婷婷AV| 色五月超碰| 天天爱天天狠天天透| 26uuu欧美日本| www色综合| 婷婷五月天激情AV影院| 婷婷五月天天| 日日噜狠狠色综合久久| 99热精地址| SS丁香五月婷婷| 天天操天天日天天爽| 日韩av大全| 婷婷涩涩网| 五月天激情小说电影| 色999亚洲人成色| 天天干,天天舔| 99色在线观看免费| 丁香五月婷婷色综合基地| 久9热| 久久免费精品小视频| 成人网站在线观看视频| 婷婷五月激情网站| 99日本精品视频热| 婷婷激情五月天7| 操笔无码| 丁香婷婷色五月天| 婷婷激情啪啪| 99热精品在这里| 激情六月天婷婷| 99热在线观看免费精品| 91玖玖| 丁香五月色| 丁香五月电影| 激情五月天久久| 色综合9| 综合激情专区| 99热99色| 五月婷婷 六月丁香| 成人国产网| 激情婷婷五月丁香啪啪啪| 日韩不卡123| 日本欧美999久久久三级片| 婷婷色五月天色| 亚州第一A片| 97五月久久丁香婷婷| 操久久网| 天天干-天天日| 婷婷五月花西瓜| 天天影院色| 色色丁香五月天| AA丁香综合激情| www久久久| 国产免费一区二区在线A片视频| 日本视频久久| 色99免费视频中文| 五月开心婷婷网| www.五月激情.com| 狠狠草狠狠草| 激情五月综合| 婷婷久久爱| 丁香五月婷综合| 性生活视频98791| 99色日本| 丁香色六月婷婷| 97色色色视频| 久久婷婷五月天懂色| 精品一二三区久久AAA片| 大香蕉丁香婷婷| 性爱网六月丁香| 天天做天天爱天天搞| A A色色| 99色五月| 北条麻妃九九九国产精品视频| 久久曰9| 综激情网| 婷婷五点亚洲| www.色婷婷.com| 午夜]香婷婷深深爱| 九九AV在线| 狠狠色无码| 精品人妻在线| 亚洲春色奇米影视| 色5月婷婷| 大香伊人婷婷影院| 五月婷婷xxx| 色综合射婷婷| 天天日天天色| 色婷婷先锋| 日在线V视频在线播放| 91婷婷色 | Www.sesese丁香| 色综合色五月| 婷婷激情视频欧美视频自拍视频欧美剧 | 国产VA播放| 色五月在线观看| 婷婷五月天激情网| 丝袜激情网| 六月天六月婷| 欧洲色| 9久9久| 免费精品66| 久久五月天色| 亚洲精品国产熟女久久久| 色婷婷AV在线| 丁香五月天啪啪a日本| 五月婷婷影院| 色综合久| 991精品在线视频| 色欲AVV| 激情五月婷婷丁香六月| 九九热最新| 色色欧美。| 日日干五月天婷婷| 亚洲精品无码久久| 久久激情天堂| 夜夜骑天天操| 婷婷五月激情小说| 亚洲丁香五月天在线视频| 97精品自拍| 色色色色色五月| 色性日本| XX色综合| 天天插天天日天天爽| 激情五月影院| 热中文字幕| 中文AV在线观看| 精品9l九九九九九77777| 婷婷六月网| 天天干天天拍| 狼人婷婷综合| 欧美美美女性色视频| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 一起草Av| 色综合久久久久久久久五月| 天天天天天天操| 操人久久| 高清无码入口| 一区二区三区四区牛| 天天爽天天透天天爱| 激情五月天婷婷丁香| 99热久草| 五月婷婷综合久久| 秋霞少妇AV网站| 色综合色色色色色色综合| AV九九| 婷婷六月久久综合导航| 九九色色| 色噜噜狠狠色综合无码久久欧美| 人。妻久久| 天天干天天插| 五月丁香婷婷伊人日韩| 五月婷伊人| 激情五月,深深爱五月| 26uuu欧美| 婷婷六月丁香开心深深爱| 日本va欧美va国产激情| 99热精在线九九久久保| 色偷偷AV亚洲男人的天堂| 精品无码色欲AV| 午夜69成人做爰视频| 六月婷婷狠狠色在线观看| 免费观看欧美成人AA片爱我多深| 99爱这里只有精品| 91夫妻视频| 婷婷六月色丁香视频在线观看| 国产精品国产成人国产三级| 26uuuavcom| 激情操逼婷婷| 五月婷婷深爱六月| 亚洲AV影片在线观看| 天天日天天做天天操| 亚洲国产精品二二三三区 | 色色亚洲五月天| 中文字幕综合网| 丁香五月五月婷婷| 亭亭丁香久久五月| 欧美色五月| 深爱开心激情网| 久久丁香婷| 久久五月婷婷丁香| 婷婷五月深深爱| 99久久久久久久| 5月婷婷6月六月丁香| 99色五月| 丁香五月天电影| 99热都是精品| 六月丁香啪啪啪| 人人摸人人操人人爽| 日日夜夜干| 色99综合视频| 亚洲婷婷婷| 久久538| 色五月婷婷、老熟女| 国产成人网址| 丁香激情五月综合网| 另类少妇人与禽zOZZ0性伦| 热这里| 五月婷婷六月丁香首页| 亚洲另类电影| 六月丁AV| 天天爽在线视频| 丁香伍月婷电影全集| 天堂AV在线看| 丁香六月啪啪啪| 国产黄大片在线观看画质优化| 国产无套精品一区二区| 区区久久妻| 色狠狠婷婷| 人妻激情在线| 五月丁香色婷| 91久久精品无码一区二区三区| 婷婷伊人久久| 色婷婷五月综合网| 色婷婷情片| 婷婷色导航| 99热.com| eeuus五月婷| 操比激情五月| 五月天婷婷基地| 亚洲色五月婷婷| 久久久久久久综合狠狠综合| 久久久久久久久久久久63| 婷婷综合激情| 五月激情婷婷国产精品久久久久久| 性爱先锋AV| 伊人成综合五月婷婷| 色婷婷六月| 天天摸色吧天天摸色吧| 色久在| 超碰色女| 色青青电影色五月| 这里只有精彩视频| 丁香五月欧美| 天天热夜夜操| 五月丁香激情片| 亚洲精品网址| 久久人妻视步| 欧美久草在线日本一级特黄大片做受9在线观看韩国电影《两个女人》未删减-毛片 | 天天肏夜夜肏| 激情小说在线视频| 开心激情久久久久久久| 婷婷丁香五月天婷婷| 热日韩欧美| 五月天精品| 991精品在线视频| 天天色天天色天天色天天色天天色| www.yw尤物| 久久码久久无清| AA片在线观看视频在线播放| 丁香婷婷色五月| 婷婷五月天综合小说网| 色999五月色| 夜夜大香蕉婷婷丁香| av操B网站| 嫩草AV久久伊人妇女超级A| 久久久久久综合88| 国产精品色色| 五月天六月婷婷| 小视频一区| 五月激情婷婷图片基地| 99色综合网| av无码电影| 色级婷婷| 亚洲成人网址在线观看| 超碰成人黄色网| JAPANRCEP老熟妇乱子伦视频| 激情综合久久| 欧美色99| WWW免费视频碰碰碰碰| 人。妻久久| 婷婷五月天在婷| 襙比视频| 五月婷婷色播网| 成人操呦av| 婷婷性爱| 第四色婷婷日本| 97中文在线| 五月丁香六月婷婷啪啪| 六月色播| 超碰九九热| 五月停亭六月,六月停亭的英语| 2w在线视频| 五月综合亚洲| 丁香五月激情六月综合| 婷婷五月天视频小说| 色五月丁香一区在线| 日日操夜夜操狠狠操| 婷婷欧美偷拍综合| 第2色五月婷| 五月色婷婷综合色| xxxx五月| 亚洲色婷婷99一9|| 五月婷婷之六月丁香| 激情五月婷婷在线区| 五月激情综合五月| 怡红院99| www.久久66| 99久久er| 99热这里只有精品国产首页| 五月激情婷婷在线| 性爱视频久久| 激情综合网址| 天天狠天天叉| 激情五月婷| AA片在线观看视频在线播放| 我淫我色婷婷五月天激情四射| 久久婷青青草原| 亚洲激情四射色| AV操一操| www.91在线观看| 五月丁香色综合| 成人AV在线网站| 丁香午月AV中文字幕| 一个色的综合| 99热成人在线| 五月天成人在线播放| 天天色图| 精品一二三区久久AAA片| 亚洲深喉AV| 九 九九九AV| 操久久精| 天天骑日日爽| 伊人狠狠狠综合| 天天插天天操| 粉嫩av蜜桃av蜜臀av| 久久婷色| 色色五月天 亚洲| 欧美婷婷精品激| 99精品国产热久久91色欲| 丁香五月综合| 丁香五月天婷婷久久综合| 婷婷五月天BBw| 26uuu精品一区二区| 五月丁香六月激情在线| 国产精品人成A片一区二区| 色插人人| www.99久| 97超碰,人人舔,人人操,人人摸| 日韩婷久| 亚洲五月天色色| 99小视频在线| 久8色色| 久久久99视频| 国外亚洲成AV人片在线观看| 99草视频在线观看| www.25五月婷婷| 五月丁香激情婷婷| 五月综合久久| www.玖玖九| 性色婷婷| 综合热无码| 大香线蕉伊人| 在线18av | 91九色精品| 欧美黑人巨大猛烈cuckold| 亚洲激情五月天| 五月天婷婷色色| 墨西哥毛片内射精| 夜夜爽天天| 黄色热99| 99性爱视频| 丁香婷婷综合影院| 99免费热在线精品| 99色网站| 青草青草视频2免费观看| 成人VAV视频在线观看| 97人人做| 五月丁香花婷婷玉莉AV| 婷婷丁香五月亚洲17cao| 久久婷鲁| 一夜福利不卡| 操逼六区| 丁香婷婷久久五月天| 狠色综合网| 天天爽天天日| 免费视频在线观看的网站| 97色婷婷成人综合在线观看| 色J香五月天| 丰满人妻妇伦又伦精品国产| 粉嫩av懂色av蜜臀av熟妇| 丁香婷婷成人网| 婷婷六月色| 国产99久久久| 色亭亭五月天丁香综合AV - 百度 - 百度 | 可以免费观看的av网址| 久机视频这只有精品| 日本猛少妇色XXXXX猛叫| 婷婷综合视频| 激情欧美五月丁香| 91打屁股免费看| 看婷婷五月天网| 99无码| 性爱激情久久| 婷婷六月丁香色| 久热91| 91久久电影| 99这里只有精品视频在线| 黄色笑话深爱激情网丁香五月婷婷啪啪啪啪啪| 97综合在线| 91岛国片| 99热只有这里才是精品| 亚洲色五月婷婷| 五月婷av| 亚洲 精品 综合 精品| 91色五月| 五月天激情四射网站| 99热在线观看精品| 九九XX视频| 无码G高清天| 538在线精品| 在线视频另类| 台湾无码A片一区二区| 久久色情| 婷婷五月天在线看| 国产密乳av一区二区三区四区| 丁香五月花影院| 五月婷庭丁香在线| 91精品91久久久中77777| www.91久久| 色婷婷六月天| 夜夜大香蕉婷婷丁香| 亚洲婷婷欧美婷婷| 亚洲另类毛片| 丁香五月天啪啪| 狠狠色噜噜狠狠亚洲A∨| 天天做 天天爱| 日本欧美成人片AAAA| 五月婷婷久久综合| 婷婷五月丁香色情| 99日韩| 综合99久久| 激情丁香婷婷| 51XX午夜影福利| 综合色99| 九九伊人网| 高清无码网址| 99re66热这里只有精品| 色综合色色| wwW天天干| 男男野外做爰全过程69| 五月丁香激情综合网| 婷婷欧美| 亚洲AAA| 五月日韩中文字幕| 亚洲 五月 婷婷 成人| 九九精品丁香花| 日本婷色| 91人人操.COM| 婷婷激情五月综合| 婷婷性爱无码视频| a级毛片一区二区免费视频| 热99这就是精品视频| 色婷婷久久天天性爱| 丝袜人妻| 色月视频| 偷拍九九热| 婷婷五月色激情欧美激情| 日本婷婷在线| 日韩成人综合网| 婷婷六月网| Av免费网站在线| 99热在线成人网站| 9久国产| 日本人妻A片成人免费看片| 色婷婷五月天激情久久| 五月婷九月| 深爱激情综合| 激情小说五月天社区丁香 | 伊人九九综合| 丁香六月色香蕉视频| 538在线精品| 色色亚洲无码| 久久综合站| 五月婷婷丁香五月| 超碰AV在线| 色婷婷五月天| 久久黄色片| 午夜爱插插| 精品一二三区久久AAA片| 五月天基地| 97人妻碰碰碰久久香蕉| 最近中文字幕大全免费版在线| 婷婷激情五月综合丁| 任我鲁这里有精品视频| 五月婷婷六月天| 亚洲人妻五月丁香婷婷| 欧洲亚洲午夜| 免费无码毛片一区二区A片| 婷婷五月激情天| AV中文在线| 婷婷丁香五月在线观看91| www.maotanji.com| www.十八禁不禁AV.com| 丁香五月大香蕉AV| 色色无码| 婷婷五月天伊人| 色色色99韩| 丁香六月婷婷综合啪啪| 色婷婷影视| 日本五月天网站| 五月天天天操天天爽夜夜操| 久久免费试看120秒| 天天插天天日| 这里只有精品1| 久婷| 婷婷丁香激情五月天色色色| 91色综合| 欧美久久婷婷| 那里有AV网址| 伊人影院久久网| av国产精品| 狠狠色五月天| 天天色天天爱天天爽| 青草网在线观看| 中文字幕成人日韩| 久久精彩视频| 亚洲五月停停| 九九热99精品在线| 99久.| 亚洲视频久久| 婷婷五月天久久久| 成人永久免费视频在线观看| 91操操| 成人看片网站| 丁香五月婷婷综合激情啪啪啪| AV在线收看| 性高潮久久久久久-九九九九九九九九九九热-成人AV | 91婷婷色五月| 日日干天天爽| 欧美搡BBBBB摔BBBBB| 亚洲综合色激情色五月| 婷婷五月综合色拍| 婷婷色播婷婷| 国产精品久久久丁香五月八戒视频| 久久aaaa片一区二区| 六月婷婷色色色| 日韩成人免费电影| 偷拍九九热| 亚洲情色一区| www.av视频xx999.com| 综合图区激情| 九九大香蕉黄色影院| 综合激情五月天| 亚洲一区二区 成人网站戴套| 九九99热| 丁香婷婷久久激情| 五月婷婷丁香社区| 亚洲操逼网| 亚洲色综合色网| 五月天综合网| 99热国产这里只有精品| 色婷婷基地| 色99久草在线| 久久五月视频| 丁香月六月| 国产成人网| 午夜福利成人AV91| 思思热思在线精品视频| 欧美影院| 疯狂做受XXXX高潮A片动画| 97电影99热| 丁香五月aV| 67194成I人在线观看线路1| 无码色| 日本久久精品18| 五月婷丁香亚洲| 人妻AV在线观看| WWW.五月com| 99久久婷婷国产综合| 五月婷婷激情综合拍| 五月天婷婷综合网| 亚洲成Av人片乱码色第1集| 26uuuavcom| 丁香五月综合| 综合色吧| 人人噜天天上| 性爱综合网| 97操操操| pom538精品视频| 91919191919久久成人视频| 激情网第九色| 十一月婷婷激情四射| www.色多多婷| 一本久久亚洲五月婷婷| 日韩高清成人| 伊人综合婷婷| 丁香五月六月激情| 国产AV一区二区三区最新精品 | 久久精品熟女亚洲AV麻豆| 五月开心婷婷网| 女同激情久久av久久| www.婷婷五月.com| 五月天自拍视频| 色婷婷电影网| 五月丁香啪啪啪综合网| 五月天伊人久久久久| 亚洲成人无码免费| 五月天激情无码高清| 中文字幕无码人妻少妇免费视频 | 精品一二三区久久AAA片| 丁香婷婷五月人体| 婷婷五月天激情丁香| 久久色大香蕉| 亚洲激情高潮| 99这里有精品视频| 丁香五月自拍| 婷婷激情社区| 99色在线视频观看| 色婷视频| 综合网色| www激情| 色情五月天丁香社区| 欧美色97| 婷婷欧美综合| 99九无网码| 亚洲在线综合| 五月婷婷激情久久| 99日在线视频| 久久九九色| 婷婷激情四射| 日本色色色| 狠狠狠激情网| 精品人妻午夜一区二区三区四区 | 色都都狠狠色都都色综合色| 吉澤明步Av一區二區| H亚洲| 成人免费va| 九月婷婷综合在线| 丁香五月成人| 亚洲综合色婷婷| 99热最新| 激情五月天开心网丁香无码| 日本91在线播放| 玖玖资源站视频| 久久九精品| 激情图片婷婷| 九九熱最新視頻| 人妻体体内射精一区二区| 狠狠另类视频| 26uuu色五月| nvrentiantang av| 午夜爱插插| 五月婷婷六月丁香| 久色五月| 久久免费试看120秒| www久久99| 综合久久97| 538在线精品| 99re热视频这里只精品| 丁香五月大香蕉AV| 性色五月天| 婷婷丁香亚洲五月天| www.夜夜爱.com| 九九综合色综合| 这里只有精品,日韩视频| 久热婷婷综合| 99爱视频| 日本在线免费中文com.| 天天干天天日蜜臀av| 2020日日干| 伊久久婷婷| 国外亚洲成AV人片在线观看| 韩国激情五月天综合网| 性爱网五月天| 久久99久久99久久99| 日韩久久色| 丁香五月日啪| 亚洲AVDVD| 婷婷中文字幕| 婷婷五月天激情在线| 超碰99在线观看| 丁香婷婷五月综合欧美另类| www99在线观看视频| 精品无码人妻一区| 99婷婷国产最新视频| 亚洲激情综合| 超碰高清在线| 成人婷婷五月| www.久久综合| 久久大国产香蕉| 丁香五月激情婷婷| 五月丁香六月婷婷在线播放| 日韩色久| 久久涩视频| 日本色道视频网站| 激情五月小说婷婷| 欧美黑人巨大猛烈cuckold| 97超级操操| 超碰人妻公开在线| 亚洲色五月婷婷| www五月天com| 天天日人人爽| 五月丁香日本片| 色色丁香色五月| 国产精品成人AV在线观看春天| 91色五月| 久久免费婷婷视频| 亚洲性图一区二区三区| 日韩综合网络男女香蕉a片| 99欧美热| 国产暴力强伦轩1区二区小说| 99毛片| 色综合天天天天做夜夜| 日日干日日s| 丁香婷婷久久| 久九九热| 伊人大香久久| 青青草婷婷五月天| 五月天综合在线| 久操热线| 亚洲AV日韩无码| 播四月婷婷六月丁香| 五月天婷婷五月| 爱草视频在线观看| www.99视频| 综合久久影院| 影视av久久久噜噜噜噜噜三级| AA片在线观看视频在线播放| 亚洲1区| 色色国产| 99精品视频网| 99ri精品在线| 九九热精品视频在线观看| 99精品福利视频| 日韩婷婷五月天| 丁香五月婷婷呀| 丁香女人五月天| 99日韩| 久久婷婷五月天激情新地址| 337p大胆噜噜噜噜噜91Av| 欧美亚洲成人在线| 欧美日韩国产日本精品四虎网网站物 | 99久久亚洲国产| 五月丁香婷婷激情四射迷人| 中文字幕日产A片在线看| 婷婷五月综合网| 九九这里有精品| 啊v视频在线观看| 日日夜夜婷婷| www色色色com| 日产精品久久久久久久蜜臀| 丁香五月影院| 久久精品99国产精品日本| 51精品国自产在线| 日本欧美成人片AAAA| 成人在线观看精品| 青青草青青草五月天| 丁香五月香蕉| www.99热| 色婷婷激情Av久久久| 中文字幕91,综合| www.91在线看| jiqingtaose五月天| 久久香蕉网| 91碰碰碰| 午夜美女人啪最红院| 五月天婷婷伊人| 开心五月婷婷激情网| 99热6色| 综合XX网| 色婷婷六月天| 久久综合激情| 色五月婷婷在线观看第一页舔| 九九热在线精品视频| 99视频| 人妻在线网站| 久久人人看| 综合激情五月丁香9999久久精| 九九热99精品在线| 五月婷婷婷婷| 丁香五月婷婷大香蕉| 五月丁香六月激情欧美综合| 日本欧美成人片AAAA| 人妻Av在线| 五月丁香激情综合啪啪| 色欲Av五月天| 久久五月综合| 99热网址| 亚洲婷婷欧美婷婷| 色婷亚洲| 成人在线日韩| 综合激情五月综合激情五月激情1| 天天插操| 狠狠干在线| 亚洲五月婷| 狠狠CAO日日穞夜夜穞AV| 国产成人99久久亚洲综合精品| 天堂综合久久| 99色免费观看全部| 久久这里只有精品视频26| 伊人热婷婷| 九月丁香亭亭| 五月天婷婷色播| 中文字幕亚洲-区久久99婷婷| 丁香五月天激情| 99热这只有| 9999热精品| 狠狠色狠狠操| 六月婷婷网站| 国产成人AV在线播放| 99这里有精品视频| 激情综合色播| 日本久久婷| 丁香五月综合狠狠| 影音先锋噜一噜| 天天操天天操| 蜜桃婷婷狠狠久久综合| 99热免费| 丁香五月天啪啪| 六月丁香成人| 婷婷色狠狠| 丁香久久| 深爱五月婷| 99视频在线观看视频| 成人在线日韩| 99精品在线观看视频| 激情五月黄色小说| 第四色色色色色丁香五月天 | 色综合色| 丁香婷婷五月综合欧美另类| 无码人妻电影| 人操综合| www.av视频xx999.com| 五月停停色色丁香| 日韩一级淫乱片一区二区三区| 天天做综合| 91男同| 日韩黄色影院| 亚洲视频在线观看99| 色人久久| 91凹凸在线| 五月天激情子轮| 亚洲亚洲人成综合网络| 日本一级黄色电影| 超碰97免费在线| www。五月,com| 久久奄也去色色网站| 激情五月天色色网| 婷婷丁香成人| 夜夜操狠狠操| 91天堂网综合| 5月婷婷激情网| 婷婷伊人欧美| 中文字幕丁香五月| av九九| 丁香五月婷婷综合视频| 婷婷五月色播放| 亚洲色激情| www.夜夜操| 成人在线视频一区| 第五色色色婷婷| 亚洲狠狠爱婷婷| 五月丁香久久综合精品| 香蕉久久国产AV一区二区| 夜夜操夜夜爽| 99丁香五月婷| 成人综合AV| 另类综合婷婷五月天欧美视频| 丁香六月激情综合| 综合九九中文字幕| 六月婷婷毛片| 五月丁香啪啪| 婷婷激情四射| 91色噜噜狠狠狠狠色综合| 情婷婷五月天| 思思久久96热在精品国产,| 天天综合激情|