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

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

?? norflashcfi.h

?? IAR5.2下 AT91SAM9260 ARM 對 MCP2515 控制源化碼
?? H
字號:
/* ----------------------------------------------------------------------------
 *         ATMEL Microcontroller Software Support 
 * ----------------------------------------------------------------------------
 * Copyright (c) 2008, 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 disclaimer below.
 *
 * 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.
 * ----------------------------------------------------------------------------
 */

#ifndef NORFLASHCFI_H
#define NORFLASHCFI_H

//------------------------------------------------------------------------------
//         Local constants
//------------------------------------------------------------------------------

#define CFI_MAX_ERASE_REGION    4

/// Common flash interface query command.
#define CFI_QUERY_COMMAND     0x98
#define CFI_QUERY_ADDRESS     0x55
#define CFI_QUERY_OFFSET      0x10

//------------------------------------------------------------------------------
//        Exported defination
//------------------------------------------------------------------------------
/// Vendor command set control interface ID code .
#define CMD_SET_NULL          0x0000
#define CMD_SET_INTEL_EXT     0x0001 
#define CMD_SET_AMD           0x0002
#define CMD_SET_INTEL         0x0003
#define CMD_SET_AMD_EXT       0x0004
#define CMD_SET_MISUBISHI     0x0100
#define CMD_SET_MISUBISHI_EXT 0x0101
#define CMD_SET_SST           0x0102


/// Indicates the maximum region for norflash device.
#define NORFLASH_MAXNUMRIGONS 4
/// Indicates the NorFlash uses an 8-bit address bus.
#define FLASH_CHIP_WIDTH_8BITS  0x01
/// Indicates the NorFlash uses an 16-bit address bus.
#define FLASH_CHIP_WIDTH_16BITS 0x02
/// Indicates the NorFlash uses an 32-bit address bus.
#define FLASH_CHIP_WIDTH_32BITS 0x04
/// Indicates the NorFlash uses an 64-bit address bus.
#define FLASH_CHIP_WIDTH_64BITS 0x08

//------------------------------------------------------------------------------
//        Local Type
//------------------------------------------------------------------------------

//------------------------------------------------------------------------------
/// Describes a Norflash CFI query system interface information.
//------------------------------------------------------------------------------
#ifdef __ICCARM__          // IAR
#pragma pack(1)            // IAR
#define __attribute__(...) // IAR
#endif                     // IAR

struct NorFlashCfiQueryInfo {

    /// Query Unique String "QRY".
    unsigned char queryUniqueString[3];
    /// Primary vendor command set and control interface ID .
    unsigned short primaryCode;
    /// Address for primary extended query table.
    unsigned short primaryAddr;
    /// Alternate vendor command set and control interface ID .
    unsigned short alternateCode;
    /// Address for alternate extended query table.
    unsigned short alternateAddr;
    /// Vcc logic supply minimum write/erase voltage.
    unsigned char minVcc;
    /// Vcc logic supply maximum write/erase voltage.
    unsigned char maxVcc;
    /// Vpp logic supply minimum write/erase voltage.
    unsigned char minVpp;
    /// Vpp logic supply maximum write/erase voltage.
    unsigned char maxVpp;
    /// Timeout per single write (2<<n) in microsecond.
    unsigned char minTimeOutWrite;
    /// Timeout for minimum-size buffer write (2<<n) in microsecond.
    unsigned char minTimeOutBuffer;
    /// Timeout for block erase (2<<n) in microsecond.
    unsigned char minTimeOutBlockErase;
    /// Timeout for chip erase (2<<n) in microsecond.
    unsigned char minTimeOutChipErase;
    /// Maximum timeout per write (2<<n) in microsecond.
    unsigned char maxTimeOutWrite;
    /// Maximum timeout for buffer write (2<<n) in microsecond.
    unsigned char maxTimeOutBuffer;
    /// Maximum timeout for block erase (2<<n) in microsecond.
    unsigned char maxTimeOutBlockErase;
    /// Maximum timeout for chip erase (2<<n) in microsecond.
    unsigned char maxTimeOutChipErase;
}__attribute__ ((packed));

//------------------------------------------------------------------------------
/// Describes a Norflash CFI Erase block Region information.
//------------------------------------------------------------------------------
struct EraseRegionInfo {
    /// Number of erase blocks within the region.
    unsigned short Y;
    /// Size within the region.
    unsigned short Z;
}__attribute__ ((packed));

//------------------------------------------------------------------------------
/// Describes a Norflash CFI critical details of device geometry.
//------------------------------------------------------------------------------
struct NorFlashCfiDeviceGeometry {

    /// Size of Device (2<<n) in number of bytes.
    unsigned char deviceSize;
    /// Flash device interface description.
    unsigned short deviceInterface;
    /// Maximum number of bytes in multi-byte write (2<<n).
    unsigned short numMultiWrite;
    /// Number of erase block regions.
    unsigned char numEraseRegion;
    /// Erase block Region information.
    struct EraseRegionInfo eraseRegionInfo[2];
}__attribute__ ((packed));

#ifdef __ICCARM__          // IAR
#pragma pack()             // IAR
#endif                     // IAR

//------------------------------------------------------------------------------
/// Describes a Norflash Common Flash Interface information.
//------------------------------------------------------------------------------
struct NorFlashCFI {
    ///CFI query system interface information.
    struct NorFlashCfiQueryInfo norFlashCfiQueryInfo;
    /// CFI critical details of device geometry.
    struct NorFlashCfiDeviceGeometry norFlashCfiDeviceGeometry;
};

//------------------------------------------------------------------------------
/// Describes a particular model of NandFlash device.
//------------------------------------------------------------------------------
struct NorFlashInfo {
	/// Base address.
    unsigned int baseAddress;
    /// Address bus using giving by CFI detection.
    /// It can not retrieve info directly from  the NorFlashCFI, it depend on hardware connection.
    unsigned char deviceChipWidth;
    /// Indicate the decive CFI is compatible
    unsigned char cfiCompatible;
    /// Norflash Common Flash Interface information.
    struct NorFlashCFI  cfiDescription;
};


//------------------------------------------------------------------------------
/// Describes a particular model of NandFlash device.
//------------------------------------------------------------------------------

struct NorFlash {
   const struct NorFlashOperations *pOperations;
   struct NorFlashInfo norFlashInfo;
};

//------------------------------------------------------------------------------
//         Exported functions
//------------------------------------------------------------------------------


extern unsigned char NorFlash_CFI_Detect(
    struct NorFlash *norFlash, 
    unsigned char hardwareBusWidth);
    

unsigned int NorFlash_GetDeviceNumOfBlocks( struct NorFlashInfo *pNorFlashInfo);

unsigned int NorFlash_GetDeviceMinBlockSize(struct NorFlashInfo *pNorFlashInfo);

unsigned int NorFlash_GetDeviceMaxBlockSize(
    struct NorFlashInfo *pNorFlashInfo);
    
unsigned int NorFlash_GetDeviceBlockSize(
    struct NorFlashInfo *pNorFlashInfo,
    unsigned int sector);

unsigned short NorFlash_GetDeviceSectorInRegion(
    struct NorFlashInfo *pNorFlashInfo,
    unsigned int memoryOffset);

unsigned int NorFlash_GetDeviceSectorAddress(
    struct NorFlashInfo *pNorFlashInfo,
    unsigned int sector);

unsigned int NorFlash_GetByteAddress(
   struct NorFlashInfo *pNorFlashInfo, unsigned int offset);

unsigned int NorFlash_GetByteAddressInChip(
   struct NorFlashInfo *pNorFlashInfo, unsigned int offset);

unsigned int NorFlash_GetAddressInChip(
   struct NorFlashInfo *pNorFlashInfo, unsigned int offset);
					 
unsigned char NorFlash_GetDataBusWidth(
   struct NorFlashInfo *pNorFlashInfo);

unsigned long  NorFlash_GetDeviceSizeInBytes(
   struct NorFlashInfo *pNorFlashInfo);

