鸿蒙用栈方式为:递减满栈(FD), 栈的操作指令为:STMFD,LDMFD

    搜索 @note_pic 可查看绘制的全部字符图
    搜索 @note_why 是尚未看明白的地方,有看明白的,请Pull Request完善
    搜索 @note_thinking 是一些的思考和建议
    搜索 @note_#if0 是由第三方项目提供不在内核源码中定义的极为重要结构体,为方便理解而添加的。
    搜索 @note_good 是给源码点赞的地方
上级 0265a1ff
......@@ -31,7 +31,39 @@
#include "asm.h"
#include "arch_config.h"
/******************************************************************************
ARM的指令系统中关于栈指令的内容比较容易引起迷惑,这是因为准确描述一个栈的特点需要两个参数:
栈地址的增长方向:ARM将向高地址增长的栈称为递增栈(Descendent Stack),
将向低地址增长的栈称为递减栈(Acendant Stack
栈指针的指向位置:ARM将栈指针指向栈顶元素位置的栈称为满栈(Full Stack),
将栈指针指向即将入栈的元素位置的栈称为空栈(Empty Stack
栈类型
根据栈地址增长方向雨栈指针指向位置的不同,自然可以将栈分为四类:
递增栈 递减栈
空栈 EA ED
满栈 FA FD
栈指令
栈的操作指令无非两种:入栈和出栈,由于ARM描述了四种不同类型的栈,因此对应的栈指令一共有8条。
入栈 出栈
EA STMEA LDMEA
ED STMED LDMED
FA STMFA LDMFA
FD STMFD LDMFD
这些指令具有相似的前缀:
STM:(STore Multiple data)表示存储数据,即入栈。
LDM:(LoaD Multiple data)表示加载数据,即出栈。
一般情况下,可以将栈操作指令分解为两步微指令:数据存取和栈指针移动。这两步操作的先后顺序和栈指针的移动方式由栈的类型决定。
STMFD SP减少 [SP] STMDB
LDMFD [SP] SP增加 LDMIA
参考
https://www.cnblogs.com/fanzhidongyzby/p/5250116.html
******************************************************************************/
#ifdef LOSCFG_KERNEL_SMP_LOCKDEP
.extern OsLockDepCheckOut/*使用外部定义的函数*/
#endif
......
......@@ -121,7 +121,7 @@ extern SPIN_LOCK_S g_taskSpin;//任务自旋锁
*
* The task is suspended.
*/
#define OS_TASK_STATUS_SUSPEND 0x0008U
#define OS_TASK_STATUS_SUSPEND 0x0008U //挂起状态
/**
* @ingroup los_task
......@@ -129,7 +129,7 @@ extern SPIN_LOCK_S g_taskSpin;//任务自旋锁
*
* The task is blocked.
*/
#define OS_TASK_STATUS_PEND 0x0010U
#define OS_TASK_STATUS_PEND 0x0010U //阻塞状态
/**
* @ingroup los_task
......@@ -137,7 +137,7 @@ extern SPIN_LOCK_S g_taskSpin;//任务自旋锁
*
* The task is delayed.
*/
#define OS_TASK_STATUS_DELAY 0x0020U
#define OS_TASK_STATUS_DELAY 0x0020U //延期状态
/**
* @ingroup los_task
......
git add -A
git commit -m '初始化硬时钟.
git commit -m '鸿蒙用栈方式为:递减满栈(FD), 栈的操作指令为:STMFD,LDMFD
搜索 @note_pic 可查看绘制的全部字符图
搜索 @note_why 是尚未看明白的地方,有看明白的,请Pull Request完善
搜索 @note_thinking 是一些的思考和建议
......
zzz/pic/other/wecode8.jpg

8.9 KB | W: | H:

zzz/pic/other/wecode8.jpg

8.5 KB | W: | H:

zzz/pic/other/wecode8.jpg
zzz/pic/other/wecode8.jpg
zzz/pic/other/wecode8.jpg
zzz/pic/other/wecode8.jpg
  • 2-up
  • Swipe
  • Onion skin
zzz/pic/other/wxcode5.jpg

27.8 KB | W: | H:

zzz/pic/other/wxcode5.jpg

27.7 KB | W: | H:

zzz/pic/other/wxcode5.jpg
zzz/pic/other/wxcode5.jpg
zzz/pic/other/wxcode5.jpg
zzz/pic/other/wxcode5.jpg
  • 2-up
  • Swipe
  • Onion skin
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册