大家好,
我在TM4C129X微控制器的定制主板上使用额外的SDRAM。
如数据表所述
将带有EPI的LCD与外部存储器接口时,外部代码地址
必须通过在EPI中将ECADR字段编程为0x1来选择1000.0000 space (ECADR空间)
地址映射(EPIADRMAP)在EPI偏移0x01C处注册。
我正在初始化EPI和LCD模块,如下所示:
uINT16_t *帧缓冲器;
作废EPI_Init (void)
{
sysctl_RCGCEPI_R = 1;
EPI0_BAUD_R = 1;
EPI0_CFG_R = 0x0.0011万;
while (EPI0_STAT_R和(1<6));
EPI0_SDRAMCFG_R =(0x3<30)|(940<16)|(1);
EPI0_ADDRMAP_R = 0xD<8|0xC;
帧缓冲区=(uint16_t *) 0x1000万;
}
作废LCDInit (void)
{
sysctl_RCGCLCD_R = 1;
LCD0_CLKEN_R = 0x07;
LCD0_CTL_R =(5<8)| 3;
LCD0_RASTRCTL_R =(2<20)|(1<7);//0x80.008万
// LCD0_RASTRCTL_R =(3<25)|(2<20)|(1<7);//0x80.008万
LCD0_RASTRTIM0_R =(0x7<24)|(0x7<16)|(0x3<10)|(49<4);
LCD0_RASTRTIM1_R =(0x8<24)|(0x8<16)|(0x3<10)|(479);
LCD0_RASTRTIM2_R =(0x1<25)|(0x1<24)|(0x1<22);
LCD0_DMACTL_R = 0x0.002万;
LCD0_DMABAFB0_R =(UINT32_t)frambuffer;
LCD0_DMACAFB0_R =(UINT32_t)帧缓冲+800*480*2-1;
}
但由于某些原因,我的代码将进入FaultISR无限循环。
有人能告诉我为什么会发生这种情况吗?