***************************************************************************** *** Files Organization *** ***************************************************************************** --{root} - ChibiOS directory. +--readme.txt - This file. +--documentation.html - Shortcut to the web documentation page. +--license.txt - GPL license text. +--demos/ - Demo projects, one directory per platform. +--docs/ - Documentation. | +--common/ - Documentation common build resources. | +--hal/ - Builders for HAL. | +--nil/ - Builders for NIL. | +--rt/ - Builders for RT. +--ext/ - External libraries, not part of ChibiOS. +--os/ - ChibiOS components. | +--common/ - Shared OS modules. | | +--abstractions/ - API emulator wrappers. | | | +--cmsis_os/ - CMSIS OS emulation layer for RT. | | | +--nasa_osal/ - NASA Operating System Abstraction Layer. | | +--ext/ - Vendor files used by the OS. | | +--ports/ - RTOS ports usable by both RT and NIL. | | +--startup/ - Startup support. | +--ex/ - EX component. | | +--dox/ - EX documentation resources. | | +--include/ - EX header files. | | +--devices / - EX complex drivers. | +--hal/ - HAL component. | | +--boards/ - HAL board support files. | | +--dox/ - HAL documentation resources. | | +--include/ - HAL high level headers. | | +--lib/ - HAL libraries. | | | +--complex/ - HAL collection of complex drivers. | | | | +--mfs/ - HAL managed flash storage driver. | | | | +--serial_nor/ - HAL managed flash storage driver. | | | +--fallback/ - HAL fall back software drivers. | | | +--peripherals/ - HAL peripherals interfaces. | | | +--streams/ - HAL streams. | | +--osal/ - HAL OSAL implementations. | | | +--lib/ - HAL OSAL common modules. | | +--src/ - HAL high level source. | | +--ports/ - HAL ports. | | +--templates/ - HAL driver template files. | | +--osal/ - HAL OSAL templates. | +--oslib/ - RTOS modules usable by both RT and NIL. | | +--include/ - OSLIB high level headers. | | +--src/ - OSLIB high level source. | | +--templates/ - OSLIB configuration template files. | +--nil/ - NIL RTOS component. | | +--dox/ - NIL documentation resources. | | +--include/ - NIL high level headers. | | +--src/ - NIL high level source. | | +--templates/ - NIL configuration template files. | +--rt/ - RT RTOS component. | | +--dox/ - RT documentation resources. | | +--include/ - RT high level headers. | | +--src/ - RT high level source. | | +--templates/ - RT configuration template files. | +--various/ - Various portable support files. +--test/ - Kernel test suite source code. | +--lib/ - Portable test engine. | +--hal/ - HAL test suites. | | +--testbuild/ - HAL build test and MISRA check. | +--nil/ - NIL test suites. | | +--testbuild/ - NIL build test and MISRA check. | +--rt/ - RT test suites. | | +--testbuild/ - RT build test and MISRA check. | | +--coverage/ - RT code coverage project. +--testex/ - EX integration test demos. +--testhal/ - HAL integration test demos. ***************************************************************************** *** Releases and Change Log *** ***************************************************************************** *** Next *** - NEW: Now RT virtual timers can recalculate the value of CH_CFG_ST_TIMEDELTA at runtime and continue using the recalculated value. This has two consequences: 1) The value is recalculated once 2) it is possible to use the new API chVTGetCurrentDelta() and update the static setting in order to avoid recalculation. - NEW: OSLIB release methods now return the value of the reference counter. - NEW: Support for STM32C0xx. - NEW: Improved DAC driver, updated STM32 DACv1. - NEW: STM32 RTCv2 and RTCv3 modified to not use shadow registers. - NEW: Enhanced STM32F7xx MPU configuration in mcuconf.h. - NEW: I2C slave support in HAL high level driver. - NEW: Added settings for STM32 OCTOSPIv1 and OCTOSPIv2 TCR bits SSHIFT and DHQC. - NEW: Automatic removal of duplicated inclusion paths on make command lines. - NEW: Reworked STM32 SDMMCv1 and SDMMCv2 drivers, better timeout and clock handling, improved speed for aligned buffers. - NEW: Added a "waend" field to the thread structure in RT for debug convenience. - NEW: Added a para-virtualized HAL port for use in sandboxes. - NEW: Added a VIO subsystem to sandboxes supporting drivers para-virtualization, PAL and SIO supported so far. - NEW: Added and RT port for use in virtualized sandboxes. - NEW: Added full virtualization support to sandboxes with a virtual IRQ mechanism. - NEW: Added __CH_OWNEROF() macro to RT. - NEW: Added a Posix-favored shell named "msh" (Mini Shell). The shell is able to run sub-apps inside the same sandbox. The shell can either be placed statically in flash or loaded dynamically in RAM. - NEW: Added runnable "apps" capability to SBs, apps available so far: msh, ls. - NEW: Added ability to load ELF files to SBs. - NEW: Enhanced Posix API for SBs leveraging the VFS integration. - NEW: SBs and VFS integration. Each SB can see its own VFS instance. - NEW: Added integration of LittleFS on top of our flash infrastructure. - NEW: Added a new MEM_IS_VALID_FUNCTION() macro to RT and NIL. - NEW: Changed SB configuration options names to be prefixed with SB_CFG_. - NEW: Added a new CH_CFG_HARDENING_LEVEL option to RT. - NEW: Added a chXXXDispose() function to all objects in NIL. - NEW: Added a chXXXDispose() function to all objects in RT. - NEW: Added VFS-related commands to the shell, disabled by default. - NEW: Added a new VFS subsystem (Virtual File System), it allows to assemble trees of files from multiple "File System Drivers" into a single tree and access it as a whole. - NEW: Added MEM_NATURAL_ALIGN macro to RT and NIL. - NEW: Added static initializer for virtual timers in RT. - NEW: Added new function chHeapIntegrityCheck(). - NEW: Function chCoreGetStatusX() changed to return a memory region object instead of a simple size. - NEW: RT and NIL upgraded to support the enhanced OSLIB. - NEW: Memory areas/pointers checker functions added to OSLIB. - FIX: Fixed ARMv8-M-ML port compile fail when FPU is enabled (bug #1281) (backported to 21.11.4). - FIX: Fixed interrupts not enabled for STM32H735 TIM15, TIM16 and TIM17 (bug #1280)(backported to 21.11.4). - FIX: Fixed wrong STM32 LSI activation check (bug #1279) (backported to 21.11.4). - FIX: Fixed STM32 HAL UART ISR flaw (bug #1278)(backported to 21.11.4). - FIX: Fixed race condition caused by chGuardedPoolAllocI() (bug #1277) (backported to 20.3.5)(backported to 21.11.4). - FIX: Fixed avoid shadowing with build-in pow10 function in chprintf.c (bug #1274)(backported to 20.3.5)(backported to 21.11.4). - FIX: Fixed enabling PWM on TIM1, 3, 4 causes compile errors in RT-STM32G0B1RE-NUCLEO64 (bug #1273)(backported to 21.11.4). - FIX: Wrong assertion in STM32 SPIv3 on SPI6 start. - FIX: Fixed problems related to TIM3, TIM4 and TIM16 on STM32G0. - FIX: Fixed uninitialized return message in EX subsystem (bug #1267) (backported to 21.11.4). - FIX: Fixed unnecessary code in SNOR device drivers (bug #1265) (backported to 20.3.5)(backported to 21.11.4). - FIX: Fixed RP2040 HAL GPIO failed to compile (bug #1264) (backported to 21.11.4). - FIX: Fixed channel 0 corruption on STM32 BDMAv1 (bug #1263) (backported to 20.3.5)(backported to 21.11.4). - FIX: Fixed wrong statistics in RT7 (bug #1262)(backported to 21.11.4). - FIX: Fixed missing cache management during Cortex-M RAM initializations (bug #1261)(backported to 20.3.5)(backported to 21.11.4). - FIX: Fixed RTC & TAMP interrupts not functional (bug #1260) (backported to 21.11.4). - FIX: Fixed syntax errors in STM32H7xx/hal_lld_type2.h (bug #1259) (backported to 21.11.4). - FIX: Fixed unwanted reset of cache on STM32H7xx (bug #1258) (backported to 20.3.5)(backported to 21.11.4). - FIX: Fixed invalid HSIDIV in STM32Ggxx clocks initialization (bug #1257) (backported to 21.11.4). - FIX: Fixed incorrect RTC initialization on STM32G4/L4/L4+ (bug #1256) (backported to 20.3.5)(backported to 21.11.4). - FIX: Fixed syntax error in RP2040 GPIO driver (bug #1255) (backported to 21.11.4). - FIX: Fixed undefined STM32_SDMMC_MAXCLK value for STM32H7 type 1 and 2 (bug #1254)(backported to 21.11.4). - FIX: Fixed invalid checks on PLLP/R/Q dividers on STM32H7 (bug #1253) (backported to 20.3.5)(backported to 21.11.4). - FIX: Fixed remote wakeup failure in STM32 OTGv1 driver (bug #1252) (backported to 20.3.5)(backported to 21.11.4). - FIX: Fixed wrong use of hooks in RT/NIL (bug #1251) (backported to 20.3.5)(backported to 21.11.4). - FIX: Fixed SPI_MMC driver broken in 21.11.3 (bug #1249) (backported to 21.11.3). - FIX: Fixed broken support for STM32 UART9 and USART10 (bug #1248) (backported to 21.11.3). - FIX: Fixed wrong initialization in STM32L1xx ADC driver (bug #1247) (backported to 20.3.5)(backported to 21.11.3). - FIX: Fixed wrong HSI48 support on STM32L0xx (bug #1246) (backported to 20.3.5)(backported to 21.11.3). - FIX: Fixed wrong DMA definitions for STM32L0xx I2C3 peripheral (bug #1245) (backported to 20.3.5)(backported to 21.11.3). - FIX: Fixed wrong path in STM32L053 ADC demo makefile (bug #1244) (backported to 20.3.5)(backported to 21.11.3). - FIX: Fixed missing semicolon in STM32 OTGv1 driver (bug #1243) (backported to 20.3.5)(backported to 21.11.3). - FIX: Fixed HSI48 not enabled for STM32L496/4A6 (bug #1242) (backported to 20.3.5)(backported to 21.11.3). - FIX: Fixed problem in STM32 gpt_lld_polled_delay() implementation (bug #1241) (backported to 20.3.5)(backported to 21.11.3). - FIX: Fixed invalid delay loop in STM32G0/WL ADCv5 driver (bug #1240) (backported to 20.3.5)(backported to 21.11.3). - FIX: Fixed STM32_MCOSEL setting problem (bug #1239). - FIX: Fixed problems with cache in STM32 SDMMC drivers (bug #1238). - FIX: Fixed missing clock enables for some GPIOS on some STM32L4s (bug #1237) (backported to 20.3.5)(backported to 21.11.3). - FIX: Fixed old bugs in serial driver header (bug #1236) (backported to 20.3.5)(backported to 21.11.3). - FIX: Fixed virtual timers lockup uder rare conditions (bug #1235) (backported to 20.3.5)(backported to 21.11.3). - FIX: Fixed STM32 RTCv2 locks for a second (bug #1234) (backported to 20.3.5)(backported to 21.11.3). - FIX: Fixed CAN support broken on STM32F413 (bug #1232). - FIX: Re-opened and fixed bug #1100 (backported to 20.3.5)(backported to 21.11.2). - FIX: Fixed wrong buffers toggling in STM32 USBv1 isochronous mode (bug #1232) (backported to 20.3.5)(backported to 21.11.2). - FIX: Fixed STM32 RTCv2 registers synchronization errata (bug #1231) (backported to 20.3.5)(backported to 21.11.2). - FIX: Fixed STM32 ADCv1 and ADCv5 do not allow prescaler divide value of 1 (bug #1230)(backported to 20.3.5)(backported to 21.11.2). - FIX: Fixed missing check on STM32 SPIv2 DMA settings for SPI1 (bug #1229) (backported to 20.3.5)(backported to 21.11.2). - FIX: Fixed ARMv6-M port Keil compiler fail (bug #1228) (backported to 21.11.2). - FIX: Fixed invalid handling of lwIP NETIF_FLAG_LINK_UP flag (bug #1227) (backported to 20.3.5)(backported to 21.11.2). - FIX: Fixed missing TIM16/17 errata handling for STM32G0xx (bug #1226) (backported to 20.3.5)(backported to 21.11.2). - FIX: Fixed missing ADC errata handling for STM32G0xx (bug #1225) (backported to 20.3.5)(backported to 21.11.2). - FIX: Fixed problem in the HAL I2C fallback driver (bug #1224) (backported to 20.3.5)(backported to 21.11.2). - FIX: Fixed GPIOH clock not enabled on STM32L432 (bug #1223) (backported to 20.3.5)(backported to 21.11.2). - FIX: Fixed invalid cumulative time stat in RT (bug #1222) (backported to 21.11.2). - FIX: Fixed incorrect type cast in TIME_I2US() (bug #1221) (backported to 20.3.5)(backported to 21.11.2). - FIX: Fixed missing clock disable for STM32 OCTOSPI2 (bug #1220) (backported to 20.3.5)(backported to 21.11.2). - FIX: Fixed wrong condition in STM32 sio_lld_read() function (bug #1219) (backported to 20.3.5)(backported to 21.11.2). - FIX: Fixed STM32 Ethernet driver causes system hang after 2^31 packets sent/received (bug #1218)(backported to 20.3.5)(backported to 21.11.2). - FIX: Fixed clock re-initialization problem in STM32 USARTv2 and USARTv3 drivers (bug #1217)(backported to 21.11.2). - FIX: Fixed assertion on initialization of STM32H7xx (bug #1216) (backported to 21.11.2). - FIX: Fixed Virtual Timers failure in a specific condition (bug #1215) (backported to 20.3.5)(backported to 21.11.2). - FIX: Fixed invalid STM32_OTG_STEPPING for STM32F40_41xxx (bug #1214) (backported to 21.11.2). - FIX: Fixed SPIv2 driver compile fails when SPI_USE_SYNCHRONIZATION is FALSE (bug #1213)(backported to 21.11.2). - FIX: Fixed invalid state transition in SNOR flash driver (bug #1212) (backported to 20.3.5)(backported to 21.11.2). - FIX: Fixed missing exit condition in sioSynchronizeRX() and sioSynchronizeTX() (bug #1211)(backported to 21.11.2). - FIX: Fixed missing check in chobjcaches.h (bug #1210) (backported to 20.3.5)(backported to 21.11.2). - FIX: Fixed misspelled chTraceSuspendI() function name (bug #1209) (backported to 21.11.2). - FIX: Fixed RT testbuild application broken (bug #1208) (backported to 20.3.5)(backported to 21.11.2). - FIX: Fixed PWR_CR2_USV not set in STM32L4+ mcuconf.h file (bug #1207) (backported to 21.11.1). - FIX: Fixed USB not enabled on STM32F103x6 (bug #1206) (backported to 20.3.5)(backported to 21.11.1). - FIX: Fixed RT test suite build fails when CH_CFG_USE_TIMESTAMP is FALSE (bug #1205)(backported to 21.11.1). - FIX: Fixed wrong number of CAN filters for STM32L496/9A6 (bug #1204) (backported to 20.3.5)(backported to 21.11.1). - FIX: Fixed DMA stream not disabled in STM32 QUADSPIv1 driver (bug #1203) (backported to 20.3.5)(backported to 21.11.1). - FIX: Fixed I2C4 DMA streams for STM32L496 (bug #1202) (backported to 20.3.5)(backported to 21.11.1). - FIX: Fixed STM32_SDMMC2_NUMBER on STM32H7 (bug #1201) (backported to 20.3.5)(backported to 21.11.1). - FIX: Fixed STM32G0B1 demo application hangs debuggers (bug #1200) (backported to 21.11.1).