XOS 详解1: os_s_xxxx.s

XOS中关中断、恢复中断的汇编实现:

1.系统函数输入输出中定义

;**
;* @brief    EXPORT & IMPORT
;*
; 实现的系统函数
        EXPORT    OSIntDisable                    ; 备份中断状态并关中断
        EXPORT    OSIntRestore                    ; 恢复上次备份的中断状态


2.汇编代码段实现

;**
;* @brief    代码段
;*
        AREA    Routines, CODE

        ENTRY

; 关中断并返回初始中断状态,中断屏蔽寄存器PRIMASK仅有一位宽度,置位后,不可屏蔽中断NMI和HardFault不被屏蔽外,屏蔽所有其他中断。
OSIntDisable
        MRS        R0,    PRIMASK                     ;
        CPSID    I                               ; PRIMASK=1
        BX        LR

; 恢复中断状态
OSIntRestore
        MSR        PRIMASK, R0
        BX        LR


3.汇编指令参考以下两个链接:

https://blog.csdn.net/weibo1230123/article/details/84036225

                    ARM汇编:MRS和MSR指令

ARM中有两条指令用于在状态寄存器和通用寄存器之间传送数据。

一:下面先来说说状态寄存器

针对32位的ARM处理器,状态寄存器就是一个32位长的寄存器。每个位的含义如下图:


分成了4部分:

1,条件标志位

N(Negative), Z(Zero), C(Carry), V(Verflow)统称为条件标志位。ARM指令可以根据CPSR中的这些条件标志位来选择性的执行。

2,Q标志位

ARM v5的E系列处理器中,CPSR的bit[27]称为Q标志位。主要用于指示增强的DSP指令是否发生了溢出。

3,控制位

I, F, T以及M[4:0]统称为控制位。当异常中断发生时,这些位发生变化。在特权级的处理器模式下,软件可以修改这些控制位。

下表示控制位M[4:0]的含义:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
XOS Function是一个函数,根据引用\[3\]中的描述,它可能是一个用于关中断和恢复中断的函数。具体来说,XOS Function可能包含两个函数,一个是OSIntDisable用于备份中断状态并关中断,另一个是OSIntRestore用于恢复上次备份的中断状态。这些函数可能是用汇编语言实现的。 #### 引用[.reference_title] - *1* [学好(数组、函数、对象),走遍天下都不怕](https://blog.csdn.net/weixin_49307011/article/details/108180205)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [最优化算法与matlab应用5:遗传算法](https://blog.csdn.net/wjyxld/article/details/105392045)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [XOS 详解1: os_s_xxxx.s](https://blog.csdn.net/uunubt/article/details/96307144)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值