Other Parts Discussed in Thread: SYSBIOS
如题所述:
由于多核共用同一个cfg文件,在cfg里面没法为每个核配置clock模块。
所以想从代码的角度动态配置clock模块,而不影响使用(不影响task_sleep的使用)。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
如题所述:
由于多核共用同一个cfg文件,在cfg里面没法为每个核配置clock模块。
所以想从代码的角度动态配置clock模块,而不影响使用(不影响task_sleep的使用)。
这种方法试过了,这只是在原先系统默认的clock上再加了一个clock。clock基于的timer还是同一个id。
我的目的是想用代码配置每个核clock所依赖的timer id。但是查找了好多方法基本上是不支持这样的操作。
现在遇到的问题是,多核共用同一个cfg文件,导致多核clock所依赖的timer id是一样的,(多核用同一个定时器)这会出问题的。
如果要每个核用不同的timer id ,是不是每个核必须单独用一个cfg文件?
If you want to use a custom configured timer for the Clock module's tick source, use the following example configuration as a guide:
var Clock = xdc.useModule('ti.sysbios.knl.Clock');
// Tell the Clock module that YOU are providing the periodic interrupt
Clock.tickSource = Clock.TickSource_USER;
// this example uses the ti.sysbios.timers.dmtimer.Timer module
var Timer = xdc.useModule('ti.sysbios.timers.dmtimer.Timer');
// Change Timer 3 frequency to 24 Mhz from default if necessary
Timer.intFreqs[3] = { hi:0, lo:24000000 };
// create a dmtimer config parameter object
var timerParams = new Timer.Params();
// make sure you set the period to 1000 us (1ms)
timerParams.period = 1000;
// custom dmtimer config parameters here...
timerParams.twer.ovf_wup_ena = 1;
// Create the timer.
// This example uses timer id 3.
// Provide your own timer interrupt handler function.
Timer.create(3, '&myTimerTick', timerParams);
In your 'C' code, add your timer interrupt handler and have it call Clock_tick(), which will perform all of the Clock module tick duties:
#include <ti/sysbios/knl/Clock.h>
Void myTimerTick(UArg arg)
{
Clock_tick();
...
}
重新指定timer了吗?第一条文档中的示例没有重新指定timer.
ti-processor-sdk-rtos-c667x-evm-06.03.00.106-Windows/bios_6_76_03_01/docs/cdoc/ti/sysbios/knl/Clock.html