實戰!基于MM32實現NORFLASH運行應用程序的過程解析

嵌入式ARM 2022-03-28 12:00


在項目開發之初,我們會根據設計需求來選擇符合要求的芯片。其中,RAM決定了程序運行時的內存大小,ROM決定了應用程序的存儲空間大小。但對于應用功能特別大的項目,MCU內部的FLASH(ROM)存儲空間就無法滿足要求了。這個時候就需要外擴程序存儲空間,而NOR FLASH就是其中一種解決方案。


文結合涉及到的技術點一一做了詳細介紹和說明,包含如下四大內容:


1. KEIL下載程序配置及說明
2. MM32實現跳轉到NOR FLASH運行程序
3. 基于MM32的NOR FLASH下載算法實現
4. MM32實現NOR FLASH應用程序編程,下載程序并運行



一、KEIL下載程序配置及說明


通過對項目工程的配置,在KEIL在編譯完工程后,會生成相應的HEX或BIN格式的程序燒錄文件,點擊Download下載按鍵后,會將燒錄文件燒錄到芯片中。


點擊Option for Target魔術棒按鍵,在彈出的Option for Target窗口中的Output選項卡中設置生成程序燒錄文件名,并勾選Create HEX file選項,如下圖所示:



如果需要同時再生成BIN格式的程序燒錄文件,我們可以在User選項卡中進行如下圖的配置:



接著,在Debug選項卡中選擇相應的調試下載工具。



在Utilities選項卡中配置下載設置(使用與Debug相同的工具進行下載程序),如下圖所示:



另外Utilities選項卡中,點擊Settings按鍵,在彈出的窗口中Flash Download選項卡中進行如下配置:



下載功能設置:包括擦出選擇、編程、校驗和下載完成后復位芯片并運行應用程序。


編程(下載)算法選擇:一般在創建工程選擇相應的芯片后,這邊的下載算法就默認了,如果沒有我們可以點擊ADD按鍵添加相對應的下載算法;下載算法列舉了描述、設備存儲空間大小、設備類型以及地址區間范圍。


編程(下載)算法在RAM中的位置:這個一般是默認的,START表示芯片RAM的起始地址,這個是由芯片決定的;SIZE表示最大支持的編程(下載)算法的程序空間大小,這個可以修改,但不得小于下載算法程序大小。


待這些都配置完成后,我們編譯工程代碼,無錯誤警告后,點擊Download下載按鍵,即可下載應用程序到芯片中。


那么,在點擊了Download按鍵后,那KEIL是如何將燒錄程序下載到芯片中去的呢?


簡單來說,就是KEIL軟件根據配置將編程(下載)算法加載到芯片指定的RAM空間去(這個空間就是上述的以START作為起始地址,SIZE大小的RAM空間),并運行下載算法,對下載文件進行解析,將需要寫入的數據通過下載算法寫到指定的存儲地址上,完成上述編程的過程。


二、MM32實現跳轉到NOR FLASH運行程序


MM32F3270系列MCU支持存儲控制器FSMC功能,可配置的靜態存儲器包括SRAM、NOR FLASH;另外還支持8080\6800接口,可以應用到LCD顯示上。


NOR FLASH之所以可以運行程序,主要是因為其內部地址/數據線是分開的,支持字節訪問,符合CPU指令譯碼執行的要求(NOR FLASH上儲存了指令代碼,MCU給NOR FLASH一個地址,NOR FLASH就向MCU返回相應地址上的數據,讓MCU執行,中間不需要額外的處理操作)。


那通過上述的描述,使用MM32實現跳轉到NOR FLASH運行程序,我們就只需要在基于MM32內部FLASH運行的基礎上實現NOR FLASH與MCU之間的FSMC初始化配置,以及程序跳轉這兩個操作步驟,具體參考代碼如下所示:


FSMC初始化配置:


/*******************************************************************************
* [url=home.php?mod=space&uid=288409]@file[/url] NOR.c
* [url=home.php?mod=space&uid=187600]@author[/url] King
* [url=home.php?mod=space&uid=895143]@version[/url] V1.00
* [url=home.php?mod=space&uid=212281]@date[/url] 25-Jan-2021
* [url=home.php?mod=space&uid=247401]@brief[/url] ......
*******************************************************************************/




/* Define to prevent recursive inclusion -------------------------------------*/
#define __NOR_C__




/* Includes ------------------------------------------------------------------*/
#include "NOR.h"




/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/




/* Exported variables --------------------------------------------------------*/
/* Exported function prototypes ----------------------------------------------*/




/*******************************************************************************
* @brief
* @param
* @retval
* [url=home.php?mod=space&uid=93590]@Attention[/url]
*******************************************************************************/
void NOR_InitGPIO(void)
{
GPIO_InitTypeDef GPIO_InitStructure;


RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD | RCC_AHBPeriph_GPIOE |
RCC_AHBPeriph_GPIOF | RCC_AHBPeriph_GPIOG , ENABLE);


GPIO_PinAFConfig(GPIOD, GPIO_PinSource14, GPIO_AF_12); /* FSMC_D0 */
GPIO_PinAFConfig(GPIOD, GPIO_PinSource15, GPIO_AF_12); /* FSMC_D1 */
GPIO_PinAFConfig(GPIOD, GPIO_PinSource0, GPIO_AF_12); /* FSMC_D2 */
GPIO_PinAFConfig(GPIOD, GPIO_PinSource1, GPIO_AF_12); /* FSMC_D3 */
GPIO_PinAFConfig(GPIOE, GPIO_PinSource7, GPIO_AF_12); /* FSMC_D4 */
GPIO_PinAFConfig(GPIOE, GPIO_PinSource8, GPIO_AF_12); /* FSMC_D5 */
GPIO_PinAFConfig(GPIOE, GPIO_PinSource9, GPIO_AF_12); /* FSMC_D6 */
GPIO_PinAFConfig(GPIOE, GPIO_PinSource10, GPIO_AF_12); /* FSMC_D7 */
GPIO_PinAFConfig(GPIOE, GPIO_PinSource11, GPIO_AF_12); /* FSMC_D8 */
GPIO_PinAFConfig(GPIOE, GPIO_PinSource12, GPIO_AF_12); /* FSMC_D9 */
GPIO_PinAFConfig(GPIOE, GPIO_PinSource13, GPIO_AF_12); /* FSMC_D10 */
GPIO_PinAFConfig(GPIOE, GPIO_PinSource14, GPIO_AF_12); /* FSMC_D11 */
GPIO_PinAFConfig(GPIOE, GPIO_PinSource15, GPIO_AF_12); /* FSMC_D12 */
GPIO_PinAFConfig(GPIOD, GPIO_PinSource8, GPIO_AF_12); /* FSMC_D13 */
GPIO_PinAFConfig(GPIOD, GPIO_PinSource9, GPIO_AF_12); /* FSMC_D14 */
GPIO_PinAFConfig(GPIOD, GPIO_PinSource10, GPIO_AF_12); /* FSMC_D15 */


