最近在做一个课题,用at91sam7x256的芯片做一个U盘读写程序,IAR平台开发,有一个可运行程序,但是实际操作中有一些问题,做课题的板子自带FLASH是32M内存,但是程序只对板子的内部FLASH做读写,所以现在可用大小只有200多K,如何修改程序,把对内部FALSH的读写操作改成对外部的,从而是U盘的容量可以真正达到32M,希望高手给与解答,是只对主程序做修改就可以啊,还是需要重新编写FLASH相关的库函数啊?
附main函数:int main(void)
{
TRACE_CONFIGURE(DBGU_STANDARD, 115200, BOARD_MCK);
printf("-- USB Device Mass Storage Project %s --\n\r", SOFTPACK_VERSION);
printf("-- %s\n\r", BOARD_NAME);
printf("-- Compiled: %s %s --\n\r", __DATE__, __TIME__);
// If they are present, configure Vbus & Wake-up pins
PIO_InitializeInterrupts(0);
WAKEUP_CONFIGURE();
MemoryInitialization();
ASSERT(numMedias > 0, "Error: No media defined.\n\r");
TRACE_DEBUG("%u medias defined\n\r", numMedias);
// BOT driver initialization
MSDDriver_Initialize(luns, numMedias);
// connect if needed
VBUS_CONFIGURE();
while (USBD_GetState() < USBD_STATE_CONFIGURED);
// Infinite loop
while (1) {
// Mass storage state machine
MSDDriver_StateMachine();
if( USBState == STATE_SUSPEND ) {
TRACE_DEBUG("suspend !\n\r");
LowPowerMode();
USBState = STATE_IDLE;
}
if( USBState == STATE_RESUME ) {
// Return in normal MODE
TRACE_DEBUG("resume !\n\r");
NormalPowerMode();
USBState = STATE_IDLE;
}
}
}
请问楼主您对片外Flash读写的程序做出来了没有,如果您调通了,麻烦您给我发一份。我也遇到同样棘手的问题。我加上了nand flash的驱动后,和Nand Flash的通信也不通。请多多赐教!!不胜感激!!!
我的邮箱:liuxuhui20082000@126.com
再次表示感谢!