m54455evb_flash_test.c

来自「Freescale MCF5445evb 参考测试代码」· C语言 代码 · 共 103 行

C
103
字号
/*! * \file    m54455evb_flash_test.c * \brief   Test Flash0 and Flash1 on the M54455EVB (aka Jamaica) * \version $Revision: 1.1 $ * \author  Michael Norman * * Test the 16MB (1 x 8bit, 28F128J3D) flash on Jamaica known as "Flash1" * Test the 512K (1 x 8bit, AT49BV040A/AM29LV040) flash on Jamaica known as "Flash0"*/ #include "common.h"#include "amd_flash.h"#include "strata_flash.h"#include "m54455evb_fat.h"/*! Test data */static uint8 data[] = {    0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80,    0xAA, 0x55, 0x33, 0xCC, 0x66, 0x99, 0xFF, 0x00    };                /********************************************************************//*! * \brief   Flash1 Test * \return  0 if the tests was successful; non-zero otherwise */intflash1_test(void){    int result, i;    strata_flash_init(FLASH1_ADDRESS);        /* Erase and program data in sector 4 */	result = strata_flash_program((ADDRESS)(FLASH1_ADDRESS + (4 * 0x020000)),							   (ADDRESS)data, sizeof(data), YES, NULL, NULL);	if (result != sizeof(data))		return 1;            for (i = 0; i < sizeof(data); i++)    {        if (*(uint8*)(FLASH1_ADDRESS + (4 * 0x020000) + i) != data[i])            return 2;    }    strata_flash_erase((ADDRESS)(FLASH1_ADDRESS + (4 * 0x020000)), 1, NULL);    /* Erase and program data in sector 125 */	result = strata_flash_program((ADDRESS)(FLASH1_ADDRESS + (125 * 0x020000)),							   (ADDRESS)data, sizeof(data), YES, NULL, NULL);	if (result != sizeof(data))		return 3;            for (i = 0; i < sizeof(data); i++)    {        if (*(uint8*)(FLASH1_ADDRESS + (125 * 0x020000) + i) != data[i])            return 4;    }    strata_flash_erase((ADDRESS)(FLASH1_ADDRESS + (125 * 0x020000)), 1, NULL);    /* pass */    return 0;}/********************************************************************//*! * \brief   Flash0 Test * \return  0 if the tests was successful; non-zero otherwise */intflash0_test(void){    int result, i;    amd_flash_init(FLASH0_ADDRESS);        /* Erase and program data in sector 2 */	result = amd_flash_program((ADDRESS)(FLASH0_ADDRESS + 0x006000),							   (ADDRESS)data, sizeof(data), YES, NULL, NULL);	if (result != sizeof(data))		return 1;            for (i = 0; i < sizeof(data); i++)    {        if (*(uint8*)(FLASH0_ADDRESS + 0x006000 + i) != data[i])            return 2;    }    amd_flash_erase((ADDRESS)(FLASH0_ADDRESS + 0x006000), 1, NULL);    /* Erase and program data in sector 10 */	result = amd_flash_program((ADDRESS)(FLASH0_ADDRESS + 0x070000),							   (ADDRESS)data, sizeof(data), YES, NULL, NULL);	if (result != sizeof(data))		return 3;    for (i = 0; i < sizeof(data); i++)    {        if (*(uint8*)(FLASH0_ADDRESS + 0x070000 + i) != data[i])            return 4;    }    amd_flash_erase((ADDRESS)(FLASH0_ADDRESS + 0x070000), 1, NULL);        /* pass */    return 0;}/********************************************************************/

⌨️ 快捷键说明

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