⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 amd_flash_b.h

📁 摩托罗拉MMC2107在ucosII的移植代码
💻 H
📖 第 1 页 / 共 3 页
字号:
/************************************************************************/
/*  File: amd_flash_b.h File containing the structures and prototypes   */
/*                for the AMD_FLASH_B                                   */
/*                                                                      */
/*  Design Reference:  Doc. Name                       Version          */
/*                     ---------------------------     -------          */
/*                     AMD_FLASH_B Level 1 Service         1.0          */
/*                     Functional Design Specification                  */
/*                                                                      */
/*  (C) Copyright Motorola Inc, 1999.  All rights reserved.             */
/*                                                                      */
/*  $RCSfile: amd_flash_b.h,v $                                         */     
/*  $Revision: 1.2 $                                                   */
/*  $Date: 2000/06/23 19:35:17 $                                        */
/*  $Author: jeffk $                                                 */
/*                                                                      */
/************************************************************************/

#ifndef _AMD_FLASH_B_H
#define _AMD_FLASH_B_H

#include "mcore.h"

/*----------------------------------------------------------------------*/
/*  AMD_FLASH_B Register Definitions                                    */
/*----------------------------------------------------------------------*/
typedef UINT32 AMD_FLASH_B_t, *pAMD_FLASH_B_t;

/*----------------------------------------------------------------------*/
/* Enumerations                                                         */
/*----------------------------------------------------------------------*/

/* AMD FLASH Mode Selection */
typedef enum 
{
	AMD_FLASH_B_ALL,			/* entire chip */
	AMD_FLASH_B_SA0,			/* sector SA0 */
	AMD_FLASH_B_SA1,			/* sector SA1 */
	AMD_FLASH_B_SA2,			/* sector SA2 */
	AMD_FLASH_B_SA3,			/* sector SA3 */
	AMD_FLASH_B_SA4,			/* sector SA4 */
	AMD_FLASH_B_SA5,			/* sector SA5 */
	AMD_FLASH_B_SA6,			/* sector SA6 */
	AMD_FLASH_B_SA7,			/* sector SA7 */
	AMD_FLASH_B_SA8,			/* sector SA8 */
	AMD_FLASH_B_SA9,			/* sector SA9 */
	AMD_FLASH_B_SA10,			/* sector SA10 */
	AMD_FLASH_B_SA11,			/* sector SA11 */
	AMD_FLASH_B_SA12,			/* sector SA12 */
	AMD_FLASH_B_SA13,			/* sector SA13 */
	AMD_FLASH_B_SA14,			/* sector SA14 */
	AMD_FLASH_B_SA15,			/* sector SA15 */
	AMD_FLASH_B_SA16,			/* sector SA16 */
	AMD_FLASH_B_SA17,			/* sector SA17 */
	AMD_FLASH_B_SA18			/* sector SA18 */
} AMD_FLASH_B_SECTOR_t;

/* AMD FLASH Return Codes */
typedef enum {
   AMD_FLASH_B_ERR_NONE = 0x0L,        /* No error (force long)   */
   AMD_FLASH_B_ERR_INVALID_HANDLE,     /* Device handle is NULL   */
   AMD_FLASH_B_ERR_INVALID_SECTOR,     /* Sector given is invalid */
   AMD_FLASH_B_ERR_BAD_RESULT_ADDR     /* Result address is NULL  */
} AMD_FLASH_B_ReturnCode_t;   


/* AMD FLASH Booleans */
typedef enum
{
   AMD_FLASH_B_FALSE,
   AMD_FLASH_B_TRUE
} AMD_FLASH_B_Boolean_t;   

/*----------------------------------------------------------------------*/
/* Structures                                                           */
/*----------------------------------------------------------------------*/

/*----------------------------------------------------------------------*/
/* Command Sequence Address offsets                                     */
/*----------------------------------------------------------------------*/
#define AMD_FLASH_B_COMMAND_ADDRESS_1  0x2AA  /* AMD FLASH 0x2AA offset */
#define AMD_FLASH_B_COMMAND_ADDRESS_2  0x555  /* AMD FLASH 0x555 offset */
#define AMD_FLASH_B_COMMAND_ADDRESS_3  0xAAA  /* AMD FLASH 0xAAA offset */

/*----------------------------------------------------------------------*/
/* Starting address offsets for the sectors                             */
/*----------------------------------------------------------------------*/
/* for Am29LV800BB chip bottom boot block sector */
#define	AMD_FLASH_B_SA0_BOTTOM_BOOT   0x00000
#define	AMD_FLASH_B_SA1_BOTTOM_BOOT   0x02000
#define	AMD_FLASH_B_SA2_BOTTOM_BOOT   0x03000
#define	AMD_FLASH_B_SA3_BOTTOM_BOOT   0x04000
#define	AMD_FLASH_B_SA4_BOTTOM_BOOT   0x08000
#define	AMD_FLASH_B_SA5_BOTTOM_BOOT   0x10000
#define	AMD_FLASH_B_SA6_BOTTOM_BOOT   0x18000
#define	AMD_FLASH_B_SA7_BOTTOM_BOOT   0x20000
#define	AMD_FLASH_B_SA8_BOTTOM_BOOT   0x28000
#define	AMD_FLASH_B_SA9_BOTTOM_BOOT   0x30000
#define	AMD_FLASH_B_SA10_BOTTOM_BOOT  0x38000
#define	AMD_FLASH_B_SA11_BOTTOM_BOOT  0x40000
#define	AMD_FLASH_B_SA12_BOTTOM_BOOT  0x48000
#define	AMD_FLASH_B_SA13_BOTTOM_BOOT  0x50000
#define	AMD_FLASH_B_SA14_BOTTOM_BOOT  0x58000
#define	AMD_FLASH_B_SA15_BOTTOM_BOOT  0x60000
#define	AMD_FLASH_B_SA16_BOTTOM_BOOT  0x68000
#define	AMD_FLASH_B_SA17_BOTTOM_BOOT  0x70000
#define	AMD_FLASH_B_SA18_BOTTOM_BOOT  0x78000