GPIO_PinAFConfig(GPIOF, GPIO_PinSource0, GPIO_AF_12); /* FSMC_A0 */
GPIO_PinAFConfig(GPIOF, GPIO_PinSource1, GPIO_AF_12); /* FSMC_A1 */
GPIO_PinAFConfig(GPIOF, GPIO_PinSource2, GPIO_AF_12); /* FSMC_A2 */
GPIO_PinAFConfig(GPIOF, GPIO_PinSource3, GPIO_AF_12); /* FSMC_A3 */
GPIO_PinAFConfig(GPIOF, GPIO_PinSource4, GPIO_AF_12); /* FSMC_A4 */
GPIO_PinAFConfig(GPIOF, GPIO_PinSource5, GPIO_AF_12); /* FSMC_A5 */


GPIO_PinAFConfig(GPIOF, GPIO_PinSource12, GPIO_AF_12); /* FSMC_A6 */
GPIO_PinAFConfig(GPIOF, GPIO_PinSource13, GPIO_AF_12); /* FSMC_A7 */
GPIO_PinAFConfig(GPIOF, GPIO_PinSource14, GPIO_AF_12); /* FSMC_A8 */
GPIO_PinAFConfig(GPIOF, GPIO_PinSource15, GPIO_AF_12); /* FSMC_A9 */


GPIO_PinAFConfig(GPIOG, GPIO_PinSource0, GPIO_AF_12); /* FSMC_A10 */
GPIO_PinAFConfig(GPIOG, GPIO_PinSource1, GPIO_AF_12); /* FSMC_A11 */
GPIO_PinAFConfig(GPIOG, GPIO_PinSource2, GPIO_AF_12); /* FSMC_A12 */
GPIO_PinAFConfig(GPIOG, GPIO_PinSource3, GPIO_AF_12); /* FSMC_A13 */
GPIO_PinAFConfig(GPIOG, GPIO_PinSource4, GPIO_AF_12); /* FSMC_A14 */
GPIO_PinAFConfig(GPIOG, GPIO_PinSource5, GPIO_AF_12); /* FSMC_A15 */


GPIO_PinAFConfig(GPIOD, GPIO_PinSource11, GPIO_AF_12); /* FSMC_A16 */
GPIO_PinAFConfig(GPIOD, GPIO_PinSource12, GPIO_AF_12); /* FSMC_A17 */
GPIO_PinAFConfig(GPIOD, GPIO_PinSource13, GPIO_AF_12); /* FSMC_A18 */


GPIO_PinAFConfig(GPIOE, GPIO_PinSource3, GPIO_AF_12); /* FSMC_A19 */
GPIO_PinAFConfig(GPIOE, GPIO_PinSource4, GPIO_AF_12); /* FSMC_A20 */
GPIO_PinAFConfig(GPIOE, GPIO_PinSource5, GPIO_AF_12); /* FSMC_A21 */
GPIO_PinAFConfig(GPIOE, GPIO_PinSource6, GPIO_AF_12); /* FSMC_A22 */


GPIO_PinAFConfig(GPIOD, GPIO_PinSource4, GPIO_AF_12); /* FSMC_NOE */
GPIO_PinAFConfig(GPIOD, GPIO_PinSource5, GPIO_AF_12); /* FSMC_NWE */
GPIO_PinAFConfig(GPIOD, GPIO_PinSource6, GPIO_AF_12); /* FSMC_NWAIT*/
GPIO_PinAFConfig(GPIOG, GPIO_PinSource9, GPIO_AF_12); /* FSMC_NE2 */


/* D00 - D01 */
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_14 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOD, &GPIO_InitStructure);


/* D02 - D03 */
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOD, &GPIO_InitStructure);


/* D04 - D12 */
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7 | GPIO_Pin_8 | GPIO_Pin_9 |
GPIO_Pin_10 | GPIO_Pin_11 | GPIO_Pin_12 |
GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOE, &GPIO_InitStructure);


/* D13 - D15 */
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOD, &GPIO_InitStructure);


/* A00 - A05 */
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 |
GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOF, &GPIO_InitStructure);


/* A06 - A09 */
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12 | GPIO_Pin_13 |
GPIO_Pin_14 | GPIO_Pin_15;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOF, &GPIO_InitStructure);


/* A10 - A15 */
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 |
GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOG, &GPIO_InitStructure);


/* A16 - A18 */
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11 | GPIO_Pin_12 | GPIO_Pin_13;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOD, &GPIO_InitStructure);


/* A19 - A22 */
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3 | GPIO_Pin_4 |
GPIO_Pin_5 | GPIO_Pin_6;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOE, &GPIO_InitStructure);


/* NOE(PD4) NWE(PD5) configuration */
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4 | GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOD, &GPIO_InitStructure);


/* NWAIT(PD6) configuration */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
GPIO_Init(GPIOD, &GPIO_InitStructure);


/* NE2(PG9) configuration */
GPIO_StructInit(&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
GPIO_Init(GPIOG, &GPIO_InitStructure);
}




/*******************************************************************************
* @brief
* @param
* @retval
* @attention
*******************************************************************************/
void NOR_InitFSMC(void)
{
FSMC_InitTypeDef FSMC_InitStructure;
FSMC_NORSRAM_Bank_InitTypeDef FSMC_BankInitStructure;


RCC_AHB3PeriphClockCmd(RCC_AHB3ENR_FSMC, ENABLE);


FSMC_NORSRAM_BankStructInit(&FSMC_BankInitStructure);
FSMC_BankInitStructure.FSMC_SMReadPipe = 0;
FSMC_BankInitStructure.FSMC_ReadyMode = 0;
FSMC_BankInitStructure.FSMC_WritePeriod = 5; /* W:WE Pulse Width : [0, 63] */
FSMC_BankInitStructure.FSMC_WriteHoldTime = 3; /* W:Address/Data Hold Time : [0, 3] */
FSMC_BankInitStructure.FSMC_AddrSetTime = 3; /* W:Address Setup Time : [0, 3] */
FSMC_BankInitStructure.FSMC_ReadPeriod = 8; /* R:Read Cycle Time : [0, 63] */
FSMC_BankInitStructure.FSMC_DataWidth = FSMC_DataWidth_16bits;
FSMC_NORSRAM_Bank_Init(&FSMC_BankInitStructure, FSMC_NORSRAM_BANK1);


FSMC_NORSRAMStructInit(&FSMC_InitStructure);
FSMC_InitStructure.FSMC_Mode = FSMC_Mode_NorFlash;
FSMC_InitStructure.FSMC_TimingRegSelect = FSMC_TimingRegSelect_1;
FSMC_InitStructure.FSMC_MemSize = FSMC_MemSize_64MB;
FSMC_InitStructure.FSMC_MemType = FSMC_MemType_FLASH;
FSMC_InitStructure.FSMC_AddrDataMode = FSMC_AddrDataDeMUX;
FSMC_NORSRAMInit(&FSMC_InitStructure);
}




/*******************************************************************************
* @brief
* @param
* @retval
* @attention
*******************************************************************************/
void NOR_Init(void)
{
NOR_InitGPIO();


NOR_InitFSMC();
}




/******************* (C) COPYRIGHT 2022 *************************END OF FILE***/



程序跳轉代碼:


/*******************************************************************************
* @file main.c
* @author King
* @version V1.00
* @date 25-Jan-2021
* @brief ......
*******************************************************************************/




/* Define to prevent recursive inclusion -------------------------------------*/
#define __MAIN_C__




/* Includes ------------------------------------------------------------------*/
#include "main.h"




/* Private typedef -----------------------------------------------------------*/
typedef void (*pFunction)(void);




