為什麼在ucos向stm32f103移植時說os_cpu_c.c中有三個函數如OS_CPU_SysTickInit()需要注釋掉

來源:互聯網
上載者:User

標籤:

我在看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()需要注釋掉

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.