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

📄 strata_flash.h

📁 Freescale MCF5445evb 参考测试代码
💻 H
字号:
/* * File:        strata_flash.h * Purpose:     Flash driver for programming Intel Flash devices * * Notes:       This driver supports a single banks of Intel Flash. *              A bank is defined as one or more of the same Flash  *              device connected to a single chip-select. * */#ifndef _STRATA_FLASH_H_#define _STRATA_FLASH_H_/********************************************************************/#ifndef STRATA_FLASH_DEVICES#define STRATA_FLASH_DEVICES  1#endif/********************************************************************//* * Flash sector definitions - addresses are given in bytes (not words!) */#if (defined(STRATA_FLASH_28F256P30B))    /* 256Kbit P30, Bottom Boot */    #define STRATA_FLASH_SECTORS    259    #define SF_SSIZE(n)     (n < 4 ? 0x08000 * STRATA_FLASH_DEVICES     \                                   : 0x20000 * STRATA_FLASH_DEVICES)    #define SF_SOFFSET(n)   (n < 4 ? 0x08000 * STRATA_FLASH_DEVICES * n \                                   : 0x20000 * STRATA_FLASH_DEVICES * (n - 3))    #define SF_SADDR(n)     (SF_SOFFSET(n) >> STRATA_FLASH_BUS_SHIFT)    #define STRATA_FLASH_16BIT#elif (defined(STRATA_FLASH_28F128J3D))    /*     * Uniform sectors of 128 KBytes     */    #define STRATA_FLASH_SECTORS    128    #define SF_SSIZE(n)             (0x20000 * STRATA_FLASH_DEVICES)    #define SF_SOFFSET(n)           (0x20000 * n)    #define SF_SADDR(n)             ((0x20000 * n) >> STRATA_FLASH_BUS_SHIFT)    #define STRATA_FLASH_8BIT#else#error "Unsupported Flash device"#endif/********************************************************************//* * Defines used to correctly address the Flash device(s) * * STRATA_FLASH_BUS_SHIFT - Number of bits to right-shift the byte *                            offsets of the sectors * STRATA_FLASH_CELL      - Port size of Flash device(s) * STRATA_FLASH_CMD_DATA  - Format of data when issuing commands *                         */#if defined(STRATA_FLASH_16BIT)    #if (STRATA_FLASH_DEVICES == 1)        #define STRATA_FLASH_BUS_SHIFT        1        #define STRATA_FLASH_CELL             vuint16        #define STRATA_FLASH_CELL_BYTES       2        #define STRATA_FLASH_CELL_MASK        0x1        #define STRATA_FLASH_CMD_DATA(x)      ((uint16)x)    #elif (STRATA_FLASH_DEVICES == 2)        #define STRATA_FLASH_BUS_SHIFT        2        #define STRATA_FLASH_CELL             vuint32        #define STRATA_FLASH_CELL_BYTES       4        #define STRATA_FLASH_CELL_MASK        0x3        #define STRATA_FLASH_CMD_DATA(x)      ((uint32)((x<<16)|x))    #else    #error "Unsupported number of Flash devices"    #endif#elif defined(STRATA_FLASH_8BIT)    #if (STRATA_FLASH_DEVICES == 1)        #define STRATA_FLASH_BUS_SHIFT        0        #define STRATA_FLASH_CELL             vuint8        #define STRATA_FLASH_CELL_BYTES       1        #define STRATA_FLASH_CELL_MASK        0x0        #define STRATA_FLASH_CMD_DATA(x)      ((uint8)x)    #elif (STRATA_FLASH_DEVICES == 2)        #define STRATA_FLASH_BUS_SHIFT        1        #define STRATA_FLASH_CELL             vuint16        #define STRATA_FLASH_CELL_BYTES       2        #define STRATA_FLASH_CELL_MASK        0x1        #define STRATA_FLASH_CMD_DATA(x)      ((uint16)x)    #else    #error "Unsupported number of Flash devices"    #endif#else#error "Unsupported Flash device size"#endif/********************************************************************/STRATA_FLASH_CELLstrata_flash_read_device_info(int);voidstrata_flash_init(ADDRESS);voidstrata_flash_sector_unlock(int);voidstrata_flash_sector_lock(int);intstrata_flash_sector_erase(int);intstrata_flash_erase(ADDRESS, int, void(*)(char));intstrata_flash_program_cell(STRATA_FLASH_CELL*, STRATA_FLASH_CELL);int strata_flash_program(ADDRESS, ADDRESS, int, int, void(*)(void), void(*)(char));int strata_flash_sector_number(ADDRESS);ADDRESS strata_flash_sector_start(ADDRESS);ADDRESS strata_flash_sector_end(ADDRESS);/********************************************************************/#endif /* _STRATA_FLASH_H */

⌨️ 快捷键说明

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