#endif //#ifndef NORFLASHCFI_H

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲免费成人av| 三级欧美在线一区| 亚洲欧美日韩综合aⅴ视频| 亚洲黄网站在线观看| 日日夜夜一区二区| 国产成人精品三级| 日本高清无吗v一区| 久久一区二区视频| 亚洲伊人伊色伊影伊综合网| 日韩avvvv在线播放| 成人丝袜高跟foot| 91香蕉视频在线| 国产日韩欧美精品在线| 亚洲成年人影院| 丁香婷婷深情五月亚洲| 欧美丰满一区二区免费视频| 亚洲色图丝袜美腿| 国产毛片精品一区| 555夜色666亚洲国产免| 国产日韩欧美麻豆| 国产欧美一区二区精品久导航| 午夜婷婷国产麻豆精品| 国产91精品一区二区麻豆网站| 欧美日韩一区不卡| 亚洲私人影院在线观看| 日本v片在线高清不卡在线观看| av在线这里只有精品| 精品久久久久久久久久久久久久久 | 日韩欧美精品在线视频| 亚洲高清不卡在线观看| av色综合久久天堂av综合| 日韩一区二区在线观看视频| 亚洲激情第一区| 本田岬高潮一区二区三区| 国产欧美一区二区精品性色超碰| 久久er99精品| 日韩一区二区三区视频| 亚洲制服丝袜av| 91猫先生在线| 一区二区三区欧美激情| 色欧美片视频在线观看在线视频| 中文字幕av资源一区| 国产一区二区免费视频| 欧美成人精品福利| 精品亚洲国产成人av制服丝袜 | 青青草原综合久久大伊人精品| 91蝌蚪porny| 久久网站最新地址| 国产精品一级在线| 国产日韩精品一区二区浪潮av | 欧美一区二区私人影院日本| 亚洲一区二区欧美| 在线观看www91| 欧美激情资源网| 色噜噜狠狠色综合中国| 亚洲人被黑人高潮完整版| 成人精品国产福利| 国产精品护士白丝一区av| 成人精品高清在线| 亚洲国产电影在线观看| 97成人超碰视| 亚洲欧美aⅴ...| 色综合久久久久久久久| 亚洲一区二区中文在线| 欧美高清hd18日本| 国产在线精品一区二区不卡了| 日韩一区二区在线观看视频| 日韩av一区二区三区| 久久久精品综合| 欧美日韩国产欧美日美国产精品| 久久精品av麻豆的观看方式| 亚洲色图欧美偷拍| 精品日韩成人av| 在线日韩一区二区| 国产一区二区看久久| 亚洲一线二线三线视频| 国产亚洲欧美日韩在线一区| 欧美久久免费观看| 972aa.com艺术欧美| 青青草国产精品97视觉盛宴| 亚洲日本护士毛茸茸| 精品国产91亚洲一区二区三区婷婷| 99精品视频中文字幕| 激情综合色播激情啊| 亚洲在线成人精品| 中文字幕在线观看不卡| 日韩无一区二区| 欧美日韩国产在线观看| 99热精品国产| 国产黄色精品网站| 久久97超碰国产精品超碰| 亚洲午夜久久久久久久久久久 | 久久一夜天堂av一区二区三区| 91福利视频在线| 成人性生交大片免费| 蜜臀99久久精品久久久久久软件| 亚洲男人的天堂在线观看| 国产天堂亚洲国产碰碰| 欧美sm美女调教| 欧美一区二区三区四区视频| 欧美图片一区二区三区| 91麻豆精品秘密| 99精品黄色片免费大全| 丁香婷婷综合五月| 国产99一区视频免费| 国产九色精品成人porny| 日本成人在线网站| 午夜精彩视频在线观看不卡| 亚洲一区二区偷拍精品| 夜夜操天天操亚洲| 亚洲午夜久久久久中文字幕久| 亚洲人成小说网站色在线| 亚洲视频1区2区| 一区二区三区在线看| 一区二区视频在线看| 一区二区日韩av| 亚洲电影你懂得| 日韩国产一二三区| 免费成人小视频| 久久er99热精品一区二区| 久久国产精品色婷婷| 久久97超碰国产精品超碰| 国模冰冰炮一区二区| 国产jizzjizz一区二区| heyzo一本久久综合| 不卡的av网站| 欧美日韩一区二区在线视频| 欧美色爱综合网| 91精品蜜臀在线一区尤物| 日韩一级在线观看| 国产视频911| 一区免费观看视频| 亚洲1区2区3区视频| 久久国产精品区| 成人午夜又粗又硬又大| 色综合天天天天做夜夜夜夜做| 欧美日韩一二区| 26uuu亚洲| 亚洲日本乱码在线观看| 日韩国产欧美三级| 国产曰批免费观看久久久| 99麻豆久久久国产精品免费| 91福利社在线观看| 亚洲精品在线网站| 中文字幕欧美一| 日本欧美大码aⅴ在线播放| 国产在线一区二区综合免费视频| 国产成人综合在线观看| 欧洲精品中文字幕| 久久综合久色欧美综合狠狠| 亚洲人亚洲人成电影网站色| 日韩电影在线一区二区| 不卡电影一区二区三区| 欧美妇女性影城| 成人欧美一区二区三区视频网页| 午夜视频一区二区| 成人免费看片app下载| 欧美日韩成人在线一区| 国产日韩精品视频一区| 日本在线不卡一区| 99精品视频免费在线观看| 日韩一区二区视频| 亚洲男人天堂av网| 国产凹凸在线观看一区二区| 欧美日韩精品一区视频| 欧美国产精品v| 日韩精品国产欧美| 色噜噜狠狠成人中文综合| 欧美一卡在线观看| 亚洲综合激情另类小说区| 国产精品一二一区| 日韩午夜av电影| 午夜视频一区在线观看| 91社区在线播放| 国产亚洲短视频| 久久99国产精品免费网站| 欧美日本视频在线| 一区二区免费视频| 99在线视频精品| 国产视频一区二区在线| 日本不卡中文字幕| 欧美日韩另类一区| 亚洲一区二区三区四区在线观看 | 久久99精品国产麻豆婷婷| 欧美影院精品一区| 国产精品美女久久久久久久| 精品一区二区三区av| 欧美一区二区三区四区高清| 亚洲国产日韩一区二区| 91丨九色丨尤物| **欧美大码日韩| 一本一本大道香蕉久在线精品| 日本一区二区视频在线| 国产美女精品在线| 久久亚洲综合色一区二区三区 | 久久久无码精品亚洲日韩按摩| 蜜桃传媒麻豆第一区在线观看| 欧美日韩精品电影| 亚洲小少妇裸体bbw| 欧美色图片你懂的|