# mkrtos-real **Repository Path**: prenow/mkrtos-real ## Basic Information - **Project Name**: mkrtos-real - **Description**: MKRTOS 全称是 Micro-Kernel Real-Time Operating System,中文名字是微内核实时操作系统。 - **Primary Language**: C - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 29 - **Created**: 2023-04-29 - **Last Updated**: 2023-04-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## MKRTOS 是什么 - MKRTOS 全称是 Micro-Kernel Real-Time Operating System,中文名字是微内核实时操作系统。其最终的意义是实现一个小内核,并兼容 Posix 标准的操作系统,使其完全适用于各类嵌入式场合。 ### 开发背景 - Cortex-M 在工业控制领域非常火,但是易用的操作系统却非常上,可能有 ucos 这类的操作系统,但是其功能都非常的简单,使用这类 RTOS 都有着一定的学习成本(我也写过一个,可以看看 xTinyRTOS,非常简单).开发 MKRTOS 的初衷就是兼容 POSIX,以降低学习成本,并且在开发时还考虑到内存的使用,对内存使用进行优化。 ### MKRTOS 内核特性 - 1.处理器:默认支持 Cortex-M3 处理器。 - 2.进程间通信:支持信号、消息邮箱、信号量、匿名管道、共享内存。 - 3.文件系统:支持 vfs,并开发了 spfs 文件系统,文件系统支持块缓存。 - 4.可执行文件:支持bin文件的应用程序,并支持mpu做应用间隔离。 - 5.内存管理:链式内存管理,比较节省内存。 - 6.多任务支持,多线程还在完善。 - 7.驱动框架:字符设备与块设备。 - 8.常用驱动:null,tty,tty0,flash。 - 9.用户态支持软件浮点!(修改了dietlib库,可以做一些浮点方面的计算)。 - 9.以太网支持(正在更新),采用lwip。 ### 系统功能 - 支持的库:dietlibc(部分支持)。 - 支持的应用:shell,ls,ymodem 等. ### 其它 - 支持使用ymodem通过串口直接下载应用程序。 - shell还比较简陋,目前只支持4条命令,可以执行/bin/目录下的应用程序。 ### 硬件支持 - STM32F103RCT6 - STM32F205RFT6(qemu) ### 怎么使用? - 工程更改为CMake+GCC,可以配合WSL2+Vscode+qemu在Linux下面开发,支持软件模拟。 ### 我的博客 - 欢迎到博客交流(还没有申请域名^-^):[MKRTOS博客](http://124.222.90.143/) ### 日志 * 很久以前的日志 1. dietlibc移植说明,去掉不需要的cpu相关的文件夹,syscalls.h内__ARGS_mmap改为1 ,并修改mmap.S文件。 2. 修改setjump.S等文件。 3. 所有的.S文件需要增加编译的头。 4. lwip移植 1.需要完成clone函数的实现。 2.需要完成信号量、互斥锁、消息邮箱。 3.需要给struct sock添加引用计数,防止多进程时出现问题,需要对socket,accept,close这3个函数进行处理。 4.一些其它的配置。 5. 其它大量修改(想不起来了)。 6. 2022/4/4 修复了一些使用上的bug,比如在用户线程修改了特权模式的寄存器,导致直接直接异常。 * 2022/11/10 1. mkrtos测试版,改版本相对来说文件系统较稳定,并且增加mpu保护的支持,多应用之间隔离,去掉了之前的elf执行方式,直接执行bin文件格式。 2. 移植了最新版本的dietlibc。 3. 修复了之前的许多bug。 * 2022/11/13 1. 一种没有上下文切换的快速ipc通信机制原型,非常快!!! 2. 增加fork_exec系统调用,将fork和exec合并,在单片机上非常适用,能够节约内存。 * 2022/11/14 1. 多个应用直接引用mkrtos_sdk工程,去掉重复文件。 2. 修复文件系统truncate的bug。 * 2022/11/9 1. 工程修改为Cmake管理。 2. 增加qemu支持,采用stm32f205rft6。 3. 增加bootstarp支持。 4. 增加cpio文件系统支持。 5. 增加软件浮点支持。 6. 增加双向链表和单项链表. ### 工作规划 1. 优化内核。 2. 完善用户管理,用户登录相关系统调用。 3. 完善spFS以及vfs文件系统。(1)mmap等的支持,考虑是否采用分页内存管理,分页比较费内存。(2)完善文件的权限管理 4. 重新实现自己的网络协议栈。 5. 显示驱动完善。 7. cortex-m4支持。