亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? dataflash.h

?? AT91SAM9261啟動代碼。SPI DATAFLASH。
?? H
字號:
/* ---------------------------------------------------------------------------- *         ATMEL Microcontroller Software Support  -  ROUSSET  - * ---------------------------------------------------------------------------- * Copyright (c) 2006, Atmel Corporation * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions are met: * * - Redistributions of source code must retain the above copyright notice, * this list of conditions and the disclaiimer below. * * - Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the disclaimer below in the documentation and/or * other materials provided with the distribution. * * Atmel's name may not be used to endorse or promote products derived from * this software without specific prior written permission. * * DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE * DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ---------------------------------------------------------------------------- * File Name           : dataflash.h * Object              : ATMEL DataFlash Header File * Creation            : NLe Jul 12th 2006 *---------------------------------------------------------------------------*/#ifndef _DATAFLASH_H#define _DATAFLASH_H/* Chip Select 0 : NPCS0 %1110 */#define AT91C_SPI_PCS0_DATAFLASH	0xE/* Chip Select 1 : NPCS1 %1101 */#define AT91C_SPI_PCS1_DATAFLASH	0xD/* Chip Select 2 : NPCS2 %1011 */#define AT91C_SPI_PCS2_DATAFLASH	0xB/* Chip Select 3 : NPCS3 %0111 */#define AT91C_SPI_PCS3_DATAFLASH	0x7/* Max PDC Size for SPI Continuous Read */#define AT91C_MAX_PDC_SIZE	0xFFFF/*//////////////////////////////////////////////////////////////////////////////////////////////////////*//* Command Definition											*//*//////////////////////////////////////////////////////////////////////////////////////////////////////*//* READ COMMANDS */#define DB_CONTINUOUS_ARRAY_READ   	0xE8		/* Continuous array read */#define DB_BURST_ARRAY_READ        	0xE8		/* Burst array read */#define DB_PAGE_READ               	0xD2		/* Main memory page read */#define DB_BUF1_READ               	0xD4		/* Buffer 1 read */#define DB_BUF2_READ               	0xD6		/* Buffer 2 read */#define DB_STATUS                  	0xD7		/* Status Register *//* PROGRAM and ERASE COMMANDS */#define DB_BUF1_WRITE              	0x84		/* Buffer 1 write */#define DB_BUF2_WRITE              	0x87		/* Buffer 2 write */#define DB_BUF1_PAGE_ERASE_PGM     	0x83		/* Buffer 1 to main memory page program with built-In erase */#define DB_BUF1_PAGE_ERASE_FASTPGM 	0x93		/* Buffer 1 to main memory page program with built-In erase, Fast program */#define DB_BUF2_PAGE_ERASE_PGM     	0x86		/* Buffer 2 to main memory page program with built-In erase */#define DB_BUF2_PAGE_ERASE_FASTPGM 	0x96		/* Buffer 1 to main memory page program with built-In erase, Fast program */#define DB_BUF1_PAGE_PGM           	0x88		/* Buffer 1 to main memory page program without built-In erase */#define DB_BUF1_PAGE_FASTPGM       	0x98		/* Buffer 1 to main memory page program without built-In erase, Fast program*/#define DB_BUF2_PAGE_PGM           	0x89		/* Buffer 2 to main memory page program without built-In erase */#define DB_BUF2_PAGE_FASTPGM       	0x99		/* Buffer 1 to main memory page program without built-In erase, Fast program*/#define DB_PAGE_ERASE              	0x81		/* Page Erase */#define DB_BLOCK_ERASE             	0x50		/* Block Erase */#define DB_PAGE_PGM_BUF1           	0x82		/* Main memory page through buffer 1 */#define DB_PAGE_FASTPGM_BUF1       	0x92		/* Main memory page through buffer 1, Fast program */#define DB_PAGE_PGM_BUF2           	0x85		/* Main memory page through buffer 2 */#define DB_PAGE_FastPGM_BUF2       	0x95		/* Main memory page through buffer 2, Fast program *//* ADDITIONAL COMMANDS */#define DB_PAGE_2_BUF1_TRF         	0x53		/* Main memory page to buffer 1 transfert */#define DB_PAGE_2_BUF2_TRF         	0x55		/* Main memory page to buffer 2 transfert */#define DB_PAGE_2_BUF1_CMP         	0x60		/* Main memory page to buffer 1 compare */#define DB_PAGE_2_BUF2_CMP          0x61		/* Main memory page to buffer 2 compare */#define DB_AUTO_PAGE_PGM_BUF1      	0x58		/* Auto page rewrite throught buffer 1 */#define DB_AUTO_PAGE_PGM_BUF2      	0x59		/* Auto page rewrite throught buffer 2 *//*//////////////////////////////////////////////////////////////////////////////////////////////////////*//* ATMEL Dataflash description										*//*//////////////////////////////////////////////////////////////////////////////////////////////////////*/#define AT45DB011B		0x0C#define AT45DB021B		0x14#define AT45DB041B		0x1C#define AT45DB081B		0x24#define AT45DB161B		0x2C#define AT45DB321B		0x34#define AT45DB642		0x3C#define AT45DB1282		0x10#define AT45DB2562		0x18#define AT45DB5122		0x20#define AT91C_DF_TIMEOUT			10000000/*//////////////////////////////////////////////////////////////////////////////////////////////////////*//* Dataflash Interface Definition									*//*//////////////////////////////////////////////////////////////////////////////////////////////////////*/typedef enum  _AT91S_DF_SEM {    UNLOCKED,    LOCKED} AT91S_DF_SEM;typedef enum  _AT91S_DF_STATE {	START_COMMAND,	WAIT_FOR_BUSY,	ERASE,	END_OF_ERASE,	START_WRITE,	END_OF_WRITE,	START_READ,	END_OF_READ,	READ_GET_STATUS,	WAIT_FOR_READ_STATUS} AT91S_DF_STATE;/* Dataflash Description Structure */typedef struct _AT91S_DF_DESC {	int		pages_number;    /* dataflash page number */	int		pages_size;      /* dataflash page size */	int		page_offset;     /* page offset in command */	int     block_size;      	 /* nb page per block */	int		byte_mask;       /* byte mask in command */} AT91S_DF_DESC, *AT91PS_DF_DESC;/* Dataflash Descriptor Structure */typedef struct _AT91S_DF{	unsigned char   bCs;	AT91S_DF_SEM    bSemaphore;    /* SPI semaphore */	unsigned int    command[2]; 	AT91S_DF_DESC   dfDescription;} AT91S_DF, *AT91PS_DF;#define AT91C_DF_NB_BLOCS(pDf)  (pDf->dfDescription.pages_number / pDf->dfDescription.block_size)#define AT91C_DF_BLOC_SIZE(pDf) (pDf->dfDescription.block_size * pDf->dfDescription.pages_size)#define AT91C_DF_NB_PAGE(pDf)   (pDf->dfDescription.pages_number)#define AT91C_PAGE_SIZE(pDf)    (pDf->dfDescription.pages_size)#define AT91C_PAGE_OFFSET(pDf)  (pDf->dfDescription.page_offset)/* ============ READ COMMANDS =============== */#define df_continuous_read(pDf, pData, dDataSize, dAddress) \    df_send_command(pDf, DB_CONTINUOUS_ARRAY_READ, 8, pData, dDataSize, dAddress)#define df_page_read(pDf, pData, dDataSize, dAddress) \    df_send_command(pDf, DB_PAGE_READ, 8, pData, dDataSize, dAddress)#define df_read_buf1(pDf, pData, dDataSize, dAddress) \    df_send_command(pDf, DB_BUF1_READ, 5, pData, dDataSize, dAddress)#define df_read_buf2(pDf, pData, dDataSize, dAddress) \    df_send_command(pDf, DB_BUF2_READ, 5, pData, dDataSize, dAddress)#define df_get_status(pDf) \    df_send_command(pDf, DB_STATUS, 2, (char *) 0, 0, 0)/* ============ WRITE COMMANDS =============== */#define df_write_buf1(pDf, pData, dDataSize, dAddress) \    df_send_command(pDf, DB_BUF1_WRITE, 4, pData, dDataSize, dAddress)#define df_write_buf2(pDf, pData, dDataSize, dAddress) \    df_send_command(pDf, DB_BUF2_WRITE, 4, pData, dDataSize, dAddress)#define df_pgm_erase_buf1(pDf, pData, dDataSize, dAddress) \    df_send_command(pDf, DB_BUF1_PAGE_ERASE_PGM, 4, pData, dDataSize, dAddress)#define df_pgm_erase_buf2(pDf, pData, dDataSize, dAddress) \    df_send_command(pDf, DB_BUF2_PAGE_ERASE_PGM, 4, pData, dDataSize, dAddress)#define df_pgm_buf1(pDf, pData, dDataSize, dAddress) \    df_send_command(pDf, DB_BUF1_PAGE_PGM, 4, pData, dDataSize, dAddress)#define df_pgm_buf2(pDf, pData, dDataSize, dAddress) \    df_send_command(pDf, DB_BUF2_PAGE_PGM, 4, pData, dDataSize, dAddress)#define df_page_write(pDf, pData, dDataSize, dAddress) \    df_send_command(pDf, DB_PAGE_PGM_BUF1, 4, pData, dDataSize, dAddress)/* ============ ERASE COMMANDS =============== */#define df_page_erase(pDf, dAddress) \    df_send_command(pDf, DB_PAGE_ERASE, 4, (char *) 0, 0, dAddress)#define df_block_erase(pDf, dAddress) \    df_send_command(pDf, DB_BLOCK_ERASE, 4, (char *) 0, 0, dAddress)/* ============ ADDITIONAL COMMANDS =============== */#define df_trf_buf1(pDf, pData, dDataSize, dAddress) \    df_send_command(pDf, DB_PAGE_2_BUF1_TRF, 4, (char *) 0, 0, dAddress)#define df_trf_buf2(pDf, pData, dDataSize, dAddress) \    df_send_command(pDf, DB_PAGE_2_BUF1_TRF, 4, (char *) 0, 0, dAddress)#define df_cmp_buf1(pDf, dAddress) \    df_send_command(pDf, DB_PAGE_2_BUF1_CMP, 4, (char *) 0, 0, dAddress)#define df_cmp_buf2(pDf, dAddress) \    df_send_command(pDf, DB_PAGE_2_BUF2_CMP, 4, (char *) 0, 0, dAddress)#define df_rwr_buf1(pDf, pData, dDataSize, dAddress) \    df_send_command(pDf, DB_AUTO_PAGE_PGM_BUF1, 4, (char *) 0, 0, dAddress)#define df_rwr_buf2(pDf, pData, dDataSize, dAddress) \    df_send_command(pDf, DB_AUTO_PAGE_PGM_BUF2, 4, (char *) 0, 0, dAddress)/* ============ Status Register Fields =============== */#define df_is_ready(pDf) \    ((pDf)->command[0] & 0x8000)#define df_is_different(pDf) \    ((pDf)->command[0] & 0x4000)extern void df_hw_init(void);extern void df_recovery(AT91PS_DF pDf);extern int load_df(unsigned int pcs, unsigned int img_addr, unsigned int img_size);extern char df_send_command (	AT91PS_DF pDataFlash,	unsigned char bCmd,      // Command value	unsigned char bCmdSize,  // Command Size	char          *pData,    // Data to be sent	unsigned int  dDataSize, // Data Size	unsigned int  dAddress); // Dataflash Address/*extern char df_wait_ready(	AT91PS_DF pDataFlash);extern AT91S_DF_SEM df_is_busy(	AT91PS_DF pDataFlash);*/#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩精品高清| 日本一区二区免费在线| 欧美成人三级电影在线| 久久久99精品免费观看不卡| 亚洲综合久久久| 国产一区二区91| 欧美性猛交xxxx黑人交| 久久综合精品国产一区二区三区| 国产精品妹子av| 精品一区中文字幕| 欧美最猛性xxxxx直播| 亚洲国产成人午夜在线一区| 视频一区国产视频| 色欧美乱欧美15图片| 国产欧美一区二区三区鸳鸯浴| 午夜欧美在线一二页| av在线一区二区| 精品乱码亚洲一区二区不卡| 一区二区三区蜜桃网| 国产91精品久久久久久久网曝门| 欧美一区二区三区思思人| 一区二区三区在线视频观看58| 国产老女人精品毛片久久| 欧美日韩aaaaaa| 有码一区二区三区| 成人精品鲁一区一区二区| 精品成人免费观看| 毛片一区二区三区| 337p亚洲精品色噜噜| 亚洲国产一区在线观看| 91在线免费视频观看| 日本一区二区不卡视频| 国产黄色成人av| 26uuu国产电影一区二区| 日本在线不卡视频一二三区| 精品视频一区三区九区| 一区二区三区不卡视频在线观看| 99精品国产一区二区三区不卡| 国产精品久久久久影院亚瑟 | 国产成人午夜片在线观看高清观看| 欧美日本一区二区三区四区| 日韩二区在线观看| 欧美性极品少妇| 午夜影院在线观看欧美| 欧美日韩另类国产亚洲欧美一级| 亚洲一区二区在线播放相泽| 欧美日韩一区二区三区四区五区 | 99久久综合国产精品| 国产精品福利电影一区二区三区四区| 高清av一区二区| 亚洲欧洲在线观看av| 成人av网在线| 亚洲尤物在线视频观看| 91久久精品一区二区二区| 亚洲欧美激情插| 欧美性猛交xxxx黑人交| 青椒成人免费视频| 久久亚洲影视婷婷| 91色综合久久久久婷婷| 亚洲综合精品自拍| 日韩片之四级片| 国产风韵犹存在线视精品| 国产精品亲子伦对白| 91论坛在线播放| 日本vs亚洲vs韩国一区三区| 久久一夜天堂av一区二区三区| 成人黄色免费短视频| 亚洲chinese男男1069| 日韩免费成人网| av色综合久久天堂av综合| 亚洲成人精品一区| 久久精品水蜜桃av综合天堂| 91网站在线观看视频| 天堂一区二区在线| 国产日韩一级二级三级| 欧洲在线/亚洲| 精品一区二区三区免费毛片爱 | 日本欧美一区二区三区乱码| 精品电影一区二区| 色狠狠综合天天综合综合| 美女在线一区二区| 中文字幕在线观看一区二区| 91精品综合久久久久久| 不卡一区二区中文字幕| 青青国产91久久久久久| 中文字幕制服丝袜成人av| 91精品国产91综合久久蜜臀| 国产xxx精品视频大全| 日本视频一区二区三区| 亚洲视频1区2区| 久久伊人蜜桃av一区二区| 欧美色图天堂网| 99热99精品| 国产精品一二三在| 日韩国产欧美一区二区三区| **欧美大码日韩| 久久精品夜色噜噜亚洲aⅴ| 欧美精品亚洲二区| 一本久久a久久精品亚洲| 国产精品自产自拍| 免费三级欧美电影| 亚洲亚洲精品在线观看| 亚洲视频在线一区观看| 国产日韩欧美a| 亚洲精品一区二区三区精华液 | 欧美一卡二卡在线观看| 色综合久久久久久久久久久| 国产91露脸合集magnet| 蜜桃视频一区二区三区在线观看| 亚洲自拍偷拍综合| 亚洲精品国产a| 中文字幕中文字幕中文字幕亚洲无线| 久久免费午夜影院| 精品1区2区在线观看| 欧美一级xxx| 日韩一区和二区| 欧美视频精品在线观看| 日本丶国产丶欧美色综合| 99视频一区二区| 一本久久a久久免费精品不卡| 波多野结衣在线aⅴ中文字幕不卡| 国产一区二区三区| 国产在线观看一区二区| 韩国av一区二区| 国产一区二区电影| 国产91综合一区在线观看| 精品亚洲成a人在线观看 | 亚洲一区二区不卡免费| 一区二区三区欧美亚洲| 亚洲一区二区美女| 日韩在线观看一区二区| 蜜桃一区二区三区在线观看| 九九**精品视频免费播放| 国产一区二区福利| 99麻豆久久久国产精品免费| 色妞www精品视频| 欧美日韩精品一区二区在线播放| 欧美日韩久久不卡| 欧美大片顶级少妇| 日本一二三四高清不卡| 国产精品视频在线看| 亚洲欧美乱综合| 亚洲h在线观看| 国产在线不卡一区| 99久久婷婷国产精品综合| 欧美亚洲日本一区| 欧美一区二区在线播放| 国产人成一区二区三区影院| 亚洲日穴在线视频| 午夜激情久久久| 国产麻豆精品视频| 99麻豆久久久国产精品免费| 欧美日韩精品一区二区在线播放| 精品人在线二区三区| 中文字幕日韩一区| 午夜视频久久久久久| 久久av中文字幕片| 91免费观看视频| 日韩欧美国产高清| 综合av第一页| 午夜激情久久久| 国产凹凸在线观看一区二区| 欧美亚洲国产bt| 欧美精品一区二区三区在线 | 成人免费视频一区| 欧美优质美女网站| 久久久激情视频| 天天综合日日夜夜精品| 丁香六月久久综合狠狠色| 欧美电影在线免费观看| 国产精品亲子乱子伦xxxx裸| 日韩国产欧美三级| 91麻豆精东视频| 久久蜜桃一区二区| 午夜成人免费电影| av不卡免费电影| 久久―日本道色综合久久| 亚洲国产乱码最新视频| 波多野结衣在线一区| 久久综合资源网| 蜜桃在线一区二区三区| 欧美性大战久久久久久久蜜臀 | 国产精品一区在线观看你懂的| 欧美日韩亚洲丝袜制服| 亚洲少妇最新在线视频| 国产高清无密码一区二区三区| 4438x成人网最大色成网站| 亚洲在线观看免费视频| 一本色道久久加勒比精品| 国产精品久久毛片av大全日韩| 国产一区二区不卡老阿姨| 欧美xxx久久| 男女男精品视频网| 欧美日韩精品三区| 亚洲国产精品久久一线不卡| 97超碰欧美中文字幕| 欧美激情在线一区二区三区| 六月婷婷色综合| 欧美色图天堂网| 亚洲成人777|