|
- 我使用GPIO模拟IIC初始化OV9652 已经成功(我读出来和写入数值一致)
- 并且用应用程序打开摄像头驱动时候,摄像头驱动也已经能够不停的产生中断。
- 但是不知道怎么回事,但是图像死活不出现。——我用老的BSP 编译出NK 摄像头可以正常采集,排除了硬件问题。
- 但是我把老的BSP的代码搬到5.0 却死活不出图像了。
- 我推测是DMA问题,我根据内存映射表修改了一番,可是还是没有结果。
- 我的内存映射表
- g_oalAddressTable
- DCD 0x80000000, 0x30000000, 64 ; 32 MB DRAM BANK 6
- DCD 0x84000000, 0x10000000, 32 ; nGCS2: PCMCIA/PCCARD
- DCD 0x86000000, 0x18000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 3
- DCD 0x88000000, 0x20000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 4
- DCD 0x8A000000, 0x28000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 5
- DCD 0x8C000000, 0x08000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 1
- DCD 0x90800000, 0x48000000, 1 ; Memory control register
- DCD 0x90900000, 0x49000000, 1 ; USB Host register
- DCD 0x90A00000, 0x4A000000, 1 ; Interrupt Control register
- DCD 0x90B00000, 0x4B000000, 1 ; DMA control register
- DCD 0x90C00000, 0x4C000000, 1 ; Clock & Power register
- DCD 0x90D00000, 0x4D000000, 1 ; LCD control register
- DCD 0x90E00000, 0x4E000000, 1 ; NAND flash control register
- DCD 0x90F00000, 0x4F000000, 1 ; Camera control register
- DCD 0x91000000, 0x50000000, 1 ; UART control register
- DCD 0x91100000, 0x51000000, 1 ; PWM timer register
- DCD 0x91200000, 0x52000000, 1 ; USB device register
- DCD 0x91300000, 0x53000000, 1 ; Watchdog Timer register
- DCD 0x91400000, 0x54000000, 1 ; IIC control register
- DCD 0x91500000, 0x55000000, 1 ; IIS control register
- DCD 0x91600000, 0x56000000, 1 ; I/O Port register
- DCD 0x91700000, 0x57000000, 1 ; RTC control register
- DCD 0x91800000, 0x58000000, 1 ; A/D convert register
- DCD 0x91900000, 0x59000000, 1 ; SPI register
- DCD 0x91A00000, 0x5A000000, 1 ; SD Interface register
- DCD 0x92000000, 0x00000000, 32 ; 32 MB SROM(SRAM/ROM) BANK 0
- DCD 0x94D00000, 0x34000000, 64 ; 64 MB SDRAM BANK 6——我使用的128M SDRAM 非连续方法扩展
- DCD 0x00000000, 0x00000000, 0 ; end of table
- 我的config.bib的DMA内存设置。
- MEMORY
- NK 80200000 01E00000 RAMIMAGE
- RAM 82000000 02000000 RAM
- FLASH 92000000 00100000 RESERVED
- ; Common RAM areas
- AUD_DMA 80002000 00000800 RESERVED
- SDIO_DMA 80010000 00010000 RESERVED
- ARGS 80020800 00000800 RESERVED
- DBGSER_DMA 80022000 00002000 RESERVED
- SER_DMA 80024000 00002000 RESERVED
- IR_DMA 80026000 00002000 RESERVED
- SLEEP 80028000 00002000 RESERVED
- EDBG 80030000 00020000 RESERVED
- ; DISPLAY 80100000 00100000 RESERVED
- ; camera DMA 用于摄像头DMA
- CAMERA 80050000 00110000 RESERVED
- DISPLAY 84800000 00100000 RESERVED
- CAMERA_CODE 84000000 00800000 RESERVED
- 在camera驱动中我是这么定义的
- //----------------------------------yl2440 4.2-->5.0 BSP 's set---------------------------
- // 1st Ping-pong Address
- #define COPIFRAMEBUFFER_A 0x30050000 // 320*240 * 2(RGB 16bit) * 4 frames = 614400 = 0x96000
- // 0x30030000 + 0x96000 = 0x300c6000
- //#define COPIFRAMEBUFFER_B 0x32000000 // Max buffer size of Port : 0x1c2000 (640*480+640*480*2/4)*4
- #define COPIFRAMEBUFFER_B 0x34000000 // 0x32000000-->0x34000000
- //要把CODE通道DMA地址放到不影响其他部分运行的RAM地址
- #define VIRTUAL_OFFSET 0x7C000000
- #define VIRTUAL_ADDR_OFFSET VIRTUAL_OFFSET // for MPEG4
- 中断的线程已经不停的执行,调用了 Display_Cam_Image(0,0, 240, 240, PORT_A);这明明是用来显示的,但是怎么会不出图像呢?
- 请做过的前辈指导一下。
复制代码
|
|