AT91新片开发U盘读写的一些小问题

hjj000   2009-4-1 22:06 楼主
   最近在做一个课题,用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;
        }
    }
}

回复评论 (3)

自己加上nand flash的驱动
点赞  2009-4-2 16:23
谢谢了,我去试试
点赞  2009-4-15 17:25
请问楼主您对片外Flash读写的程序做出来了没有,如果您调通了,麻烦您给我发一份。我也遇到同样棘手的问题。我加上了nand flash的驱动后,和Nand Flash的通信也不通。请多多赐教!!不胜感激!!!
我的邮箱:liuxuhui20082000@126.com
再次表示感谢!
点赞  2010-4-12 16:58
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复