embOS是SEGGER公司开发的一款RTOS,支持抢占调度和时间片轮询调度。embOS内存占用少,ROM最少只占用1.7KB。代码符合MISRA-C:2012,支持低功耗管理,支持市面上主流的编译器和处理器架构。 embOS对教育和非商业用途提供免费评估,以二进制库的方式提供,可以登录SEGGER官网根据所使用的编译器和处理器进行下载。 进入embOS下载页面之后,就可以根据自己的处理器核与编译器选择对应的移植包进行下载。 解压下载的压缩文件,会得到embOS产品手册和针对特定处理器核编译器的说明文档,同时,Start目录提供了针对特定编译器的二进制库和Demo例程。对于库的选择和使用可以参考提供的说明文档。 以Cortex-M和IAR编译器为例,从Start>Lib目录选择ARM v7-M(M3/M4/M7),CPU小端模式,带调试、堆栈检测和性能分析功能的库os7M_tl_dpl.a。命名中的dpl表示debug + profiling + Stack check built with low optimization level,具体的库命名规则可以查看emOS_CortexM_IAR文档。 (1).将.a库添加到工程中,同时添加Start>Inc 中Global.h、OS_Config.h、RTOS.h所在路径到头文件路径设置。 (2).从Start> BoardSupport选择芯片厂商和芯片型号的目录,将其下Setup目录中的.c文件也添加到工程。如果没有所使用的芯片的Demo例程,可以选择与芯片接近的型号。 (3).修改BSP.c和BSP_UART.c,根据自己的硬件来实现。对于Cortex-M来说,RTOSInit_xxx.c中的代码可以通用。xmtx.c、xmtx2.c、xtmx3.c是IAR运行时库在embOS实现的线程安全和线程局部存储功能的接口,如果不使用线程安全相关的话,这三个文件可以不添加。 (4).在OS_Config.h中,根据所使用的库设置宏定义。 (5).启动OS。在启动embOS调度之前,需要至少创建一个任务。在main函数中,首先调用OS_Init()函数初始化embOS,然后调用OS_InitHW()初始化必要硬件。调用任务创建API创建任务,在调用OS_Start()之后,调度器启动,任务开始调度。 (6).embOS提供了IAR内核调试插件,在IAR中设置启用。 (7).当程序暂停运行时,通过IAR菜单栏上的embOS打开各项观察窗口,查看任务的执行情况。 SEGGER提供的embOS库包括了针对特定处理器核编译器移植,用户可以很方便的集成到现有工程。embOS的API也很简洁明了,结合产品手册可以很快上手。更多的embOS应用可以访问SEGGER官网。 |
共3条
1/1 1 跳转至页
基于Cortex-M架构建立embOS评估工程
共3条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |