RT-Thread API参考手册  4.0.3
嵌入式实时操作系统
对称多核支持

对称多核处理器支持情况 更多...

模块

 自旋锁
 自旋锁接口
 

函数

void rt_spin_lock_init (struct rt_spinlock *lock)
 初始化自旋锁 更多...
 
void rt_spin_lock (struct rt_spinlock *lock)
 获取自旋锁 更多...
 
void rt_spin_unlock (struct rt_spinlock *lock)
 释放自旋锁 更多...
 
rt_base_t rt_spin_lock_irqsave (struct rt_spinlock *lock)
 获取自旋锁并禁止本地中断 更多...
 
void rt_spin_unlock_irqrestore (struct rt_spinlock *lock, rt_base_t level)
 释放自旋锁并恢复中断控制器的状态 更多...
 
struct rt_cpu * rt_cpu_self (void)
 获取当前 CPU 的状态结构体 更多...
 
struct rt_cpu * rt_cpu_index (int index)
 获取指定 CPU 的状态结构体 更多...
 
rt_base_t rt_cpus_lock (void)
 禁用所有 CPU 的任务调度器,并禁止本地 CPU 中断 更多...
 
void rt_cpus_unlock (rt_base_t level)
 使能所有 CPU 的任务调度器,并恢复本地 CPU 中断控制器的状态 更多...
 
void rt_cpus_lock_status_restore (struct rt_thread *thread)
 设置当前 CPU 的当前任务 更多...
 

详细描述

对称多核处理器支持情况

函数说明

void rt_spin_lock_init ( struct rt_spinlock *  lock)

初始化自旋锁

该函数初始化一个自旋锁对象。

参数
lock指定自旋锁的指针。
void rt_spin_lock ( struct rt_spinlock *  lock)

获取自旋锁

该函数获取指定的自旋锁对象。被获取的自选锁在被释放前,不能够再被再次获取。

参数
lock指定自旋锁的指针。
void rt_spin_unlock ( struct rt_spinlock *  lock)

释放自旋锁

该函数释放指定的自旋锁对象。

参数
lock指定自旋锁的指针。
rt_base_t rt_spin_lock_irqsave ( struct rt_spinlock *  lock)

获取自旋锁并禁止本地中断

该函数获取指定的自旋锁对象,禁止本地中断,并返回中断控制器状态。

参数
lock指定自旋锁的指针。
返回
中断控制器的状态值。
void rt_spin_unlock_irqrestore ( struct rt_spinlock *  lock,
rt_base_t  level 
)

释放自旋锁并恢复中断控制器的状态

该函数释放指定的自旋锁对象,并恢复中断寄存器的状态。

参数
lock指定自旋锁的指针。
level获取自旋锁前中断寄存器的状态值。
struct rt_cpu* rt_cpu_self ( void  )

获取当前 CPU 的状态结构体

该函数获取当前 CPU 的状态结构体,其中记录了 CPU 的当前任务信息,以及就绪任务列表等。

返回
当前 CPU 的状态结构体。
struct rt_cpu* rt_cpu_index ( int  index)

获取指定 CPU 的状态结构体

该函数获取指定 CPU 的状态结构体。

返回
指定 CPU 的状态结构体。
rt_base_t rt_cpus_lock ( void  )

禁用所有 CPU 的任务调度器,并禁止本地 CPU 中断

该函数禁用所有 CPU 的任务调度器,并禁止本地 CPU 中断。

返回
当前 CPU 终端控制器的状态值。
void rt_cpus_unlock ( rt_base_t  level)

使能所有 CPU 的任务调度器,并恢复本地 CPU 中断控制器的状态

该函数使能所有 CPU 的任务调度器,并恢复本地 CPU 中断控制器的状态。

参数
level禁止任务调度器前,本地 CPU 中断控制器的状态值。
void rt_cpus_lock_status_restore ( struct rt_thread *  thread)

设置当前 CPU 的当前任务

该函数被任务调度器调用,将当前 CPU 的当前任务设置为指定的线程。另外,该函数还检查并解锁全局 CPU 调度器。

参数
thread指定的目标线程。