阅读:1528回复:0
请教一个固件问题
年关了救救小弟
做不出来不让回家过年啊!!!! 小弟在用CS5954AM做U盘开发固件时遇到些问题 下面是CYPRESS的一段固件源码: .xlist include nandflsh.inc .list cDevSel equ 0xe0 ;********************************************************************** ; Software Init: Default Setting to Rec command From Host ; Using Scan for Enhancement code ;********************************************************************** dw 0xc3b6 ;enhancement signature dw 4 ;length of stuff db 0 ;COPY opcode dw 0xc006 ;mov [0xc006],0 setup processor at 48MHz #ifdef USE_12 dw 0x40 ;setup for 12MHz oscillator #else dw 0 ;setup for 48MHz oscillator #endif dw 0xc3b6 ;enhancement signature dw 4 ;length of stuff db 0 ;COPY opcode dw 0xc03a #ifdef USE_SLOW ;;make SRAM 8-bit or 16-bit dw 0x00b ;ext=16-bit,0-wait|rom=16,bit-0wait|ram=8-bit,3-wait #else dw 0x009 ;ext=16-bit,0-wait|rom=16,bit-0wait|ram=8-bit,1-wait #endif dw 0xc3b6 ;enhancement signature dw 4 ;length of stuff db 0 ;COPY opcode dw (83*2) dw std_class dw 0xc3b6 ;enhancement signature dw 6 ;length of stuff db 0 ;COPY opcode dw (91*2) ;string descriptor loc;; dw conf_desc dw string_desc dw 0xc3b6 ;enhancement signature dw 4 ;length of stuff db 0 ;COPY opcode dw (USB_DELTA_CONFIG_INT*2) ;; dw New_Delta dw 0xc3b6 ;enhancement signature dw ((IRAM0_E-IRAM0_S)+2) ;length of IRAM0 db 0 ;memory copy dw IRAM0 ;??IRAM0,IRAM_S reloc IRAM0 IRAM0_S: 这是固件开头的一段,0Xc3b6是中断67的信号标记而0XE0是源地址(起始位置)我的问题在这儿 dw 0xc3b6 ;enhancement signature dw ((IRAM0_E-IRAM0_S)+2) ;length of IRAM0 db 0 ;memory copy dw IRAM0 ;??IRAM0,IRAM_S reloc IRAM0 按照头文件的描述如下 ;************************************************************************** ; Unused RAM space for SL11R chip Rev 1.2 & CS5954AM ; IRAM0: 0x01e-0x07e 0x60 free MEM: interrupt vector 15 to int 63 ; IRAM1: 0x0c2-0x0fe 0x38 free MEM: interrupt vector 97 to int 127 ; IRAM2: 0x2f2-0x33e 0x4C free MEM: RAM variables ; Remove UART: ; IRAMU: 0x22a-0x268 0x3E free, must disable UART_INT and UART_IDLE task ;************************************************************************** 这个IRAM0是个什么东东我看不明白,我猜是一个USB通道但是有问题它的地址空间0x01e-0x07e为什么不在0XE0后面 如果是中断向量组空间从中断15到63又大有问题,CS5954AM中断分类如下: 硬中断 InterruptNumber VectorAddress InterruptType Note 0 0x0000 Timer0 1 1 0x0002 Timer1 2 2 0x0004 GP IRQ0 2 3 0x0006 GP IRQ1 2 4 0x0008 UART Tx 1 5 0x000A UART Rx 1 6 0x000C Fast DMA Done 2 7 0x000E USB Reset 8 0x0010 USB SOF 3 9 0x0012 USB Endpoint0 1 No Error 10 0x0014 USB Endpoint0 Error 1 11 0x0016 USB Endpoint1 No Error 12 0x0018 USB Endpoint1 Error 13 0x001A USB Endpoint2 No Error 14 0x001C USB Endpoint2 Error 15 0x001E USB Endpoint3 No Error 16 0x0020 USB Endpoint3 Error 17 0x0022 Mailbox TX Empty (16-Bit Mode Only) 2 18 0x0024 Mailbox RX Full (16-Bit Mode Only) 2 19-63 0x0026- 0x003E Reserved 2 请诸位大哥帮小弟看一下看一下这个IRAM0,IRAM1这几个东东是干吗的,小弟在编固件编不出来就过不了年了谢了! |
|