工程师们好,现需要设计基于c6678的uc/os系统,包括设计时钟节拍的中断服务程序,其中涉及到 保存CPU寄存器 和 恢复CPU寄存器 的操作,之前在c6713上已经实现,代码在附件中。
其中保存寄存器的汇编函数是_DSP_C6X_Save,恢复CPU寄存器的汇编函数是_DSP_C6X_Resume。 由于C6713是COFF格式,而C6678是ELF格式,因此移植需要修改,而且C66x的寄存器个数也和C6713不同。
所以请问:
1、如何修改_DSP_C6X_Save和_DSP_C6X_Resume用以在C6678上实现功能;
2、或者有更好的方式(可以不用汇编)实现 保存CPU寄存器 和 恢复CPU寄存器 的操作。
非常感谢!!!
hao wu1:
哪位大侠给解答一下啊,真的很急啊。要把uc/os-II移植到c6678上,还需要用汇编写任务切换函数,小弟的汇编确实很差啊,急求解答!
hao wu1:
回复 hao wu1:
有工程师帮忙看一下吗?真的狠着急啊。
Andy Yin1:
回复 hao wu1:
您好,
C6678也是支持coff格式,我的理解是所有的寄存器都尽量需要压栈保护。我觉得你应经对这一块很有经验了,可以再稍微看一下C6678与c6713在压栈和弹栈时的区别基本就搞定了。
James Li2:
回复 Andy Yin1:
中断需要保存的寄存器是 ILC,RILC,A0~A31, B0~B31
在汇编中coff的函数名是 _funcName, ELF的函数名不要下划线,为funcName