/* Private define ------------------------------------------------------------*/
#define ApplicationAddress ((uint32_t)0x64000000)




/* Private macro -------------------------------------------------------------*/




/* Private variables ---------------------------------------------------------*/
uint32_t JumpAddress = 0;
pFunction JumpToApplication;




/* Private function prototypes -----------------------------------------------*/
/* Private functions ---------------------------------------------------------*/




/* Exported variables --------------------------------------------------------*/
/* Exported function prototypes ----------------------------------------------*/




/*******************************************************************************
* @brief
* @param
* @retval
* @attention
*******************************************************************************/
int main(void)
{
NOR_Init();


/* Jump to code loaded in NOR memory and execute it ***********************/
JumpAddress = *(volatile uint32_t *)(ApplicationAddress + 4);
JumpToApplication = (pFunction)JumpAddress;


/* Initialize user application's Stack Pointer */
__set_MSP(*(volatile uint32_t *)ApplicationAddress);
JumpToApplication();


while(1);
}




/******************* (C) COPYRIGHT 2022 *************************END OF FILE***/



KEIL工程的相關配置:




三、基于MM32的NOR FLASH下載算法實現


在能夠成功跳轉到NOR FLASH運行程序后,我們就需要將應用程序下載到NOR FLASH就可以了。


結合第一小結,一般MCU自帶的下載算法只是將程序下載到自身內部的FLASH存儲空間,如果需要將程序下載到外擴的NOR FLASH,我們可以使用燒錄工具,將程序燒錄進NOR FLASH。但在開發調試過程中,這顯然不太方便,所以我們就需要自行編寫下載算法,來實現MM32與NOR FLASH之間的程序編程。


應該怎么去編寫這個下載算法呢?


首先,在KEIL的安裝路徑下:C:\Keil_v5\ARM\Flash有一個_Template的下載算法工程模板,我們將其直接拷貝一份,重命名為MM32F3270_NOR_FLM;打開KEIL工程,里面主要有兩個文件FlashDev.c和FlashPrg.c


FlashDev.c主要是用來描述存儲特性的,包括Device Name、Device Type、Device Start Address、Device Size in Bytes等等,這些特性的值,我們可以根據NOR FLASH的特性值來填寫,編程超時時間和擦出超時時間可以盡量長一些,做些冗余,具體參考如下所示:



FlashPrg.c就是用來實現編程下載算法的接口函數,其中有些函數是必須實現的,有些函數則是可選擇的,如下所示:



我們需要實現的就是通過對這些函數的補充實現,來達到NOR FLASH的讀寫操作,實現將程序下載到NOR FLASH。


在第一小節,我們知道下載算法是需要先加載到RAM中運行,再去進行編程操作的,對于這個加載到RAM空間的下載算法程序空間大小其實是有大小限制有,根據每個芯片的RAM大小而定,但最大也不能超過0x10000。


所以,我們在實現自己定義的下載算法的時候就尤其需要注意,盡量的不去使用庫函數,以使用寄存器或者是直接操作芯片內部地址最佳,這樣可以最大程序的節省程序空間。


不過,這也會使代碼的閱讀理解變得有些困難。因為下載算法運行的程序不能夠實現的在線調試,所以對于NOR FLASH操作的這些函數功能,最好在其它工程上先進行驗證,確認功能正常后,再移植到下載算法的工程當中來。


接下來,就是點擊KEIL工程魔術棒按鍵對工程進行設置。在Target選項卡中選擇芯片型號為MM32F3277G9P,在C/C++選項卡中根據需要進行宏定義(因為這個下載算法,支持多個NOR FLASH,所以我這邊有相應的宏定義),在添加好NOR FLASH的相關函數,并補全接口函數后,進行編譯。


此時工程目錄中就會生成一個FLM文件(因為在User選項卡中有一個命令:cmd.exe /C copy "Objects\%L" ".\@L.FLM",它會將編譯后的文件轉換成FLM格式)





我們將這個生成的FLM下載算法文件拷貝到C:\Keil_v5\ARM\Flash目錄下,在后面工程使用到的時候就可以添加進來了。


四、MM32實現NOR FLASH應用程序編程,下載程序并運行


對于運行在NOR FLASH中的MM32程序來說,程序編寫并沒有特殊的要求,唯一不同的就是對于KEIL工程的設置。例程中,我們只實現了LED燈的閃爍功能,功能比較簡單。對于KEIL工程的設置,如下圖所示:


將默認的程序空間和程序啟動空間設置為NOR FLASH的起始地址作為開始:



根據DEBUG調試工具進行對應的選擇:



下載工具與調試工具相同:



將編程(下載)算法選擇為第三小節生成的FLM算法,在添加進來的時候,就會自動顯示相應的描述信息:



這樣配置完成后,編譯后點擊下載按鍵,程序就被下載到NOR FLASH外部存儲空間了。因為勾選了RESET AND RUN,下載完成后會復位MCU,此時MCU FLASH中已經存在了跳轉程序,這個時候就會跳轉到NOR FLASH執行LED閃爍程序。此時LED燈若能夠正常運行,就說明程序功能已經正常運行了。


另外,有些小伙伴可能會問,在Option for Target窗口Utilities選項卡中,有看到Init File會配置一個INI文件,我上述的工程配置中卻沒有,這是怎么回事呢?


這邊的INI文件包含的是對MCU內部地址配置相應參數值的數據,是在下載程序前先對MCU進行設置的操作。一般看到的就是對MCU與NOR FLASH的FSMC相關寄存器進行配置,好讓下載算法能夠正常的去操作NOR FLASH。但我的配置截圖中卻沒有,是因為在實現下載算法時的INIT函數,已經實現了對FSMC的初始化配置,所以在INIT FILE的位置就不需要再重復操作了。


五、后續


有了這個下載算法,我們可以將部分程序或數據指令到外部存儲空間;如果當我們通過LCD顯示圖片數據時,圖片數據是一個很大的數組,我們就可以將這些數據指定到NOR FLASH中,而應用程序還是在MCU內部的FLASH中運行,操作如下圖所示:


芯片有兩個ROM空間,但默認的和啟動的為MCU內部FLASH:



下載算法有兩個,這兩個的地址是不一樣的,一個是MCU內部FLASH,一個是外擴的NOR FLASH:



將程序指定到NOR FLASH的方法,右擊.C文件,選擇Options for File?”IMAGE1.c”...



在彈出的窗口中將CODE/CONST指令到ROM1,如下圖所示:



然后在程序中再調用IMAGE1.c文件中的數據,這樣在編譯后下載程序的時候,會先下載程序到MCU的FLASH,再下載圖片數據到MCU擴展的NOR FLASH。



本文中的硬件是基本神舟III開發板實現的,MCU使用的是靈動微電子的MM32F3277G9P,NOR FLASH使用的是M29W128FH。


至此分享就結束了,希望能對各位小伙伴有所幫助!另外,如果有需要查看原圖和代碼的小伙伴,請點擊底部“閱讀原文”進行下載。


END

作者:xld0932
來源:21ic論壇

版權歸原作者所有,如有侵權,請聯系刪除。

推薦閱讀
為什么俄羅斯不擔心芯片禁運?
C語言中比goto還“霸道”的跳轉方式
高手常用的3個開源庫,讓單片機開發事半功倍!

