Skip to content

Commit

Permalink
1.27
Browse files Browse the repository at this point in the history
1.27

added request to help this project by giving it a star on GitHub

1.27

1.27
  • Loading branch information
quantum-leaps committed Mar 23, 2023
1 parent 4138a16 commit c872534
Show file tree
Hide file tree
Showing 17 changed files with 689 additions and 1,652 deletions.
73 changes: 50 additions & 23 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
# What is it?
"MiROS" is a Minimal Real-Time Operating System (RTOS) kernel for ARM Cortex-M.
It supports preemptive, priortity-based multithreading, fully compliant with
RMA/RMS (Rate-Monotonic Analysis/Scheduling). It is currently written for
ARM/KEIL MDK (uVision), but can easily be ported to other toolchains as well.
RMA/RMS (Rate-Monotonic Analysis/Scheduling).

>NOTE<br>
MiROS is a teaching aid used in the "Modern Embedded Programming" video course
on YouTube:

Expand All @@ -22,31 +22,52 @@ NOT intended or recommended for use in commercial\applications.
[![MiROS on YouTube: RTOS part-2](img/MiROS.jpg)](https://youtu.be/PKml9ki3178)


# Supported Toolchains
MiROS is available for the following embedded toolchains:
- ARM/KEIL MDK (uVision)
- GNU-ARM (Makefile projects)
- IAR EWARM

# Supported Embedded Boards
Currently, MiROS examples are available for the following embedded boards:

- EK-TM4C123GXL (TivaC LaunchPad)

<p align="center"><img src="img/bd_EK-TM4C123GXL.png"/></p>

- STM32 NUCLEO-L152RE

<p align="center"><img src="img/bd_NUCLEO-L152RE.png"/></p>


# Directories and Files
```
MiROS/
+-3rd_party/ - third-party software (needed in the examples)
| +-CMSIS/ - ARM CMSIS
| +-ek-tm4c123gxl/ - low-level code to support EK-TM4C123GX board
| +-nucleo-l152re/ - low-level code to support STM32 NUCLEO L152RE board
+---3rd_party/ - third-party software (needed in the examples)
| +---CMSIS/ - ARM CMSIS
| +---ek-tm4c123gxl/ - low-level code to support EK-TM4C123GX board
| +---nucleo-l152re/ - low-level code to support STM32 NUCLEO L152RE board
|
+-examples/
| +-blinky_ek-tm4c123gxl/ - Blinky exammple for EK-TM4C123GX board
| | +-armclang/ - project for ARM/KEIL uVision with ARMCLANG
| | +-gnu/ - project for GNU-ARM with simple Makefile
| | +-iar/ - project for IAR EWARM
| |
| +-blinky_nucleo-l152re/ - Blinky exammple for STM32 NUCLEO L152RE
| +-armclang/ - project for ARM/KEIL uVision with ARMCLANG
| +-gnu/ - project for GNU-ARM with simple Makefile
| +-iar/ - project for IAR EWARM
+---examples/
| +---blinky_ek-tm4c123gxl/ - Blinky exammple for EK-TM4C123GX board
| | +---armclang/ - project for ARM/KEIL uVision with ARMCLANG
| | +---gnu/ - project for GNU-ARM with simple Makefile
| | +---iar/ - project for IAR EWARM
| |
| +---blinky_nucleo-l152re/ - Blinky exammple for STM32 NUCLEO-L152RE
| +---armclang/ - project for ARM/KEIL uVision with ARMCLANG
| +---gnu/ - project for GNU-ARM with simple Makefile
| +---iar/ - project for IAR EWARM
|
+-include/ - include directory
| +-miros.h - MiROS interface
+-src/ - source directory
| +-miros_armclang.c - MiROS implementation for ARMCLANG
| +-miros_gnu.c - MiROS implementation for GNU-ARM
| +-miros_iar.c - MiROS implementation for IAR
+---include/ - include directory
| miros.h - MiROS API
+---src/ - MiROS source code
| +---armclang/
| | miros.c - MiROS implementation for ARMCLANG
| +---gnu/
| | miros.c - MiROS implementation for GNU-ARM
| +---iar/
| | miros.c - MiROS implementation for IAR EWARM
```


Expand All @@ -69,5 +90,11 @@ MiROS is [licensed](LICENSE) under the GPLv3 open source license.
If you'd like to discuss MiROS or related subjects, plese use the ["Issues" tab](https://github.com/QuantumLeaps/MiROS/issues).


# How to Help this Project?
If you like this project, please give it a star (in the upper-right corner of your browser window):

![GitHub star](img/github-star.jpg)


# Contact Information
[state-machine.com](https://www.state-machine.com)
[state-machine.com](https://www.state-machine.com/video-course)
23 changes: 3 additions & 20 deletions examples/blinky_ek-tm4c123gxl/armclang/project.uvoptx
Original file line number Diff line number Diff line change
Expand Up @@ -143,24 +143,7 @@
<Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0TM4C123_256 -FS00 -FL040000 -FP0($$Device:TM4C123GH6PM$Flash\TM4C123_256.FLM))</Name>
</SetRegEntry>
</TargetDriverDllRegistry>
<Breakpoint>
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>70</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>0</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>0</BreakIfRCount>
<Filename>C:\GitHub\MiROS\miros.c</Filename>
<ExecCommand></ExecCommand>
<Expression></Expression>
</Bp>
</Breakpoint>
<Breakpoint/>
<WatchWindow1>
<Ww>
<count>0</count>
Expand Down Expand Up @@ -327,8 +310,8 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\src\armclang\miros_armclang.c</PathWithFileName>
<FilenameWithoutPath>miros_armclang.c</FilenameWithoutPath>
<PathWithFileName>..\..\..\src\armclang\miros.c</PathWithFileName>
<FilenameWithoutPath>miros.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
Expand Down
4 changes: 2 additions & 2 deletions examples/blinky_ek-tm4c123gxl/armclang/project.uvprojx
Original file line number Diff line number Diff line change
Expand Up @@ -424,9 +424,9 @@
<GroupName>MiROS</GroupName>
<Files>
<File>
<FileName>miros_armclang.c</FileName>
<FileName>miros.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\src\armclang\miros_armclang.c</FilePath>
<FilePath>..\..\..\src\armclang\miros.c</FilePath>
</File>
</Files>
</Group>
Expand Down
2 changes: 1 addition & 1 deletion examples/blinky_ek-tm4c123gxl/gnu/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ ASM_SRCS :=
C_SRCS := \
main.c \
bsp.c \
miros_gnu.c \
miros.c \
system_TM4C123GH6PM.c \
startup_TM4C123GH6PM.c

Expand Down
Loading

0 comments on commit c872534

Please sign in to comment.