版本,ccs 6.1 sys/bios 6.41
想学习使用hwi,新建测试工程,一个task,一个hwi
代码大致如下:
void tsk_Fxn()
{
int i = 0;
while(1)
{
i++;
System_printf("mark i = %d \n", i);
if(i == 10)
{
Hwi_post(5);
}
}
}
Void hwi_Fxn()
{
System_printf("my hwi \n");
}
可以编译正常,加载到板子里运行后,就不停的刷 硬件中断服务函数的打印,不是预先设想的只打印一次,现象感觉bios在不停的调hwi_Fxn
请教:
1,硬件中断的创建和使用上有什么遗漏或不正确的地方? Hwi_post函数,是在api中查到可以用来测试的。
2,通常使用硬件中断的步骤中是哪些? 目前自己的理解,根据datasheet的中断表,绑定中断num和对应的用户自己的函数,等待某个地方触发这个中断。这个某个地方还不清楚,具体如何实现,所以用了前面的Hwi_post函数代替。
3,如果使用系统设定的某个资源做中断触发,该如何触发,调用,关闭中断?是 需要自己的写驱动么? 是的话,大致流程是不是,驱动程序先置中断标志位,然后中断模块来执行中断,关闭中断怎么弄?以上是自己的猜想,还在学习中。
4 ,尝试使用了timer,不管是静态配置或者动态创建,编译通过,可程序加载到板子就直接报错。。。多次尝试,均未果。求教,timer的使用和设置注意事项。
查看一些文档,bios user guide 和 参考学习一些ccs里的例子,没有能解答上面的疑问,请各位大大,不吝赐教。