3分钟上手OSAL移植:TI官方精简框架+STM32实战案例(附源码)

原创 小麦大叔 2025-04-30 21:30

点击上方,选择“置顶/星标公众号”

福利干货,第一时间送达

简单介绍一下Z-STACK中的OSAL,值得一看的现成轮子;

什么是 OSAL?

今天同学忽然问我有没有搞过OSAL,忽然间一头雾水,于是在搜索引擎上找到了答案,发现这是一个十分实用的东西。

OSAL(operating system abstraction layer),操作系统抽象层,是一种以实现多任务为核心的系统资源管理机制,实现了类似RTOS的某些功能,但并不能称之为真正意义上的RTOS,因为其本身还不支持任务的挂起,任务的抢占等等功能。

但是这种机制,实现的代码十分精简,占用资源也非常少,对于资源十分紧张的嵌入式平台,也可以完成比较复杂的逻辑功能。

TI CC2530ZIGBEE协议栈Z-STACK中可以找到OSAL的身影,可以在官网上搜索z-stack下载相关的源码,其中就包含了OSAL实现的源码;

移除掉一些无关功能的代码之后,剩下OSAL的源码总共约1100多行代码,全部由C语言实现,资源占用约为

  • RAM:512Byte
  • ROM:2KB

理论上可以移植到绝大多数的芯片平台上。

源码安装

目前官网上最新的版本,下载安装到本地;

TI官网下载的z-stack

安装完成之后,可以到安装目录下,找到相应的源码,不过这里基本上是zigbee的协议栈,所以OSAL相关的部分在下图所示的路径中;

目录结构

进入到osal路径下的文件结构如下图所示;

这个OSAL操作系统抽象层用于保护协议栈软件组件不受程序硬件细节的影响,减少程序的耦合性,提高可移植性复用性。它可以独立于程序环境,并且提供了以下功能。

  1. 任务注册、初始化、启动;
  2. 任务间的消息交换;
  3. 任务同步;
  4. 中断处理;
  5. 计时器;
  6. 内存分配;

Linux 上OSAL的移植

可以尝试把OSAL的框架移植到单片机上,进行测试,这里是GitHubfork的一个仓库OSAL ,已经具体的移植方法,可以在Linux平台上进行测试,

void osal_main(void)
{
    //系统硬件、外设等初始化

    //禁止中断
    HAL_DISABLE_INTERRUPTS();

    //osal操作系统初始化
    osal_init_system();

    //添加任务
    osal_add_Task(print_task_init, print_task_event_process, 1);
    osal_add_Task(statistics_task_init, statistics_task_event_process, 2);

    //添加的任务统一进行初始化
    osal_Task_init();

    osal_mem_kick();

    //允许中断
    HAL_ENABLE_INTERRUPTS();

    //设置初始任务事件,上电就需要自动轮询的任务事件可在此添加

    //启动osal系统,不会再返回
    osal_start_system();
}

STM32上OSAL的移植

如果直接使用ti官方的代码改动会相对比较大,这里直接在github上找到一份移植到stm32的工程,直接fork了一份改成HAL库,可以参考一下stm32-osal, 克隆代码之后,直接复制osal文件夹到CubeIDE工程目录下,然后对工程文件列表进行刷新,可以看到如下图所示;

下面是作者基于tiosal的移植说明:

  1. 完成OSAL\hal\timer.c文件,为系统提供时钟;
  2. 修改OSAL\include\type.h文件中的全局中断开关函数(可以为空),添加芯片对应的头文件,根据需要修改数据类型重定义,根据芯片字长修改halDataAlign_t类型;
  3. 根据需要修改OSAL\osal\osal_memory.h文件中的内存池大小定义,文件中osalMemHdr_t类型需要确保长度为16bit或以上,非8位单片机需要设定内存池的字节对齐;
  4. 添加任务函数中的任务优先级数值大的任务则优先级高;
  5. 根据需要修改OSAL\include\osal_memory.h文件中的OSALMEM_METRICS定义,有效则开启内存统计功能;

