|
|
|
@ -31,7 +31,10 @@
|
|
|
|
|
|
|
|
|
|
#include "los_task_pri.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 这个函数接受两个参数,一个是地址(addr),另一个是对齐边界(boundary)。它返回一个对齐后的地址。
|
|
|
|
|
// 这个函数首先检查地址加上边界再减去1是否大于地址,如果是,
|
|
|
|
|
// 就返回地址加上边界再减去1然后与~((UINTPTR)(boundary - 1))进行位与运算的结果,
|
|
|
|
|
// 否则就返回地址与~((UINTPTR)(boundary - 1))进行位与运算的结果。这实际上是在对地址进行对齐。
|
|
|
|
|
LITE_OS_SEC_TEXT UINTPTR LOS_Align(UINTPTR addr, UINT32 boundary)
|
|
|
|
|
{
|
|
|
|
|
if ((addr + boundary - 1) > addr) {
|
|
|
|
@ -41,13 +44,14 @@ LITE_OS_SEC_TEXT UINTPTR LOS_Align(UINTPTR addr, UINT32 boundary)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
LITE_OS_SEC_TEXT_MINOR VOID LOS_Msleep(UINT32 msecs)
|
|
|
|
|
{
|
|
|
|
|
UINT32 interval;
|
|
|
|
|
|
|
|
|
|
// 这个函数接受一个参数,毫秒数(msecs)。这个函数首先检查毫秒数是否为0,如果是,就将间隔设置为0。
|
|
|
|
|
if (msecs == 0) {
|
|
|
|
|
interval = 0;
|
|
|
|
|
} else {
|
|
|
|
|
// } else { 否则,它将毫秒数转换为tick数(可能是操作系统的时间单位),如果转换后的间隔为0,就将间隔设置为1。然后,它调用LOS_TaskDelay函数来延迟指定的间隔。
|
|
|
|
|
interval = LOS_MS2Tick(msecs);
|
|
|
|
|
if (interval == 0) {
|
|
|
|
|
interval = 1;
|
|
|
|
|