我很难让EBI与PIC32MZ2048ECH144芯片一起工作。我使用了所有最新的开发工具,据我所知:MPLAB X V3.40XC32V1.42H
ARMonyV1.09Harmony配置正确,我所做的就是配置振荡器EBI,还有一个I/O引脚和用于调试的UART。振荡器通过I/O引脚和UART定时确认是正确的。当我停止调试以免试图读取指向我映射的图形控制器芯片的指针时,EBI寄存器看起来配置正确;配置为4MbSRAM@物理地址0x20000,使用多达地址线A21,16位数据总线。EBICS0=0x20000000EBIMSK0=0x00000027EBISMT0=0x07000001EBIFTRPD=0x000C8EBISMCON=0x00000001CFGEBIA=0x0003FFFCFGEBIC=0x01000313I正试图从偏移0和偏移1处的前两个映射位置读取数据,这两个位置应该提供两个16 16 16指示图形控制器存在的位值。我试图从0xE0000000(不可缓存)和0xC0000000(可缓存)的基本地址读取,但是没有任何结果。我可以从UART中看到正确的指针值,但是一旦读操作被调用,处理器就不会进入任何人的领地。当调试MPLAB X变得与我的真实ICE不同步时,如果我对芯片进行编程并在不调试的情况下运行它,则会得到相同的结果,适当的指针值来自UART,但之后什么也没有。re UART输出,在异常陷阱中设置的任何断点都不会打印字符串,调试也不会停止。被编译器征服了,谢谢任何我能得到的帮助!
以上来自于百度翻译
以下为原文
I am having great difficulty in get
ting the EBI to work with the PIC32MZ2048ECH144 chip.
I am using all the latest dev tools as far as I can determine:
MPLAB X V3.40
XC32 V1.42
Harmony V1.09
Harmony is configured properly as far as I can tell, all I have done is configure the oscillator the EBI, and one I/O pin and a UART for debugging. The osciallator is confirmed is proper thru both an I/O pin and proper UART timing.
The EBI registers look like they are configured properly when I stop debugging just shy of trying to read a pointer to the graphics controller chip I have mapped; configured as 4Mb SRAM @ physical address 0x20000000, using up to address line A21, 16 bit data bus.
EBICS0 = 0x20000000
EBIMSK0 = 0x00000027
EBISMT0 = 0x07000001
EBIFTRPD = 0x000000C8
EBISMCON = 0x00000001
CFGEBIA = 0x003FFFFF
CFGEBIC = 0x01000313
I am attempting to read from the first two mapped locations at offset 0 and offset 1 which should provide two 16 bit values indicating that the graphics controller is present. I have tried to read from a base address of 0xE0000000 (non-cacheable) and 0xC0000000 (cacheable) with no results at all. I can see the proper pointer values coming out the UART but once the read action is called the processor goes off into no man's land. When debugging MPLAB X becomes out of synch with my REAL ICE, if I program the chip and run it without debugging I get the same results, proper pointer values coming our of the UART but nothing after that.
No exceptions are being thrown, I am using the Harmony exception framework to which I added more UART output, no strings are ever printed nor does the debugging stop at any breakpoint I set in the exception trap.
The EBI documentation mentions that the TLB and MMU need to be configured properly but there is little or no documentation on those features, they are supposed to be properly initialized by the compiler.
Thanks for any help I can get!