/* for Am29LV800BT chip Top Boot Block sector */
#define	AMD_FLASH_B_SA0_TOP_BOOT   0x00000
#define	AMD_FLASH_B_SA1_TOP_BOOT   0x08000
#define	AMD_FLASH_B_SA2_TOP_BOOT   0x10000
#define	AMD_FLASH_B_SA3_TOP_BOOT   0x18000
#define	AMD_FLASH_B_SA4_TOP_BOOT   0x20000
#define	AMD_FLASH_B_SA5_TOP_BOOT   0x28000
#define	AMD_FLASH_B_SA6_TOP_BOOT   0x30000
#define	AMD_FLASH_B_SA7_TOP_BOOT   0x38000
#define	AMD_FLASH_B_SA8_TOP_BOOT   0x40000
#define	AMD_FLASH_B_SA9_TOP_BOOT   0x48000
#define	AMD_FLASH_B_SA10_TOP_BOOT  0x50000
#define	AMD_FLASH_B_SA11_TOP_BOOT  0x58000
#define	AMD_FLASH_B_SA12_TOP_BOOT  0x60000
#define	AMD_FLASH_B_SA13_TOP_BOOT  0x68000
#define	AMD_FLASH_B_SA14_TOP_BOOT  0x70000
#define	AMD_FLASH_B_SA15_TOP_BOOT  0x78000
#define	AMD_FLASH_B_SA16_TOP_BOOT  0x7C000
#define	AMD_FLASH_B_SA17_TOP_BOOT  0x7D000
#define	AMD_FLASH_B_SA18_TOP_BOOT  0x7E000


/*----------------------------------------------------------------------*/
/* AMD_FLASH_B Miscellaneous Defines                                    */
/*----------------------------------------------------------------------*/
#define TOP_BOOT_BLOCK_WORD          0x22DA22DA
#define BOTTOM_BOOT_BLOCK_WORD       0x225B225B
#define ERASED_WORD                  0xFFFFFFFF
#define SECTOR_PROTECT_ON_WORD       0x00010001
#define AMD_MANUFACTURER_ID_WORD     0x00010001

/* Hard coded AMD Flash commands */
#define AMD_FLASH_B_COMMAND_00   0x00000000
#define AMD_FLASH_B_COMMAND_10   0x10101010
#define AMD_FLASH_B_COMMAND_20   0x20202020
#define AMD_FLASH_B_COMMAND_30   0x30303030
#define AMD_FLASH_B_COMMAND_55   0x55555555
#define AMD_FLASH_B_COMMAND_80   0x80808080
#define AMD_FLASH_B_COMMAND_90   0x90909090
#define AMD_FLASH_B_COMMAND_A0   0xA0A0A0A0
#define AMD_FLASH_B_COMMAND_AA   0xAAAAAAAA
#define AMD_FLASH_B_COMMAND_B0   0xB0B0B0B0
#define AMD_FLASH_B_COMMAND_F0   0xF0F0F0F0

/*----------------------------------------------------------------------*/
/* Prototypes                                                           */
/*----------------------------------------------------------------------*/
AMD_FLASH_B_ReturnCode_t AMD_FLASH_B_Erase_f( pAMD_FLASH_B_t  AMD_FLASHPtr,
                            AMD_FLASH_B_SECTOR_t Sector
                            );


AMD_FLASH_B_ReturnCode_t AMD_FLASH_B_SuspendErase_f( 
                                   pAMD_FLASH_B_t  AMD_FLASHPtr
                                   );


AMD_FLASH_B_ReturnCode_t AMD_FLASH_B_ResumeErase_f( 
                                  pAMD_FLASH_B_t  AMD_FLASHPtr
                                  );


AMD_FLASH_B_ReturnCode_t AMD_FLASH_B_Program_f( pAMD_FLASH_B_t  AMD_FLASHPtr,
                              UINT32 *TargetPtr,
                              UINT32  Word
                              );

AMD_FLASH_B_ReturnCode_t AMD_FLASH_B_ControlUnlockBypass_f( 
                                        pAMD_FLASH_B_t  AMD_FLASHPtr,
                                        AMD_FLASH_B_Boolean_t EnableBypass
                                        );


AMD_FLASH_B_ReturnCode_t AMD_FLASH_B_ProgramUnlockBypass_f( 
                                          pAMD_FLASH_B_t  AMD_FLASHPtr,
                                          UINT32 *TargetPtr,
                                          UINT32 Word
                                          );


AMD_FLASH_B_ReturnCode_t AMD_FLASH_B_GetManufacturerID_f(
                                        pAMD_FLASH_B_t  AMD_FLASHPtr,
                                        UINT32 *ResultPtr
                                        );


AMD_FLASH_B_ReturnCode_t AMD_FLASH_B_GetDeviceID_f(
                                  pAMD_FLASH_B_t  AMD_FLASHPtr,
                                  UINT32 *ResultPtr
                                  );


AMD_FLASH_B_ReturnCode_t AMD_FLASH_B_VerifySectorProtect_f( 
                                          pAMD_FLASH_B_t  AMD_FLASHPtr,
                                          AMD_FLASH_B_SECTOR_t Sector,
                                          AMD_FLASH_B_Boolean_t *ResultPtr
                                          );


AMD_FLASH_B_ReturnCode_t AMD_FLASH_B_BlankCheck_f( 
                                 pAMD_FLASH_B_t  AMD_FLASHPtr,

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -