良许Linux教程网 干货合集 嵌入式分时分区实时系统

嵌入式分时分区实时系统

AnOs介绍

AnOs是一个基于ARM M4系列开发的 嵌入式分时分区实时系统。仿照VxWorks653思路开发。

https://gitee.com/personal_chenjl/AnOs

image-20230828184856882
image-20230828184856882

开发环境使用Keil uVersion5。

示例程序运行于STM32F427控制器上。

该系统以作为高安全领域的操作系统应用为目标。

软件架构

该系统由BOOT,OS,APP1,APPN..构成。

BOOT负责启动时配置系统时钟,进入固化模式固化OS或各分区任务;或者直接进入OS。

OS为实时分时分区操作系统,负责各任务模块的调度,提供外设接口资源的驱动,以及保护各分区任务的运行。
APPn 为各个分区任务。由实际的应用方开发对应的代码。

各个分区之间使用共享内存的方式进行互相通信。

安装教程

该源代码提供两个示例任务分区,其中一个任务分区负责按1s周期控制一次LED灯工作状态;另一任务分区按1s周期从串口1输出字符串“abc”。

驱动程序提供一个GPIO控制的LED灯和COM1驱动接口示例。

使用下载器,分别将BOOT下载到0x0800000FLASH地址,OS下载到0x08008000,APP1下载到0x08020000,APP2下载到0x08040000。然后复位运行 目标程序即可实现程序的运行。

移植说明

基础说明

当前应用环境是使用Keil开发,测试平台为STM32F42X系列,当前,理论上ARM-3,ARM-4系列大部分是支持的,但要求需要硬件浮点处理单元,MPU内存保护单元(可选)。

BOOTLOADER

目标板应该至少拥有USART1口,便于BOOTLOADER使用升级,这是目前版本支持的升级方式。
BOOTLOADER固化地址在0x08000000。占用32KB空间大小。上电复位后首先运行。
BOOTLOADER主要是配置系统的时钟,如使用外部时钟,配置工作及各总线主频。

OS

OS需要配置每一个APP的Rom使用范围,RAM使用范围,以及共享内存范围和访问权限,有MPU时,会启用MPU进入访问保护;配置每个APP的工作周期,优先级;APP使用的栈大小;提供底层硬件设备资源的驱动接口,示例中提供LED灯和COM口两类的驱动程序示例。

OS下载地址为0x08008000,占用32KB空间大小。
OS会在运行过程中动态检测栈空间的安全,并在启用MPU功能的条件下,保护每个分区任务的运行空间。

APP

根据任务需要开发的应用程序,APP访问底层资源通过调用操作系统接口函数实现;APP之间数据传输通过共享内存实现,也可以使用操作系统提供的event事件进行通知传递。
每个APP工程在配置使用时,注意要使用提供的OS库,同时在ROM内存和RAM内存配置时,需要按照事先约定的空间,设置正确的地址范围。否则,OS将会认为是非法的分区任务,不予运行。

默认参数

  • 使用12M外部晶振
  • 主频配置为168M
  • 使用GPIOC.Pin3脚控制LED灯
  • 使用GPIOA.Pin9和GPIOA.Pin10作为USART1设备接口

示例演示流程

1.打开 MultiTask目录下的 RTOS_APP.uvmpw 工作空间

2.根据硬件晶振频率,修改osBOOT工程中,Boot/start/boot.c文件中宏 PLL_M 为实际晶振频率,然后编译

3.修改AnOs/Drv/DrvLed.c和DrvUart.c文件中有关硬件设备的配置,然后编译

4.分别设置工作空间中的osBoot,AnOs,App1,App2为活动工程,然后下载到目标板

5.复位目标板,LED灯将以2S的周期闪烁,同时,串口以1s周期输出字符串”abc”

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部