我是多核世界的新手。我正在使用 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/