feat: synchronizing arch api

命名规范:修改少量Arch接口,命名规范化调整:
1.修改arch/include下接口声明,所有arch对外提供调用函数均以ArchXX命名
2.提取多个架构均有实现的公共函数声明至arch/include对应头文件中以供外部调用,并修改命名格式为ArchXX
3.修改OS_HWI_WITH_ARG为LOSCFG_PLATFORM_HWI_WITH_ARG并移至los_config.h中
4.typedef VOID (*OS_TICK_HANDLER)(VOID);暂时移至arch/include/los_timer.h中
5.实现atomic原子操作相关接口,位于arch/include/los_atomic.h,arm架构部分与汇编指令相关原子操作接口使用ARCH_ARM宏进行控制是否编译

BREAKING CHANGE: 1.修改arch/include下接口,以ArchXX命名函数
2.提取公共函数声明:ArchAtomicXchg32bits、ArchAtomicDecRet、ArchAtomicCmpXchg32bits
3.新增部分原子操作c内联实现

Close #I4N7XV

Signed-off-by: LiteOS2021 <dinglu@huawei.com>
This commit is contained in:
LiteOS2021
2021-12-22 20:47:16 +08:00
committed by wcc0
parent 4334b3e18b
commit 04bf3a682f
116 changed files with 942 additions and 1042 deletions

View File

@@ -84,7 +84,7 @@
LITE_OS_SEC_TEXT_INIT VOID LOS_Reboot(VOID)
{
OsDoExcHook(EXC_REBOOT);
HalSysExit();
ArchSysExit();
}
LITE_OS_SEC_TEXT_INIT VOID LOS_Panic(const CHAR *fmt, ...)
@@ -96,7 +96,7 @@ LITE_OS_SEC_TEXT_INIT VOID LOS_Panic(const CHAR *fmt, ...)
#if (LOSCFG_BACKTRACE_TYPE != 0)
LOS_BackTrace();
#endif
HalSysExit();
ArchSysExit();
}
@@ -116,7 +116,7 @@ LITE_OS_SEC_TEXT_INIT static VOID OsRegister(VOID)
LITE_OS_SEC_TEXT_INIT UINT32 LOS_Start(VOID)
{
return HalStartSchedule();
return ArchStartSchedule();
}
/*****************************************************************************
@@ -146,7 +146,7 @@ LITE_OS_SEC_TEXT_INIT UINT32 LOS_KernelInit(VOID)
return ret;
}
HalArchInit();
ArchInit();
ret = OsTaskInit();
if (ret != LOS_OK) {

View File

@@ -97,7 +97,7 @@ VOID OsSchedUpdateSchedTimeBase(VOID)
{
UINT32 period = 0;
(VOID)HalGetTickCycle(&period);
(VOID)ArchGetTickCycle(&period);
g_schedTimerBase += period;
}
@@ -113,12 +113,12 @@ VOID OsSchedTimerBaseReset(UINT64 currTime)
UINT64 OsGetCurrSysTimeCycle(VOID)
{
#if (LOSCFG_BASE_CORE_TICK_WTIMER == 1)
return HalGetTickCycle(NULL);
return ArchGetTickCycle(NULL);
#else
STATIC UINT64 oldSchedTime = 0;
UINT32 period = 0;
UINT32 intSave = LOS_IntLock();
UINT64 time = HalGetTickCycle(&period);
UINT64 time = ArchGetTickCycle(&period);
UINT64 schedTime = g_schedTimerBase + time;
if (schedTime < oldSchedTime) {
/* Turn the timer count */
@@ -184,7 +184,7 @@ STATIC INLINE VOID OsSchedTickReload(UINT64 nextResponseTime, UINT32 responseID,
g_schedResponseID = OS_INVALID;
}
g_schedResponseTime = nextExpireTime;
HalSysTickReload(nextResponseTime);
ArchSysTickReload(nextResponseTime);
}
STATIC INLINE VOID OsSchedSetNextExpireTime(UINT64 startTime, UINT32 responseID, UINT64 taskEndTime, BOOL timeUpdate)
@@ -663,7 +663,7 @@ VOID LOS_SchedTickHandler(VOID)
g_schedResponseTime = OS_SCHED_MAX_RESPONSE_TIME;
if (LOS_CHECK_SCHEDULE) {
HalTaskSchedule();
ArchTaskSchedule();
} else {
OsSchedUpdateExpireTime(g_losTask.runTask->startTime, TRUE);
}
@@ -674,7 +674,7 @@ VOID LOS_SchedTickHandler(VOID)
VOID LOS_Schedule(VOID)
{
if (g_taskScheduled && LOS_CHECK_SCHEDULE) {
HalTaskSchedule();
ArchTaskSchedule();
}
}

