多核:LPC43xx系列:Cortex M0的时钟

时间:2017-07-18 07:55:30

标签: c arm clock multicore cortex-m

我是多核世界的新手。我正在使用LPC43xx系列。我试图用我的辅助核心Cortex M0使LED闪烁。我想知道这些参考时钟和皮质M0中的处理器时钟之间的区别。参考时钟是指主核CM4的时钟吗?处理器时钟是指CM4的时钟吗?我有点不清楚CM4中有很多时钟,而CM0中没有任何时钟?我应该为闪烁(延迟)初始化哪个时钟?我的代码如下:

#include "lpc43xx_gpio.h"
#include "lpc43xx_scu.h"
#include "lpc43xx_cgu.h"
#include "LPC43xx.h"
#include "ipc_int.h"
#include "lpc43xx_libcfg_default.h"

#define LED1_BIT            7 //LEDUSB
#define LED1_PORT           7

/************************** PRIVATE VARIABLES *************************/
static uint32_t msec;


/************************** PRIVATE FUNCTIONS *************************/
void SysTick_Handler (void) ;

void SysTick_Handler (void)     // SysTick Interrupt Handler @ 1000Hz
{
    if(msec)msec--;
}


int c_entry (void) {   



    CGU_Init();

    scu_pinmux(0xE ,7 , MD_PDN, FUNC4);     // P8.1 : USB0_IND1 LED

    GPIO_SetDir(LED1_PORT,(1<<LED1_BIT), 1);

    SysTick_Config(CGU_GetPCLKFrequency(CGU_PERIPHERAL_M4CORE)/1000);

    GPIO_ClearValue(LED1_PORT,(1<<LED1_BIT));



    while (1)
    {                                               // Loop forever
        msec = 1000;
        while(msec);
        GPIO_ClearValue(LED1_PORT,(1<<LED1_BIT));
        msec = 1000;
        while(msec);
        GPIO_SetValue(LED1_PORT,(1<<LED1_BIT));
    }
}

 int main(void)

{


    return c_entry();

}

谢谢大家。

1 个答案:

答案 0 :(得分:0)

根据LPC43xx User Manual的第170页,Cortex-M0内核时钟由BASE_PERIPH_CLK提供,而Cortex-M4由BASE_M4_CLK提供时钟。您可以将这些时钟的来源设置为同一章中所述的(许多,许多)允许来源中的任何一个。

您所指的“参考时钟”可能是以太网的参考时钟。