2009.08 添加 dnw usb下载功能

2、修改uboot根目录下的Makefeils,添加红色部分代码

 

LIBS += drivers/usb/musb/libusb_musb.a

# Apollo +

LIBS += drivers/usb/slave/libusb_slave.a

# Apollo -

LIBS += drivers/video/libvideo.a

 


3、修改lib_arm/board.c文件,添加红色部分代码

//Apollo +

    Port_Init();
    /* enable exceptions */
    enable_interrupts ();
    usb_init();

//Apollo -

 

4、修改平台头文件,include/configs/utu2440.h,添加红色部分 

#define CONFIG_USB_DEVICE 1

#ifdef CONFIG_USB_DEVICE

#define CONFIG_USE_IRQ 1

#endif

//#undef CONFIG_USE_IRQ /* we don't need IRQ/FIQ stuff */

 


5、修改cpu/arm920t/s3c24x0/interrupts.c 文件,添加arch_interrupt_init函数定义

    //Apollo +

    int arch_interrupt_init (void)
    {
        return 0;
    }
    //Apollo -

 


6、修改cpu/arm920t/start.S,文件

    #ifdef CONFIG_USE_IRQ
    
        .align    5
    irq:
    //Apollo +,此处开始修改
    /*
        get_irq_stack
        irq_save_user_regs
        bl    do_irq
        irq_restore_user_regs
    */


    /* use IRQ for USB and DMA */
        sub    lr, lr, #4             @ the return address
        ldr    sp, IRQ_STACK_START     @ the stack for irq
        stmdb  sp!,   { r0-r12,lr }    @ save registers
        
        ldr    lr,    =int_return         @ set the return addr
        ldr    pc, =IRQ_Handle         @ call the isr
    int_return:
        ldmia  sp!,   { r0-r12,pc }^    @ return from interrupt
    //Apollo -,修改结束

 

 

7、修改include/s3c24x0.h,文件

 

//Apollo +

    S3C24X0_REG8    MAXP_REG;
//    S3C24X0_REG8    res10[7];
    S3C24X0_REG8    res10[3];
    S3C24X0_REG8    EP0_CSR_IN_CSR1_REG;
    S3C24X0_REG8    res11[3];
    S3C24X0_REG8    IN_CSR2_REG;
//    S3C24X0_REG8    res12[3];
    S3C24X0_REG8    res12[7];
    S3C24X0_REG8    OUT_CSR1_REG;
//    S3C24X0_REG8    res13[7];
    S3C24X0_REG8    res13[3];

//Apollo -

 

8、添加usbslave命令

在common目录下创建cmd_usbslave.c
 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwfsgw.html