关键点

总体来说,因为站在巨人的肩膀上,整体的代码需要修改的部分已经很少了。首先这个机制是根据时间片轮询调度的,所以会对每个任务分配一个ID以及一个任务专属的定时器,同时,使用一个链表管理每个任务的定时器,同样的,每个定时器会更加任务ID来进行匹配,所以,需要在hal增加对定时器更新的函数;如下所示;

因为使用CubeMX修改配置,重新生成代码后会覆盖原文件stm32f1xx_it.c,所以,重新生成的时候,注意添加osal_update_timers(),如果对其他内容感兴趣的话,可以参考一下源码;

测试代码

使用串口3进行任务测试,定义了两个任务,先贴出其中的一部分,详细的可以全部的工程代码;

int osal_main(void)
{    
    HAL_DISABLE_INTERRUPTS();
    osal_init_system();
    
 osal_add_Task(Serial_Task_Init,Serial_Task_EventProcess, 1);
 osal_add_Task(Serial_Task_02_Init,Serial_Task_02_EventProcess, 2);
 osal_Task_init();
 osal_mem_kick();
 HAL_ENABLE_INTERRUPTS(); 
//"hello task 01\r\n";
 osal_start_reload_timer( Serial_TaskID, PRINTF_STR, 100);
//"hello task 02\r\n";
 osal_start_reload_timer( Serial_Task_02_ID, PRINTF_STR_TASK_02, 500);

 osal_start_system();
}

下面是运行结果:

结语

如果不使用RTOS,那么OSAL也是不错的选择,不过还需要对其源码需要进一步的理解,这样在出现问题的时候,才可以对症下药。

附件

工程基CubeIDE 1.3;公众号后台回复【OSAL】获取工程源码

最后

🫵兄弟们!一个人单打独斗确实能冲得挺快,但要想走得更远、更稳,还得靠一群志同道合的伙伴啊!

👊 麦鸽的知识星球现在已经聚集了一波人,大家都在这里互相学习、共同进步。


如果你也想找个靠谱的学习圈子

赶紧   戳链接 🔗 加入我们吧!

在这里,你能读到星球专栏的干货,优质教程,练手项目,随时向麦鸽提问,还能帮你定制学习计划。别犹豫了,兄弟,一起冲!💪



往期推荐



别再用传统方法读写数据了!这个开源库直接让效率翻倍——lwrb

传统MCU将被取代?这款国产MCU+FPGA芯片很强

真想不到,新书刚出版就爆了,登顶第一

为什么90%的嵌入式工程师都踩过这些坑?第3个太致命!


