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 + -
显示快捷键?