#include #include #include #include #include #include #include "flash.h" #define TESTBLOCK 0x0E uint buff[256]; void main(void) { int fd = 0; int uTemp = 0; fd = open("/dev/flash", O_RDWR); if (fd <0) { printf("Error %d opening /dev/flash\n",fd); return; } else { printf("Flash Open OK, rc = 0x%X.\n",fd); } uTemp = lseek(fd, TESTBLOCK*64*1024, 0); printf("Seek rc = 0x%X.\n",uTemp); uTemp = read(fd, buff, 256*4); printf("read rc = 0x%X.\n",uTemp); printf("First 12 DWORDs from the buff...\n"); printf("%08X %08X %08X %08X\n",*buff,*(buff+1),*(buff+2),*(buff+3)); printf("%08X %08X %08X %08X\n",*(buff+4),*(buff+5),*(buff+6),*(buff+7)); printf("%08X %08X %08X %08X\n",*(buff+8),*(buff+9),*(buff+10),*(buff+11)); ioctl(fd, CMD_WRITE_DISABLE); printf("Press ENTER to do erase/write of block 0x%02X...\n",TESTBLOCK); printf("If this flash block is in use, press Ctrl-C NOW!!!\n"); getchar(); for (uTemp=0;uTemp<256;uTemp++) *(buff+uTemp) = 0x12345678; uTemp = lseek(fd, TESTBLOCK*64*1024, 0); printf("Seek rc = 0x%X.\n",uTemp); ioctl(fd, CMD_WRITE_ENABLE); uTemp = write(fd,buff,256*4); printf("write rc = 0x%X.\n",uTemp); ioctl(fd, CMD_WRITE_DISABLE); // getchar(); if (close(fd) != 0) printf("Error closing /dev/flash\n"); }