STM32H745 HSEM原理与使用

简介

STM32H745拥有Cortex-M7和Cortex-M4两个处理器单元,并提供了32个硬件semaphore(简称HSEM)用来控制双核之间或不同进程之间的同步。

HSEM原理

每个HSEM都有一个32位的数值,它包含有3部分信息:锁标记位(bit:31),内核ID(bit:11-8),进程ID(bit:7-0),其它位为保留位。在FREE状态时,该HSEM数值为0,即锁标记位,内核ID和进程ID都为0。在LOCK状态时,锁标记位为1,内核ID由运行系统赋值(内核Cortex-M7为其赋值为3,内核Cortex-M4为其赋值为1),进程ID由用户赋值,其取值范围为0-255。

当HSEM为LOCK状态时,只有相同的内核ID和进程ID才能对其解锁(RELEASE)。换句话说,由内核Cortex-M7上锁(TAKE)的HSEM,内核Cortex-M4无法对其解锁。即使同一内核内,进程1也无法对进程2解锁。

若对已经为LOCK状态的HSEM上锁,如果内核ID或者进程ID不相同则上锁失败。如果两者都相同则上锁成功但不会改变当前HSEM的任何状态。

HSEM的上锁(TAKE)

每个HSEM支持两种的上锁方式:一种是写方式,另一种是读方式。对应于这两种方式,STM32提供了两种寄存器接口,一个是Rx,一个是RLRx,角标x是指

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值