DM8127有些寄存器要求cortex-a8在Supervisor模式下才能写,如control module寄存器,但我修改工作状态寄存器CPSR将ARM配置为Supervisor Mode,但这些寄存器还是写不了,求助!!!
Chris Meng:
Han Weikun,
下面是DM8148_EVM.gel的内容,可以看到这仿真器连上的时候,是可以操作control module的寄存器的。
OnTargetConnect(){ GEL_TextOut( "\nConnecting Target…\n" ); GEL_Reset(); ALL_ADPLL_CLOCKS_ENABLE_API(); C674xClkEnable_API();
。。。
C674xClkEnable(){ unsigned int i=0, k=0, fail=0; GEL_TextOut("\tPRCM for C674x is in Progress, Please wait….. \n","Output",1,1,1); /*Cortex A8 must be in Supervisor Mode to Access the following two registers*/ WR_MEM_32(DSPBOOTADDR, 0x00800000); /*DSPBOOT ADDRESS*/ GEL_TextOut("\t CP0…Done \n");
。。
waken han:
回复 Chris Meng:
Chris Meng ,
gel文件里配置的恰好是默认值,我把值换成其他值或者添加一个配置其他寄存器的语句,这些寄存器的值是没有发生变化的,所以我觉得现在gel文件也写不了这些寄存器。
Chris Meng:
回复 waken han:
Han Weikun,
你有尝试用gel来修改control module里面的PINCNTL么?
waken han:
回复 Chris Meng:
Chris Meng ,
gel文件里的寄存器恰好配置的是默认值,我尝试过改成其他值或者配置一个其他寄存器,发现这些寄存器的值是没有变化的,所以我怀疑现在我的工程里gel文件也不能写这些寄存器。
waken han:
回复 Chris Meng:
Chris Meng,
说实话,我现在就是配置PINCNTL才发现这个问题的,我现在就是配置不了PINCNTL,用不了GPIO,但在DSP工程里能行,我现在就是先用DSP程序配置的,先调着,但这个问题还是得解决。
waken han:
回复 Chris Meng:
Chris Meng,
谢谢你的帮助,确实如你所说,用gel文件能修改,我当时gel文件的路径加载错了……
另外,通过修改状态寄存器CPSR将cortex-a8配成Supervisor Mode也能写这些寄存器了,不过那次我确实试了一下午都不行,现在行了,搞不清怎么回事,也许是电脑或CCS的原因吧。