├── .gitattributes ├── .gitignore ├── README.md ├── doc ├── ChRt.html ├── Doxyfile ├── MainPage │ └── ChRtMainPage.h ├── clean_html.bat ├── del_htm.bat └── html │ ├── _ch_rt_8h.html │ ├── _ch_rt_8h_source.html │ ├── _ch_rt_main_page_8h_source.html │ ├── bc_s.png │ ├── bdwn.png │ ├── closed.png │ ├── dir_68267d1309a1af8e8297ef4c3efbcdba.html │ ├── dir_f1e74b9d244c08400ce0f6c55d14c7e5.html │ ├── doc.png │ ├── doxygen.css │ ├── doxygen.svg │ ├── dynsections.js │ ├── files.html │ ├── folderclosed.png │ ├── folderopen.png │ ├── globals.html │ ├── globals_defs.html │ ├── globals_func.html │ ├── index.html │ ├── jquery.js │ ├── menu.js │ ├── menudata.js │ ├── nav_f.png │ ├── nav_g.png │ ├── nav_h.png │ ├── open.png │ ├── search │ ├── all_0.html │ ├── all_0.js │ ├── all_1.html │ ├── all_1.js │ ├── all_2.html │ ├── all_2.js │ ├── close.svg │ ├── defines_0.html │ ├── defines_0.js │ ├── files_0.html │ ├── files_0.js │ ├── functions_0.html │ ├── functions_0.js │ ├── functions_1.html │ ├── functions_1.js │ ├── functions_2.html │ ├── functions_2.js │ ├── mag_sel.svg │ ├── nomatches.html │ ├── pages_0.html │ ├── pages_0.js │ ├── search.css │ ├── search.js │ ├── search_l.png │ ├── search_m.png │ ├── search_r.png │ └── searchdata.js │ ├── splitbar.png │ ├── sync_off.png │ ├── sync_on.png │ ├── tab_a.png │ ├── tab_b.png │ ├── tab_h.png │ ├── tab_s.png │ └── tabs.css ├── examples ├── chBlink │ └── chBlink.ino ├── chBlinkPrint │ └── chBlinkPrint.ino ├── chContextTime │ └── chContextTime.ino ├── chCoop │ └── chCoop.ino ├── chDataSharing │ └── chDataSharing.ino ├── chEvent │ └── chEvent.ino ├── chFifoDataLogger │ └── chFifoDataLogger.ino ├── chIsrSemaphore │ └── chIsrSemaphore.ino ├── chJitter │ └── chJitter.ino ├── chMailbox │ └── chMailbox.ino ├── chMemPool │ └── chMemPool.ino ├── chMutex │ └── chMutex.ino ├── chRoundRobin │ └── chRoundRobin.ino └── chSemaphore │ └── chSemaphore.ino ├── extra ├── src_org │ ├── CMSIS │ │ ├── cachel1_armv7.h │ │ ├── cmsis_armcc.h │ │ ├── cmsis_armclang.h │ │ ├── cmsis_armclang_ltm.h │ │ ├── cmsis_compiler.h │ │ ├── cmsis_gcc.h │ │ ├── cmsis_iccarm.h │ │ ├── cmsis_version.h │ │ ├── core_armv81mml.h │ │ ├── core_armv8mbl.h │ │ ├── core_armv8mml.h │ │ ├── core_cm0.h │ │ ├── core_cm0plus.h │ │ ├── core_cm1.h │ │ ├── core_cm23.h │ │ ├── core_cm3.h │ │ ├── core_cm33.h │ │ ├── core_cm35p.h │ │ ├── core_cm4.h │ │ ├── core_cm55.h │ │ ├── core_cm7.h │ │ ├── core_sc000.h │ │ ├── core_sc300.h │ │ ├── mpu_armv7.h │ │ ├── mpu_armv8.h │ │ ├── pmu_armv8.h │ │ └── tz_context.h │ ├── arm │ │ ├── chcore.h │ │ ├── chcore_timer.h │ │ ├── chcore_v6m.c │ │ ├── chcore_v6m.h │ │ ├── chcore_v7m.c │ │ ├── chcore_v7m.h │ │ ├── chcoreasm_v6m.S │ │ ├── chcoreasm_v7m.S │ │ ├── chtypes.h │ │ └── mpu.h │ ├── avr │ │ ├── chcore.c │ │ ├── chcore.h │ │ ├── chcore_timer.h │ │ └── chtypes.h │ ├── hal │ │ ├── hal_st.c │ │ ├── hal_st.h │ │ └── osal.h │ ├── license │ │ ├── chcustomer.h │ │ ├── chlicense.h │ │ ├── chversion.h │ │ ├── license.dox │ │ └── license.mk │ ├── oslib │ │ ├── dox │ │ │ └── lib.dox │ │ ├── include │ │ │ ├── chbsem.h │ │ │ ├── chdelegates.h │ │ │ ├── chfactory.h │ │ │ ├── chjobs.h │ │ │ ├── chlib.h │ │ │ ├── chmboxes.h │ │ │ ├── chmemcore.h │ │ │ ├── chmemheaps.h │ │ │ ├── chmempools.h │ │ │ ├── chobjcaches.h │ │ │ ├── chobjfifos.h │ │ │ └── chpipes.h │ │ ├── oslib.mk │ │ ├── readme.txt │ │ └── src │ │ │ ├── chdelegates.c │ │ │ ├── chfactory.c │ │ │ ├── chmboxes.c │ │ │ ├── chmemcore.c │ │ │ ├── chmemheaps.c │ │ │ ├── chmempools.c │ │ │ ├── chobjcaches.c │ │ │ └── chpipes.c │ ├── readme.txt │ └── rt │ │ ├── include │ │ ├── ch.h │ │ ├── chalign.h │ │ ├── chchecks.h │ │ ├── chcond.h │ │ ├── chdebug.h │ │ ├── chdynamic.h │ │ ├── chevents.h │ │ ├── chlists.h │ │ ├── chmsg.h │ │ ├── chmtx.h │ │ ├── chregistry.h │ │ ├── chrestrictions.h │ │ ├── chschd.h │ │ ├── chsem.h │ │ ├── chstats.h │ │ ├── chsys.h │ │ ├── chsystypes.h │ │ ├── chthreads.h │ │ ├── chtime.h │ │ ├── chtm.h │ │ ├── chtrace.h │ │ └── chvt.h │ │ ├── src │ │ ├── chcond.c │ │ ├── chdebug.c │ │ ├── chdynamic.c │ │ ├── chevents.c │ │ ├── chmsg.c │ │ ├── chmtx.c │ │ ├── chregistry.c │ │ ├── chschd.c │ │ ├── chsem.c │ │ ├── chstats.c │ │ ├── chsys.c │ │ ├── chthreads.c │ │ ├── chtm.c │ │ ├── chtrace.c │ │ └── chvt.c │ │ └── templates │ │ ├── chconf.h │ │ └── meta │ │ ├── module.c │ │ └── module.h ├── srcdiff.bat └── srcdiff.txt ├── library.properties └── src ├── CMSIS ├── cachel1_armv7.h ├── cmsis_armcc.h ├── cmsis_armclang.h ├── cmsis_armclang_ltm.h ├── cmsis_compiler.h ├── cmsis_gcc.h ├── cmsis_iccarm.h ├── cmsis_version.h ├── core_armv81mml.h ├── core_armv8mbl.h ├── core_armv8mml.h ├── core_cm0.h ├── core_cm0plus.h ├── core_cm1.h ├── core_cm23.h ├── core_cm3.h ├── core_cm33.h ├── core_cm35p.h ├── core_cm4.h ├── core_cm55.h ├── core_cm7.h ├── core_sc000.h ├── core_sc300.h ├── mpu_armv7.h ├── mpu_armv8.h ├── pmu_armv8.h └── tz_context.h ├── ChRt.c ├── ChRt.cpp ├── ChRt.h ├── arm ├── chcore.h ├── chcore_timer.h ├── chcore_v6m.c ├── chcore_v6m.h ├── chcore_v7m.c ├── chcore_v7m.h ├── chcoreasm_v6m.S ├── chcoreasm_v7m.S ├── chtypes.h └── mpu.h ├── avr ├── chconf_avr.h ├── chcore.c ├── chcore.h ├── chcore_timer.h ├── chtypes.h ├── st_lld_avr.c └── st_lld_avr.h ├── ch.h ├── chconf.h ├── chcore.h ├── chlib.h ├── chlicense.h ├── chtypes.h ├── cmparams.h ├── hal ├── hal.h ├── hal_st.c ├── hal_st.h └── osal.h ├── hal_st.h ├── hal_st_lld.h ├── license ├── chcustomer.h ├── chlicense.h ├── chversion.h ├── license.dox └── license.mk ├── oslib ├── dox │ └── lib.dox ├── include │ ├── chbsem.h │ ├── chdelegates.h │ ├── chfactory.h │ ├── chjobs.h │ ├── chlib.h │ ├── chmboxes.h │ ├── chmemcore.h │ ├── chmemheaps.h │ ├── chmempools.h │ ├── chobjcaches.h │ ├── chobjfifos.h │ └── chpipes.h ├── oslib.mk ├── readme.txt └── src │ ├── chdelegates.c │ ├── chfactory.c │ ├── chmboxes.c │ ├── chmemcore.c │ ├── chmemheaps.c │ ├── chmempools.c │ ├── chobjcaches.c │ └── chpipes.c ├── rt ├── include │ ├── ch.h │ ├── chalign.h │ ├── chchecks.h │ ├── chcond.h │ ├── chdebug.h │ ├── chdynamic.h │ ├── chevents.h │ ├── chlists.h │ ├── chmsg.h │ ├── chmtx.h │ ├── chregistry.h │ ├── chrestrictions.h │ ├── chschd.h │ ├── chsem.h │ ├── chstats.h │ ├── chsys.h │ ├── chsystypes.h │ ├── chthreads.h │ ├── chtime.h │ ├── chtm.h │ ├── chtrace.h │ └── chvt.h ├── src │ ├── chcond.c │ ├── chdebug.c │ ├── chdynamic.c │ ├── chevents.c │ ├── chmsg.c │ ├── chmtx.c │ ├── chregistry.c │ ├── chschd.c │ ├── chsem.c │ ├── chstats.c │ ├── chsys.c │ ├── chthreads.c │ ├── chtm.c │ ├── chtrace.c │ └── chvt.c └── templates │ ├── chconf.h │ └── meta │ ├── module.c │ └── module.h ├── sam3x ├── chconf_sam3x.h ├── cmparams_sam3x.h └── st_lld_sam3x.c ├── samd ├── chconf_samd.h ├── cmparams_samd.h └── st_lld_samd.c ├── teensy3 ├── chconf_teensy3.h ├── cmparams_teensy3.h └── st_lld_teensy3.cpp └── teensy4 ├── chconf_teensy4.h ├── cmparams_teensy4.h ├── st_lld_teensy4.cpp └── st_lld_teensy4.h /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | 4 | # Custom for Visual Studio 5 | *.cs diff=csharp 6 | 7 | # Standard to msysgit 8 | *.doc diff=astextplain 9 | *.DOC diff=astextplain 10 | *.docx diff=astextplain 11 | *.DOCX diff=astextplain 12 | *.dot diff=astextplain 13 | *.DOT diff=astextplain 14 | *.pdf diff=astextplain 15 | *.PDF diff=astextplain 16 | *.rtf diff=astextplain 17 | *.RTF diff=astextplain 18 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Windows image file caches 2 | Thumbs.db 3 | ehthumbs.db 4 | 5 | # Folder config file 6 | Desktop.ini 7 | 8 | # Recycle Bin used on file shares 9 | $RECYCLE.BIN/ 10 | 11 | # Windows Installer files 12 | *.cab 13 | *.msi 14 | *.msm 15 | *.msp 16 | 17 | # Windows shortcuts 18 | *.lnk 19 | 20 | # ========================= 21 | # Operating System Files 22 | # ========================= 23 | 24 | # OSX 25 | # ========================= 26 | 27 | .DS_Store 28 | .AppleDouble 29 | .LSOverride 30 | 31 | # Thumbnails 32 | ._* 33 | 34 | # Files that might appear in the root of a volume 35 | .DocumentRevisions-V100 36 | .fseventsd 37 | .Spotlight-V100 38 | .TemporaryItems 39 | .Trashes 40 | .VolumeIcon.icns 41 | 42 | # Directories potentially created on remote AFP share 43 | .AppleDB 44 | .AppleDesktop 45 | Network Trash Folder 46 | Temporary Items 47 | .apdisk 48 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | #### ChRt - ChibiOS/RT Arduino Library 2 | 3 | This is a version of ChibiOS for Arduino. 4 | I am starting a new repository since this version is not backward 5 | compatible with the previous libraries. Both AVR and ARM are now in 6 | a single library. 7 | 8 | Teensy 4.0 has support for free running tick-less mode and periodic mode. 9 | The default for Teensy 4.0 is tick-less mode. Edit 10 | libraries/ChRt/src/teensy4/chconf_teensy4.h to select periodic mode 11 | or change parameters for Teensy 4. 12 | 13 | See this article about ChibiOS tick-less mode: 14 | 15 | http://www.chibios.org/dokuwiki/doku.php?id=chibios:articles:tickless 16 | 17 | AVR also supports tick-less mode. The default is periodic mode. Edit 18 | libraries/ChRt/src/avr/chconf_avr.h to select tick-less mode. 19 | 20 | 21 | Due, SAMD, and Teensy 3.x are supported in periodic mode. 22 | 23 | The base code for ChRt was written by Giovanni Di Sirio, the author 24 | of ChibiOS/Nil and ChibiOS/RT. 25 | 26 | See this site for detailed documentation of ChibiOS/RT. 27 | 28 | http://www.chibios.org/dokuwiki/doku.php 29 | 30 | The kernel is version 6.1.3 of ChibiOS/RT from ChibiOS release 20.3.3. 31 | 32 | https://osdn.net/projects/chibios/releases 33 | 34 | If you are installing from the GitHub repo zips, rename the folder ChRt 35 | before copying it to your Arduino/libraries folder. 36 | 37 | Please read libraries/ChRt/doc/ChRt.html for more information. See the 38 | Examples section of the html documentation. 39 | 40 | Start with the ChBlink example which is traditional for almost every RTOS. 41 | 42 | -------------------------------------------------------------------------------- /doc/ChRt.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
24 | ChRt
25 |
26 | ChibiOS/RT Arduino
27 | |
28 |
24 | ChRt
25 |
26 | ChibiOS/RT Arduino
27 | |
28 |
24 | ChRt
25 |
26 | ChibiOS/RT Arduino
27 | |
28 |
24 | ChRt
25 |
26 | ChibiOS/RT Arduino
27 | |
28 |
24 | ChRt
25 |
26 | ChibiOS/RT Arduino
27 | |
28 |
24 | ChRt
25 |
26 | ChibiOS/RT Arduino
27 | |
28 |