View File

@@ -187,7 +187,7 @@ LITE_OS_SEC_TEXT VOID OsIdleTask(VOID)
if (PmEnter != NULL) {
PmEnter();
} else {
(VOID)HalEnterSleep();
(VOID)ArchEnterSleep();
}
}
}
@@ -527,7 +527,7 @@ LITE_OS_SEC_TEXT STATIC VOID OsTaskStackProtect(VOID)
STATIC INT32 id = -1;
if (id == -1) {
id = HalMpuUnusedRegionGet();
id = ArchMpuUnusedRegionGet();
if (id < 0) {
PRINT_ERR("%s %d, get unused id failed!\n", __FUNCTION__, __LINE__);
return;
@@ -541,10 +541,10 @@ LITE_OS_SEC_TEXT STATIC VOID OsTaskStackProtect(VOID)
mpuAttr.shareability = MPU_NO_SHARE;
mpuAttr.permission = MPU_RO_BY_PRIVILEGED_ONLY;
HalMpuDisable();
(VOID)HalMpuDisableRegion(id);
(VOID)HalMpuSetRegion(id, &mpuAttr);
HalMpuEnable(1);
ArchMpuDisable();
(VOID)ArchMpuDisableRegion(id);
(VOID)ArchMpuSetRegion(id, &mpuAttr);
ArchMpuEnable(1);
}
#endif
#endif
@@ -683,7 +683,7 @@ LITE_OS_SEC_TEXT_INIT UINT32 OsNewTaskInit(LosTaskCB *taskCB, TSK_INIT_PARAM_S *
taskCB->eventMask = 0;
taskCB->taskName = taskInitParam->pcName;
taskCB->msg = NULL;
taskCB->stackPointer = HalTskStackInit(taskCB->taskID, taskInitParam->uwStackSize, topOfStack);
taskCB->stackPointer = ArchTskStackInit(taskCB->taskID, taskInitParam->uwStackSize, topOfStack);
SET_SORTLIST_VALUE(&taskCB->sortList, OS_SORT_LINK_INVALID_TIME);
LOS_EventInit(&(taskCB->event));

View File

@@ -64,8 +64,8 @@ STATIC INLINE UINT32 OsMemBoxCheckMagic(LOS_MEMBOX_NODE *node)
((VOID *)((UINT8 *)(addr) + OS_MEMBOX_NODE_HEAD_SIZE))
#define OS_MEMBOX_NODE_ADDR(addr) \
((LOS_MEMBOX_NODE *)(VOID *)((UINT8 *)(addr) - OS_MEMBOX_NODE_HEAD_SIZE))
#define MEMBOX_LOCK(state) ((state) = HalIntLock())
#define MEMBOX_UNLOCK(state) HalIntRestore(state)
#define MEMBOX_LOCK(state) ((state) = ArchIntLock())
#define MEMBOX_UNLOCK(state) ArchIntRestore(state)
STATIC INLINE UINT32 OsCheckBoxMem(const LOS_MEMBOX_INFO *boxInfo, const VOID *node)
{