→點關注,不迷路←
嵌入式ARM 關注這個時代最火的嵌入式ARM,你想知道的都在這里。
評論
  • 在EMC測試過程中,傳導發射(Conducted Emission,CE)超標是工程師最常遇到的問題之一。更令人頭疼的是,同樣的超標曲線背后,可能對應著完全不同的干擾機理:有的是差模噪聲沿電源回路傳播,有的是共模電流通過寄生路徑耦合,還有些問題甚至并非來自電源本身,而是負載、電纜布局或接地結構引起的連鎖反應。 · 150kHz~1MHz 超標:多為差模噪聲為主,干擾沿火線-零線回路傳輸。 · 1MHz~30MHz 超標:通常共模噪聲占主導,干擾通過火線/零線對地回路傳播。 如果條件允許,用電流探
    譽磁電磁兼容EMC 2026-07-31 18:45 501瀏覽
  • 在前六期中,我們已經分別討論了 CRA 的適用范圍、整體影響、漏洞通報義務、風險評估與技術文檔證據鏈、第三方組件與 SBOM 供應鏈治理,以及產品上市后的支持期、安全更新、用戶說明和終止支持管理。到這里,企業已經能夠回答幾個核心問題:產品是否落入 CRA 適用范圍,產品由哪些組件構成,企業如何證明自己在設計、開發和上市前采取了必要的安全措施,以及產品上市后如何持續維護和安全下線。但對于真正準備落地 CRA 合規的企業來說,還有一個更現實的問題:CRA 的法規條文相對原則化,企業應當如何把“網絡安
    虹科云科技 2026-08-03 16:51 145822瀏覽
  •                                                                        
    廣州鐵金剛 2026-08-06 17:44 97035瀏覽
  • 文:杜杰編輯:侯煜當地時間7月28日,美國特朗普政府落地最新科技封鎖政策,美國聯邦通信委員會(FCC)正式更新《受管制清單》,新增兩大類設備——境外生產的先進機器人設備、境外生產的聯網電力逆變器。FCC在官方情況說明書中明確,該類境外制造產品,“會對美國國家安全或美國民眾的人身安全構成無法承受的風險”。本次新規設置明確豁免機制:經美國國防部(DoW)、電力逆變器品類經美國國土安全部(DHS)審核并授予“有條件批準”,認定對應設備品類不存在重大安全風險,即可獲得準入豁免。同時政策嚴格執行新老劃斷原
    華爾街科技眼 2026-08-03 21:28 324瀏覽
  • ?摘要:低價大流量卡正全面退市,政策收緊已成定局。面對傳統號卡的不確定性,隨身WiFi憑借穩定連接、多設備共享、獨立設備和靈活套餐等優勢,成為務實可靠的備選方案。1、流量卡黃金時代要結束了通信行業正迎來一場前所未有的“地震式”調整——曾讓無數用戶追捧的低價大流量卡,正在全速退出各大平臺。這早已不是一次普通的競合,而是一場趨勢性的行業洗牌。回望過去,19元200G的神卡,那時真是“睡著都能笑醒”,便宜到不敢相信,爽到忍不住炫耀。那些日子,好像隨便刷、隨便看,流量自由觸手可及。可如今,回頭再看,那種
    愛上電路設計 2026-08-03 10:21 128862瀏覽
  • 摘要在防爆電氣設計中,只參照芯數選型而忽略額定載流量,長期滿負荷運行會出現插頭發熱、接觸面氧化、IP67 密封受熱老化等問題。結合常用 3 針 3 孔、4 芯、5PIN、8PIN 圓形防爆連接器,制作分級電流參數對照表,區分冷壓免焊接、焊接兩種接線結構的安全載流數值,設置合理電流冗余系數,搭配使用環境修正參數,規范防爆接近開關連接器、防爆法蘭插座的選型計算方式。關鍵詞圓形防爆連接器,載流參數表,防爆法蘭插座,防爆端子接頭,IP67 防爆防水接插件1 產品概述圓形防爆連接器觸點載流能力由插針直徑、
    kyfbest科迎法電氣 2026-08-03 09:18 128638瀏覽
  • 做藍牙音箱的工程師大概都碰過這個局面。產品要連手機放歌,要本地播開機提示音和按鍵音,還要接 App 做配網和狀態上報。三件事拆開,早先的常規做法是音頻藍牙一顆料、數傳藍牙一顆料、本地播放再掛一顆小 MCU 加一片 Flash。板子越畫越大,BOM 越算越貴,待機電流和固件工作量也跟著漲。WT2605C 出來以后,這套需求可以集成到一顆芯片,就是 WT2605C-32N,該芯片采用QFN32 封裝,4×4 毫米,把音頻藍牙、BLE 數傳和 MP3 本地播放三樣全包了。對藍牙音箱來說,最實在的好處就
    唯創知音語音芯片 2026-08-06 15:14 267瀏覽
  • 產品使用18V供電,配套4串鋰離子電池,需要設計一個充電器。因為輸入18V,電池最高 16.8V,壓差僅 1.2V。因為壓差太小。使用開關型的充電控制芯片不穩定。嘗試自行設計一個。整體采用分立三極管 + TL431架構,分4個功能單元:使能控制回路、限流環路、TL431 精密恒壓反饋環路、PNP 功率管主功率輸出回路;實現完整鋰電池充電邏輯。使能控制回路按鍵按下:5V 電壓經 R12 (2kΩ) 送入 NPN 管 Q3 基極,Q3 飽和導通,對地拉低 R1、R2 組成的分壓控制節點電位;該節點直
    southcreek 2026-08-07 13:45 312瀏覽
  • 導語在現代高速數字電路設計中,信號的完整性已不僅是理想波形推演,而是一場與物理非理想特性正面博弈的工程實踐。濾波器芯片作為凈化傳輸鏈路的關鍵屏障,其核心挑戰在于:能否有效識別并濾除那些隱匿在電平跳變過程中的亞納秒級瞬態脈沖干擾,這類干擾持續極短,卻足以在高速鏈路中引發誤觸發。然而,傳統函數發生器受限于采樣率與邊沿速率,根本無法忠實復現如此狹窄且陡峭的異常波形。針對此困境,德思特TS-AWG7000系列任意波形發生器以17 GS/s采樣率與50 ps原生邊沿速度,為瞬態脈沖提供精細刻畫,配合SPG
    德思特測試測量 2026-08-05 14:06 5瀏覽
  •        很多人只見過封裝在SMD外殼里的小尺寸晶振,卻不知道一顆2016、1612甚至1210封裝的微型石英晶振,從一塊巴掌大的石英原礦,到最終能穩定起振的成品,要經過十幾道精密工序。它內部的石英晶片厚度最薄不到20微米,比普通A4紙的1/5還薄,整個生產過程里哪怕0.1微米的誤差,都會直接廢掉整批產品,這也是小尺寸晶振過去長期依賴進口,國內廠商花了十幾年才啃下量產硬骨頭的核心原因。1. 原石定向切割:0.01度的角度誤差都不能有小尺寸晶振的第一步,
    TKD泰晶科技 2026-08-07 08:43 368瀏覽
  • 在物聯網從“萬物互聯”邁向“萬物智聯”的進程中,LTE Cat.1憑借其在速率、成本與網絡覆蓋之間的完美平衡,正成為中低速物聯網市場的絕對主力。隨著2G/3G網絡的逐步退網以及新國標對終端設備智能化、定位功能的強制要求,Cat.1模組迎來了爆發式的增長窗口。在這一關鍵節點,基于華為海思Hi2131芯片設計的LTE Cat.1模組,憑借其在能效、射頻、架構及物理規格上的底層創新,成功打破了“高性能必高功耗”的傳統魔咒,為行業提供了極具競爭力的連接最優解。核心技術優勢:重塑Cat.1能效與連接標桿海
    用戶1778981989717 2026-08-05 21:04 166瀏覽
