static int DO_SPI_FLASH(int argc, char * const argv[]) { uint32_t i; int x,y; #define SPI_FLASH_TEST_LEN (1024*512) volatile uint8_t* buf_test = SRAM_START_ADDRESS; uint32_t ret; static struct spi_bus bus; ret = kinetis_spi_bus_init(&bus, HW_SPI2); ret = ads7843_init(&bus, 0); ret = w25qxx_init(&bus, 1); for(i=0;i<100;i++) { ads7843_readX(&x); ads7843_readY(&y); printf("X:%04d Y:%04d\r", x, y); DelayMs(10); } /* probe w25qxx */ if(w25qxx_probe()) { printf("no w25qxx deived found\r\n"); return 1; } printf("%s detected!\r\n", w25qxx_get_name()); /* for(i=0;i<SPI_FLASH_TEST_LEN;i++) { buf_test[i] = i; } if(w25qxx_write(0, (uint8_t*)buf_test, SPI_FLASH_TEST_LEN)) { printf("w25qxx write failed\r\n"); return 1; } memset((uint8_t*)buf_test,0, SPI_FLASH_TEST_LEN); if(w25qxx_read(0, (uint8_t*)buf_test, SPI_FLASH_TEST_LEN)) { printf("w25qxx read failed\r\n"); return 1; } for(i=0;i<SPI_FLASH_TEST_LEN;i++) { if(buf_test[i] != i%256) { printf("error:[0x%X]:%d\r\n", i, buf_test[i]); } } */ printf("spi flash test finish!\r\n"); return 0; }
//芯片初始化 int w25qxx_init(struct w25qxx_init_t* init) { memcpy(&w25_dev.ops, init, sizeof(struct w25qxx_init_t)); return w25qxx_probe(); }