From f9280fc99b6f04fb775b449e426fb90a79e10f96 Mon Sep 17 00:00:00 2001 From: kuangyufei Date: Tue, 9 Feb 2021 19:07:56 +0800 Subject: [PATCH] =?UTF-8?q?=E9=B8=BF=E8=92=99=E5=86=85=E6=A0=B8=E6=BA=90?= =?UTF-8?q?=E7=A0=81=E5=88=86=E6=9E=90(=E5=AE=9A=E6=97=B6=E5=99=A8?= =?UTF-8?q?=E6=9C=BA=E5=88=B6=E7=AF=87)=20|=20=E5=86=85=E6=A0=B8=E6=9C=80?= =?UTF-8?q?=E9=AB=98=E4=BC=98=E5=85=88=E7=BA=A7=E4=BB=BB=E5=8A=A1=E6=98=AF?= =?UTF-8?q?=E8=B0=81=3F=3F=3F=20=20=20=20=20=E7=99=BE=E4=B8=87=E6=B1=89?= =?UTF-8?q?=E5=AD=97=E6=B3=A8=E8=A7=A3=20+=20=E7=99=BE=E7=AF=87=E5=8D=9A?= =?UTF-8?q?=E5=AE=A2=E5=88=86=E6=9E=90=20->=20=E9=B8=BF=E8=92=99=E5=86=85?= =?UTF-8?q?=E6=A0=B8=E6=BA=90=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 16 ++++++++-------- kernel/base/core/los_swtmr.c | 4 ++-- kernel/include/los_swtmr.h | 6 +++--- zzz/git/push.sh | 8 ++------ 4 files changed, 15 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index 86e90353..6858dfb6 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,9 @@ ## **百篇博客分析** -* (总目录) | 精读内核源码 深挖地基工程[< CSDN](https://blog.csdn.net/kuangyufei/article/details/108727970) [ | OSCHINA >](https://my.oschina.net/u/3751245/blog/4626852) +在给鸿蒙内核源码加注释过程中,整理出以下文章. + +* (总目录) | 百万汉字注解 百篇博客分析[< CSDN](https://blog.csdn.net/kuangyufei/article/details/108727970) [ | OSCHINA >](https://my.oschina.net/u/3751245/blog/4626852) ### **故事篇** @@ -112,6 +114,8 @@ ### **基础篇** +* (定时器机制篇) | 内核最高优先级任务是谁???[< CSDN](https://blog.csdn.net/kuangyufei/article/details/113774260) [ | OSCHINA >](https://my.oschina.net/weharmony/blog/4951625) + * (汇编传参篇) | 汇编如何传递复杂的参数?[< CSDN](https://blog.csdn.net/kuangyufei/article/details/113265990) [ | OSCHINA >](https://my.oschina.net/u/3751245/blog/4927892) * (汇编基础篇) | CPU在哪里打卡上班 ?[< CSDN](https://blog.csdn.net/kuangyufei/article/details/112986628) [ | OSCHINA >](https://my.oschina.net/u/3751245/blog/4920361) @@ -122,13 +126,13 @@ * (源码结构篇) | 内核500问你能答对多少?[< CSDN](https://blog.csdn.net/kuangyufei/article/details/111938348) [ | OSCHINA >](https://my.oschina.net/u/3751245/blog/4869137) -* (源码注释篇) | 精读内核源码有哪些好处?[< CSDN](https://blog.csdn.net/kuangyufei/article/details/109251754) [ | OSCHINA >](https://my.oschina.net/u/3751245/blog/4686747) +* (源码注释篇) | 精读内核源码 深挖地基工程[< CSDN](https://blog.csdn.net/kuangyufei/article/details/109251754) [ | OSCHINA >](https://my.oschina.net/u/3751245/blog/4686747) * (双向链表篇) | 谁是内核最重要结构体?[< CSDN](https://blog.csdn.net/kuangyufei/article/details/108585659) [ | OSCHINA >](https://my.oschina.net/u/3751245/blog/4572304) ### **主流站点** -感谢 OSCHINA,CSDN,华为开发者论坛, 51CTO, 电子发烧友,以及其他小伙伴通过自己的公众号对系列文章的转载和推荐,无以为报,唯有不断的深挖内核地基,输出更多文章,错漏之处请多见谅,会持续完善源码注解和文档内容,精雕细琢,尽全力打磨精品内容。文章输出站点: +感谢 `OSCHINA`,`CSDN`,`华为开发者论坛`, `51CTO`, `电子发烧友`,以及其他小伙伴通过自己的公众号对系列文章的转载和推荐,无以为报,唯有不断的深挖内核地基,输出更多文章,错漏之处请多见谅,会持续完善源码注解和文档内容,精雕细琢,尽全力打磨精品内容。文章输出站点: **[CSDN |](https://blog.csdn.net/kuangyufei)** **[开源中国 |](https://my.oschina.net/weharmony)** **[51CTO |](https://harmonyos.51cto.com/column/34)** **[头条号 |](https://gitee.com/weharmony/docs/raw/master/pic/other/tt.png)** **[WeHarmony |](https://weharmony.gitee.io)** **[公众号](https://gitee.com/weharmony/docs/raw/master/pic/other/wxcode.png)** @@ -168,8 +172,4 @@ 百万汉字注解 >> 精读内核源码,中文注解分析, 深挖地基工程,大脑永久记忆,四大码仓每日同步更新[< Gitee ](https://gitee.com/weharmony/kernel_liteos_a_note)[| Github ](https://github.com/kuangyufei/kernel_liteos_a_note)[| CSDN ](https://codechina.csdn.net/kuangyufei/kernel_liteos_a_note)[| Coding >](https://weharmony.coding.net/public/harmony/kernel_liteos_a_note/git/files) -百篇博客分析 >> 故事说内核,问答式导读,生活式比喻,表格化说明,图形化展示,多站点每日同步更新[< OSCHINA ](https://my.oschina.net/u/3751245/blog/4626852)[| CSDN ](https://blog.csdn.net/kuangyufei/article/details/108727970)[| WeHarmony >](https://weharmony.gitee.io/) - - - - +百篇博客分析 >> 故事说内核,问答式导读,生活式比喻,表格化说明,图形化展示,多站点每日同步更新[< OSCHINA ](https://my.oschina.net/u/3751245/blog/4626852)[| CSDN ](https://blog.csdn.net/kuangyufei/article/details/108727970)[| WeHarmony >](https://weharmony.gitee.io/) \ No newline at end of file diff --git a/kernel/base/core/los_swtmr.c b/kernel/base/core/los_swtmr.c index 03bb9e21..26e8a6e2 100644 --- a/kernel/base/core/los_swtmr.c +++ b/kernel/base/core/los_swtmr.c @@ -110,7 +110,7 @@ extern "C" { LITE_OS_SEC_BSS SWTMR_CTRL_S *g_swtmrCBArray = NULL; /* First address in Timer memory space *///定时器池 LITE_OS_SEC_BSS UINT8 *g_swtmrHandlerPool = NULL; /* Pool of Swtmr Handler *///用于注册软时钟的回调函数 -LITE_OS_SEC_BSS LOS_DL_LIST g_swtmrFreeList; /* Free list of Software Timer */ +LITE_OS_SEC_BSS LOS_DL_LIST g_swtmrFreeList; /* Free list of Software Timer *///空闲定时器链表 /* spinlock for swtmr module, only available on SMP mode */ LITE_OS_SEC_BSS SPIN_LOCK_INIT(g_swtmrSpin);//初始化软时钟自旋锁,只有SMP情况才需要,只要是自旋锁都是用于CPU多核的同步 @@ -417,7 +417,7 @@ LITE_OS_SEC_TEXT_INIT UINT32 LOS_SwtmrCreate(UINT32 interval, sortList = LOS_DL_LIST_ENTRY(g_swtmrFreeList.pstNext, SortLinkList, sortLinkNode); swtmr = LOS_DL_LIST_ENTRY(sortList, SWTMR_CTRL_S, stSortList); - LOS_ListDelete(LOS_DL_LIST_FIRST(&g_swtmrFreeList)); + LOS_ListDelete(LOS_DL_LIST_FIRST(&g_swtmrFreeList));// SWTMR_UNLOCK(intSave); swtmr->uwOwnerPid = OsCurrProcessGet()->processID;//定时器进程归属设定 diff --git a/kernel/include/los_swtmr.h b/kernel/include/los_swtmr.h index b03cd3d0..162abbd3 100644 --- a/kernel/include/los_swtmr.h +++ b/kernel/include/los_swtmr.h @@ -263,8 +263,8 @@ typedef VOID (*SWTMR_PROC_FUNC)(UINTPTR arg); //函数指针, 赋值给 SWTMR_CT * @ingroup los_swtmr * Software timer control structure */ -typedef struct tagSwTmrCtrl {//变量前缀 uc:UINT8 us:UINT16 uw:UINT32 代表的意思 - SortLinkList stSortList; +typedef struct tagSwTmrCtrl {//软件定时器控制块 + SortLinkList stSortList;//通过它挂到对应CPU核定时器链表上 UINT8 ucState; /**< Software timer state */ //软件定时器的状态 UINT8 ucMode; /**< Software timer mode */ //软件定时器的模式 UINT8 ucOverrun; /**< Times that a software timer repeats timing */ //软件定时器重复计时的次数 @@ -279,7 +279,7 @@ typedef struct tagSwTmrCtrl {//变量前缀 uc:UINT8 us:UINT16 uw:UINT32 代表 that handles software timer timeout is called */ SWTMR_PROC_FUNC pfnHandler; /**< Callback function that handles software timer timeout */ //处理软件计时器超时的回调函数 UINT32 uwOwnerPid; /** Owner of this software timer */ //软件定时器所属进程ID号 -} SWTMR_CTRL_S; +} SWTMR_CTRL_S;//变量前缀 uc:UINT8 us:UINT16 uw:UINT32 代表的意思 /** * @ingroup los_swtmr diff --git a/zzz/git/push.sh b/zzz/git/push.sh index 0ce08938..314ca8eb 100644 --- a/zzz/git/push.sh +++ b/zzz/git/push.sh @@ -1,10 +1,6 @@ git add -A -git commit -m '鸿蒙内核源码分析(事件控制篇) | 任务间一对多和多对多的同步方案 - 搜索 @note_pic 可查看绘制的全部字符图 - 搜索 @note_why 是尚未看明白的地方,有看明白的,请Pull Request完善 - 搜索 @note_thinking 是一些的思考和建议 - 搜索 @note_#if0 是由第三方项目提供不在内核源码中定义的极为重要结构体,为方便理解而添加的。 - 搜索 @note_good 是给源码点赞的地方 +git commit -m '鸿蒙内核源码分析(定时器机制篇) | 内核最高优先级任务是谁??? + 百万汉字注解 + 百篇博客分析 -> 鸿蒙内核源码 ' git push origin master -- GitLab