小麦大叔 一位热衷技术的攻城狮,懂点技术,会讲故事,交个朋友?
评论
  •   头部技术企业核心能力与行业解决方案解析   华盛恒辉科技有限公司   华盛恒辉科技有限公司:是一家专注于高端软件定制开发服务和高端建设的服务机构,致力于为企业提供全面、系统的开发制作方案。在部队政企开发、建设到运营推广领域拥有丰富经验,在教育,工业,医疗,APP,管理,商城,人工智能,部队软件、工业软件、数字化转型、新能源软件、光伏软件、汽车软件,ERP,系统二次开发,CRM等领域有很多成功案例。   五木恒润科技有限公司   五木恒润科技有限公司:是一家专业的部队信息化建设服务单位
    华盛恒辉l58ll334744 2025-05-19 17:18 133浏览
  • 北京贞光科技作为三星电机一级代理商,提供全面升级的技术支持、样品供应和供应链保障服务,为客户提供专业、可靠的一站式解决方案,满足AI基础设施不断发展的需求,支持更高效、更强大的人工智能应用计算系统的开发。如需更多产品信息或技术支持,请联系贞光科技。三星电子在被动元件技术领域取得重大突破,推出专为AI服务器应用设计的超小型高容量多层陶瓷电容器(MLCC)。这些新组件解决了现代AI计算基础设施不断增长的电力需求,同时优化了密集服务器环境中的空间利用率。 满足AI服务器电力需求现代AI服务器
    贞光科技 2025-05-20 11:38 95浏览
  • 文/陈昊编辑/cc孙聪颖‍在家电赛道上,海尔智家的业绩表现不俗。2025一季度,海尔智家延续了年报稳健增长的趋势,继续在高基数下实现高增长。而在业绩之外,近些年ESG也成为资本市场衡量企业价值的另一道标尺。5月16日,《财富》2025年中国ESG影响力榜揭晓,共有100家企业上榜。其中,海尔智家再次上榜,且连续四年位居行业榜首。“每一环都是绿色的”改变用户生活看似宽泛的ESG概念,如何落地?一起来看看海尔智家怎么做的就知道了。海尔智家通过“6-Green”战略,让采购、设计、制造、回收处置等环环
    华尔街科技眼 2025-05-20 20:18 35浏览
  •  在刚刚过去的这个周末,一则关于“娃哈哈纯净水的生产商竟然是今麦郎?”消息在网络上掀起了轩然大波,引发了公众的广泛关注。作为国民老牌子的娃哈哈,这次真的摊上事了。这一事件不仅暴露了娃哈哈在供应链管理上的潜在问题,也引发了消费者对于品牌信任的深度思考。在当下激烈的市场竞争环境中,一个小小的代工风波,为何能引发如此巨大的反响?这背后又折射出了娃哈哈怎样的发展困境?代工风波:合作背后的质量隐忧事情起于消费者发现瓶身上的“今麦郎代工”字样。要知道,在大家印象里,娃哈哈纯净水就该是自家工厂生产的
    疯人评 2025-05-20 18:04 32浏览
  • 电磁场是自然界中一种特殊的物质存在形式,由相互依存且能够相互转化的电场和磁场共同构成。这种无形的物理场充满整个空间,既能够传递电磁力,也能够以电磁波的形式传播能量。电场源于静止或运动的电荷,表现为对带电粒子施加作用力的能力;而磁场则产生于电流或变化的电场,能够影响运动电荷的轨迹。两者通过动态耦合形成统一的电磁场系统,其行为规律由麦克斯韦方程组完整描述。这个方程组包含四个基本方程,分别揭示了电荷如何产生电场、磁场无孤立磁荷的特性、变化磁场激发电场的规律,以及电流与变化电场共同产生磁场的机制。电磁场
    锦正茂科技 2025-05-19 13:07 90浏览
  • 在智能化、数字化与信息化的时代浪潮下,物联网凭借着多频段间的通信协同能力与多协议间的通信兼容能力构建起了一张张无缝互通的IoT设备网络。从Sub-GHz频段到2.4GHz频段,从BLE/Wi-Fi协议到LoRa/Wi-SUN协议,多种频段资源与通信协议不仅推动了智能抄表、智能家居与工业自动化等领域的繁荣发展,还为万物互联的未来愿景奠定了坚实的底层通信基础。然而,随着无线通信技术的高速发展与全球IoT设备数量的持续增长,频段资源的有限性愈发凸显,在科技园区、交通枢纽与CBD等通信密集区域,同一频段
    华普微HOPERF 2025-05-20 11:07 104浏览
  • 在刚刚过去的这个周末,一则关于“娃哈哈纯净水的生产商竟然是今麦郎?”消息在网络上掀起了轩然大波,引发了公众的广泛关注。作为国民老牌子的娃哈哈,这次真的摊上事了。这一事件不仅暴露了娃哈哈在供应链管理上的潜在问题,也引发了消费者对于品牌信任的深度思考。在当下激烈的市场竞争环境中,一个小小的代工风波,为何能引发如此巨大的反响?这背后又折射出了娃哈哈怎样的发展困境?代工风波:合作背后的质量隐忧事情起于消费者发现瓶身上的“今麦郎代工”字样。要知道,在大家印象里,娃哈哈纯净水就该是自家工厂生产的。5月15日
    疯人评 2025-05-20 16:19 35浏览
  •   在数字技术重塑商业格局的当下,品牌如何借助创新工具实现价值跃升成为企业战略核心。软件开发已从单纯的技术迭代载体,演变为企业连接用户、驱动增长的关键纽带。因此,筛选靠谱的软件开发公司,成为企业数字化转型的重要决策 —— 专业公司凭借技术积累与行业经验定制解决方案,权威公司则以规范服务与交付能力保障项目落地。   筛选靠谱软件开发公司的三大核心标准   标准 1:技术适配性与行业匹配度   技术适配性:优先选择掌握云计算、AI 集成、低代码开发等前沿技术的团队。   行业匹配度:医疗
    华盛恒辉l58ll334744 2025-05-20 15:46 97浏览
  • 随着智能硬件设备的快速发展,蓝牙音频语音芯片在智能家居、穿戴设备、车载电子等领域得到广泛应用。蓝牙音频语音芯片凭借其低功耗、高集成度和灵活的通信接口,成为许多开发者的选择。然而,在实际应用中,开发者可能会遇到IC芯片通过串口或MCU通信时无响应的问题。本文将从通信接口配置与故障排查角度,普及相关知识并提供解决方案。一、通信接口基础配置串口接线规则蓝牙芯片的串口通信需遵循“交叉连接”原则:TX(发送端)→ RX(接收端)RX(接收端)→ TX(发送端)若接线错误(如TX-TX或RX-RX直连),数
    广州唯创电子 2025-05-19 09:47 78浏览
  • 分享ADC自身因素带来的误差,主要分享由于外部因素导致的ADC采样误差。 一、模拟信号源输入减少带来的误差看一个STM32的ADC转换器的示意图:从图中可以看到,输入源与采样引脚之间存在阻抗RAIN,流入引脚的电压可能因为阻抗的存在产生一定的压降,导致最终输入采样引脚的电压变小。CADC采样电容通过RADC电阻为其充电,如果RAIN的阻抗选取不合理的话,会导致保持电容充满电所需要的时间变长。一般而言,RC的充电的时间常量为:tc =(RADC+RAIN)× CADC当采样时间 <
    嵌入式之入坑笔记 2025-05-20 22:19 38浏览
  • 电磁场的作用主要体现在以下几个方面:首先在能源领域,电磁场是发电、输电的基础。无论是火力发电还是核电站,*终都需要通过电磁感应原理将机械能转化为电能。高压输电线路则利用交变电磁场实现电能的远距离传输,为现代工业和生活提供动力保障。在通信技术方面,电磁波作为电磁场的传播形式,构成了无线通信的基础。从无线电广播到5G移动网络,从卫星通信到光纤传输,本质上都是对特定频段电磁场的**控制和利用。雷达系统通过发射和接收电磁波实现目标探测,在气象预报、航空管制等领域不可huo缺。在医疗领域,电磁场技术为诊断
    锦正茂科技 2025-05-19 13:19 90浏览
  • 文/Leon编辑/cc孙聪颖‍“韬光养晦、后发制人”,腾讯2025年第一季度的业绩表现可以具象化为以上8个字。在AI整体赋能的情况下,腾讯控股(00700.HK)Q1营收达到了1800.2亿元,同比增长13%,相当于日入20亿;净利润478.21亿元,同比增长14%,每天净赚5.3亿。营收、净利双位数双增长,代表腾讯重回扩张周期。毫无疑问,腾讯的业绩表现释放了一个信号:AI不是单打独斗的业务线,而是生产力工具。谁能高效地部署AI、找到最契合旗下业务的赋能方式,谁就能占尽先机。值得一提的是,与腾讯
    华尔街科技眼 2025-05-20 20:14 47浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