首先是强制性的背景:MPLAB X IDE V3.55 xC32 V1.43Valm V2.02BPIC32 MX470F512L处理器NHD-4.3-48022EF-ASXNα-T LCDIS61WV51216BLL 10TLI外部存储器。我选择PIC32 MX470F512L的原因是我们对处理器有很好的经验,它具有外围引脚选择,以及如果需要的话,我可以回落到MLA。因为在Posial2.02B的应用程序文件夹中没有PIC32 MX项目,所以我的起点只是创建一个定制的BSP。这是相对简单的,在过去还不是一个问题,特别是因为我能够复制和修改现有的BSP的基础上类似的NeHavavin显示器使用电容触摸库。唯一不同的是,我选择的LCD使用4线电阻技术。开始,我会选择我的新BSP,然后是图形堆栈。与免费模板库文件一起工作,我能够根据PCAP电容显示正确地插入逻辑。根据我所知,正确的文件被配置和包含。当然,我会有错误,但是我希望得到一些帮助。具体来说,在两个文件中:DrviFxxLCcIGr.G.C和LiabaaLeNo.C.C.让我们从第一个文件开始,因为到现在为止我还没有得到第二个文件。编译器抱怨框架地址。生成的代码为DRVIVGFXLCCS.GANU.C对这个变量有定义,但它是注释出来的。同时,它只用于下面的代码:静态gfxl结果SaveDATA(空隙){(dCH1csiz)!(=1);(DopCurt & Pt;PixelyDouthPrimeDMAYTX);DMACONBITS.St==1;而(PMMODEBITS.STORY=1);和/或等待DMA传输被挂起/ /执行写γIFIFF BSPH-SRAMYA15STATESET BSPHSRAMYA15STATESET((帧地址>G&G.0;15)&0x1);BSPH-SRAMYA17STATESET((DRVLCCOBJ.IITDATA & GT;ActudioPoST)和0x1);BSPH-SRAMYA18STATESET((DRVLCCOBJ.IITDATA & GT;ActudioPoT & G&T;1)和0x1);/ /保存以前的地址值PREVADDRR=PMADR;PMADRR=帧地址;返回GFXY成功;}它从未设置,所以我不清楚这个SO如何ULD是固定的。需要修改DRVIGGFXLCCGNANICIOUTALAL.C.FTL文件,但如何修改?另一个问题是下面的行:PLIPHPMPReReWrdErthBoopLis
tisClice(0, 1 -((CNTXT & GT;DePlasyFiel-&G.Atvest.VixLeftToSHIFT));在定义FGFxDePlsFielf的定义中不存在IfxLooptToSHIFT。还有其他问题,但我们从这里开始。至少,知道开发人员意识到这些问题,并且它们将被固定在短时间内是很好的。
以上来自于百度翻译
以下为原文
First the obligatory background:
MPLAB X IDE v3.55
XC32 v1.43
H
ARMony v2.02b
PIC32MX470F512L processor
Newhaven NHD-4.3-480272EF-ASXN#-T LCD
IS61WV51216BLL-10TLI external memory
The reason I chose the PIC32MX470F512L is that we have had good experience with the processor, it has peripheral pin select, and I can fall back to MLA if need be.
Since there are no projects for PIC32MX in the apps folder for Harmony 2.02b, my starting point was simply to create a custom BSP. This is relatively straightforward and hasn't been an issue in the past, especially since I was able to copy and then modify an existing BSP based on a similar Newhaven display that uses the capacitive touch library. The only difference is that the lcd that I chose uses 4-wire resistive technology.
Starting out, I'll select my new BSP and then the Graphics stack. Having worked with free template library files, I was able to bolt in the correct logic based on the PCAP capacitive display. The correct files are configured and included as far as I can tell.
Naturally, I get errors, but there seems to be some quirks with the stack that I was hoping to get some help with. Specifically, in two files: drv_gfx_lcc_generic.c and libaria_harmony.c. Let's start with the first file, as I haven't gotten to the second file as of yet.
The compiler complains about _frameAddress. The generated code for drv_gfx_lcc_generic.c has a definition for this variable, but it is commented out. At the same time, it is only used in the following code:
static GFX_Result saveData(void)
{
while(DCH1CSIZ != 1);
while(DrawCount > PIXEL_DRAW_PER_DMA_TX);
DMACONbits.SUSPEND = 1;
while(PMMODEbits.BUSY == 1); //WAIT for DMA transfer to be suspended
//Perform Write
#ifdef BSP_SRAM_A15StateSet
BSP_SRAM_A15StateSet((_frameAddress >> 15)&0x1);
#endif
BSP_SRAM_A16StateSet((_frameAddress >> 16)&0x1);
BSP_SRAM_A17StateSet((drvLCCObj.initData->activePage)&0x1);
BSP_SRAM_A18StateSet((drvLCCObj.initData->activePage>>1)&0x1);
//Save previous address value
prevaddr = PMADDR;
PMADDR = _frameAddress;
return GFX_SUCCESS;
}
It is never set, so it's unclear to me how this should be fixed. The drv_gfx_lcc_generic_external.c.ftl file will need to be modified, but how?
Another issue is with the following line:
PLIB_PMP_ReadWriteStrobePolaritySelect(0, 1 - ((cntxt->display_info->attributes.inv_left_shift)));
inv_left_shift does not exist in the definition of GFX_DisplayInfo where it is defined.
There are other problems, but let's start with this. At a minimum, it would be nice to know that the developers are aware of these issues and that they will be fixed in short order.
0