码迷,mamicode.com
首页 > 其他好文 > 详细

为什么在ucos向stm32f103移植时说os_cpu_c.c中有三个函数如OS_CPU_SysTickInit()需要注释掉

时间:2016-01-01 01:53:45      阅读:452      评论:0      收藏:0      [点我收藏+]

标签:

我在看os_cpu_c.c代码时对下面这段话困惑了半天总是在百度的帮助下找到了答案

/*  申明几个函数,这里要注意最后三个函数需要注释掉,为什么呢?
    OS_CPU_SysTickHandler()定义在os_cpu_c.c中,是SysTick中断的中断处理函数,
    而stm32f10x_it.c,中已经有该中断函数的定义SysTick_Handler(),这里也就
    不需要了,是不是很奇怪官方移植版为什么会这样弄吧,后面我会解释的。
    OS_CPU_SysTickInit()定义在os_cpu_c.c中,用于初始化SysTick定时器,它
    依赖于OS_CPU_SysTickClkFreq(),而此函数我们自己会实现,所以注释掉。
    OS_CPU_SysTickClkFreq()定义在BSP.C (Micrium\Software\EvalBoards)中,
    而本文移植中并未用到BSP.C,后面我们会自己实现,因此可以把它注释掉。

*/

之所以不在用OS_CPU_SysTickInit()等函数是因为在stm32f将自身固件库升级后

在cmss的core_cm3.h文件中提供了一个更加更加便捷的函数SysTick_Config(uint32_t ticks)

用于设置SysTick.

在bsp.c中添加下面的函数来替换OS_CPU_SysTickInit()和其相关函数

void SysTick_Init(void)
{
    /* SystemFrequency / 1000    1ms中断一次    最大值
     * SystemFrequency / 100     10ms中断一次
     * SystemFrequency / 10 100ms中断一次       最小值
     */
          //st3.0 用 SystemFrequency而st3.5 用 SystemCoreClock
       SysTick_Config(SystemCoreClock /OS_TICKS_PER_SEC);

     
}

为什么在ucos向stm32f103移植时说os_cpu_c.c中有三个函数如OS_CPU_SysTickInit()需要注释掉

标签:

原文地址:http://www.cnblogs.com/alongwaytogo/p/5092872.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!