c - 多核:LPC43xx 系列:Cortex M0 时钟

标签 c arm clock multicore cortex-m

我是多核世界的新手。我正在使用 LPC43xx 系列。我正在尝试使用我的辅助核心 Cortex M0 来闪烁 LED。我想知道这些引用时钟和 Cortex 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();

}

谢谢大家。

最佳答案

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

您所指的“引用时钟”可能是以太网的引用时钟。

关于c - 多核:LPC43xx 系列:Cortex M0 时钟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45160697/

相关文章:

c - 数组输入中的括号是什么意思

c - C 中是否存在依赖于两个不同分配的整数表示的用例?

c - `check' 的参数 1 的类型不兼容

C函数返回错误值

c++ - 程序运行良好数小时,最终出现内存地址 0x10 的段错误

arm上延迟循环中每条指令的周期数

java - 将军事时间加在一起不起作用 - JAVA

更改计算机时钟后的 Java 系统时间

ios - 像雷达 Objective-C 那样的动画

c++ - GCC (ARM) 相当于 __declspec(dllexport)