X
首页
技术
模拟电子
单片机
半导体
电源管理
嵌入式
传感器
最能打国产芯
应用
汽车电子
工业控制
家用电子
手机便携
安防电子
医疗电子
网络通信
测试测量
物联网
最能打国产芯
大学堂
首页
直播
专题
TI 培训
论坛
汽车电子
国产芯片
电机驱动控制
电源技术
单片机
模拟电子
PCB设计
电子竞赛
DIY/开源
嵌入式系统
医疗电子
颁奖专区
【厂商专区】
【电子技术】
【创意与实践】
【行业应用】
【休息一下】
最能打国产芯
活动中心
直播
发现活动
颁奖区
电子头条
参考设计
下载中心
分类资源
文集
排行榜
电路图
Datasheet
最能打国产芯
国产芯片交流
[MCU] 全志R128 SDK HAL 模块开发指南之HW Spinlock
aleksib
2024-2-2 09:49
楼主
# HW Spinlock ## 模块介绍 hwspinlock 提供一种硬件同步机制,lock 操作可以防止多处理器同时处理共享数据。保证数据的一致性。 ## 源码结构 ``` ├── hal_hwspinlock.c ├── hwspinlock.h ├── Kconfig ├── Makefile ├── platform │ ├── hwspinlock-sun20iw2.h └── platform-hwspinlock.h ``` ## 模块配置 配置路径如下: ``` There is no help available for this option. Symbol: DRIVERS_HWSPINLOCK [=y] Type : boolean Prompt: enable hwspinlock driver Location: -> Drivers options -> Supported drivers -> HW SPINLOCK Devices ``` ## 模块接口说明 头文件: ```c #include
``` ### 获取锁 函数原型 ``` int hal_hwspinlock_get(int num) ``` 参数: - `num`:`0~31`,hwspinlock 锁的序号 返回值: - `HWSPINLOCK_OK`:上锁完成 - `HWSPINLOCK_EXCEED_MAX`:锁已达最大值,获取失败 - `HWSPINLOCK_ERR`:上锁失败 ### 解锁 函数原型 ``` int hal_hwspinlock_put(int num) ``` 参数: - `num`:`0~31`,hwspinlock 锁的序号 返回值: - `HWSPINLOCK_OK`:上锁完成 - `HWSPINLOCK_EXCEED_MAX`:锁已达最大值,获取失败 ### 检查锁是否在使用中 函数原型 ``` int hal_hwspinlock_check_taken(int num) ``` 参数: - `num`:`0~31`,hwspinlock 锁的序号 返回值 - 1:使用中 - 0:未被使用 ## 模块使用范例 ```c #include
#include
#include
#include
#include
#include
#include
#include
static int cmd_test_hwspinlock_get(int argc, char **argv) { hal_hwspinlock_get(0); return 0; } static int cmd_test_hwspinlock_put(int argc, char **argv) { hal_hwspinlock_put(0); return 0; } FINSH_FUNCTION_EXPORT_CMD(cmd_test_hwspinlock_get, hal_hwspinlock_get, test_hwspinlock) FINSH_FUNCTION_EXPORT_CMD(cmd_test_hwspinlock_put, hal_hwspinlock_put, test_hwspinlock) ``` 在 FreeRTOS 控制台输入 `hal_hwspinlock_get` 命令会上锁,输入 `hal_hwspinlock_put` 命令会解锁。
点赞
回复评论 (1)
沙发
LitchiCheng
用这个硬件锁理论上也会写出死锁的可能吧
点赞
2024-2-3 22:12
最新活动
免费申请 | 上百份MPS MIE模块,免费试用还有礼!
TI 有奖直播 | 使用基于 Arm 的 AM6xA 处理器设计智能化楼宇
Follow me第二季第3期来啦!与得捷一起解锁高性能开发板【EK-RA6M5】超能力!
报名直播赢【双肩包、京东卡、水杯】| 高可靠性IGBT的新选择——安世半导体650V IGBT
30套RV1106 Linux开发板(带摄像头),邀您动手挑战边缘AI~
安世半导体理想二极管与负载开关,保障物联网应用的稳健高效运行
随便看看
使用USB ActiveSync 需要增加组件或修改什么吗?
招聘电子行业资深分析师
如何快速掌握Luminary单片机?(入门必读)
DLP技术蕴含巨大商机,实现灵活和可编程的光控管理
mrf24j40ma/mrf24j40mb/mrf24j40mc 有何区别。。。
CCS安装新器件,谁有什么好办法?
modem来电显示,急!!!
Qorvo的5G小基站
电源工程师的宝典——各种滤波电路合集
过年想在淘宝买东西的买家注意啦
lattice的FPGA,关于lvds如何使用
EEWORLD大学堂----直播回放: 符合 USB 2.0 标准的最新隔离器件
刚到货的MSP430F5438A最小系统版,串口测试问题
发一份带注释的和优龙类似的2410启动代码
请教:MSP430比较器检测电池电压
学校里学过了DSP,现在想系统地学习下硬件。
无线监控是发展方向 技术改进势在必行
【最新教程】STM32单片机
元器件知识
PMC - WinCE- YH-999-自刷系统-Intel的XScale处理器
电子工程世界版权所有
京B2-20211791
京ICP备10001474号-1
京公网安备 11010802033920号
回复
写回复
收藏
回复