Part Number:TMS320C6678
在ccs register界面里,可看到core register以及control register两组寄存器。前者包括SP\PC\A0等,后者包括DNUM\TSCL\ISR等。
我的理解是这些寄存器都是各核独立独有的,且各核可以访问。
通过直接赋值,control register可以被访问到,如 coreID = DNUM,但是这个仅限于访问核自身,如在core0里这样做,读到了0,在core1里这样做,可以读到1。
现在我遇到的问题是,我想通过核0去访问核1的control register,如ISR,来控制核1的中断手动触发,这应该怎么做?本来想通过全局地址的方法,但是未找到相关定义。
此外,平时在调试的时候,偶尔堆栈溢出会报错,打印出各寄存器的值,这个打印的操作是在哪里执行的?我在bios的文件夹内没有找到相关源码。
请专家指导,谢谢。
Nancy Wang:
fuchao 说:我想通过核0去访问核1的control register,如ISR,来控制核1的中断手动触发,这应该怎么做?
这个应该没有办法控制,寄存器是独立的。
fuchao 说:平时在调试的时候,偶尔堆栈溢出会报错,打印出各寄存器的值,这个打印的操作是在哪里执行的?我在bios的文件夹内没有找到相关源码。
从哪里执行的没有研究过,感兴趣的话,你可以到英文论坛问一下,一般都是借助打印的寄存器信息找可能出错的地方。
,
fuchao:
是的,借助打印的寄存器值,可大概看出是哪个线程报错,帮助定位问题。我就是想了解官方怎么实现的这个。
感谢专家回复。
,
Nancy Wang:
参考以下FAQ看一下:
e2e.ti.com/…/faq-how-do-i-trace-backward-to-the-code-that-caused-an-exception-in-my-ti-rtos-app