在这里回复一下我的这个问题,因为可能会有遇到相同问题的朋友;另外还想补充一个问题,看看有没有高手帮忙:
1、关于任务列表中任务名乱码。回到官网及查看压缩包中的应用文档,不得不说ucosii的版本号是V2.86,显示用的iar版本号是V5.X版本;本人最后也没能找到乱码的原因,确不经意的解决了。步骤或现象如下,我一开始在家的电脑上安装IAR 7.0版本打开调试,任务名乱码显示;后来在公司电脑上安装IAR V5.5,(之前没装过iar的电脑),任务名称显示空白;在家电脑上安装V5.5(即同时安装V7.0和V5.5)后,任务名称正常显示。我也不知道为什么。。。。
2、本人手上没有硬件,又想学一下ucos,就使用iar来进行纯软件的仿真了。之前也发帖问过,本来还是挺顺利的,后来发现systick中断进不去,就去查看寄存器啊,内存什么的,尽管有些收获,但还是没解决:
上个代码:
void OS_CPU_SysTickInit (void)
{
INT32U cnts;
cnts = OS_CPU_SysTickClkFreq() / OS_TICKS_PER_SEC;
OS_CPU_CM3_NVIC_ST_RELOAD = (cnts - 1);
/* Set prio of SysTick handler to min prio. */
OS_CPU_CM3_NVIC_PRIO_ST = OS_CPU_CM3_NVIC_PRIO_MIN;
/* Enable timer. */
OS_CPU_CM3_NVIC_ST_CTRL |= OS_CPU_CM3_NVIC_ST_CTRL_CLK_SRC | OS_CPU_CM3_NVIC_ST_CTRL_ENABLE;
/* Enable timer interrupt. */
OS_CPU_CM3_NVIC_ST_CTRL |= OS_CPU_CM3_NVIC_ST_CTRL_INTEN;
}
收获:在上面的代码的第一句前,必须自行将RCC_CFGR寄存器中的SWS改变成需要的值(在纯软件仿真),不然函数“OS_CPU_SysTickClkFreq()”返回值不对
上图;
没解决:还是进不了systick中断,哈哈哈哈哈~~~~~~~~~不知道为什么SysTick当前数值寄存器的值一直为0;上图
|