我要評論
0
點擊右上角,分享到朋友圈 我知道啦
請使用瀏覽器分享功能 我知道啦
主站蜘蛛池模板: 亲爱的完整版免费观看| 辣妈俏爸1| 博主:李铁被抓后什么都招了| 罗马的房子在线观看| 北上电视剧13| 肯德桑德兰满天星免费| 看看屋在线| 厕所女神下载| 斗罗大陆106集| 《女性瘾者》| 国宝奇旅电视剧| 《年经继拇2》 | 银魂119| 宄字怎么读| 泰国司机海螺里吃出龙珠| 《美国农场1976达达》| 战狼6高清免费下载| 6708杏色水蜜桃| 品味人生坎贝奇英文完整版| 烧饼皇后| 日韩电影我的妻子和讨厌的同事商务出差 | 未来的儿子全集观看| 人yu兽性jiao电影| 狂飙电视剧全集免费高清播放| 裸婚以后| 闪婚顶流爱豆:是我老公短剧全集| 命中注定我爱你21| 电影《釜山行》| 吐槽西游记后传| 超宇宙刑事卡邦 无限未删减 | 高清《俄版女儿国》高清版| 鸡宝厨房| 杉杉来了电视剧全集免费| 21世纪性格爱情指南免费版| 高清《满意度》电影完整版| 中二病也要谈恋爱12| 白宝山全集| 高清《狼人游戏》歌曲原唱| 莉娜安德森《书虫》| 一拳超人第二季在线观看免费| 上位 微电影 | 南剑北鞭铁扇子| 夺冠在线观看免费完整版| 高清《大学》电影| 4410电影| 我的健身锻炼3| 国语韩剧爱的呼唤| 厨房激情3日本| 少女之森电影免费播放| 不可饶恕 电影| 仙剑奇侠传三| 高压监狱2在线观看免费版高清| 伸冤人3 在线观看| 激战酒店全集免费看| 笑嗷喜剧人| 泰剧星月情| 妈妈照顾儿子同学电影免费观看| 边陲威龙| 斗破阴阳宅电影免费观看| 荣誉守则成人版完整版免费在线观看| 空姐郭玮| 渔夫荒淫史电影在线观看| 舒淇电影| 破密 电视剧| 圣特罗佩斯的姑娘们在线观看| 绝密飞行2| 男女一起愁愁愁视频在线观看 | 站着在来一次| 笼中女囚电影完整版| 受益人 电影| 小瘦子3中文| 新生电视剧在线观看免费完整版 | 致命的一击36集电视剧在线观看| 明珠奇谭| 哑剧盖章| 野性的呼唤完整版免费看| 第九章不等式与不等式组| 电影失乐园| 死亡笔记 下载| 无法开口| 最新港片| 韩国R片视频| 魔鬼天使 qvod| 甜美的咬痕被禁的一话| 《满意度》在线| 我在万界收废品| 《急诊护士》在线免费观看| 原千岁全集免费观看| 苦尽甘来遇见你免费播放| 高清《卖房子的女人的逆袭》电视剧| 姐妹牙医| 女神宿舍的宿官君| 不当军事行为2017法版迅雷磁力| 电视剧黑土无言免费观看| 韩国电影免费完整版高清在线观看| 夏日沙上| 《奇怪的美容院2》的完整演员表 三年成全免费观看完整版电影 | 八九不离十| 电影《法国空乘4》免费| 《按摩治疗师》| 坏修女电影在线高清观看| 除却巫山2007邓家佳版本| 小炸jackson| 法国满天星《蛇妖》| 疯狂杰克| 电影云南虫谷| 俘虏之锁1| 婚姻保卫战电视剧| 金瓶爱的奴隶| 刘玉玲电影《满天星》| 决战次时代樱花动漫| 屈辱的妻子社长在线观看| 郑钦文称凌晨2点结束上一场| 女保镖满天星免费观看| 美国女子摔角| 金毛犬段景住| 邵氏《女儿国》满天星| 勐垅沙免费| 科学怪人的新娘| 还珠格格1部| 蜜桃成熟时3d| 浮之手中字6| 澡堂老板家的男人们全集| 高清明珠奇谭| 法国空乘1980版未删减版下载 | 妈妈爱上儿子同学的结局| 电影刀见笑| 电视剧《下海》| 美容室:待遇服务7在哪里看| 冰湖重生| 壮志凌云女版成人H版免费观看| 小小飞虎队| 年轻母亲在线免费观看| 陪你到世界终结| 复联4免费版高清观看| 袁阔成三国演义评书下载| 聊斋觅仙路| 品味人生完整版坎贝奇免费观看| 玉米锦蛇有毒吗| 法国电影肉蔻之香剧情介绍| 冰冷的热带鱼| 天将雄师 在线观看| 换脸明星电影完整版在线观看| 只是结婚的关系免费观看| 50岁胖女人免费观看电视剧 | 坏妻子便利店被欺负后的故事梗概| 当年明月难寻短剧免费观看| 水浒传2011| 魔鬼恋人第一季免费观看| 田教授家的二十八个亲戚| 铿锵三人行| jizz妇女| 木下檀檩子电影在线| 高清《为有暗香来》| 詹伯a奥特曼全集| 美味快递| 湾岸midnight| 玉蒲团之夜销魂完整2| 《金牌销售的秘密5》| 修车tv| 大江大河第三部免费播放| 销冠的秘密3在线观看| 金装四大才子百度影音| 破晓之战电影免费高清完整版| 倔强驱魔师免费观看 | 薛平贵与王宝钗| 名侦探柯南547| 吉安县| 一起又看流星雨吧| 鬼神童子国语| 张警官三部曲高清免费播放 | 十九岁在线观看免费完整版韩剧| 交换秘书| 领导挺进娇妻身体| 安娜情欲史 下载| 墨西哥电视剧《la rosa de guadalupe》(瓜达卢佩的玫瑰/奇迹玫瑰 在线 | 电视剧梦中的那片海| 独狼高清| 非常人贩2在线观看| 大黑鸡巴干美女高清免费观看| 高压监狱3法国完整版免费| 封神英雄榜1部| 泰国妈妈需要播种| 好迪代言人李玟| 满天星家庭矛盾无删减版| 中日大对决| 搞笑漫画日和 中文| 韩国电影禁止的爱完整版在线观看| 维修工添吸奶头电影| 东北二人转魏三全集| 小白船舞蹈| 动感之星妖精179集视频| 26种死法百度影音| 袁阔成封神演义| 壮志凌云1(法国)满天星法版免费完整| 大鱼海棠| 一二三四在线观看免费中文动漫版| 菠萝菠萝蜜电影| 神探狄仁杰四全集免费| 车水马龙| 需要爸爸的种| 巴巴快播| 富江系列| 1980法国空乘| 无人高清电影电视剧在线| 老师我想你日本高清观看视频| 欧式少女1集全观看视频| 高清《母爱食堂》电影| 天下第一演员表| 真相半白电视剧全集免费观看| 谢孟伟《无主之城》在线观看| 大江大河第一部全集免费观看| 黑人强伦轩电影| 天海翼电影全集| 秋霞在线观看,售楼小姐的密秘| 一锁五十年| 落魄贵族琉璃川在线观看免费动漫| 电视连续剧夫妻那些事| 无限挑战歌谣祭| 九一社1-36新加坡电视剧百度版 | 恩爱两不疑在哪里看完整版| 24世纪性格爱情指南| 阿凡提之奇缘历险| 和讨厌的部长一起出差日本电影| 天国神族| 朴亚珍《蓝色隐身帽》全集| 人间更胜九重天短剧全集免费看| 余罪第三部全集完整版| 东成西就2011国语高清| 酒醉的探戈动力火车| 让你妹飞2| 《湄公河行动》电影| 爸爸的种子免费观看电视剧| 降魔的2.0| 莲花楼全集在线播放免费| 漂亮妈妈7字头| 轮奸全集在线播放| 闯关东1| 龚琳娜《小河淌水》| 鲜花朵朵免费观看完整版| 二十一世纪性格爱情指南| 十月三十三日电视剧免费播放| 女员工的滋味2中文| 不耻下问的故事| 越战先锋| 蛮好的人生在线观看| 淬火年代电视剧免费观看完整版| 黑白配在线高清观看免费| 陷阱电影高清完整| 巨野县| 聊斋在线观看免费全集| 奇门偃甲师在线观看完整版免费| 强奸轮奸影片免费播放| 斗罗大陆202集| 开化县| 天使与龙的轮舞| 暹罗之恋完整版| 美乃雀赎罪电影哪里看| 奇门偃甲师电影在线观看| 凌云志志满天星法版观看| 甜蜜性爱| 老范雷哥| 维修师傅的艳遇在线观看 | 七三一电影高清在线播放免费观看| 纵情欲海3迅雷下载| 维修人员的培训 在线| 聊斋志谭艳梅5| 鹿鼎记2电影| 再见孙悟空| 多人运动网站无限观看| 李彩谭特殊的治疗| 月上重火免费观看| 电视剧非常有喜| 高清正在缩小的男人未删减| 魔法使的新娘第一季| 午夜寂寞影院列表| 韩剧松药店的儿子们| 战狼6在线观看完整免费| 真心英雄电视剧| 狂暴巨兽2巨型昆虫| 贝拉1980在线观看| 第11集| 我是歌手 流浪记| 法国私人女子监狱| 挡不住的疯情 电影| 意大利人猿泰山hr| 电视剧别对我说谎| 高压监狱2完整免费高清观看| 年轻的母亲6在线完整中文| 《汉尼拔》电影免费观看| 希望爸爸来种种子伦理剧| 你好呀我的橘子恋人| 三年国语版高清在线观看| 《我们的秘密》电视剧| 恋爱实习生免费观看全集泰剧| 哎呀爱呀| 《亲爱的,别!》| 迷人的小峓子HD完整点| 出轨同学会4| 好朋友瘦子4| 电视剧《惊弦》在线观看| 龚玥菲新金平瓶梅全集| jjzz44| 网络第一美女| 日本战狼6国语版哪里能看| 黑暗天使| 原来的神马电影在线观看免费| 高压监狱二在线观看完整免费| 钢琴教师百度影音| 张子健大漠枪神| 女律师替夫还债电影| 鬼吹灯有声小说在线收听| 玉女聊斋| 美容院特待遇4| 麻婆豆腐天美传媒| 肉肉的小黄车| xl司令第一季| 刀郎20首经典歌曲集| 电影观看免费观看完整版高清| 酒店1一80集| 舞力对决国语| 刘敏涛老公常乐| 部长大人来家做客韩国在线播放| 好男人电视剧免费播放完整版| 东京残酷| 丧尸出笼血脉| 侄女的开发日记笫三季在线观看| 十七岁完整版在线观看直播| 爱子情深全集| 移情别恋电影在线观看| 大江大河第3部53集免费观看| 电视剧最后的较量| 渔夫荒淫史记在线完整版免费观看 | 仙逆108集完整版在线观看| 男生女生一愁愁愁电视剧在线观看30分钟 | 法证先锋1粤语在线播放免费| 三年中文高清免费观看| 红楼视频在线观看免费播放电视剧 | 不正当军事行为2017| 白峰美羽《美人教师》| 狂野的爱| 五月激情小说| 魔法圣婴在线观看| 预祝中考成功的话| 还珠格格燕儿翩翩飞| 韩国电影《狂热失控》的导演是谁| 做aj的电视剧大全国语竖版| 玉蒲心经| 笑红颜 电视剧| 坂道之家| 牙医姐妹 赤子板栗| 孤男寡女粤语| 车太贤开心鬼上身| 《朱雀堂》电视剧全集免费观看下载 | 天涯热土电视剧全集免费观看| 春草电视剧免费观看| 19岁大学生免费观看视频| 《真相》在线观看免费| 玛丽玛丽满天星| 心动密码全集观看| 刘宝瑞相声全集免费听| 李恩美修电工的全部电影| 复仇者联盟3神马抢先版| 斯巴达第四季39集| 仙王的日常生活樱花| 我的表妹在线观看| 《爱我几何》全集免费高清| 楞严咒全文| 男鬼附身美女| 九九重阳今又重阳| 《法国空乘5》在线免费观看 | 广宁县| 男按摩师论理| 《桂花蜜》by居无竹txt| 高压监狱2完整免费观看| 世界末日是哪一天| 《美容院2特殊待遇》| 地狱公使| 高清《世外》电影| 麦子交换1的中文翻译曼哪 | 斗破苍穹年番177集完整版| 日韩性事| 入室女职工被强行糟蹋在线观看| 翁虹演过哪些三影级| 在线观看悬崖| 布兰妮不雅照| 《售楼小姐5》在线观看| 欢乐颂4免费观看全集电视剧完整版| 玉蒲团之灯草和尚| 色戒电影未测减除版| 为人民服务完整版免费观看| 长相思第二季在线观看免费观看| 昌乐县| 妙手房术欧洲版免费观看方法| 杀手阿一| 女大学生的按摩房| 漂亮妈妈7巴字中字开头| 年轻的嫂子5电影| 出轨的女人粤语| 沉香如屑电视剧结局| 蒋玲玲版渔夫的荒野史记 | 布拉芙夫人在线免费观看| 《部长出差的日子》免费电影| 关晓彤在好先生的翘臀| 恋爱舞台| 《销售的秘密2》在线看| 武林志电影| 克隆丈夫| 香草的天空| 360天爱上我| 仁者黄飞鸿国语| 湘北小成| 灿烂人生国语版| 特殊的游泳课4| 太平年免费观看完整版| 小新洗衣店1—3| 花木兰刘亦菲在线观看免费版高清| 严础熙韩国电影| 仙逆5200 59| 万家灯火养生2013| 凤凰卫视军情观察| 加勒比海盗成人视频| 不可剥夺| 爱情男女全集免费观看免费| 我国成功发射北京三号b星| 电视剧血色浪漫全集免费版| 三年免费观看在线观看高清| 疯狂的足球高清| 苍天在上| 混乱武林3谁与争锋| 电影追影| 李丽珍《聊斋2》| 无间道3电影| 花街狂奔电影| 京香在线播放| 向井蓝在线观看| 我的朋友的瘦子4| 电视剧无间在线播放免费观看| 《大兵的寝室》美剧免费观看全集 | 江南锄奸| 苍老师电视剧36集全免费播放| 美丽的小蜜桃1之恶魔的报复| 亲爱的翻译官43集| 美国式禁忌睫毛膏4完整版| 索命哨全集观看| 蜜桃成熟时百度百科| 未婚妻和部长出差韩国电影在线观看 | 啄木鸟酒店实生版| 制服诱惑2地下法庭| 小草进城电视剧全集免费观看| 小豆白泽真假公主| 色戒删除的13分钟| 满天星电影免费观看| 1980悲惨遭遇免费看| 藏海花之暗潮汹涌在线观看| 我是特种兵之火凤凰36| 阳信县| 花甲房东真人版免费看| 三叶草免费观看高清电视剧| 武林外传电视剧| 海贼王795| 白嫖者联盟电影在线观看| 剥茧电视剧免费全集在线播放 | 他是谁全集在线高清免费观看| 息县县委书记金平去向| 《永不独眠》在线观看| 漂亮的小瘦子3最新| 莲花楼连续剧40集高清| 《美容窒:特殊服务3》| 太平洋家居| 维修工人的培训电影| 渔夫荒野史完整版电影| 小鬼子走着瞧全集百度影音| 向前生活第七季免费观看高清| 暴躁少女的全集| 《屠宰呕吐娃娃》电影在线观看免费| 仁心解码| 木下柚花| 桦川县| 武松蒋玲玲| 野花电影高清免费观看| 成熟的女人免费观看电视剧| 坎贝奇无憾免费| 完美伴侣电视连续剧46集| 社长夫人给客户还债的电影| 我亲爱的小洁癖电视剧免费观看| 闪耀的她1-36集免费观看| 黑白配免费高清在线观看中文版| bastard!!暗黑破坏神| 深空动漫| 古惑仔5龙争虎斗国语高清版免费| 好先生在线观看免费完整西瓜| 在线观看蜜桃17| 男爵夫人的调教| 《裸乳按摩》在线| 也平凡在哪个软件上看| 猫和老鼠东北方言版| 还珠格格哪一年开始播的| 《屠宰餐厅》美国| 丁宝桢40集电视剧免费下载| 年轻丰满的在线播放免费观看| 偷窥无罪电影| 大地中文在线观看免费高清电视剧| 女侯爷:朝野无敌全集免费| 布兰迪《不当军事行为》| 想要父亲的种子电影在线观看 | 《白色橄榄树》全集观看| 壮志凌云啄木鸟满天星| 京城小二| 黑河市| 电影女子护卫队| 巜出轨上司的人妻2中字| 男生打游戏听出网友病危| 平乡县| 斗破苍穹缘起免费播放| 国庆大阅兵2009| 明明不喜欢完整版电影在哪里看| 情逆三世缘粤语| 高清秒速5厘米未删减| 和部长一起去出差旅是第几集 | 强壮的公么征服免费看| 《overflower》1-8集| 鹿鼎记周星驰国语| 孙中山在线观看| 美国式禁忌保罗讳1-4| 姐姐韩国电影| 冰堂伊吹| 欧式少女第16集全集剧情介绍| 周生如故电视剧免费看| 张艺兴诉b站侵权案将开庭| 知否连续剧全集免费观看| 《卖房子的女销售》电影免费| 窃听风云在线观看| 追在线观看| 美景之屋6无删减版在线观看中文版 | 五十路台湾版武松蒋玲玲田螺| 我家女友可不止可爱呢动漫全集| 正在播放:中文本幕-亿万富翁的女儿 Anissa Kate,Sienn... - 17 | 庆余年2999影片库| 办公室刺激战场一共几集| 刻薄新娘完整| 绝密追击| 壮志凌云女版成人H版免费观看| 老电影歌曲| 韩剧玻璃之城国语版| 小辣椒美国伦理| 太空堡垒国语| 人世间电视剧全集免费观看57集| 北京青年优酷网| 大象的眼泪 电影| 黑白配国语版在线播放| 竞女无修版| 玉米地强免费观看| 空即是空电影完整版| 女律师的坠落完整版| 花之蛇2| 哇嘎电影国语免费播放| 地下交通站第一部28集下载| 到吴起镇大合唱| 高等教欲| 完美搭配在线观看| 电影隐形帽子在线观看| 印度电影最毒美人心| 超级cosplay大战| 何炅出什么事了最新消息| 秘密女搜查官在线观看免费全集| 白宝山电视剧| 圣石小子粤语| 达拉斯蜂蜜1982美国原版| 倔强的驱魔师| 便利店坏妻子| 谈判官免费观看电视剧高清完整版| 高清凤仙花未删减| 李金斗相声| 美国伦理雪莉3| 相识在线观看完整版高清| 连麦kp录音原版mp3| 胖子视界| 丈夫和初恋重逢| 《新人律师法国满天星》还叫什么名 | 电影《爱我几何》完整版无删减| 金三角风云| 大梦归离在线观看免费| 电视剧智者无敌| 《小巷人家》电视剧| 美国忌保罗讳1-4| 郭有才爆火后菏泽南站网红扎堆直播| 上海电视台节目表| 一起来看流星雨电视剧| 替丈夫满足我中字HD| 爸爸需要你的种子| 东方之珠之风流家族| 误判粤语电影免费观看| 善良的小峓子小火星在线观看| 水润女人全集免费高清资源| 伟大征程导演| 最后的战士电视剧免费观看| 翠兰的爱情 电视剧| 禁忌5年转一代| 女大学生的特殊按摩电影| 印度一男子阻止骚扰遭群殴| 火柴女孩| 拜托机长| 《性/生活4》未删减版| 我的游泳女教练 云播| 死亡圣器上| 叶问 粤语| 魔术师1998| 1995年意大利版《人猿泰山》高清版 | 天网追踪电视剧免费观看| 禁室培欲2:爱的四十日| 高压监狱HD无删减免费视频| 邱淑贞三圾片大全| 以爱为营免费观看| 瑞士航空空姐4| 陆犯焉识| 哪吒2魔童闹海完整版| 小黄飞高清| 牙医姐妹电影完整版在线看| 绝世战魂在线观看全集免费| 纸新娘在线观看完整版| 水月洞天第三部幽冥传奇| 法国空乘2016未删减| 爱情公寓3第14集| 边水往事电视剧在线观看全集免费| 太平年全集免费看| 暴躁46集全全免费播放| 野兽迷宫电影免费播放在线观看| 少年包青天第二部免费版在线观看| 男女一起愁愁愁免费看| 蜜桃成熟时 电影| 快乐大本营2011年全集在线观看| 《她被搬运工侵犯》在线播放 | 朱茵142分钟未删减版| 电影《农民伯伯2》在线观看| 高清《兄弟的女朋友》电视剧| 《恋爱女子宿舍》| 维修工人的培训电影| 卖百科全书的人未删减版叫什么名字| 金刚大战哥斯拉在线| 狙击蝴蝶电视剧在线观看| 爱上女主播韩剧国语| 战狼6双人版在线观看| 《熟妇的荡欲》无删减迅雷| 父子 完整版| 不良义| 飞鹰计划国语| 美国禁忌之恋| 东游记电视剧| 孤舟电视剧36集全免费播放| 机动奥特曼第一季| 总统夫人的夜晚高清完整版在线观看| 张帝最新演唱会下载| 哎呀皇后娘娘来打工免费全集| 陆真传奇全集| 色帽子影院| 安斋拉拉电影电视在线| 凄辱护士bd高清日本电影免费看| 电视剧江山| 雅帕菲卡| 贪婪韩国电影免费观看视频| 库尔勒市| 电影名黑色眼泪麻生香织| 侏罗纪4重生在线观看高清免费| 《嘎啦》台湾电影在线观看免费| 法国空乘2019无删减版百度云| 迷人工地妇女BD高清 | 捡漏小能手:古玩街称霸全集免费| 《娃娃脸》4| 营销技巧电影在线观看| 沧元图动漫第60集| 满清十三皇朝之血染紫禁城| 了凡四训1一23集连续剧免费观看| 宣汉县| 三年中国中文电影在线观看| 血腥茱莉亚| 刘敏涛主演的黑蝴蝶在线播放| 非凡医者| 原版江南style| 律师禁欲| 库伊拉黑白魔女| 2对1:三人一次性体检韩国伦理 | 妻子8免费全集高清观看在线播放 1996年杨敏思版电视剧第三回合 欧美版战狼9电影免费观看 | 意大利电影巜丰满的欲妇| 余味毛豆豆| 善恶无赦| 《出轨同学会2》韩国电影| 我年轻的瘦子4()艺术片V| 速度与激情7完整版国语| 灰姑娘动画片国语版2| 出狱脱节| 日本之形| 年经母年3| 美人教师白峰主演的是哪一集 | 了不起的盖茨比 快播| 维修工的艳遇在线| 西瓜太郎动画片| 北上在线观看完整版免费高清 | 朝国继6| 金毛狮王国语| 火星哥treasure| 荡女奇行| 善良的嫂子手机在线观看| 郝板栗在线观看| 草溜影院| 流浪地球1免费观看完整版| 《曼蒂的觉醒》完整版| 怎样画彩妆| 盛唐风流电影免费观看中文版| 在线播放国风按摩院 春宵一克值千金 第1集 - 高清资源 - 大鸟视频 | 乡间小徐最新美食视频今天| 超级经纪人 电影| 封神英雄2| 漂亮的小姨| 美国的忌讳5—7| 苍井空番号全集| 新来的瑜伽教练在线观看| 电影情劫| 为歌而赞哪个app可以看| 新瓶梅| 神医传奇电视剧免费观看| 电视剧盛夏晚晴天全集| 神印王座伊莱克斯剧场版| 蜜桃成熟百度影音| 法国空姐在线观看完整免费高清原声满天星奔跑吧emmmm | 在暴雪时分电视剧全集免费观看| 3对一3人一次性体检| 女扮男装当校草全集免费| 高清《黑道家族》| 苗栗市| 冷风暴1-48集免费观看| 美国派4百度影音| 需要爸爸的播放| 正在播放:中文本幕-亿万富翁的女儿 Anissa Kate,Sienn... - 17 | 高清婚姻剧毒| 禁欲电影观看完整版高清| 牙医姐姐电影完整版| 女扮男装闯江湖短剧全集| 台剧恋爱之瘾在线观看| 《漂白》电视剧在线播放| 天堂之吻电影版| 被安排和讨厌部长出差韩剧 | 猛鬼佛跳墙国语| 极乐宝鉴3d国语版在线观看| 挡不住的风情 下载| 1995版泰山未删减版百度云| 性的暴行电影中文字幕| 听海哭的声音是什么歌| 小鹏奇啪行| 是真爱还是希望泰剧在线观看| 《热带雨》删除的部分| 战狼6666电影免费观看正版高清版下载| 五味人生| 海扁王2迅雷下载| 韩国萌娃| 遇见王沥川全集免费观看云播| 韩国电影美发店的特殊待遇 | 再见琼全集观看| 赖小民情妇| 独狼电视剧在线观看| 战狼6免费观看在线观看下载 | 十项舞蹈全集观看| 尖叫之夜| 替夫还债女律师| 《落魄贵族琉璃川》樱花动漫| 半碗村传奇免费观看| 哈萨克阿肯弹唱| 蜜桃成熟时33d在线线免费观看| 向风而行电视剧免费播放观看| 王李丹妮新片《维修工》叫什么名字| 招惹在线观看| 死神来了5 qvod| 大雄的秘密道具博物馆国语版| 春光乍泄txt全集下载| 莫莉特别的酒店 | 刘德华2012跨年演唱会| 《家弑服务》| 王保长歪传| 爱我几何在线观看全集免费播放莫妮 | 命运之夜免费观看完整版| 似火流年电视剧| 柔式手法全套教程视频| 间之契在线观看完整免费版动漫| 巜战狼6免费观看》日韩| 私人女性监狱miande | 父贵荣华短剧全集| 亲嘴视频大床视频全部| 需要爸爸播种美国第二季| 无限挑战 111231| rhts 040| 美丽的小樱桃美国主演| 太空旅客在线观看| 梁赫群女友| 电影《酥醇的绣感》| 杏林春暖在线观看| 她的一生全集电视剧| 《恐龙岛》电影| 墨西哥电影《瓜达卢佩的玫瑰》| 善良的的女愁书| ママぷりっ!?| 知源中医| 猎狼人电视剧| 《女超人-麦乐迪版》百度云| 老公刚出门,义子就侵犯电影| 尤雅歌曲| 狂暴巨兽2巨型昆虫| 与狼共舞电视剧| 挣扎吧亚当君第二集在线观看| 把醉酒同学带回家韩剧| 中国星力量第二期| 母亲5免费完整高清电视剧在线看| 你的目光所及之处第二季| 窃听风云2电影| 傻儿传奇45集| 房东2| 打脸前任全集免费| 天下第一镖局2长风行| 白老妇是啥| 跑男最新一季| 以家人之名在线| 美式保罗1至4带中文| 麦乐迪版女超人未删减版| 阿b哥非你莫属| 《八仙子过大年》| 老电影武当| 剑仙归来| 《按摩》意大利电影原名叫什么金达| 欲情之屋2014甜美情事尹大麦为什么播| 《孔雀舞曲》| 壮志凌云美国满天星| 人头豆腐汤 完整版| 始作俑者的意思| 《执行秘书》2009| 站着再来一次最新一集免费| 三星滑盖手机| 黑白潜行免费观看高清| 且试天下电视剧免费观看完整| 漂亮的姨母5韩国| 怎么自制果冻笔| 美容院特殊待遇在线观看| 曹查理《浪蝶狂花》电影 | 追捕电视剧全集免费观看| 人猿泰山HR版1995| 律师禁欲| 保姆与老人| 初恋重逢:初心不变短剧全集| 金蝉脱壳1| 危险关系张柏芝| 斗罗大陆2绝世唐门完整免费观看| 冢本怀旧剧场免费观看| 《奇怪的美容院2》的完整演员表 三年成全免费观看完整版电影 |