更新日期: 2022/06/01 来源: https://gitee.com/weharmony/kernel_liteos_a_note
los_smp.c 文件参考

浏览源代码.

函数

STATIC VOID OsSmpSecondaryInit (VOID *arg)
 多核中次级CPU核初始化,每个核都会调用一次 更多...
 
VOID LOS_SmpOpsSet (struct SmpOps *ops)
 设置多核操作接口, 通过外部注册 更多...
 
VOID OsSmpInit (VOID)
 

变量

STATIC struct SmpOpsg_smpOps = NULL
 

函数说明

◆ LOS_SmpOpsSet()

VOID LOS_SmpOpsSet ( struct SmpOps ops)

设置多核操作接口, 通过外部注册

在文件 los_smp.c58 行定义.

59{
60 g_smpOps = ops;
61}
STATIC struct SmpOps * g_smpOps
Definition: los_smp.c:42

◆ OsSmpInit()

VOID OsSmpInit ( VOID  )

在文件 los_smp.c63 行定义.

64{
65 UINT32 cpuNum = 1; /* Start the secondary cpus. */
66
67 if (g_smpOps == NULL) {
68 PRINT_ERR("Must call the interface(LOS_SmpOpsSet) to register smp operations firstly!\n");
69 return;
70 }
71
72 for (; cpuNum < CORE_NUM; cpuNum++) {
74 }
75
76 return;
77}
STATIC VOID OsSmpSecondaryInit(VOID *arg)
多核中次级CPU核初始化,每个核都会调用一次
Definition: los_smp.c:44
unsigned int UINT32
Definition: los_typedef.h:57
VOID HalArchCpuOn(UINT32 cpuNum, ArchCpuStartFunc func, struct SmpOps *ops, VOID *arg)
Definition: smp.c:53
函数调用图:
这是这个函数的调用关系图:

◆ OsSmpSecondaryInit()

STATIC VOID OsSmpSecondaryInit ( VOID *  arg)

多核中次级CPU核初始化,每个核都会调用一次

在文件 los_smp.c44 行定义.

45{
46 UNUSED(arg);
47
48#ifdef LOSCFG_BASE_CORE_SWTMR_ENABLE
50#endif
51
52 OsIdleTaskCreate();//每个核都有一个空闲任务
53 OsInitCall(LOS_INIT_LEVEL_KMOD_TASK);
54
56}
VOID OsInitCall(const UINT32 level)
初始化调用日志打印,这个函数的功能主要是为了记录某个步骤的耗时.在一个函数前后各调用一次就知道函数的执行情况. 这为开机调试提供了很重要的日志依据.
Definition: los_init.c:127
VOID OsSchedStart(VOID)
Definition: los_sched.c:294
LITE_OS_SEC_TEXT_INIT UINT32 OsSwtmrInit(VOID)
Definition: los_swtmr.c:441
LITE_OS_SEC_TEXT_INIT UINT32 OsIdleTaskCreate(VOID)
创建一个空闲任务
Definition: los_task.c:300
函数调用图:
这是这个函数的调用关系图:

变量说明

◆ g_smpOps

STATIC struct SmpOps* g_smpOps = NULL

在文件 los_smp.c42 行定义.