TI中文支持网
TI专业的中文技术问题搜集分享网站

写6670 KICK0 KICK1寄存器不成功

Hi all,

由于在论坛里面看到说在写IPC寄存器之前先要向KICK0、

KICK1寄存器写固定的值进行解锁。由于这两个寄存器没

有专门的寄存器,只有地址。只能对地址进行操作,比如

*(volatile int*)(0x02620038) = value,但是这样操作在

内存里面看到数据没有写进去。请问是怎么回事?

Thanks

Nick

Zhan Xiang:

不是很明白你的问题,CSL提供了下面的函数进行解锁,你只要调用对应的代码就行。

该函数实现是先将bootcfg寄存器结构体指针hBootCfg指向了boot config的基地址,这样就能直接进行寻址。你可以参考CSL的源码。

CSL_IDEF_INLINE void CSL_BootCfgUnlockKicker (void)

{

   hBootCfg->KICK_REG0 = 0x83e70b13;

   hBootCfg->KICK_REG1 = 0x95a4f1e0;

   return;

}

,

Nick wang:

Hi Zhan Xiang,

感谢你的回复。但是我在程序中调用csl库中的CSL_BootCfgUnlockKicker()函数,但是程序跑起来之后,通过JTAG

看DSP的内存,实际KICK0、KICK1地址处仍然为0,也就是说数值没有写进去。请问要写这个寄存器需不需要其他别的

操作呢?

另外,请问我如果想核0boot其他核,需要写IPC寄存器触发IPC中断,将其他核带出IDLE状态,是不是需要先写

KICK0、KICK1寄存器呢?

Thanks a lot

Best regards,

Nick

,

Zhan Xiang:

KICK寄存器有可能是只写的寄存器,我会找同事确认,只要你按照顺序写,就能实现解锁。

因为IPC寄存器是通过KICK保护的,所以必须先写KICK解锁,将其他core的启动地址写到magic address,随后再触发IPC就可以boot其他core了。

,

Nick wang:

Hi Zhan Xiang

感谢你的帮助。现在可以对KICK0、KICK1寄存器操作了。

Thanks a lot

Best regards,

Nick

,

招财猫了个咪:

你好,请问你是怎么做的可以对KICK0,KICK1寄存器操作了,非常感谢

,

asher chou:

你好,请问你解决了么,我现在遇到问题,写kick0出现bus error

赞(0)
未经允许不得转载:TI中文支持网 » 写6670 KICK0 KICK1寄存器不成功
分享到: 更多 (0)