17 Star 56 Fork 24

chenjl/AnOs

Create your Gitee Account
Explore and code with more than 12 million developers,Free private repositories !:)
Sign up
Clone or Download
contribute
Sync branch
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README
MIT

AnOs

介绍

基于ARM M4系列开发的 嵌入式分时分区实时系统。仿照VxWorks653思路开发。
开发环境使用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"

MIT License Copyright (c) 2019 chenjl Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

About

基于ARM M4系列开发的 嵌入式分时分区实时系统。该系统目前运行于STM32F4控制器上,期望作为高安全领域的嵌入式操作系统应用。 expand collapse
C and 4 more languages
MIT
Cancel

Releases

No release

Contributors

All

Activities

Load More
can not load any more
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
C
1
https://gitee.com/personal_chenjl/AnOs.git
git@gitee.com:personal_chenjl/AnOs.git
personal_chenjl
AnOs
AnOs
master

Search

344bd9b3 5694891 D2dac590 5694891