日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

用FPGA搭建一个STM32内核?

發布時間:2023/12/19 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 用FPGA搭建一个STM32内核? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.必要的基礎知識

為了更快的完成在FPGA上實現ARM Cortex-M3軟核,一些必要的基礎知識還是要有的!

  • FPGA開發基礎知識,如FPGA開發流程,設計、綜合、布局、布線、約束、下載

  • Xilinx Vivado開發環境使用基礎,如BlockDesign設計方式,管腳分配,Bit流文件生成與下載

  • ARM Cortex-M3內核的使用基礎,如STM32、MM32、GD32、CH32等微控制器的開發。

  • Keil-MDK開發環境的使用基礎,基本的工程建立、編譯、下載流程。

如果以上知識都具備,那么,恭喜你!可以在2小時內完成ARM Cortex-M3軟核在FPGA上的實現。

2.Cortex-M3 FPGA IP核下載

首先,我們需要從ARM官網上獲取ARM Cortex-M3 FPGA軟核IP包。

下載地址如下:

https://silver.arm.com/browse/AT426

文件名稱:Cortex-M3 DesignStart FPGA-Xilinx edition(r0p1-00rel0)

文件大小:7.52MB

MD5SUM:cd67536c29023429cde47130d51b6f49

官網下載需要先注冊賬號,如果下載速度很慢,可以在公眾號后臺回復:220318,獲取下載鏈接,復制到瀏覽器下載。

ARM官網

壓縮包解壓之后,共有4個文件夾:

壓縮包內容

各個文件夾存放的內容:

  • docs

存放ARM Cortex-M3處理器參考手冊、DesignStart FPGA版本使用說明、基于Arty-A7開發板的頂層BlockDesign框圖等文件。

  • hardware

存放基于Digilent Arty-A7開發板的Vivado工程,頂層BlockDesign文件,管腳約束文件,Testbench文件等。

  • software

存放Keil-MDK工程,SPI Flash的編程算法文件等。

  • vivado

包括DesignStart Cortex-M3 Xilinx FPGA版本的IP核文件,其中Arm_ipi_repository文件夾就是內核源文件了,IP文件內容已經加密,沒有可讀性。

IP核源碼

3.硬件準備

為了完成DS CM3在FPGA上的搭建,我們至少需要以下硬件:

  • 一塊Artix-7?開發板,用于構建Cortex-M3軟核SoC,我使用的是正點原子達芬奇Pro開發板,FPGA型號為XC7A100T。

  • Xilinx FPGA下載器,用于下載軟核Bit流到FPGA,如Platform Usb Cable,JTAG-HS2/HS3等。

  • ARM Cortex-M?3調試器,用于調試ARM核程序下載和調試,如JlinkV9,Jlink-OB等。

官方的DS CM3 IP核是基于Digilent的Arty-A7開發板,FPGA型號為XC7A35T/100T,Vivado版本為v2019.1,如果你手頭正好有這塊開發板,那么可以直接使用官方提供的示例工程。

Digilent Arty-A7開發板:

arty-a7開發板

正點原子達芬奇Pro開發板:

正點原子達芬奇Pro開發板

4.軟件準備

  • Xilinx Vivado開發環境,官方建議版本為2018.2以上,我使用的是2018.3版本

  • Keil MDK開發環境,如5.33版本

  • DS_CM3的Keil器件包

    從Keil官網上下載DesignStart Cortex-M3所專用的器件支持包,下載鏈接如下:

    https://keilpack.azureedge.net/pack/Keil.V2M-MPS2_DSx_BSP.1.1.0.pack

5.Cortex-M3軟核搭建

準備好以上軟硬件,就可以開始Cortex-M3軟核的搭建了。

首先,新建一個文件夾,命名為cortex_m3_on_xc7a100t,用于存放本次示例所有的工程文件,并新建以下幾個文件夾:

目錄結構

每個文件夾的功能:

  • bd文件夾

    用來存放BlockDesign設計

  • cm3_core文件夾

    用來存放的是ARM Cortex-M3內核IP核文件,

  • doc文件夾

    用來存放設計文檔

  • flash文件夾

    用來存放生成的bit和mcs文件

  • rtl文件夾

    用來存放用戶設計的verilog源文件

  • xdc文件夾

    用來存放管腳、時序約束文件

其中cm3_core文件夾,需要將官方壓縮文件文件中的Arm_ipi_repository文件夾復制過來,路徑為AT426-BU-98000-r0p1-00rel0\vivado\Arm_ipi_repository

以上文件夾準備好之后,就可以開始新建工程了。

5.1 新建Vivado工程

打開Vivado 2018.3,打開工程創建向導,輸入工程名稱,工程的存放路徑為之前我們新建的文件夾。

新建工程

選擇FPGA芯片的完整型號:XC7A100TFGG484。

選擇芯片型號

最終創建完成之后的工程目錄

Vivado工程目錄

5.2 添加IP核搜索路徑

為了能在BlockDesign中搜索到ARM Cortex-M3處理器IP核,我們需要把ARM 軟核IP所在的路徑添加到搜索路徑。

添加到搜索路徑

5.3 創建BlockDesign設計

為了方便后續使用圖形化的方式連接各IP核,我們采用BlockDesign圖形化的設計方式,這樣可以快速的搭建出一顆定制化的軟核處理器。

新建BlockDesign,命名為cm3_core,保存到最初創建的bd文件夾中。

在畫布中添加Cortex-M3處理器核:

添加ARM核

雙擊Cortex-M3 IP核進行一些基本配置,我們不需要Trace功能,選擇No Trace,使用SWD接口調試,禁用JTAG端口:

配置ARM核

指令空間和數據空間大小,這里設置成64KB,都不進行初始化。

ITCM核DTCM配置

5.4 添加一些必要的IP核

  • 時鐘PLL

    用于提供給內核、總線、外設時鐘,這里我們配置成50MHz單端輸入,PLL輸出配置成50MHz,如果時鐘頻率設置更高,綜合后會提示WNS,TNS時序不滿足,可能會影響系統的正常運行。

  • 處理器復位IP

    用于提供內核、外設、互聯組件所需要的復位信號,不需要進行定制,保持默認設置。

  • 總線互聯IP

    Cortex-M3內核為AHB總線,而且內部已經轉換成了AXI3總線,而Xilinx官方提供的GPIO/UART等外設IP核是AXI4-Lite總線,所以需要添加一個總線互聯矩陣,用于將不同協議進行轉換,從機數量配置為1,主機數量配置為2,連接到處理器的SYS總線。

  • 基本邏輯門IP

    Cortex-M3內核需要低電平復位,而復位IP輸出為高電平復位,需要在中間插入一個非門來進行轉換。

  • 常量IP

    本次軟核搭建不涉及中斷部分,所以IRQ和NMI都給定常量0即可,如果需要將中斷接入處理器,可以通過Concat核將多個中斷源合并成一個連接到IRQ。

將以上IP添加到BlockDesign畫布中,并按照下圖進行連接:

原理圖連接

從官方手冊中可以知道,ARM提供的軟核IP中已經包括了ITCM和DTCM存儲器,所以我們無需添加外部的BRAM來作為程序和數據的存儲區。

Cortex-M3內核結構

內核中提供ITCM和DTCM都是基于RAM實現,這也就意味著后續我們使用Keil下載程序只是下載到RAM中,掉電數據會丟失。

至此,ARM Cortex-M3處理器內核就搭建完成了,下面來添加GPIO和UART外設。

5.5 添加GPIO和UART外設

一些常用的單片機,如STM32,芯片內部的TIM、UART、SPI、CAN等外設一般是固定數量的,而我們使用FPGA來搭建ARM軟核SoC就比較靈活了,如果你不需要SPI,那就不用添加SPI外設,需要10個UART就添加10個UART,外設配置比較靈活,當然這些外設都是基于FPGA邏輯資源實現的,實際添加的數量會受限于FPGA芯片的邏輯資源大小。

下面以添加一組AXI GPIO和一組AXI UART為例,介紹如何使用ARM軟核來控制這兩個外設。

Xilinx官方提供的AXI GPIO外設具有以下特性:

  • 內部有兩個通道,通道1和通道2,每個通道最多支持32個管腳

  • 每個管腳可以配置成輸入或輸出模式

  • 每個管腳可以設置復位初值

  • 支持中斷輸出

提供的AXI UART外設有以下特性:

  • 全雙工

  • 支持5-8位數據位

  • 支持奇偶校驗

  • 可配置波特率110-230400

這里我們將GPIO配置成雙通道,通道1為輸出模式,低4位用于連接LED,通道2為輸入模式,低4位用于連接按鍵。

GPIO配置

UART配置成115200波特率,8位數據位,無奇偶校驗。

UART配置

配置完成之后,將它們連接的到互聯IP的主機接口上:

原理圖連接

這兩組IP的時鐘可以和處理器使用同樣的時鐘,復位可以使用復位IP輸出的外設復位信號。

關于AXI GPIO和AXI UART的詳細使用,可以查看官方文檔:

  • pg144-axi-gpio.pdf

    https://www.xilinx.com/support/documentation/ip_documentation/axi_gpio/v2_0/pg144-axi-gpio.pdf

  • pg142-axi-uartlite.pdf

    https://www.xilinx.com/support/documentation/ip_documentation/axi_uartlite/v2_0/pg142-axi-uartlite.pdf

5.6 SWD接口的引出

官方的DesignStart IP核資料中,除了Cortex-M3處理器,還有一個DAP-Link調試核,如果使用DAP-Link調試器需要添加這個IP核。

DAP-Link

這里我們不使用DAP-Link調試器,而是使用Jlink SWD模式。SWD模式一共需要兩根線,一個是SWCLK時鐘信號,一個是SWDIO雙向數據信號,處理器提供了3個管腳:SWDI,SWDO和SWDOEN,我們還需要實現一個雙向端口模塊。

基于IOBUF原語實現的雙向端口模塊,內容如下:

module?swdio_tri_buffer(//Inputsinput?swd_o,input?swd_oe,//Outputsoutput?swd_i,//Inoutsinout?swd_io );IOBUF?swd_iobuf_inst(.O(swd_i),.I(swd_o),.IO(swd_io),.T(!swd_oe) );endmodule

將它添加到我們的設計中。

SWD接口連接

最終的BlockDesign設計如下圖所示:

原理圖連接

5.7 分配外設基地址

添加完外設IP之后,我們還需要對外設進行基地址和空間分配,在地址編輯框,右鍵選擇自動分配。

基地址分配

分配完成之后,使用設計驗證(Validate Design)功能,可以檢查當前BlockDesign設計連接的合法性。

驗證設計

5.8 生成Wrapper并例化到頂層

為了方便后續添加自定義的FPGA邏輯模塊,我們將Cortex-M3軟核處理器作為一個處理器例化到頂層設計中。

在BlockDesign源文件上右鍵,先選擇Generate Output Products,耐心等待生成完成之后,選擇Create HDL Wrapper。

生成Wrapper

之后就會生成一個_wrapper的verilog文件。

新建頂層文件top_hdl.v并保存到rtl文件夾,將_wrapper例化到頂層。

module?top_hdl(//Inputsinput?clk,input?rst_n,input?swclk,input?uart_rxd,input?[3:0]?sw,//Outputsoutput?[3:0]?led,output?uart_txd,//Inoutsinout?swdio );cm3_core_wrapper?cm3_core_wrapper_ut0(//Inputs.cm3_clk(clk),.cm3_resetn(rst_n),.cm3_gpio_in_tri_i(sw[3:0]),.cm3_swclk(swclk),.cm3_uart_rxd(uart_rxd),//Outputs.cm3_gpio_out_tri_o(led[3:0]),.cm3_uart_txd(uart_txd),//Inouts.cm3_swdio(swdio) );endmodule???//top_hdl?end

5.9 管腳分配

綜合(Synthesis)完成之后,使用Vivado的圖形化工具進行管腳分配,尤其注意要將SWDIO和SWDCLK引出到排針管腳上,方便后續使用外接的Jlink調試器進行ARM程序下載。

分配管腳

或者直接新建XDC文件,使用約束語句進行管腳分配。

部分約束語句:

set_property?PACKAGE_PIN?R4?[get_ports?clk] set_property?PACKAGE_PIN?V13?[get_ports?swclk] set_property?PACKAGE_PIN?V14?[get_ports?swdio] set_property?PACKAGE_PIN?E14?[get_ports?uart_rxd] set_property?PACKAGE_PIN?D17?[get_ports?uart_txd] set_property?PACKAGE_PIN?U7?[get_ports?rst_n] set_property?PACKAGE_PIN?V9?[get_ports?{led[3]}] set_property?PACKAGE_PIN?Y8?[get_ports?{led[2]}] set_property?PACKAGE_PIN?Y7?[get_ports?{led[1]}] set_property?PACKAGE_PIN?W7?[get_ports?{led[0]}] set_property?PACKAGE_PIN?T4?[get_ports?{key[3]}] set_property?PACKAGE_PIN?T3?[get_ports?{key[2]}] set_property?PACKAGE_PIN?R6?[get_ports?{key[1]}] set_property?PACKAGE_PIN?T6?[get_ports?{key[0]}]

如果你的板子和我的(正點原子達芬奇Pro)一樣,那么可以直接使用以上管腳約束。

如果你分配的時鐘管腳不是FPGA的全局時鐘管腳,需要添加BUFG原語進行緩沖。

5.10 Bit流文件生成和下載

我的板子使用的是QSPI Flash,為了提高下載和啟動速度,在生成Bit流時,配置生成選項:數據壓縮、50M讀取速度,4位數據線。

生成Bit流配置

或者直接使用XDC語句進行約束:

set_property?BITSTREAM.GENERAL.COMPRESS?TRUE?[current_design] set_property?BITSTREAM.CONFIG.CONFIGRATE?50?[current_design] set_property?CONFIG_VOLTAGE?3.3?[current_design] set_property?CFGBVS?VCCO?[current_design] set_property?BITSTREAM.CONFIG.SPI_BUSWIDTH?4?[current_design]

以上約束不是必須的,只是為了提高下載和配置速度。

耐心等待工程綜合完成,生成Bit流文件,綜合的速度和處理器主頻、核心數有關。

和常規的FPGA下載方式一樣,將生成的軟核Bit文件通過Xilinx下載器下載到FPGA內部,先不要固化到外部SPI Flash 。

手頭沒有Xilinx下載器的,可以參考之前的文章,自己做一個JTAG-HS2下載器

開源、低成本的Xilinx FPGA下載器

5.11 Jlink連接測試

下載完成之后,現在FPGA內部運行的就是一顆基于ARM Cortex-M3的軟核處理器了,使用Jlink等調試工具可以連接到芯片。

將Jlink調試器的SWCLK和SWDIO連接到我們分配的管腳V13和V14上。

手頭沒有Jlink的,也可以參考之前的文章,自己做一個Jlink-OB

手把手教你制作Jlink-OB調試器

使用Keil開發DesignStart Cortex-M3軟核的程序,需要先安裝一個DesignStart專用的器件包。

下載地址如下:

https://keilpack.azureedge.net/pack/Keil.V2M-MPS2_DSx_BSP.1.1.0.pack

打開一個STM32 Keil工程,器件修改為剛剛安裝的ARM DS_CM3,在Option->Debug-Setting界面中選擇SWD方式,第一次連接會提示需要選擇一個器件,這里選擇Cortex-M3:

選擇器件型號

如果以上配置均正確,就能看到已經連接到的ARM Cortex-M3核心。如果沒有,說明FPGA工程配置有錯誤,需要確認是否和以上配置流程一致。

連接到ARM核心

至此,ARM Cortex-M3軟核基本搭建完成,接下來我們使用Keil來編寫ARM核的程序,實現GPIO和UART的控制。

6.Cortex-M3軟核程序設計

和常規的ARM Cortex-M3內核單片機開發流程類似,使用Keil新建工程,源文件,根據外設使用手冊,讀寫指定的寄存器實現GPIO的控制,UART數據寫入,編譯下載,調試。

在之前創建的cortex_m3_on_xc7a100t文件夾下,新建mdk_prj文件夾,用于保存Keil-MDK的工程,并新建以下3個文件夾:

application????????//用戶源文件 object????????????//編譯生成的文件 project????????????//Keil的工程文件

6.1 新建Keil工程

打開Keil-MDK,選擇Project->New Project,新建一個工程,命名為ds_cm3_prj,保存到project目錄下。

Keil工程目錄

器件型號選擇我們新安裝的ARM Cortex-M3 DS_CM3內核。

選擇器件型號

組件管理界面中,添加CMSIS內核文件和Startup啟動文件:

添加內核文件

并按照如下結構組織文件:

文件結構

6.2 設置RAM和ROM地址

在工程選項中設置片上ITCM的起始地址0x0、大小64K,片上DTCM起始地址0x20000000、大小64K:

RAM地址配置

起始地址來源于使用手冊中圖4-1系統內存地址映射,可以看到其中ITCM和DTCM的起始地址:

ITCM和DTCM起始地址

大小是我們在Cortex-M3內核配置中設置的大小:

ITCM和DTCM大小

設置完成之后,新建main.c文件,輸入以下內容,編譯工程,應該無錯誤輸出。

#include?"DS_CM3.h" #include?"system_DS_CM3.h"int?main(void) {while(1){} }

6.3 GPIO輸入輸出控制

通過查看AXI GPIO的使用手冊,通道1的數據寄存器偏移地址為0,通道2的數據寄存器偏移地址為0x08,根據Vivado中的連接,LED連接到通道1,按鍵連接到通道2上,所以只需要對這兩個寄存器地址進行讀寫,就可以實現LED的控制和撥碼開關狀態的讀取。

AXI GPIO寄存器定義

在Vivado地址分配界面,可以看到GPIO和UART的基地址分別為:0x4000_0000和0x4060_0000。

外設基地址

LEL控制和撥碼開關讀取:

*(volatile?uint32_t?*)?(0x40000000+0x0)?=?0x0f;????//GPIO通道1低4位寫1 *(volatile?uint32_t?*)?(0x40000000+0x0)?=?0x00;????//GPIO通道1低4位寫0uint32_t?sw?=?0; sw?=?*(uint32_t?*)?(0x40000000+0x08);????//獲取GPIO通道2的32位輸入狀態

6.4 串口數據發送和接收

向串口發送FIFO寫入一字節數據:

while((*(volatile?uint32_t?*)(0x40600000?+?0x08))?&?0x08?!=?0x08);????//等待發送FIFO不滿 *(volatile?uint32_t?*)?(0x40600000+0x04)?=?0x41;????//向串口發送FIFO寫入字符'A'=0x41

從串口接收一字節數據:

uint8_t?dat?=?0; if((*(volatile?uint32_t?*)(0x40600000?+?0x08))?&?0x01?==?1)????//串口接收FIFO中有數據dat?=?(*(volatile?uint32_t?*)(0x40600000?+?0x00));????????//從接收FIFO中讀取1字節數據。

關于AXI GPIO和AXI UART寄存器的詳細說明,可以查看官方文檔:

  • pg144-axi-gpio.pdf

    https://www.xilinx.com/support/documentation/ip_documentation/axi_gpio/v2_0/pg144-axi-gpio.pdf

  • pg142-axi-uartlite.pdf

    https://www.xilinx.com/support/documentation/ip_documentation/axi_uartlite/v2_0/pg142-axi-uartlite.pdf

6.5 延時函數實現

為了讓LED的變化,可以被人眼所看到,需要使用延時函數對亮滅進行延時。

使用系統滴答定時器實現一個延時函數:

volatile?uint32_t?cnt?=?0;????//volatile類型void?SysTick_Handler(void) {cnt++; }void?delay_ms(uint32_t?t) {cnt?=?0;while(cnt-t>0); }

為了讓延時函數準確延時,我們還需要更改工程中的系統時鐘頻率,和FPGA中配置的內核時鐘保持一致。

系統時鐘

完成的main.c文件內容:

#include?"DS_CM3.h" #include?"system_DS_CM3.h" //C庫 #include?<stdarg.h> #include?<string.h> #include?<stdio.h>#define?BASEADDR_LED?????0x40000000 #define?BASEADDR_UART?????0x40600000 #define?CHANNEL_LED?????1 #define?CHANNEL_SW???????2#define?XGPIO_CHAN_OFFSET?8 #define?XGpio_WriteReg(BaseAddress,?RegOffset,?Data)???Xil_Out32((BaseAddress)?+?(RegOffset),?(uint32_t)(Data)) #define?XGpio_ReadReg(BaseAddress,?RegOffset)?????????????XGpio_In32((BaseAddress)?+?(RegOffset))#define?XUL_TX_FIFO_OFFSET???????????4?????/*?transmit?FIFO,?write?only?*/ #define?XUL_STATUS_REG_OFFSET????????8?????/*?status?register,?read?only?*/ #define?XUL_SR_TX_FIFO_FULL??????????0x08??/*?transmit?FIFO?full?*/#define?XUartLite_GetStatusReg(BaseAddress)??????????XUartLite_ReadReg((BaseAddress),?XUL_STATUS_REG_OFFSET) #define?XUartLite_ReadReg(BaseAddress,?RegOffset)???XGpio_In32((BaseAddress)?+?(RegOffset))#define?XUartLite_IsTransmitFull(BaseAddress)?\((XUartLite_GetStatusReg((BaseAddress))?&?XUL_SR_TX_FIFO_FULL)?==?\XUL_SR_TX_FIFO_FULL)#define?XUartLite_WriteReg(BaseAddress,?RegOffset,?Data)??Xil_Out32((BaseAddress)?+?(RegOffset),?(uint32_t)(Data))volatile?uint32_t?cnt?=?0;void?SysTick_Handler(void) {cnt++; }void?delay_ms(uint32_t?t) {cnt?=?0;while(cnt-t>0); }uint32_t?XGpio_In32(uint32_t?Addr) {return?*(volatile?uint32_t?*)?Addr; }void?Xil_Out32(uint32_t?Addr,?uint32_t?Value) {volatile?uint32_t?*LocalAddr?=?(volatile?uint32_t?*)Addr;*LocalAddr?=?Value; }uint32_t?XGpio_DiscreteRead(uint32_t?Addr,?uint8_t?Channel) {return?XGpio_ReadReg(Addr,?(Channel-1)*XGPIO_CHAN_OFFSET); }void?XGpio_DiscreteWrite(uint32_t?Addr,?uint8_t?Channel,?uint32_t?Data) {XGpio_WriteReg(Addr,?(Channel-1)*XGPIO_CHAN_OFFSET,?Data); }void?XUartLite_SendByte(uint32_t?BaseAddress,?uint8_t?Data) {while?(XUartLite_IsTransmitFull(BaseAddress));XUartLite_WriteReg(BaseAddress,?XUL_TX_FIFO_OFFSET,?Data); }void?cm3_print(const?char?*ptr) {while?(*ptr?!=?(char)0)?{XUartLite_SendByte(BASEADDR_UART,?*ptr);ptr++;} }void?MyUartPrintf(char?*fmt,...) {unsigned?char?UsartPrintfBuf[296];va_list?ap;unsigned?char?*pStr?=?UsartPrintfBuf;va_start(ap,?fmt);vsnprintf((char?*)UsartPrintfBuf,?sizeof(UsartPrintfBuf),?(const?char?*)fmt,?ap);??????????????????????va_end(ap);while(*pStr?!=?0){XUartLite_SendByte(BASEADDR_UART,?*pStr);pStr++;} }void?led_blink(void) {XGpio_DiscreteWrite(BASEADDR_LED,?CHANNEL_LED,?0);delay_ms(500);XGpio_DiscreteWrite(BASEADDR_LED,?CHANNEL_LED,?0xf);delay_ms(500); }int?main(void) {uint32_t?sw?=?0;SystemCoreClockUpdate();SysTick_Config(SystemCoreClock/1000);cm3_print("Hello?DesignStart?ARM?Cortex-M3?on?FPGA?Xilnx?Artix-7?XC7A100T?\r\n");MyUartPrintf("SystemCoreClock?=?%ld\r\n",?SystemCoreClock);while(1){led_blink();sw?=?XGpio_DiscreteRead(BASEADDR_LED,?CHANNEL_SW);MyUartPrintf("key?state?=?%d-%d-%d-%d\r\n",?sw>>3,?sw>>2&1,?sw>>1&1,?sw&1);} }

實現的功能是,4顆LED每100ms閃爍一次,同時串口輸出此時撥碼開關的實時狀態。

編譯無誤后,就可以進行程序下載了。

6.6 Flash編程算法生成

使用Jlink下載程序需要指定Flash編程算法,但是Keil自帶的算法中并沒有我們所需要的:

下載算法

所以我們需要定制一份Flash編程算法,打開Keil安裝目錄下的\ARM\Flash文件夾,將_Template文件夾復制出一份,并命名為DS_CM3,

復制模板

打開其中的Keil工程:

下載算法

這個工程可以自己設置要編程的Flash起始地址、大小,擦除大小等。

FlashDev.c文件填入以下內容,和我們之前ITCM的配置保持一致,起始地址0x0,大小64K:

#include?"..\FlashOS.H"????????//?FlashOS?Structuresstruct?FlashDevice?const?FlashDevice??=??{FLASH_DRV_VERS,?????????????//?Driver?Version,?do?not?modify!"MyCM3onFPGA",??????????????//?Device?Name?ONCHIP,?????????????????????//?Device?Type0x00000000,?????????????????//?Device?Start?Address0x00010000,?????????????????//?修改為64KB1024,???????????????????????//?Programming?Page?Size0,??????????????????????????//?Reserved,?must?be?00xFF,???????????????????????//?Initial?Content?of?Erased?Memory100,????????????????????????//?Program?Page?Timeout?100?mSec3000,???????????????????????//?Erase?Sector?Timeout?3000?mSec//?Specify?Size?and?Address?of?Sectors0x010000,?0x000000,?????????//?只有一個扇區,起始地址為0SECTOR_END };

FlashPrg.c文件,實現一些存儲區擦除的函數:

#include?"..\FlashOS.H"????????//?FlashOS?Structures #include?"string.h"int?Init?(unsigned?long?adr,?unsigned?long?clk,?unsigned?long?fnc)?{return?(0);??????????????????????????????????//?Finished?without?Errors }int?UnInit?(unsigned?long?fnc)?{return?(0);??????????????????????????????????//?Finished?without?Errors }int?EraseChip?(void)?{memset((unsigned?char?*)0,?0,?0x10000);return?(0);??????????????????????????????????//?Finished?without?Errors }int?EraseSector?(unsigned?long?adr)?{memset((unsigned?char?*)adr,?0,?1024);return?(0);??????????????????????????????????//?Finished?without?Errors }int?ProgramPage?(unsigned?long?adr,?unsigned?long?sz,?unsigned?char?*buf)?{memcpy((unsigned?char?*)adr,?buf,?sz);return?(0);??????????????????????????????????//?Finished?without?Errors }編譯無誤后,會在工程目錄下生成一個FLM文件。新生成的下載算法

將它復制到上一級目錄:

新生成的下載算法

6.7 編譯下載運行

再打開我們的ARM核Keil工程,添加DS_CM3 Flash編程算法:

添加Flash編程算法

點擊下載按鈕,把ARM程序下載到ARM核:


可以看到LED每500ms閃爍一次,串口數據每1s輸出一次,同時按下按鍵,串口輸出按鍵的狀態。


和其他ARM內核芯片一樣,也是支持在線調試的:

43

由于ARM程序是下載到Cortex-M3軟核內的RAM存儲區,所以掉電后程序會丟失。如何將程序下載到片外的SPI Flash中,我還沒有成功實現。

-END-


往期推薦:點擊圖片即可跳轉閱讀

嵌入式與單片機之間的關系是什么?

考研還是工作?看完這個給你答案!

拆解飛機黑匣子,看看內部構造、PCB及芯片

19年三本畢業,做了三年的嵌入式軟件。

我是張巧龍,一名教電子的大學老師,歡迎關注!

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的用FPGA搭建一个STM32内核?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

精品免费久久久久 | 国产综合久久 | 亚州精品天堂中文字幕 | 成人中文字幕在线观看 | 欧美日韩一区久久 | 欧美日韩成人一区 | 人人精久| 日本久久综合视频 | 天天干天天干天天干天天干天天干天天干 | 国产黄大片在线观看 | 日韩成人黄色 | 在线成人小视频 | 在线国产99| 国产一级免费在线观看 | 人人爱人人做人人爽 | 99在线视频精品 | 欧美精品免费在线观看 | 91av手机在线观看 | 欧美二区在线播放 | 国产精品一区二区av影院萌芽 | 久久国产精品免费观看 | 一区二区中文字幕在线观看 | 久久9999久久免费精品国产 | 国产在线2020 | 国产亚洲精品久久久久久久久久久久 | 欧美精品一区二区三区四区在线 | 国产精品 日韩 欧美 | 色婷婷亚洲婷婷 | 中文字幕成人在线观看 | 超碰日韩 | 天堂av在线中文在线 | 久久久影院一区二区三区 | 久久综合九色综合久久久精品综合 | 国产99久久久国产 | 国产一级大片免费看 | 国产一区二区三精品久久久无广告 | 91丨九色丨蝌蚪丨老版 | 欧美男同视频网站 | 激情五月婷婷丁香 | 精品在线观看一区二区三区 | 五月香视频在线观看 | 国产高清av | 久久综合成人网 | 国产成人在线观看 | 美女免费视频网站 | 女人高潮特级毛片 | 免费成人看片 | 综合久久久久 | 在线免费精品视频 | 国产男女无遮挡猛进猛出在线观看 | 在线中文字母电影观看 | 国产精品一区二区你懂的 | www日韩| 日日夜夜综合网 | 国产精品久久久久一区二区 | 狠狠艹夜夜干 | 91精品1区2区 | 亚洲视频,欧洲视频 | 狠狠躁夜夜av| 精品亚洲二区 | 日韩伦理一区二区三区av在线 | 91精品综合在线观看 | 日本中文字幕在线看 | 欧美精品久久久久久久 | 极品中文字幕 | www.888av| 99色在线播放| 亚洲91精品在线观看 | a√天堂资源 | 日韩高清成人 | 日韩黄色一级电影 | 天天射天天做 | 欧美日韩三区二区 | 色瓜| 91视频88av | 日韩精品视频免费专区在线播放 | 国产精品久久视频 | 亚洲国产欧美一区二区三区丁香婷 | 6699私人影院| 国产精品不卡一区 | 亚洲一本视频 | 国产打女人屁股调教97 | 国产黄色大片 | 草久久精品 | 热久久视久久精品18亚洲精品 | 国外成人在线视频网站 | 在线成人免费电影 | 日韩免费一区 | 97视频免费观看 | 午夜狠狠操 | 五月天天天操 | 91mv.cool在线观看 | 国产 成人 久久 | 国产一二区在线观看 | 韩日三级在线 | 在线视频手机国产 | www.天天操 | 五月婷婷六月丁香在线观看 | 综合色亚洲| 91亚色视频在线观看 | 一区二区精品国产 | 久久精品久久久久电影 | 日韩欧美国产精品 | 国产又粗又硬又长又爽的视频 | 涩涩网站在线看 | 亚洲国产欧美在线人成大黄瓜 | 色综合亚洲精品激情狠狠 | 欧美国产高清 | 99热国内精品 | 9ⅰ精品久久久久久久久中文字幕 | 2019精品手机国产品在线 | 色欧美综合 | 91看片淫黄大片在线播放 | 国产成人久久精品77777综合 | 久久精选 | 色视频在线免费观看 | 国产精品男女啪啪 | 黄色免费av| 狠狠狠狠狠狠 | 欧洲一区二区在线观看 | 免费观看完整版无人区 | 91av九色| 亚洲精区二区三区四区麻豆 | 国产亚洲精品综合一区91 | 精品国产一区二区三区久久久 | 日本中文字幕高清 | 亚洲一区二区视频 | 国产精品久久麻豆 | 在线免费观看羞羞视频 | 久草精品在线 | 中文字幕永久 | 久久影院精品 | www好男人 | 日韩免费电影 | 美女在线观看av | 久久精品视频日本 | 菠萝菠萝蜜在线播放 | www蜜桃视频 | 国产一区视频在线观看免费 | 91精品国产综合久久婷婷香蕉 | 欧美日韩视频一区二区 | 97免费在线观看 | 精品一二三四五区 | 亚洲在线不卡 | 色中色资源站 | 天堂av在线网 | av免费成人 | 亚洲精品在线视频播放 | av片子在线观看 | 亚洲精品在线看 | 在线高清av | 在线观看日本高清mv视频 | 五月开心激情 | 国产一区二区三区免费视频 | 久久99精品久久久久久秒播蜜臀 | 久久女教师 | 成人动漫一区二区 | 中文av影院 | 粉嫩av一区二区三区四区五区 | 久久人人爽人人人人片 | 麻豆免费视频观看 | 97热视频 | 国产大尺度视频 | 国产99黄| 欧美狠狠操 | av网站手机在线观看 | 久久精品麻豆 | 婷婷色av | 96超碰在线 | 成片人卡1卡2卡3手机免费看 | 亚洲涩涩一区 | 国产999| 91中文字幕一区 | 亚洲黄色软件 | 毛片的网址 | 顶级欧美色妇4khd | 丝袜制服综合网 | www免费黄色| 成 人 黄 色 视频 免费观看 | 一级黄色免费网站 | 久久久久久久网 | 免费成人黄色片 | 永久免费精品视频 | 婷婷九九 | 午夜视频二区 | 91麻豆产精品久久久久久 | 精品国产一区二区三区久久久蜜月 | 婷婷视频在线播放 | av激情五月 | 成年人在线免费看视频 | 日韩专区视频 | 久久久久久中文字幕 | 天天综合人人 | 手机看片99 | 福利视频第一页 | 亚洲国产av精品毛片鲁大师 | 亚洲综合在线观看视频 | 九九在线视频 | 欧美精品亚洲精品日韩精品 | 天天操天天爽天天干 | 天天插天天爱 | 中文字幕日本在线观看 | 日韩视频免费播放 | 国产69精品久久久久久久久久 | 亚洲精品综合欧美二区变态 | 日韩超碰在线 | 欧美日韩久久 | 久久久免费看片 | 日韩成年视频 | 国产乱码精品一区二区蜜臀 | 亚洲综合成人专区片 | 免费黄色网址大全 | 国产一级免费在线 | 久久亚洲热 | 91精品一区二区在线观看 | 久久精品一区二区三区视频 | 国产成人一区二区三区免费看 | 欧美韩日精品 | www.狠狠| 亚洲丁香日韩 | 91九色网站| 天天添夜夜操 | 99精品在线免费观看 | 日韩精品一区二区在线观看 | 国产精品12| 天天综合色 | 精品久久久久国产免费第一页 | 91精品色| 五月综合色婷婷 | 日韩和的一区二在线 | 久久久免费精品国产一区二区 | 九九爱免费视频在线观看 | 国产91在线看 | 在线免费观看视频一区 | 综合久久2023 | 亚洲高清免费在线 | 99热九九这里只有精品10 | 色播五月激情五月 | 国产69久久精品成人看 | 免费av高清 | 久久永久免费视频 | 国产福利a | 久久精品视频网址 | 国产一区二区在线免费 | 99久久这里只有精品 | 日本免费久久高清视频 | 成 人 黄 色 视频播放1 | 国产免费黄视频在线观看 | 久久免费精彩视频 | 中文字幕在线观看资源 | 黄色小说18| 日韩精品一区二区三区电影 | 毛片网站免费在线观看 | 久久久久久久久久久免费视频 | 国内精品亚洲 | 欧美精品你懂的 | www.伊人网 | 麻豆视频免费入口 | 久久婷婷激情 | 99草视频| 色婷婷导航 | av先锋中文字幕 | 美女av免费看 | 欧美精品久久久久久久亚洲调教 | 久久国内免费视频 | 成人日批视频 | 国产高清99| 久久精品亚洲一区二区三区观看模式 | 亚洲一二区视频 | 亚洲网久久| 久久综合免费视频影院 | 日韩网站免费观看 | 欧美一进一出抽搐大尺度视频 | 日本韩国精品在线 | 狠狠色伊人亚洲综合网站色 | 欧美一级免费在线 | 一区二区三区电影 | 天天操天天操天天操天天操天天操天天操 | 91精品国产欧美一区二区成人 | 免费福利片2019潦草影视午夜 | 国产精品18久久久久久久 | 国产高清在线观看av | 久热香蕉视频 | 免费看的黄网站 | 丁香九月婷婷综合 | 国产亚洲精品久久久久久网站 | 日韩www在线 | 黄色特级一级片 | 成人午夜电影在线播放 | 国产精品成人a免费观看 | 精品国内自产拍在线观看视频 | www.久久com| av不卡免费看 | 色网站在线看 | 国产成人精品在线播放 | 一级特黄aaa大片在线观看 | 欧美精品一区在线发布 | 欧美人人| wwwwww国产| 中文字幕一二三区 | 亚洲五月激情 | 国内精品久久久久影院日本资源 | 亚洲美女免费精品视频在线观看 | 欧美精品免费一区二区 | 香蕉久久久久久av成人 | 99热精品国产一区二区在线观看 | 国产最新在线观看 | 夜夜躁狠狠躁日日躁视频黑人 | 91三级在线观看 | 国产精品久久久久9999 | 永久免费看av | 狠狠狠狠干 | 91久久精品一区二区三区 | 久草热视频 | 免费a级观看 | 亚洲国产欧美在线看片xxoo | www.久热| www.久久久.com | 性色av免费在线观看 | 国产精品久久久久一区二区三区共 | 国语精品久久 | 国产福利在线不卡 | 在线观看色网 | 综合久久影院 | 午夜999 | 91看片淫黄大片91 | 欧美精品国产综合久久 | 日韩午夜电影院 | 国产成人精品一二三区 | 免费福利视频导航 | 91桃花视频 | 在线观看中文字幕视频 | 激情丁香月 | 成年人在线观看 | 丁香花在线视频观看免费 | 激情视频免费在线观看 | 国产精品久久久久9999 | 又色又爽又黄 | 色噜噜日韩精品一区二区三区视频 | 欧美激情一区不卡 | 激情久久久久久久久久久久久久久久 | 精品黄色在线观看 | 青青网视频 | 一区二区三区四区久久 | 91视频中文字幕 | 国产色视频一区二区三区qq号 | 久久久99国产精品免费 | 精品一区二区av | 久久美女高清视频 | 婷婷在线网 | 91免费在线视频 | 天堂网av在线 | 黄色大片免费网站 | 中文字幕视频免费观看 | 日韩成人免费在线观看 | 天天操天天操 | 视频一区二区国产 | 成人在线观看你懂的 | 91综合色 | 狠狠干夜夜操 | 免费av网站观看 | 福利网址在线观看 | 福利视频第一页 | 国产成人精品免费在线观看 | 中文字幕在线观看国产 | 久久无码av一区二区三区电影网 | 国产一区二区免费在线观看 | 国产免费av一区二区三区 | 精品国产一区二区三区噜噜噜 | 黄网站www | 激情视频免费在线 | 九九九九色 | 久久精品国产一区二区 | 六月色婷| 久日视频 | 在线观看视频一区二区三区 | 成人国产精品电影 | 国产在线超碰 | 国产精品福利一区 | 日韩在线首页 | 天天插天天狠天天透 | 黄色av一级片 | 久草在线欧美 | 欧美日韩高清一区二区 国产亚洲免费看 | 国产一级淫片免费看 | 国产专区第一页 | 国产在线精品国自产拍影院 | 一区二区三区国 | 国产精品黑丝在线观看 | 中文字幕人成不卡一区 | 最新免费中文字幕 | 午夜精品久久 | 91一区二区三区在线观看 | 青青久草在线 | 婷婷综合网 | 99草在线视频| 久久精品99视频 | 人人爽久久涩噜噜噜网站 | 日日爽夜夜爽 | 欧美日韩国产免费视频 | 天天干,天天射,天天操,天天摸 | 911香蕉视频 | 欧美综合国产 | 久久久亚洲国产精品麻豆综合天堂 | 精品国产91亚洲一区二区三区www | 中文字幕日韩无 | 日韩中文字幕视频在线 | 精品特级毛片 | h动漫中文字幕 | 国产.精品.日韩.另类.中文.在线.播放 | 免费av网站在线看 | 黄色成人毛片 | 亚洲成人影音 | 天天操天天色天天射 | 美女激情影院 | 久久精品国产一区二区三区 | 欧美视频日韩 | 国产一级视屏 | 中文字幕丝袜制服 | 操操日| 亚洲精品视频大全 | 91在线操 | 日韩videos | 欧美日韩不卡在线观看 | 久久99精品波多结衣一区 | 亚洲三级在线免费观看 | 日韩理论影院 | 午夜视频在线观看一区二区 | 国产精品国产三级国产aⅴ9色 | 521色香蕉网站在线观看 | 懂色av一区二区三区蜜臀 | 国产毛片久久久 | 亚洲 欧美变态 另类 综合 | 国产成人精品aaa | 国产精品一区二区在线看 | 国产精品视频专区 | 黄色成品视频 | 久久免费电影网 | 国产伦精品一区二区三区四区视频 | 欧美日韩精品综合 | 精品一区二区综合 | av丝袜美腿| 国产成人一区二区三区电影 | 午夜精品久久久久99热app | 狠狠色狠狠色综合日日小说 | 国产精品一区二区免费视频 | 天天伊人狠狠 | 国产精品18久久久久久首页狼 | 久久久久久久久久影院 | 精品美女久久久久久免费 | 成人免费视频网站在线观看 | 久久亚洲福利 | 久久免费的视频 | av资源中文字幕 | 又黄又色又爽 | 亚洲视屏一区 | 成人av亚洲 | 国产成人精品一区二 | 免费观看完整版无人区 | 有码一区二区三区 | 网站在线观看你们懂的 | 亚洲专区 国产精品 | 婷婷在线网站 | 九色视频自拍 | 久久精品网站免费观看 | 99中文视频在线 | 成人午夜电影在线 | 青春草视频在线播放 | 香蕉网址| 91tv国产成人福利 | 日本精品视频在线观看 | 欧美孕交vivoestv另类 | 一区二区不卡高清 | 国产精品9999久久久久仙踪林 | 久久99国产精品二区护士 | 久久不卡免费视频 | 亚洲精品激情 | 婷婷5月激情5月 | 韩国精品在线观看 | 国产成人av片 | 久草免费在线 | 国产精品久久久久久久久毛片 | 欧美在线视频精品 | 日韩精品专区在线影院重磅 | 日韩专区 在线 | 色综合久久久久综合 | 在线观看91久久久久久 | 91在线看视频免费 | 国产精品初高中精品久久 | 一区二区三区在线观看免费 | 顶级欧美色妇4khd | 亚洲精品日韩在线观看 | 免费高清在线观看电视网站 | 色综合久久精品 | 久久精品亚洲综合专区 | 国产一区欧美在线 | 天天干天天操天天干 | 久久国产精品免费视频 | 亚洲一区黄色 | 91精品久久久久久粉嫩 | 色综合亚洲精品激情狠狠 | 精品国产成人在线 | 激情欧美丁香 | 天天鲁天天干天天射 | 国产一级二级在线观看 | 午夜在线观看影院 | 欧美一二三在线 | 免费涩涩网站 | 开心色激情网 | 日本久久91 | 国产精品免费大片视频 | www国产亚洲精品久久麻豆 | 国产一级在线免费观看 | 国产视频18 | 国产三级国产精品国产专区50 | 最新精品视频在线 | av一区二区三区在线播放 | 又粗又长又大又爽又黄少妇毛片 | 在线视频日韩精品 | 少妇搡bbb | 久久精品国产精品亚洲 | 国产999精品久久久久久麻豆 | 国产精品免费视频观看 | 国产成人三级三级三级97 | 视频一区二区视频 | 国产一级二级视频 | 亚洲 欧洲av | www视频免费在线观看 | 91传媒激情理伦片 | 日韩中文三级 | 日日夜夜狠狠 | 在线高清av| 免费日韩一区二区三区 | 成年人国产在线观看 | 久久久久久久久综合 | 91九色porny蝌蚪视频 | 国产精品久久久久久久久久久久 | 欧美电影黄色 | 91香蕉国产 | 在线亚洲免费视频 | 亚州av成人 | 国产精品一区二区三区四区在线观看 | 丝袜美女视频网站 | 九九日九九操 | 成人黄视频 | 国产黄色片在线免费观看 | 91九色在线观看 | 国产 一区二区三区 在线 | 国产精品破处视频 | 午夜狠狠干 | 麻豆精品国产传媒 | 国产精品综合av一区二区国产馆 | 成人在线视频观看 | 日日操天天操狠狠操 | 国产日韩欧美中文 | 麻豆播放| 国产一级片直播 | 在线三级播放 | 久久色亚洲 | 久久精品国产一区 | 精品理论片| 色综合亚洲精品激情狠狠 | 欧美日韩激情视频8区 | 色噜噜在线观看视频 | 国产aa免费视频 | 国产人成看黄久久久久久久久 | 黄色一级大片免费看 | 中文字幕.av.在线 | av在线播放不卡 | 在线观看麻豆av | 9797在线看片亚洲精品 | 亚洲精品欧美专区 | 久久综合综合久久综合 | 国产 中文 日韩 欧美 | 又黄又爽免费视频 | 视频在线精品 | 欧美午夜性 | 亚洲精品一区二区在线观看 | 国产精品不卡一区 | 免费福利视频网 | 免费午夜av | 午夜在线看 | 久久国产精品电影 | 亚洲精选99 | 亚洲国产精品成人精品 | 成人啪啪18免费游戏链接 | 国产精品成人aaaaa网站 | 亚洲精品久久视频 | 国产品久精国精产拍 | 在线高清av| 激情综合五月网 | 青草视频在线免费 | 久一久久 | 天天色天天爱天天射综合 | 久久久久免费精品视频 | 少妇高潮冒白浆 | 日韩免费在线观看网站 | 一区二区三区电影大全 | 婷婷五月色综合 | 丰满少妇一级片 | 欧美另类一二三四区 | 日韩中字在线 | 中文字幕一区二区三区乱码不卡 | 久久av伊人 | av三区在线 | 天天干夜夜操视频 | 欧美视频国产视频 | 国产精品美女久久久久久免费 | 国产精品久久久久久久久久久杏吧 | 最近中文字幕免费大全 | 五月天色站 | 久久a久久 | 欧美激情视频免费看 | 成年人在线观看视频免费 | 美女国产 | 国产在线97 | 国产精品99久久久久久宅男 | 黄网站a| 在线观看日韩专区 | 狠狠干成人综合网 | 日韩精品久久久久 | 国产一区二区久久精品 | 国产精品丝袜久久久久久久不卡 | 在线免费av观看 | 久久久久久久久久久久久久电影 | 欧美成人中文字幕 | 久久精品视频免费播放 | 久久99欧美 | 九九视频网站 | 国产高清免费 | 久久成人免费 | 1区2区视频 | 色婷婷狠狠五月综合天色拍 | 午夜成人免费电影 | 日本美女xx | 伊人夜夜 | 免费黄色小网站 | 久久综合精品国产一区二区三区 | 五月婷婷综合在线 | 日韩成人邪恶影片 | 国产日韩欧美在线观看视频 | 亚洲精品成人 | 免费视频久久久久久久 | 日韩精品免费在线观看视频 | 欧美日韩国产二区 | 日本精品一二区 | 久久免费视频网站 | 91精品国产91久久久久 | 97免费在线观看 | 亚洲精品小区久久久久久 | 国产精品久久久久久久久久久杏吧 | 91麻豆精品 | 开心激情网五月天 | 久久最新视频 | 日韩久久久久久久久久 | 日韩成人中文字幕 | 国产色区 | av软件在线观看 | 成人在线视频你懂的 | 天天干天天天天 | 中文字幕有码在线 | 久草在线一免费新视频 | 伊人宗合网 | 成人av在线观 | 日本特黄一级 | 五月天久久久久久 | 五月婷婷开心中文字幕 | 天天干天天做 | 日韩视频一| 在线看日韩 | 激情小说网站亚洲综合网 | 久久精品国产一区二区 | 日韩欧美精品在线 | 视频精品一区二区三区 | 国产高清免费在线播放 | 97精品国产97久久久久久春色 | 国产午夜精品免费一区二区三区视频 | 亚洲中字幕 | 人人插超碰 | 日韩欧美综合 | 免费看十八岁美女 | 久久精品屋| 天天综合在线观看 | 手机av片| 激情五月婷婷综合网 | 日韩精品在线观看av | 在线 视频 一区二区 | .国产精品成人自产拍在线观看6 | 精品国产一区二区三区免费 | 亚洲免费一级电影 | 久久精品免费看 | 亚洲精品一区二区久 | 日日麻批40分钟视频免费观看 | 国产一区二区免费在线观看 | 在线观看韩日电影免费 | 亚洲国产日韩av | 四虎国产精品免费观看视频优播 | 一级片视频免费观看 | 精精国产xxxx视频在线播放 | .精品久久久麻豆国产精品 亚洲va欧美 | 天天射天天射天天 | 免费看av片网站 | 在线观看视频免费播放 | 日韩精品中文字幕在线 | 天天爽天天做 | 欧美成人精品三级在线观看播放 | 国产精品99久久久久久人免费 | 久久久国产毛片 | 91久久爱热色涩涩 | 国产精品久久久久三级 | 99精品视频一区 | 国产成人精品一区二区在线观看 | 麻豆网站免费观看 | 在线国产中文字幕 | 免费在线播放av电影 | 日韩网站一区二区 | 亚洲一区二区三区毛片 | 国产精品欧美一区二区 | 亚洲欧洲一区二区在线观看 | 探花视频在线观看免费 | 欧美国产在线看 | 免费观看黄色12片一级视频 | 国产精品手机在线观看 | 亚洲国产网址 | 又黄又爽的视频在线观看网站 | 久久久久久久看片 | 9999精品 | 激情综合啪 | 免费看国产视频 | 成人黄色av网站 | 国产精品99久久久久久武松影视 | aⅴ视频在线 | 亚洲精品国产精品乱码在线观看 | 中文字幕在线观看视频一区 | 天天添夜夜操 | aaa黄色毛片 | 亚洲视频综合 | 国产二区av| 国产精品一区二区美女视频免费看 | 91视频首页| 色婷婷久久久 | 国产亚洲精品久久久久久久久久久久 | 日韩精品一区二区三区免费观看视频 | 久久高清免费 | 天天曰 | 精品国产精品国产偷麻豆 | 成人午夜影院在线观看 | 欧美视频日韩 | 人人干狠狠干 | 免费色视频网站 | japanese黑人亚洲人4k | 在线免费黄网站 | 日韩高清黄色 | 久久毛片网 | 久久人人爽爽人人爽人人片av | 久久国产精品免费视频 | 在线v片免费观看视频 | 久久精品国产亚洲精品2020 | 啪啪免费试看 | 日日日爽爽爽 | 成人黄色在线电影 | 美女网色 | 国内外成人在线 | 国产一区二区三区在线免费观看 | 在线亚洲日本 | 欧美久久久久久久久久 | 韩国av电影网 | 开心丁香婷婷深爱五月 | 欧美夫妻性生活电影 | 久热国产视频 | 午夜精品久久久久久久久久久 | 在线观看视频99 | 久久99影院 | 亚洲精品电影在线 | 中文字幕av免费在线观看 | 精品麻豆| 欧美精品久久久久久久 | 中文字幕a∨在线乱码免费看 | 99精品观看 | 黄色免费电影网站 | 亚洲国产精品500在线观看 | 欧美极品xxxx| 国产一区视频在线播放 | 亚洲精品看片 | 高清不卡一区二区在线 | 狠狠色综合网站久久久久久久 | 182午夜在线观看 | 亚洲专区欧美 | 久久社区视频 | 欧美一区二区日韩一区二区 | 国产在线综合视频 | 成人免费中文字幕 | 国产精美视频 | 久久婷婷久久 | 91精品91 | 91污在线观看 | 色婷婷av一区二 | 福利网址在线观看 | 婷婷丁香色 | 日韩高清观看 | 天天操网| 色综合天天狠天天透天天伊人 | 久久久www免费电影网 | 337p西西人体大胆瓣开下部 | 亚洲精品美女久久久久 | 久久国产免费视频 | 久久天天躁夜夜躁狠狠躁2022 | 亚洲国产97在线精品一区 | 四虎永久免费 | 91在线视频观看 | 黄色大片入口 | 中文字幕在线视频免费播放 | 日韩免费小视频 | 精品国产一区二区三区久久久蜜臀 | 天天干天天做天天操 | 久久久国产一区 | 国产精品99久久久精品 | 久久精品视频播放 | 久久亚洲影视 | 国产美女精品在线 | 午夜久久久久久久久久久 | 久久久久女教师免费一区 | 欧美疯狂性受xxxxx另类 | 丝袜美女视频网站 | 久久天天躁狠狠躁亚洲综合公司 | 在线欧美中文字幕 | 一区二区电影网 | 中文字幕在线观看免费高清电影 | 亚洲女裸体 | 欧美日韩国产一区二区三区在线观看 | 在线中文字母电影观看 | 超碰在线97国产 | 日韩在线免费视频观看 | 91最新视频在线观看 | 日韩欧美高清不卡 | 91精品系列 | 久久久久久美女 | 精品视频免费久久久看 | 不卡在线一区 | 成人a视频 | 国产精品国产三级国产aⅴ入口 | 97高清视频| 国产99久久久精品视频 | 精品国产理论 | 色综合久久精品 | 天天操天天操天天操天天操天天操天天操 | 亚洲人成在线观看 | 麻豆视频免费在线播放 | 亚洲精品av在线 | 婷婷久久国产 | 久草五月| 久草av在线播放 | 97超级碰碰碰视频在线观看 | 在线观看你懂的网站 | 色永久免费视频 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 久久午夜网 | 插婷婷| 亚洲精品理论 | 午夜的福利| 久久国产精品99久久久久 | 99精品久久只有精品 | 国产免费观看久久黄 | 福利久久久 | 日韩特级黄色片 | 亚洲第一区在线观看 | 99精品国产一区二区三区不卡 | 91成人在线免费观看 | 国产粉嫩在线观看 | 久草电影网 | 91久久精品一区二区二区 | 国产精品不卡视频 | 色先锋资源网 | 国产中出在线观看 | 日本精品一| 国产69精品久久久久99尤 | 国产精品99免视看9 国产精品毛片一区视频 | 黄色小视频在线观看免费 | 精品一区二区三区久久 | 久久99精品久久久久久清纯直播 | 午夜精品久久久久久 | 亚洲91视频 | 中国一区二区视频 | 日韩视频1区 | 美国av大片 | 久久高清免费视频 | 不卡电影免费在线播放一区 | 国产精品视频免费观看 | 国内视频一区二区 | 午夜黄色一级片 | 亚洲黄色免费在线 | 国产福利在线不卡 | 亚洲日日日 | 亚洲丁香日韩 | 国产香蕉久久 | 91精品久久久久久综合乱菊 | 在线网址你懂得 | 久久你懂的 | 国际精品网 | 国产精品theporn | 精品夜夜嗨av一区二区三区 | 深夜免费福利网站 | www夜夜操 | 一区二区精品在线视频 | 超碰av免费 | 人人爱人人做人人爽 | 国产四虎在线 | 日韩在线影视 | 精品播放| 日韩一二三区不卡 | 日韩网站在线播放 | 久久免费视频观看 | 国产手机视频在线观看 | 最新av观看 | 久久久精品国产免费观看同学 | 欧美极品久久 | 亚洲精品乱码白浆高清久久久久久 | 久久久久网站 | 五月天婷婷在线播放 | 欧美一区二区三区免费观看 | 91精品视频免费观看 | 久久精品小视频 | 国产二区电影 | 成人av手机在线 | 日韩黄色免费 | 日韩综合精品 | 草久视频在线 | 久久综合欧美精品亚洲一区 | 最近2019中文免费高清视频观看www99 | 六月婷婷久香在线视频 | 国产手机在线视频 | 在线成人免费 | 国产精品视频专区 | 天天操天天添 | 欧美日韩久久不卡 | 久久婷婷一区二区三区 | 天天躁日日躁狠狠躁av麻豆 | 亚洲精品在线观看不卡 | 久久久久久久电影 | 成人在线视频一区 | 亚洲黄色精品 | 狠狠色噜噜狠狠狠合久 | 成人a视频 | 丁香六月五月婷婷 | 国产午夜精品在线 | 免费观看的黄色片 | 日韩福利在线观看 | 日韩av免费观看网站 | 综合天堂av久久久久久久 | 欧美天天综合网 | 国产精品com | 99久久精品国产一区二区三区 | 亚洲影院国产 | 青青河边草免费直播 | 最新中文字幕在线资源 | 亚洲视频在线免费看 | 日韩性xxx | 国产一卡久久电影永久 | 国产精品男女啪啪 | 人人狠狠综合久久亚洲 | 最新国产中文字幕 | 欧美另类高清 | 国产美女视频 | 91精品国自产在线观看欧美 | 欧美一区二区三区四区夜夜大片 | 久久久久久久久黄色 | 国产精品嫩草影院123 | 伊人永久在线 | 在线观看av网站 | 丁香激情网| 久久在线一区 | 中文字幕在线不卡国产视频 | 午夜三级理论 | 黄色电影网站在线观看 | 特级西西人体444是什么意思 | 久热超碰 | 欧美精品小视频 | 免费a v观看| 欧美日韩成人 | 五月天综合激情网 | 97国产精品亚洲精品 | 亚洲高清视频一区二区三区 | 在线观看视频日韩 | 97视频在线播放 | 婷婷在线色 | 黄网av在线 | 久久久国产一区二区 | 狠狠久久综合 | 亚洲综合视频在线观看 | 麻豆一区二区 | 中文字幕日韩一区二区三区不卡 | 欧美一区二区三区四区夜夜大片 | 日本婷婷色 | 香蕉在线观看 | 黄色网www | 成人日批视频 | av免费观看网站 | 又黄又网站 |