aboutsummaryrefslogtreecommitdiffstats
path: root/readme.txt
diff options
context:
space:
mode:
Diffstat (limited to 'readme.txt')
-rw-r--r--readme.txt2661
1 files changed, 0 insertions, 2661 deletions
diff --git a/readme.txt b/readme.txt
deleted file mode 100644
index 89b08a66a..000000000
--- a/readme.txt
+++ /dev/null
@@ -1,2661 +0,0 @@
-*****************************************************************************
-*** Files Organization ***
-*****************************************************************************
-
---{root} - ChibiOS/RT directory.
- +--readme.txt - This file.
- +--documentation.html - Shortcut to the web documentation page.
- +--todo.txt - Current plan (development/unstable versions only).
- +--license.txt - GPL license text.
- +--exception.txt - GPL exception text (stable releases only).
- +--boards/ - Board support files.
- +--demos/ - Demo projects.
- +--docs/ - Documentation.
- | +--html/ - Local HTML documentation (after rebuild).
- | +--reports/ - Test reports.
- | +--src/ - Documentation source files (required for rebuild).
- | +--rsc/ - Documentation resource files (required for rebuild).
- | +--Doxyfile - Doxygen project file (required for rebuild).
- | +--index.html - Local documentation access (after rebuild).
- +--ext/ - External libraries, not part of ChibiOS/RT.
- +--os/ - ChibiOS/RT files.
- | +--hal/ - Hardware Abstraction Layer.
- | | +--include/ - HAL high level headers.
- | | +--src/ - HAL high level source.
- | | +--platforms/ - HAL low level drivers implementations.
- | | | +--AT91SAM7/ - Drivers for AT91SAM7 platform.
- | | | +--AVR/ - Drivers for AVR platform.
- | | | +--LPC11Uxx/ - Drivers for LPC11Uxx platform.
- | | | +--LPC11xx/ - Drivers for LPC11xx platform.
- | | | +--LPC13xx/ - Drivers for LPC13xx platform.
- | | | +--LPC214x/ - Drivers for LPC214x platform.
- | | | +--LPC8xx/ - Drivers for LPC8xx platform.
- | | | +--MSP430/ - Drivers for MSP430 platform.
- | | | +--SPC5xx/ - Drivers for all SPC5xx platform (common).
- | | | +--SPC560BCxx/ - Drivers for SPC560BCxx platform.
- | | | +--SPC560Pxx/ - Drivers for SPC560Pxx platform.
- | | | +--SPC563Mxx/ - Drivers for SPC563Mxx platform.
- | | | +--SPC564Axx/ - Drivers for SPC564Axx platform.
- | | | +--SPC5ELxx/ - Drivers for SPC56ELxx platform.
- | | | +--STM32/ - Drivers for STM32 platform (common).
- | | | +--STM32F0xx/ - Drivers for STM32F0xx platform.
- | | | +--STM32F1xx/ - Drivers for STM32F1xx platform.
- | | | +--STM32F30x/ - Drivers for STM32F30x platform.
- | | | +--STM32F37x/ - Drivers for STM32F37x platform.
- | | | +--STM32F4xx/ - Drivers for STM32F4xx/STM32F2xx platforms.
- | | | +--STM32L1xx/ - Drivers for STM32L1xx platform.
- | | | +--STM8L/ - Drivers for STM8L platform.
- | | | +--STM8S/ - Drivers for STM8S platform.
- | | | +--Posix/ - Drivers for x86 Linux/OSX simulator platform.
- | | | +--Win32/ - Drivers for x86 Win32 simulator platform.
- | | +--templates/ - Driver template files.
- | | +--meta/ - Driver meta templates.
- | +--ports/ - Port files for the various architectures.
- | | +--GCC/ - Ports for the GCC compiler.
- | | | +--ARM/ - Port files for ARM7 and ARM9 architectures.
- | | | +--ARMCMx/ - Port files for ARMCMx architectures (ARMv6/7-M).
- | | | +--PPC/ - Port files for PowerPC architecture.
- | | | +--AVR/ - Port files for AVR architecture.
- | | | +--MSP430/ - Port files for MSP430 architecture.
- | | | +--SIMIA32/ - Port files for SIMIA32 simulator architecture.
- | | +--IAR/ - Ports for the IAR compiler.
- | | | +--ARMCMx/ - Port files for ARMCMx architectures (ARMv6/7-M).
- | | | +--STM8/ - Port files for STM8 architecture.
- | | +--RVCT/ - Ports for the Keil RVCT compiler.
- | | | +--ARMCMx/ - Port files for ARMCMx architectures (ARMv6/7-M).
- | | +--cosmic/ - Ports for the Cosmic compiler.
- | | | +--STM8/ - Port files for STM8 architecture.
- | | +--RC/ - Ports for the Raisonance compiler.
- | | +--STM8/ - Port files for STM8 architecture.
- | +--kernel/ - Kernel portable files.
- | | +--include/ - Kernel headers.
- | | +--src/ - Kernel source.
- | | +--templates/ - Kernel port template files.
- | +--various/ - Various portable support files.
- +--test/ - Kernel test suite source code.
- | +--coverage/ - Code coverage project.
- +--testhal/ - HAL integration test demos.
- | +--LPC11xx/ - LPC11xx HAL demos.
- | +--LPC13xx/ - LPC11xx HAL demos.
- | +--STM32F1xx/ - STM32F1xx HAL demos.
- | +--STM32F4xx/ - STM32F4xx HAL demos (valid for STM32F2xx too).
- | +--STM32L1xx/ - STM32L1xx HAL demos.
- | +--STM8S/ - STM8S HAL demos.
- +--tools - Various tools.
- +--eclipse - Eclipse enhancements.
-
-*****************************************************************************
-*** Releases ***
-*****************************************************************************
-
-*** 2.7.0 ***
-- FIX: Fixed STM32 Serial (v2) driver invalid CR registers size (bug #416)
- (backported to 2.6.0).
-- FIX: Fixed MS2ST() and US2ST() macros error (bug #415)(backported to 2.6.0,
- 2.4.4, 2.2.10, NilRTOS).
-- NEW: SPI driver for SPC560Pxx, SPC563Mxx, SPC564Axx, SPC56ELAxx, SPC560Dxx.
-- NEW: Support for SPC560Dxx devices.
-- NEW: DMA-MUX support for SPC5xx devices.
-
-*** 2.5.2 ***
-- FIX: Fixed lwipthread.h should explicitly include lwip/opts.h (bug #414).
-- FIX: Fixed STM32_PLLI2SCLKOUT miscalculated (bug #413)(backported to 2.4.4).
-- FIX: Fixed wrong RTC vector name in STM32F1/F4/L1 EXT drivers (bug #412).
-- FIX: Fixed fill character error in chprintf (bug #411).
-- FIX: Fixed wrong STM32 USBv1 driver behavior (bug #410).
-- FIX: Fixed STM32 wrong peripherals reset procedure (bug #409)(backported
- to 2.4.4).
-- FIX: Fixed STM32 SPIv2 polled exchange (bug #372).
-- FIX: Fixed wrong macro in PWM driver (bug #407)(backported to 2.4.4).
-- FIX: Fixed USB driver possible deadlock under certain configurations (bug
- #406)(backported to 2.4.4).
-- FIX: Fixed USB driver cannot be stopped (bug #405)(backported to 2.4.4).
-- FIX: Fixed several spelling errors (bug #404).
-- FIX: Fixed serial port in STM32F3 discovery test case (bug #402).
-- FIX: Fixed add %i to chprintf (bug #401).
-- FIX: Fixed STM32F051 various (bug #400).
-- FIX: Fixed STM32F103 HSI configuration (bug #399).
-- FIX: Fixed patch to allow simulator to be restarted quicker (bug #398).
-- FIX: Fixed blkDisconnect macro typo (bug #397).
-- FIX: Fixed STM32 SPI (V2) driver hangs (bug 3608241).
-- FIX: Fixed fixed I2C malfunction after fixing bug 3607518 (bug 3607549)
- (backported to 2.4.4).
-- FIX: Fixed spurious interrupt disabling an STM32 DMA stream (bug 3607518)
- (backported to 2.4.4).
-- FIX: Fixed start of any ADC disables VREF and VBAT (bug 3607467)
- (backported to 2.4.4).
-- FIX: Fixed surprising non-CRLF lines in source (bug 3607380).
-- FIX: Fixed no entry point defined at link time (bug 3607319).
-- FIX: Fixed sdc_lld_collect_errors does not collect errors (bug 3606743).
-- FIX: Fixed STM32 CAN broadcast typo (bug 3606675).
-- FIX: Fixed STM32 CAN mailbox receive for second fifo (bug 3606673).
-- FIX: Fixed CAN_USE_SLEEP_MODE compilation problem (bug 3606616)(backported
- to 2.4.4)(backported to 2.2.10).
-- FIX: Fixed missing HSE bypass option for STM32F103 (bug 3606274).
-- FIX: Fixed misplaced brace in icu_lld.c (bug 3605832)(backported to 2.4.4).
-- FIX: Fixed errors in MMC_SPI driver state machine (bug 3605794).
-- FIX: Fixed deadlock in Serial_USB driver (bug 3605793).
-- FIX: Fixed compile Error OLIMEX_SAM7_EX256/board.c (bug 3605058).
-- FIX: Fixed bug prevents calling adcStartConversionI() within ISR (bug
- 3605053)(backported to 2.4.4).
-- FIX: Fixed typo in platforms/STM32/can_lld.c (bug 3604657)(backported
- to 2.4.4).
-- FIX: Added board files and demo for "WaveShare Open STM32F4 207I-C / 407I-C".
- Added ULPI support to the STM32 USB (OTG-HS) driver.
- Contributed by Dave Camarillo (bug 3603362).
-- FIX: Fixed adcSTM32EnableTSVREFE must be called AFTER adcStart (bug
- 3602950).
-- FIX: Fixed duplicated code in hal_lld.h (STM32F4xx) (bug 3602544)
- (backported to 2.4.4).
-- FIX: Fixed #define typo in usb_lld.h (OTGv1) (bug 3602306).
-- FIX: Fixed STM32F0 RCC enable/disable/reset functions for CRC and WWDG
- (bug 3602150).
-- FIX: Fixed missing parenthesis in use of macro arguments (bug 3601638).
-- FIX: Fixed compile errors in Posix-GCC demo (bug 3601621)(backported
- to 2.4.4).
-- FIX: Fixed state checker error in MSP430 port (bug 3601460)(backported
- to 2.4.4).
-- FIX: Fixed wrong assertion in UART driver (bug 3600789)(backported
- to 2.4.4).
-- FIX: Fixed small bug in shell argument parsing code in shell_thread (bug
- 3599328)(backported to 2.4.4).
-- FIX: Fixed wrong condition in checksum offload of STM32 MAC driver (bug
- 3598720)(backported to 2.4.4).
-- FIX: Fixed error in STM32 MAC driver degrades performance (bug 3598719)
- (backported to 2.4.4).
-- FIX: Fixed warning in STM32 ICU driver using IAR compiler (bug 3598177)
- (backported to 2.4.3).
-- FIX: Fixed wrong SPI path in platform_f105_f107.mk (bug 3598151).
-- FIX: Fixed PHY powerdown issues not fixed (bug 3596911).
-- NEW: Added new pwmIsChannelEnabledI() API to the PWM driver, implemented
- in the STM32 driver.
-- NEW: Added support for timers 6, 7, 9, 11, 12, 14 to the STM32 GPT driver.
-- NEW: Added support for timer 9 to the STM32 PWM and ICU drivers.
-- NEW: Relicensed parts of the distribution tree under the Apache 2.0
- license in order to make specific parts of the code more accessible
- to the open source community and adopters.
-- NEW: Added ADC(EQADC), HAL, ICU, PAL, PWM, Serial drivers for SPC5xx
- platforms, tests to be added on the various sub-families.
-- NEW: Added support for SPC56ELxx, SPC560BCxx, SPC560Pxx, SPC560Mxx and
- SPC564Axx platforms.
-- NEW: Added ADC/SDADC driver for the STM32F37x family.
-- NEW: Added support for the STM32F37x family.
-- NEW: Now the general documentation includes data extracted from the low
- level driver templates. Per-platform/architecture documents are no more
- required and will be replaced with technical articles and examples for
- each specific driver.
-- NEW: Added a build test project for low level device driver templates.
-- NEW: Enhanced CAN driver model, support for mailboxes has been added. STM32
- driver implementation upgraded.
-- NEW: Added ADC and PWM drivers for the AT91SAM7 platform, both donated
- by Andrew Hannam.
-- NEW: Added kernel support for the SAM4L, an Atmel Studio 6 demo for the
- SAM4L-EK board has been added.
-- NEW: Added an abstract file system interface written in C++, no
- implementations yet.
- TODO: Create a descendant interface for hierarchical file systems.
- TODO: Create a FatFS wrapper implementing the interface and using a server
- thread for synchronization.
- TODO: Create an implementation over a read-only file system in code space.
-- NEW: CAN2 support for STM32 added.
-- NEW: Updated STM32L1xx header to the latest version.
-- NEW: Added an option to lwipthread to change the link status poll interval.
-- NEW: Added new C++ demo for the STM32F4-Discovery.
-- NEW: Updated C++ wrapper with a much more logical classes structure.
- TODO: Opdate older C++ demos.
-- NEW: ADC driver implementation for the STM32F3xx, the driver supports also
- the dual-ADC mode allowing for a very high combined bandwidth.
-- NEW: Added zero-copy capability to the STM32 MAC driver (experimental and
- not tested yet).
-- NEW: Added an optional zero-copy mode API to the MAC driver model.
-- NEW: Added EXT driver to the STM32F3xx platform.
-- NEW: Improved the STM32 EXT driver to support more than 32 channels.
-- NEW: Added support for Olimex board STM32-LCD.
-- CHANGE: Removed dependency between crt0.c (GCC-ARMCMx) and the kernel
- header ch.h.
-
-*** 2.5.1 ***
-- FIX: Fixed typo in chOQGetEmptyI() macro (bug 3595910)(backported to 2.2.10
- and 2.4.3).
-- FIX: Fixed possible false detect of loaded prescaler in RTCv1 driver (bug
- 3595489)(backported to 2.4.3).
-- FIX: Fixed unneeded RTC initialization when HAL_USE_RTC disabled
- (bug 3594620)(backported to 2.4.3).
-- FIX: Fixed compilation issue with HAL_USE_RTC disabled (bug 3594083)
- (backported to 2.4.3).
-- FIX: Fixed wasting of BKP registers in RTCv1 driver (bug 3594005)(backported
- to 2.4.3).
-- FIX: Fixed potential problem with RTC_CRL_RSF bit (bug 3593972)(backported
- to 2.4.3).
-- FIX: Fixed STM32F1x rtc_lld_init not functional (bug 3592817)(backported
- to 2.4.3).
-- FIX: Fixed DMA reconfiguration problem in STM32 SPI driver (bug 3592809)
- (backported to 2.4.3).
-- FIX: Fixed STM32 UART driver redundant initialization (bug 3592764)
- (backported to 2.4.3).
-- FIX: Fixed wrong stack initializations in GCC STM32L1xx port files (bug
- 3591321)(backported to 2.4.3).
-- FIX: Fixed different redefinition for __main_stack_end__ symbol (bug
- 3591317)(backported to 2.4.3).
-- FIX: Fixed errors in STM32F0xx UART driver (bug 3589412)(backported
- to 2.4.3).
-- FIX: Fixed MSP430 port_switch code for MSPGCC issue (bug 3587633)(backported
- to 2.4.3).
-- FIX: Fixed workaround for errata in STM32F4-A devices (bug 3586425)
- (backported to 2.4.3).
-- FIX: Fixed error in palWritePad() macro (bug 3586230)(backported to 2.2.10
- and 2.4.3).
-- FIX: Fixed missing ; in testmbox.c (bug 3585979)(backported to 2.4.3).
-- FIX: Fixed STM32F4xx: Wrong CAN1 SCE interrupt number definition (bug
- 3581571).
-- FIX: Fixed STM32_P407: implement mmc_lld_is_card_inserted (bug 3581929)
- (backported to 2.4.3).
-- FIX: Fixed double chSysInit() call in MSP430F1611 demo (bug 3581304)
- (backported to 2.2.10 and 2.4.3).
-- FIX: Fixed patch for various demos (bug 3579734).
-- FIX: Fixed bug in abstract file interface (bug 3579660)(backported to
- 2.2.10 and 2.4.3).
-- FIX: Fixed wrong type for UART config registers (bug 3579434).
-- FIX: Fixed various typos and wrong limits in the STM32F4/F2 HAL driver
- (bug 3578944)(backported to 2.4.3).
-- FIX: Fixed ARM CMx crt0.c fails at low optimization levels (bug 3578927)
- (backported to 2.4.3).
-- FIX: Fixed compilation issue in chregistry.c (bug 3576776).
-- FIX: Fixed compilation issue in syscalls.c (bug 3576771)(backported
- to 2.4.3).
-- FIX: Fixed Typos in STM32F0xx EXT driver (bug 3576193).
-- FIX: Fixed STM32F10X_CL: Wrong CAN1 interrupt number definitions (bug
- 3575766).
-- FIX: Fixed superfluous pack #defines cause nasty warning (bug 3575662)
- (backported to 2.4.3).
-- FIX: Fixed mac.c won't compile due to misplaced declarations (bug 3575657)
- (backported to 2.4.3).
-- FIX: Fixed STM32F4 ADC prescaler incorrectly initialized (bug 3575297)
- (backported to 2.4.3).
-- FIX: Fixed RCC_APB2ENR_IOPEEN undeclared on STM32F10X_LD_VL devices (bug
- 3575098)(backported to 2.4.3).
-- FIX: Fixed misplaced declarations in lwip_bindings sys_arch.c (bug 3571053)
- (backported to 2.4.3).
-- FIX: Fixed double definition of sd1fel and sd2fel breaks Posix simulator
- (bug 3570532).
-- FIX: Fixed Ethernet PHY power down scheme prevents using LAN8720A (bug
- 3570335).
-- FIX: Fixed FatFS won't compile with _FS_REENTRANT enabled (bug 3570135)
- (backported to 2.4.3).
-- FIX: Fixed mmc_spi.c won't compile due to misplaced declaration (bug
- 3570035)(backported to 2.4.3).
-- FIX: Fixed problem in STM32F1xx USB driver after revision 4598 (bug 3569374).
-- FIX: Fixed GPIO glitch during PAL initialization (bug 3569347)(backported
- to 2.4.3).
-- FIX: Fixed FatFS timestamp incorrect (bug 3568626).
-- FIX: Fixed Data available event not generated in serial_usb driver (bug
- 3567992).
-- FIX: Fixed STM32F1x rtc_lld_init glitches rtc on hard reset (bug 3567597)
- (backported to 2.4.3).
-- FIX: Fixed STM8L, cosmic compiler: c_lreg not saved (bug 3566342)(backported
- to 2.2.10 and 2.4.3).
-- NEW: Initial support for STM32F30x (HAL, PAL, CAN, GPT, ICU, PWM, Serial,
- SPI, UART, USB).
-- NEW: AT91SAM7A3 I2C support.
-- NEW: AT91SAM7A3 basic support.
-- NEW: Unified the STM32F4xx and STM32F2xx platform code. The STM32F2xx now is
- only supported as an STM32F4xx variant and not tested separately.
-- NEW: Updated STM32F1, F2, F4, L1 ADC drivers to allow HW triggering.
-- NEW: Added a new option STM32_ETH1_CHANGE_PHY_STATE to the STM32 MAC driver,
- this change is connected to bug 3570335.
-- NEW: Modified the CAN drivers to use the new event flags mechanism, the
- previous flags handling has been removed.
-- NEW: Modified serial and serial_usb drivers to use the new event flags
- mechanism, the previous flags handling in BaseAsynchronousChannel has
- been removed.
-- NEW: Improved the kernel events subsystem, now event sources can associate
- source-specific flags to the listener, the flags can then be retrieved
- using the new APIs chEvtGetAndClearFlags() and chEvtGetAndClearFlagsI().
- Some old APIs have been renamed to increase consistency of the module.
-- NEW: Added VLE support to the Power Architecture GCC port.
-- NEW: Reorganized the Power Architecture GCC port along the lines of the
- ARMCMx port, now it can support multiple core types.
-- NEW: Updated the Power Architecture rules.mk file to put object and listing
- files into a ./build directory like ARM ports already do.
-- CHANGE: The STM32 Serial driver has been split in two distinct versions,
- one for older devices up the STM32F4xx, the other for new devices starting
- from the STM32F0xx.
- (TODO: Update IAR and Keil projects because different paths, update
- documentation projects).
-
-*** 2.5.0 ***
-- FIX: Fixed anomaly in USB enumeration (bug 3565325)(backported to 2.4.3).
-- FIX: Fixed problem with lwIP statistics (bug 3564134)(backported to 2.4.3).
-- FIX: Fixed packed structures macros not functional in IAR and RVCT port
- (bug 3561279)(backported to 2.4.3 and 2.2.10).
-- FIX: Fixed Problem in FatFs demos related to LFN (bug 3560980)(backported
- to 2.4.3 and 2.2.10).
-- FIX: Fixed problem in STM32 DMA1 stream1 IRQ handler (bug 3538468)
- (backported to 2.4.2).
-- FIX: Fixed TIM8 not working in STM32 GPT driver (bug 3536523)(
-- FIX: Fixed wrong priority assigned to TIM8 in STM32 ICU driver (bug 3536950)
- (backported to 2.4.2).
-- FIX: Fixed TIM8 not working in STM32 GPT driver (bug 3536523)(backported
- to 2.4.2).
-- FIX: Fixed timer overflow not working in STM32 ICU driver for TIM1/TIM8 (bug
- 3536522)(backported to 2.4.2).
-- FIX: Fixed wrong DMA channels on USART2 in STM32F10X_MD_VL devices (bug
- 3536070)(backported to 2.4.2).
-- FIX: Fixed issue with DMA channel init in STM32 ADC and SPI drivers (bug
- 3535938)(backported to 2.2.10 and 2.4.2).
-- FIX: Fixed issue debugging mmc_spi (bug 3535887)(trunk only).
-- FIX: Fixed unreliable PHY initialization (bug 3534819)(backported to 2.4.2).
-- FIX: Fixed wrong ADC callback buffer pointer in ADC driver (bug 3534767)
- (backported to 2.2.10 and 2.4.2).
-- FIX: Fixed STM32F2 RTC subseconds (bug 3533414)(trunk only).
-- FIX: Fixed problem with arm-v6m and state checker (bug 3532591)(backported
- to 2.4.2).
-- FIX: Fixed wrong MAC divider setting in STM32 MAC driver (bug 3531290)
- (backported to 2.4.2).
-- FIX: Fixed wrong MCO1 divider in STM32F2/F4 HAL (bug 3531289)(backported
- to 2.4.2).
-- FIX: Fixed missing "break" in AVR PAL driver (bug 3530924)(backported
- to 2.4.2).
-- FIX: Fixed timeout related race condition in STM32 I2C driver (bug 3530043)
- (backported to 2.4.2).
-- FIX: Fixed wrong macro check in STM32 MAC driver (bug 3527179)(backported
- to 2.4.2).
-- FIX: Fixed error in STM32L-Discovery board.h file (bug 3526918)(backported
- to 2.4.2).
-- FIX: Fixed inconsistent LPCxxx Internal RC oscillator names (bug 3524138)
- (backported to 2.2.10 and 2.4.1).
-- FIX: Fixed wrong frequency limit checks vs VDD in STM32F2xx HAL (bug 3524094)
- (backported to 2.4.1).
-- FIX: Fixed STM32 I2C1 wrong alternate TX DMA setting (bug 3524088)
- (backported to 2.4.1).
-- FIX: Fixed system state check problem related to FatFS (bug 3523769).
-- FIX: Fixed three testhal builds fail (bug 3523322)(backported to 2.4.1).
-- FIX: Fixed MAC driver functions with invalid name (bug 3522808)(backported
- to 2.2.10 and 2.4.1).
-- FIX: Fixed code coverage crashes with Linux/gcc-4.4.5 (bug 3522301)
- (backported to 2.4.1).
-- FIX: Fixed macro dmaWaitCompletion() fails to compile in STM32 HAL (bug
- 3519202)(backported to 2.4.1).
-- FIX: Fixed ARM addresses generated in vectors table (bug 3519037)(backported
- to 2.2.10 and 2.4.1).
-- FIX: Fixed missing serial driver functionality for SAM7S64, SAM7S128 and
- SAM7S512 (bug 3517648)(backported to 2.2.10 and 2.4.1).
-- FIX: Fixed a few more spelling fixes (bug 3515531)(backported to 2.4.1).
-- FIX: Fixed spurious ) char in STM32 serial_lld.h (bug 3514138)(backported
- to 2.2.10 and 2.4.1).
-- FIX: Fixed problem with FPU initialization in GCC Cortex-M4 port (bug
- 3513897)(backported to 2.4.1).
-- FIX: Spelling fixes (bug 3510812)(backported to 2.4.1).
-- FIX: Fixed STM32 ICUD8 not functional because wrong initialization (bug
- 3508758)(backported to 2.4.1).
-- FIX: Fixed chMBFetchI does not decrement mb_fullsem (bug 3504450)(backported
- to 2.2.9 and 2.4.1).
-- FIX: Fixed STM32 PLLI2S initialization error (bug 3503490)(backported
- to 2.4.1).
-- FIX: Fixed USART3 not working on STM32F2/F4 UART driver (bug 3496981)
- (backported to 2.4.1).
-- FIX: Fixed stack misalignment on Posix-MacOSX (bug 3495487)(backported
- to 2.4.1).
-- FIX: Fixed STM8S HSI clock initialization error (bug 3489727)(backported to
- 2.2.9 and 2.4.1).
-- FIX: Fixed MMC over SPI driver performs an unnecessary SPI read (bug
- 3486930)(backported to 2.2.9 and 2.4.1).
-- FIX: Fixed Realtime counter initialization in STM32 HALs (bug 3485500)
- (backported to 2.4.1).
-- FIX: Fixed PPC port broken when CH_DBG_SYSTEM_STATE_CHECK is activated
- (bug 3485667)(backported to 2.4.1).
-- FIX: Fixed missing PLL3 check in STM32F107 HAL (bug 3485278)(backported
- to 2.4.1).
-- FIX: Fixed ADC maximum frequency limit in STM32F2/F4 ADC drivers (bug
- 3484947)(backported to 2.4.1).
-- FIX: Fixed various minor documentation errors (bug 3484942)(backported
- to 2.4.1).
-- NEW: Added Eclipse project files to most demos. The project are setup to
- have paths relative to a variable named CHIBIOS that must point to the
- ChibiOS/RT installation path. The variable must be defined under
- Window->Preferences->General->Workspace->Linked_Resources and must contain
- a path without the trailing slash character.
-- NEW: Added memory signature record to the registry in order to simplify
- the implementation of ad-hoc debuggers.
-- NEW: Small andjustment in chcore.h files under ./os/ports/GCC required by a
- difference in GCC 4.7.x.
-- NEW: Added another STM32F4-Discovery demo using the on-board MEMS, SPI
- and PWM. Removed MEMS handling from the old demo because code size limits
- on non-free compilers.
-- NEW: Added configuration wizard plugin under ./tools/eclipse/plugins. This
- first version is able to configure the board files for STM32F0xx, STM32F4xx
- and STM32L1xx.
-- NEW: Added USART6 support to the STM32 UARTv1 driver, contributed by Erik
- van der Zalm.
-- NEW: Added demo for Arduino Mega, contributed by Fabio Utzig.
-- NEW: Added support for ATmega1280, contributed by Fabio Utzig.
-- NEW: Added I2C driver for AVR, contributed by Fabio Utzig.
-- NEW: Added FatFs demo for the Olimex STM32-P107 board.
-- NEW: Added support for the Olimex STM32-E407 board. Added an integrated
- demo including USB-CDC, lwIP with web server, FatFs and shell, all running
- together.
-- NEW: Added an experimental and unsupported STM8 port for the IAR compiler,
- contributed by "king2".
-- NEW: Updated STM8 header files to latest versions from ST.
-- NEW: Reorganized the STM32 EXT driver to have a sub-platform specific
- part containing all the ISR related code, this has been necessary because
- the significant differences among the various sub-families.
-- NEW: Validated CAN driver on STM32F2/F4 (backported to 2.4.2).
-- NEW: USB implementation for STM32F105/F107/2xx/F4xx devices.
-- NEW: Improved SerialUSB driver using the new queued mode, much smaller
- than the previous driver.
-- NEW: Improved USB driver model supporting also queues for endpoint I/O,
- packet mode removed.
-- NEW: Added an application-defined field to I/O queues (a void pointer).
-- NEW: Added board files for Maple Mini STM32F103, contributed by Wagner
- Sartori Junior.
-- NEW: Added SSP1 capability to the LPC13xx SPI driver.
-- NEW: Updated vendor headers for LPC11xx and LPC13xx, the new headers
- support several new devices.
-- NEW: Demo for STM32F0-Discovery board.
-- NEW: Initial support for STM32F0xx devices, added a specific ADC driver.
- Validated EXT, GPT, ICU, PAL, PWM, Serial, SPI, UART drivers.
-- NEW: Added a common ancestor class to the SDC and MMC_SPI drivers. This
- allows to share code and definitions.
-- NEW: Modified the SDC driver to implement the new block devices abstract
- interface.
-- NEW: Added two new functions to the MMC_SPI driver: mmcSync() and
- mmcGetInfo(). Also implemented the new block devices abstract
- interface. Moved the configuration parameters from mmcObjectInit() to
- the configuration structure saving some RAM space. Updated demos.
-- NEW: Added an abstract interface for block devices in the HAL. This
- abstraction layer is meant to unify the access protocol to the SDC and
- MMC_SPI (and potentially others) device drivers.
-- NEW: Added an abstract interface for serial devices in the HAL. This
- interface is meant to replace the equivalent class already present in the
- kernel. access macros are similar except for the prefix, "chn" instead
- of "chIO".
-- NEW: Updated the MSP port to work with the latest MSPGCC compiler (4.6.3
- LTS 20120406 unpatched), now the old MSPGCC 3.2.3 is no more supported
- (backported to 2.4.1).
-- NEW: EXT driver improved, now it is possible to reprogram channels at
- runtime without necessarily specifying a new configuration.
- TODO: Update AT91SAM7 EXT driver.
-- NEW: Integrated FatFS 0.9, now the FatFS integration files are centralized
- under ./os/various/fatfs_bindings and shared among all demos. The FatFS
- file ffconf.h is now application-specific like all the other configuration
- files.
-- NEW: Added an new option CORTEX_PRIGROUP_INIT to the Cortex-Mx ports in
- order to make priority organization configurable, the default is to
- assign all the available priority bits to preemption priority with no
- sub-priorities.
-- NEW: Added a new function chPoolLoadArray() to the Memory Pools subsystem,
- it allows to load an entire array element's into a pool with a single
- operation.
-- NEW: Addes support for .S patch in the GCC ARM ports, by Ayman El-Khashab.
-- NEW: Added a switch to the STM32F4 Makefile files in order to enable or
- disable the FPU support in a single place.
-- NEW: Added float support (optional) to chprintf(), by Fabio Utzig.
-- NEW: Added overflow handling in the ICU driver (contributed by Xo).
-- NEW: Updated debug plugin 1.0.8 (backported to 2.4.0).
-- NEW: Added more accurate UBRR calculation in AVR serial driver (backported
- to 2.4.0).
-- NEW: Revision of the round-robin scheduling, now threads do not lose their
- time slice when preempted. Each thread has its own time slices counter.
- TODO: Seek optimizations.
-- NEW: Modified the Virtual Timers management, now the callback is invoked
- not in lock mode. This change reduces the interrupt jitter caused by
- multiple timers used at same time.
-- NEW: Added board files and demo for Olimex LPC-P1343 (contributed by
- Johnny Halfmoon).
-- NEW: Added handling of input 2 to the STM32 ICU driver (contributed by
- Fabio).
-- NEW: STM32 Ethernet driver completed. Added STM32F107 and STM32F407
- lwIP demos (backported to 2.4.1).
-- NEW: lwIP related code is not centralized into a single place, no need to
- duplicate the code in each application or demo (backported to 2.4.1).
-- CHANGE: Added two new methods to the BaseSequentialStream interface:
- chSequentialStreamPut() and chSequentialStreamGet().
-- CHANGE: Removed the chioch.h header from the kernel, now channels interface
- is exported by the HAL. Removed functions chPutWouldBlock() and
- chGetWouldBlock().
-- CHANGE: Removed macro chMsgGetS(), chMsgGet() is still available.
-- CHANGE: chprintf() now takes a BaseSequentialStream as parameter instead
- of a BaseChannel making it more generic.
-- CHANGE: Now the shell requires a BaseSequentialStream instead of a
- BaseChannel for communications making it more generic.
-- CHANGE: Kernel memory pools now do not check the alignment of the inserted
- objects, it is responsibility of the application to insert properly
- aligned objects.
-- CHANGE: The PORT_INT_REQUIRED_STACK parameter for the Cortex-Mx ports has
- been increased to 32 from 16 because the stack frame sizes are increased
- when compiling with optimizations disabled, which is common during
- debugging. In order to save RAM trim back this value when compiling with
- optimizations enabled (backported to 2.4.1).
-- CHANGE: Renamed Ethernet driver in AT91 HAL ETHD1 (backported to 2.4.1).
-- CHANGE: Macros icuGetWidthI() and icuGetPeriodI() renamed to icuGetWidth()
- and icuGetPeriod().
-- Various documentation fixes and improvements.
-
-*** 2.3.5 ***
-- FIX: Fixed RTC compile problem on STM32F103 (bug 3468445).
-- FIX: Fixed PWM with TIM1 and TIM8 broken in STM32 HAL (bug 3458947).
-- FIX: Fixed SYSCFG clock not started in STM32L1/F4 HALs (bug 3449139).
-- FIX: Fixed wrong definitions in STM32L-Discovery board file (bug 3449076).
-- OPT: Improved the exception exit code in the GCC Cortex-Mx ports.
-- NEW: Added a DMA stress test application for the STM32F4 in order to assess
- robustness of the whole HAL.
-- NEW: Added a Time Measurement driver to the HAL, this generic driver uses
- the realtime counters abstracted in the HAL driver.
-- NEW: Improved the STM32F1xx HAL driver, it now has the same features and
- configuration options of the newer STM32s.
-- NEW: MMC over SPI driver improved to handle high capacity cards, by
- Matthias Blaicher.
-- NEW: Added PVD support to the HAL of all STM32s, by Barthess.
-- NEW: Added to the HAL driver the handling of an abstract realtime free
- running counter, added the capability to all the STM32 HALs.
-- NEW: Modified ARM and ARMCMx build rules to allow parallel build. Now the
- log outputs one dummy compilation command in order to allow paths discovery
- by Eclipse.
-- NEW: Added an utility module to access LIS302DL MEMS using a SPI.
-- NEW: Updated STM32F2xx support by inheriting the work done on the STM32F4xx,
- the whole thing is untested because lack of hardware.
-- NEW: Files nvic.c and nvic.h moved under ./os/ports/common/ARMCMx, removed
- the duplicated instances under the GCC, IAR and Keil ports. Function names
- prefixes changed from "NVIC" to "nvic" because style conventions.
-- NEW: Added voltage regulator initialization to the STM32F4xx HAL.
-- NEW: Added a linker script that demonstrates how to put stacks and other
- critical structures in the CCM RAM instead normal RAM.
-- NEW: Added experimental support for the Cortex-M4 FPU (default when the
- FPU is present but can be disabled).
-- NEW: Improved I2C driver model and STM32 implementation by Barthess.
-- CHANGE: Removed the option to change the stack alignment in the GCC
- Cortex-Mx ports, now alignment is always 64 bits.
-- CHANGE: Modified the function palSetGroupMode() to have an offset parameter
- in order to make it similar to other functions operating on groups.
-- CHANGE: Increased main and process default stack sizes from 0x100 to 0x200
- in LPC1114 and LPC1343 linker scripts.
-
-*** 2.3.4 ***
-- FIX: Fixed Extra initialization in STM32 SPI driver (bug 3436127)
- (backported to 2.2.8).
-- FIX: Fixed DMA priority setting error in STM32 UART driver (bug 3436125)
- (backported to 2.2.8).
-- FIX: Fixed DMA priority setting error in STM32 SPI driver (bug 3436124)
- (backported to 2.2.8).
-- FIX: Fixed broken support for UART5 in STM32 serial driver (bug 3434094)
- (backported to 2.2.8).
-- FIX: Fixed broken TIM8 support in STM32 PWM driver (bug 3418620).
-- FIX: Fixed halconf.h file corrupted in some STM32 demos (bug 3418626).
-- NEW: Added an unified registers file for STM32: stm32.h. This file includes
- the appropriate vendor file then adds its own additional definitions.
-- NEW: Added demo for the ST STM32F4-Discovery kit.
-- NEW: STM32F4xx ADC driver implementation.
-- NEW: Added initialization of the NVIC VTOR register to all Cortex-Mx (v7M)
- ports. Also added a port option CORTEX_VTOR_INIT to enforce a different
- default value into the register.
-- NEW: Removed the warning about the "untested M4 platform", now it is
- tested and officially supported.
-- NEW: Reorganized the STM32F1xx hal_lld_xxx.h files in order to distribute
- the capability macros into the appropriate file (previously those were all
- in the common hal_lld.h).
-- NEW: Added HAL, Serial, ADC, EXT, GPT, ICU, PWM, SPI and UART support for
- the STM32F4xx sub-family.
- TODO: Add CAN and SDC, the drivers need to be ported and tested.
-- NEW: Added handling of USART6 to the STM32 serial driver.
-- NEW: Added USE_COPT setting to all makefiles, contributed by Mabl.
-- NEW: Added EXT driver implementation for AT91SAM7x, contributed by Florian.
- TODO: Test application missing.
-- NEW: Updated USB driver model and STM32 implementation and fixed several
- problems.
- - Changed the API to move buffer copy operations out of critical zones.
- - Added usbConnectBus() and usbDisconnectBus() functions.
- - Fixed problems with incorrect assertions.
-- NEW Updated the SERIAL_USB driver to match the new USB API, also fixed
- some problems.
- - Fixed incorrect use of input queues, the change required a change in
- input queues too.
-- NEW: Added a macro THD_STATE_NAMES to chthreads.h. This macro is an
- initializer for string arrays containing thread state names.
-- NEW: Added memory copy functionality to the STM32 DMA driver.
-- NEW: Implemented new makefile system for ARM GCC ports, now objects,
- listings and output files are generated into a "build" directory and not
- together with sources, also implemented a simplified output log mode.
- Now makefiles and load script files are requirements and trigger a
- rebuild if touched.
-- NEW: Updated AVR demos to use the new PAL driver.
-- NEW: Added Keil build files to the STM32L-Discovery demo.
-- CHANGE: Now the callback associated to input queues is invoked before
- reading each character. Previously it was invoked only before going
- to sleep into the THD_STATE_WTQUEUE state.
-- CHANGE: Moved the STM32 DMA helper drivers files under the sub-family
- specific directories because documentation issues.
-
-*** 2.3.3 ***
-- FIX: Fixed missing UART5 definition in STM32 HAL (bug 3411774)(backported
- to 2.2.8).
-- FIX: Fixed uninitialized variable in STM32 PWM and ICU drivers (bug 3413558).
-- FIX: Fixed wrong parameter passed to the DMA error hook in STM32 ADC driver,
- the DMA error hook has been removed entirely in the new ADC driver model
- (bug 3413214).
-- FIX: The function chThdExit() triggers an error on shell return when the
- system state checker is enabled (bug 3411207)(backported to 2.2.8).
-- FIX: Some ARMCMx makefiles refer the file rules.mk in the ARM7 port (bug
- 3411180)(backported to 2.2.8).
-- FIX: Fixed wrong check on CH_DBG_ENABLE_STACK_CHECK setting (bug 3387671)
- (backported to 2.2.7).
-- FIX: Fixed wrong APB1 frequency check (bug 3361039)(backported to 2.2.7).
-- FIX: Fixed missing state in shell demos (bug 3351556)(backported to 2.2.7).
-- FIX: Fixed race condition in Cortex-Mx ports (bug 3317500)(backported
- to 2.2.6).
-- FIX: Fixed wrong macro check in STM32 UART driver (bug 3311999)(backported
- to 2.2.6).
-- FIX: Fixed wrong macro definition in ARMv6-M architecture files (bug
- 3310084).
-- FIX: Fixed race condition in output queues (bug 3303908)(backported
- to 2.2.4).
-- FIX: Fixed CH_USE_HEAP and CH_USE_MALLOC_HEAP conflict (bug 3303841)
- (backported to 2.2.4).
-- FIX: Fixed timeout problem in the lwIP interface layer (bug 3302420)
- (backported to 2.2.4).
-- NEW: Added AVR implementation of the PAL driver contributed by Leszek.
-- NEW: STM32L ADC driver implementation.
-- NEW: Improved ADC driver model, now it is possible to handle error
- conditions during the conversion process.
-- NEW: STM32L1xx sub-family support, all STM32 drivers adapted and re-tested
- on the new platform except ADC that will need a specific implementation.
-- NEW: Added new API chThdExitS() in order to allow atomic operations on
- thread exit (backported to 2.2.8).
-- NEW: New EXT driver model and STM32 implementation.
-- NEW: New I2C driver model and STM32 implementation.
- (evaluate the option to change the API to a synchronous model)
-- NEW: New RTC driver model and STM32 implementation.
- (API and functionality review)
-- NEW: Improved MAC driver model, it now follows the same template of other
- drivers.
- TODO: implement macStop() in AT91SAM7X implementation.
-- NEW: New RCC helper driver for STM32F1xx and STM32L1xx, it simplifies
- the use of the RCC resources and hides most differences found among the
- various STM32 sub-families.
-- NEW: New DMA helper driver for STM32, it simplifies the use of the DMA
- resources and hides most differences with the new enhanced DMA units
- found in the STM32F2xx sub-family.
-- NEW: Now an error is generated at compile time when trying to enable the
- options CH_DBG_ENABLE_STACK_CHECK on ports that do not support it.
-- NEW: Added a kernel-only Cortex-Mx demo as reference project for users not
- interested in the HAL but just want to use the ChibiOS/RT kernel.
- The demo is named ARMCM3-GENERIC-KERNEL and is defaulted to the STM32, in
- order to use it on other families or on the ARM Cortex-M0 just change the
- inclusion paths in the makefile.
-- NEW: Integrated new FatFs version 0.8b.
-- NEW: Added a new hook THREAD_CONTEXT_SWITCH_HOOK() that allows to insert
- code just before a context switch. For example this hook could be used
- in oder to implement advanced power management schemes.
-- NEW: Added a new debug option CH_DBG_SYSTEM_STATE_CHECK that ensures the
- correct API call protocol. If an API is invoked out of the correct context
- then the kernel panics with a debug message.
-- NEW: The ARMCMx startup file (crt0.c) now is able to fill the stack areas
- with a filler (default behavior). This is required in order to easily assess
- the stack usage at runtime.
-- NEW: Added the new CMSIS 2.1 headers, now CMSIS resides into a shared
- location: ./os/ports/common/ARMCMx/CMSIS. Old CMSIS files have been
- removed from the various platforms.
-- NEW: Removed all the ch.ld files from the ARMCMx demos, now the makefiles
- point to common ld files under the various ports. Less duplication and
- easier maintenance.
-- NEW: Improved stack checking and reorganized memory map for the Cortex-Mx
- demos. Now stacks are allocated at the start of the RAM, an overflow of the
- exception stack now triggers an exception (it could go unnoticed before).
- The process stack is organized to be checked on context switch like other
- threads. Now all threads have an explicit stack boundary pointer.
-- NEW: Added debug plugin for Eclipse under ./tools/eclipse (backported to
- 2.2.7).
-- NEW: The debug macros chDbgCheck() and chDbgAssert() now can be externally
- redefined. The macro chDbgCheck() no more includes the line number in the
- description because incompatibility with the Cosmic compiler (backported to
- 2.2.7).
-- NEW: Added provisional support for STM32F2xx. Because of this some
- directories related to the STM32 have been renamed, your makefiles may
- require adjustments.
-- NEW: Added a custom rule to the various rules.mk files, now it is possible
- to add an user rule into the Makefiles.
-- NEW: Improvements to the trace buffer, now it stores a full thread pointer
- and event time, changed names to debug variables by adding the "dbg_"
- prefix (backported to 2.2.7).
-- NEW: Added a new functionality to the registry subsystem, now it is possible
- to associate a name to the threads using chRegSetThreadName. The main and
- idle threads have their name assigned by default (backported to 2.2.7).
-- NEW: Added TIM8 support to the STM32 GPT, ICU and PWM drivers.
-- NEW: Updated the STM32 header file to the latest version 3.5.0 and fixed
- it in order to correct several bugs related to the XL family.
-- NEW: Added a chprintf() function to ./os/various, it can print on any
- BaseChannel.
-- NEW: Improved the mini shell, enhanced info command, optimizations and
- removed the shellPrint() and shellPrintLine() functions, now it uses
- chprintf() for output.
-- NEW: lwIP 1.4.0 has been integrated, this new version does not require
- custom hooks into the Thread structure and is thus much lighter.
-- NEW: FatFs demo for the STM32F103ZG using the SDC driver.
-- NEW: Now the STM32 SDC driver supports unaligned buffers transparently.
- Optimized the driver for single block read and write operations. Optimized
- the driver state machine.
-- NEW: Finished the reorganization of the Cortex-Mx ports, now also the
- IAR and RVCT ports support the new Compact mode.
-- NEW: Added to the ARMv6-M sub-port an option to use the PendSV exception
- instead of NMI for preemption (backported to 2.2.5).
-- NEW: Reorganization of the Cortex-Mx ports in order to reduced code and
- comments duplication in the various headers (backported to 2.2.5).
-- NEW: Improved the ARMv7-M sub-port now there are two modes: Compact and
- Advanced.
- The advanced mode is equivalent to the previous versions, the compact mode
- is new and makes the kernel *much* smaller and generally faster but does
- not support fast interrupts (backported to 2.2.5).
-- NEW: Now the port layer exports info regarding the compiler and the port
- options. The info are printed into the test reports. Date and time also
- added.
-- CHANGE: Removed the option CH_USE_NESTED_LOCK, lwIP no more requires it and
- it would have conflicted with CH_DBG_SYSTEM_STATE_CHECK which is far more
- useful.
-- CHANGE: Renamed the scheduler functions chSchIsRescRequiredExI() to
- chSchIsPreemptionRequired(), chSchDoRescheduleI() to chSchDoReschedule(),
- chSysSwitchI() to chSysSwitch(). All those functions were special cases
- and not regular I-class APIs.
-- CHANGE: Renamed the macros IDLE_THREAD_STACK_SIZE and INT_REQUIRED_STACK
- to PORT_IDLE_THREAD_STACK_SIZE and PORT_INT_REQUIRED_STACK for consistency.
-- CHANGE: Removed the "old" Cortex-M3 port from the code, the current port
- has no drawbacks and the old port is now just a maintenance cost.
-- CHANGE: Removed the CH_CURRP_REGISTER_CACHE option, it is GCC-specific so
- it does not belong to the kernel options. The feature will be eventually
- reimplemented as a port-specific option.
-- CHANGE: chiQGetFullI() and chOQGetFullI() become macros. The queues
- subsystem has been optimized and is no more dependent on semaphores.
- Note that the queues callbacks invocation policy has been slightly
- changed, see the documentation (backported to 2.2.4).
-
-*** 2.3.2 ***
-- FIX: Fixed invalid BRR() macro in AVR serial driver (bug 3299306)(backported
- to 2.2.4).
-- FIX: Fixed missing IRQ vectors amicable names for STM32 XL devices (bug
- 3298889)(backported to 2.2.4).
-- FIX: Fixed wrong identifier in AVR serial driver (bug 3292084)(backported
- to 2.2.4).
-- FIX: Fixed wrong macro check for STM32 XL devices (bug 3291898)(backported
- to 2.2.4).
-- FIX: Fixed SPI driver restart in STM32 SPI driver implementation, also
- applied the same fix to the STM8S SPI driver (bug 3288758)(backported to
- 2.2.4).
-- FIX: Fixed missing state transition in ADC driver (bug 3288149)(backported
- to 2.2.4).
-- FIX: Fixed missing state transition in SPI driver (bug 3288112)(backported
- to 2.2.4).
-- FIX: Fixed spurious characters generated by Serial over USB driver (bug
- 3276379).
-- NEW: Added an option to the kernel to not spawn the Idle Thread from within
- chSysInit(), this way the application can spawn a custom idle thread or
- even use the main() thread as idle thread (backported to 2.2.4).
-- NEW: Added new SDC driver model, Secure Digital Card.
-- NEW: SDC driver implementation for STM32.
-- NEW: Updated the STM32 header file to the latest version 3.4.0, had to
- fix a bug regarding the STM32 XL sub-family.
-- NEW: New unified GCC startup file for Cortex-Mx processors, it is written
- in C instead of asm and supports constructors/destructors. Improved the
- Cortex-Mx linker scripts in all the GCC demos.
-- NEW: Now it is possible to share DMA channels in the STM32 HAL thanks
- to a centralized manager. Channels are allocated when the driver is
- started and released when it is stopped.
-- NEW: Added an STM32 C++ demo for the GNU compiler.
-- NEW: Added an STM32F103ZG demo for the STM3210E-EVAL evaluation board.
-- OPT: STM32 PWM driver implementation simplified.
-- CHANGE: Now pwmChangePeriod() does not implicitly disable the active
- PWM channels.
-- CHANGE: Renamed the chSemSetCounterI() function to chSemAddCounterI() and
- changed its behavior.
-- CHANGE: Modified the STM32 USB-CDC test demo to spawn a shell over the USB
- serial connection.
-
-*** 2.3.1 ***
-- FIX: Fixed insufficient idle thread stack in Cortex-M0-GCC port (bug 3226671)
- (backported to 2.2.3).
-- FIX: Fixed stack checking in Cortex-M0-GCC port (bug 3226657)(backported
- to 2.2.3).
-- FIX: Fixed wrong checks in PAL driver (bug 3224681)(backported to 2.2.3).
-- FIX: Fixed wrong checks in I/O Queues (bug 3219197)(backported to 2.2.3).
-- FIX: Fixed invalid assertion in adcConvert() (bug 3205410)(backported
- to 2.2.3).
-- NEW: Improvements to the PWM driver model:
- - Easier configuration similar to the GPT driver initializations, macros
- are no more required.
- - Added a new function that allows to change the PWM period on the fly,
- even from within callbacks. Formerly it was required to stop and restart
- the driver.
- - Improved driver documentation.
-- NEW: Added advanced mode to the STM32 PWM driver (TIM1 only).
-- NEW: Added new ICU driver model, Input Capture Unit.
-- NEW: ICU driver implementation for STM32.
-- NEW: Implemented stack checking in the Cortex-Mx RVCT port (backported
- to 2.2.3).
-- NEW: Added support for PLL3 in STM32 HAL driver. Note, the format of the
- mcuconf.h file is changed for STM32F105/STM32F107 devices.
-- NEW: Added board files for the Olimex STM32-P107.
-- NEW: Improved setup packets handling in the USB driver through a specific
- callback.
-- NEW: Improvements to the PAL driver and various implementation in order
- to make them more parenthesis friendly.
-- OPT: Simplified Serial over USB driver configuration.
-- CHANGE: Renamed the demo ARMCM3-STM32F107-GCC in ARMCM3-STM32F107 and added
- IAR and Keil projects.
-- CHANGE: Now the ARMCM3-STM32F107 demo targets the board Olimex STM32-P107
- as default.
-- CHANGE: Removed all the prefixes from the structure/union field names
- in the HAL subsystem.
-- CHANGE: Updated the documentation to use Doxygen 1.7.4 which produces a much
- more readable output. Also modified the documentation layout to put functions
- and variables ahead of everything else in the group pages.
- Doxygen version below 1.7.4 cannot be used anymore because differences in
- templates. Note that now there are two Doxygen projects, one for generating
- the CHM file the other for plain HTML.
-
-*** 2.3.0 ***
-- FIX: Fixed race condition in CM0 ports, the fix also improves the
- ISR latency (bug 3193062)(backported to 2.2.2).
-- FIX: Fixed Cortex-Mx linker scripts alignment of __heap_base__, the
- correct alignment is now enforced at runtime into core_init() in order
- to make the OS integration easier (bug 3191112)(backported to 2.2.2).
-- FIX: Fixed error in function chCoreAllocI() function documentation (bug
- 3191107)(backported to 2.2.2).
-- FIX: Fixed minor problem with memory pools (bug 3190512)(backported to
- 2.2.2).
-- FIX: Stack overflow in CM0 ports when nearing interrupts saturation (bug
- 3187105)(backported to 2.2.1).
-- FIX: Fixed error in _BSEMAPHORE_DATA macro (bug 3184139)(backported to
- 2.2.1).
-- FIX: Error in MAC driver (bug 3179783)(backported to 2.2.1).
-- FIX: Fixed wrong serial driver macros (bug 3173336)(backported to 2.2.1).
-- NEW: Improved preemption implementation for the Cortex-M0, now it uses
- the NMI vector in order to restore the original context. The change makes
- IRQ handling faster and also saves some RAM/ROM space. The GCC port code
- now does not inline the epilogue code in each ISR saving significant ROM
- space for each interrupt handler in the system (backported to 2.2.3).
-- NEW: Added "IRQ STORM" long duration tests for the STM32, LPC11xx and
- LPC11xx. The test demonstrates the system stability in a thread-intensive,
- progressively CPU-saturating, IRQ-intensive long duration test.
-- NEW: Added two new functions to the events subsystem: chEvtBroadcastFlags()
- and chEvtBroadcastFlagsI(). The old chEvtBroadcast() and chEvtBroadcastI()
- become macros. The new functions allow to add the same flags to all the
- registered listener threads.
-- NEW: Added I-Class functions to the MailBoxes subsystem, now it is
- possible to use them as a transport layer between ISRs and Threads
- (backported to 2.2.2).
-- NEW: Added new USB driver model, probably it will evolve in next
- releases.
-- NEW: USB driver implementation for STM32.
-- NEW: Added "serial over USB" driver, it implements a Communication
- Device Class exposing it as a normal serial driver to applications,
- probably it will evolve in next releases.
-- NEW: Added STM32 USB CDC loopback test application.
-- NEW: Added new GPT driver model, General Purpose Timer. The driver
- allows to access the available timers in an abstract way.
-- NEW: GTP driver implementation for STM32, LPC13xx and LPC11xx.
-- NEW: Added STM32 GPT test application.
-- NEW: Implemented new event IO_TRANSMISSION_END in the generic serial
- driver. This event marks the physical transmission end of a data stream.
-- NEW: Implemented the new IO_TRANSMISSION_END event in the STM32 serial
- driver.
-- NEW: Added explicit reset of all peripherals inside the STM32 HAL driver.
- Removed the separate resets on initialization from the various other
- drivers saving significant space.
-- OPT: Removed TIMx reset on system startup in the STM32 PWM driver, the
- timers are already reset on driver startup.
-- CHANGE: The functions chEvtSignal() and chEvtSignalI() have been renamed
- to chEvtSignalFlags() and chEvtSignalFlagsI() for consistency.
-- CHANGE: Swapped the numeric values of the TIME_IMMEDIATE and TIME_INFINITE
- constants. Fixed the relative documentation in various places (backported
- to 2.2.2).
-- Many documentation improvements.
-
-*** 2.1.8 ***
-- FIX: Fixed error in STM32 ADC driver macro names (bug 3160306)(backported
- to 2.0.11).
-- FIX: Fixed IAR Cortex-Mx port memory organization problem (bug 3158776).
-- FIX: Fixed STM32F103 demo's incorrect clock settings (bug 3153746).
-- NEW: Added OTG clock setting to the STM32 HAL.
-- NEW: Added stack check support to the IAR Cortex-Mx port.
-- CHANGE: Removed .uvopt files from the Keil projects.
-
-*** 2.1.7 ***
-- FIX: Fixed various errors in the HAL documentation (bug 3153591).
-- FIX: Fixed error in chIOGetxxxxxEventSource() macros (bug 3153550)
- (backported to 2.0.10)
-- FIX: Fixed error in STM32 unbuffered UART driver (bug 3153437).
-- FIX: Fixed wrong macro check in LPC214x driver (bug 3152510).
-- FIX: Fixed switch condition error in STM32 PWM driver (bug 3152482)
- (backported to 2.0.10).
-- FIX: Fixed error in output queues static initializer (bug 3149141)
- (backported to 2.0.9).
-- FIX: Fixed extra notifications in input queues (bug 3148525)(backported
- to 2.0.9).
-- NEW: New ARM Cortex-Mx port for RVCT compiler.
-- NEW: Integrated the various Cortex-Mx GCC, IAR and RVCT demos in unified
- demos with multiple project files, the code is exactly the same. Renamed
- the directories removing the compiler suffix.
-- NEW: Added an USB clock configuration in the STM32 HAL driver (LD, MD, HD).
-- NEW: New semaphore API chSemSetCounterI().
-- NEW: New queue APIs chIQGetFullI() and chOQGetFullI().
-- CHANGE: Serial drivers now have a single event source instead of three,
- the event source is located in the superclass, this allows to create
- alternative implementations of the serial driver while keeping compatibility,
- the change also allowed to save 8/4 RAM bytes per serial driver.
-- CHANGE: Modified the ADC and CAN drivers to allow a NULL pointer for
- the configuration structure if it is not required by the implementation.
-- CHANGE: Modified the MMC_SPI driver to *require* a NULL as pointer to
- the configuration.
-- CHANGE: Removed enforced inlining for the chSchReadyI() function when
- the CH_OPTIMIZE_SPEED is enabled. Now the matter is left to the compiler
- specific settings. This change is meant to increase compatibility with
- compilers that have a different inlining semantic than GCC when not in
- C99 mode.
-- CHANGE: Changed the declaration of the main() function in all demos
- without arguments. Removed the clearing of arguments from the startup
- files and saved some space.
-- CHANGE: Queues callbacks now have as parameter a pointer to the queue,
- there were no parameters previously.
-- Documentation related fixes.
-
-*** 2.1.6 ***
-- FIX: Fixed error in sdPutTimeout() macro (bug 3138763)(backported in 2.0.9).
-- NEW: New ARM Cortex-Mx port for IAR compiler.
-- NEW: Now the STM32 CAN driver puts the lower half word of the ESR
- register in the upper half word of the can status word for easier
- debug.
-- CHANGE: Changes in the board files organization, now the board
- initialization is invoked from within halInit() after all the device
- drivers have been initialized. Now applications are required to
- explicitly invoke halInit() and chSysInit() from within their main().
-- CHANGE: Removed the CMSIS files from the ARMCMx port, added the headers
- into the various HAL platforms requiring them. The change is required
- because the port layer must not have vendor specific dependencies and
- there is the possibility that the various vendors would use different
- CMSIS versions now that CMSIS 2.x has been released.
-- CHANGE: Modified the start of the ADC in the STM32 ADC driver, now it is
- no more required to specify ADC_CR2_EXTSEL_SWSTART and ADC_CR2_CONT
- in the CR2 register configuration. Also reordered the start sequence
- in order to allows a longer stabilization time for the ADC.
-- Documentation improvements.
-
-*** 2.1.5 ***
-- FIX: Fixed references to non-existing SSP1 device in LPC13xx SPI device
- driver (bug 3127926).
-- FIX: Fixed broken SPI synchronous API (bug 3127921).
-- FIX: Fixed missing vector.c files in LPC11xx and LPC13xx ports (bug 3124849).
-- FIX: Fixed pwmDisableChannel() now working in STM32 PWM driver (bug 3121246).
-- FIX: Fixed problem with PWM channel callbacks (bug 3120785).
-- NEW: Added support for TIM5 in the STM32 PWM driver.
-- NEW: Added to the ARM port the option to externally redefine the port IRQ
- macros in order to accomodate different implementations without have to
- change the port layer.
-- CHANGE: Modified the STM32_PWM_PWMx_IRQ_PRIORITY macros in the STM32
- PWM driver (and all the STM32 mcuconf.h files) and renamed them in
- STM32_PWM_TIMx_IRQ_PRIORITY for consistency.
-- Documentation related fixes.
-
-*** 2.1.4 ***
-- FIX: Fixed failed memory recovery by registry scan, improved the related
- test case (bug 3116888)(backported to 2.0.8).
-- FIX: Fixed failure in STM32 ADC driver when a linear buffer mode is used
- (bug 3114696).
-- FIX: Fixed PWM channels going to ACTIVE state when the pulse width is
- set to zero in the STM32 PWM driver (bug 3114481)(backported to 2.0.8).
-- FIX: Fixed PWM channels return to IDLE state in STM32 PWM driver (bug
- 3114467)(backported to 2.0.8).
-- FIX: Fixed wrong initializer macros in STM32 PWM driver (bug 3114319).
-- FIX: Fixed syntax error in STM32 PWM driver(bug 3114266).
-- FIX: Fixed typo in board name (bug 3113574)(backported to 2.0.7).
-- FIX: Fixed defective event wait functions with timeout (bug 3113443)
- (backported to 2.0.7).
-- NEW: More improvements to the ADC and SPI drivers, now synchronous
- operations can also have callbacks, optimized ISR code paths.
-- NEW: Added to the STM32 ADC driver the macros for easy handling of the
- sampling time for each channel.
-- NEW: Greatly simplified the STM32 PWM driver implementation.
-- NEW: Added new macro PWM_FRACTION_TO_WIDTH() to the PWM driver model.
-- NEW: ARM7 port reorganization following the same pattern of the ARMCMx
- one, on now the port is also supports the ARM9 architecture (but not
- tested yet hardware). Removed the dependencies between the port layer
- and the vendors-provided headers.
-- NEW: Initial STM8L support: HAL, PAL and Serial drivers.
-- NEW: Added demo for the ST STM8L-Discovery kit.
-- NEW: Added support for the STM32 Value Line to the HAL.
-- NEW: Added demo for the ST STM32VL-Discovery kit.
-- OPT: STM32 SPI driver implementation improved, reduced latency when
- starting a transfer.
-- CHANGE: Improved the STM32 HAL to support multiple sub-families, at compile
- time now it is possible to test the presence of any single peripheral into
- the specified STM32 device.
-- CHANGE: Separated dynamic threads code into dedicated files: chdynamic.c
- and chdynamic.h.
-- CHANGE: Moved the declaration of the variable pal_default_config from
- hal_lld.c to the various board.c. That structure is more meaningful in
- the board layer because it is related to the board initialization.
-- CHANGE: Removed the various assembler files for the STM32 interrupt
- vectors, now it is a single vectors.c file.
-- CHANGE: Deleted ./os/ports/GCC/ARM.
-- CHANGE: Renamed ./os/ports/GCC/ARM7 in ./os/ports/GCC/ARM.
-- CHANGE: Renamed ./os/hal/platforms/STM8 in ./os/hal/platforms/STM8S.
-- CHANGE: Renamed ./testhal/STM8 in ./testhal/STM8S.
-- Added SPI driver to the STM8S documentation, it was missing.
-- Improved documentation for the ARM and ARMCMx ports.
-
-*** 2.1.3 ***
-- FIX: Fixed broken STM32 synchronous UART driver (bug 3100946).
-- FIX: Broken C++ wrapper (bug 3100925).
-- FIX: Broken lwIP/uIP demos (bug 3100901).
-- FIX: DMA not initialized under some conditions (bug 3099701).
-- FIX: Restored the RIDE7 build files in the STM32F103 demo, note the RIDE7
- build files are not supported so this has not been tracked as a bug.
-- NEW: Added an SPI driver to the STM8 platform support.
-- NEW: Added a simple STM8 SPI demo under ./testhal/STM8/SPI.
-- NEW: Divided the file STM32/vectors.s in several files, one for each
- STM32 sub-family. This has been done in order to remove the preprocessor
- directives from assembler files and to support all the various STM32
- sub-families.
-- CHANGE: Renamed ./os/ports/GCC/ARMCMx/STM32F10x in STM32.
-- CHANGE: Divided the file ARMCMx/crt0.s in crt0_v6m.s and crt0_v7m.s in
- order to remove the preprocessor directives from assembler files.
-- CHANGE: Renamed the HAL settings macro names, removed the CH_ prefix
- because it is reserved for the kernel namespace.
- NOTE: ****** Make sure to use a mcuconf.h file taken from ******
- ****** this version in your project. ******
-
-*** 2.1.2 ***
-- FIX: Fixed typo in memstreams.h (bug 3089567)(backported to 2.0.6).
-- FIX: Fixed wrong macro check in LPC214x and AT91SAM7 serial drivers (bug
- 3088776)(backported to 2.0.6).
-- FIX: Fixed non functioning option SPI_USE_MUTUAL_EXCLUSION=FALSE (bug
- 3084764)(backported to 2.0.6).
-- FIX: Fixed wrong macro check in STM32 serial support (bug 3078891)(backported
- to 2.0.6).
-- FIX: Fixed non functioning option CH_USE_NESTED_LOCKS (bug 3075544)
- (backported to 2.0.6).
-- FIX: Incorrect AT91SAM7X initialization, thanks Leszek (bug 3075354)
- (backported to 2.0.5).
-- FIX: Fixed race condition in function chSchGoSleepTimeoutS(), thanks Bal�zs
- (bug 3074984)(backported to 2.0.5).
-- FIX: Fixed race condition in threads creation (bug 3069854)(backported
- to 2.0.5).
-- FIX: Fixed broken CH_DBG_ENABLE_STACK_CHECK option in legacy CM3 port (bug
- 3064274)(backported to 2.0.5).
-- FIX: Fixed CAN_USE_SLEEP_MODE setting (bug 3064204)(backported to 2.0.5).
-- FIX: Fixed potential issue with GCC reorganizing instructions around "asm
- volatile" statements (bug 3058731)(backported in 2.0.4).
-- FIX: Fixed reduced ARM7 performance with GCC 4.5.x (bug 3056866)(backported
- to 2.0.4).
-- FIX: Fixed crash of the Posix simulator under Ubuntu 10.4 (bug 3055329)
- (backported to 2.0.3).
-- FIX: Fixed incorrect PLL2 setting in STM32 HAL (bug 3044770)(backported
- in 2.0.3).
-- FIX: Fixed wrong check on STM32_HCLK (bug 3044758)(backported to 2.0.3).
-- FIX: Fixed wrong condition check in STM32 PWM driver (bug 3041414)
- (backported in 2.0.3).
-- FIX: Corrupted IRQ stack in Cortex-Mx port (bug 3041117)(backported to
- 2.0.3).
-- FIX: Fixed a documentation error regarding the ADC driver function
- adcStartConversion() (bug 3039890)(backported to 2.0.3).
-- NEW: New I2C driver model (not complete and no implementations yet).
-- NEW: New SPI driver model, the new model supports both synchronous and
- asynchronous operations and, in general, simplifies the implementation of the
- low level driver. The new driver also specifies a simplified polled exchange
- API, useful for efficiently sending small amount of data over high speed
- connections. The driver state diagram changed slightly changed so be careful.
-- NEW: New ADC driver model, the new model supports both synchronous and
- asynchronous operations and, in general, simplifies the implementation of the
- low level driver. The driver state diagram changed slightly changed so be
- careful.
-- NEW: Improved PWM driver model, added several macros that helps to setup
- configuration structures and to specify pulse widths also as percentages or
- degrees using a fixed point notation. Added new pwmEnableChannelI() and
- pwmDisableChannelI() APIs in order to allow channel reprogramming from
- within callbacks or interrupt handlers, the new APIs are implemented as
- macros so there is no footprint overhead.
-- NEW: Added driver fields and initialization hooks for the callback-based
- drivers. The hooks are named XXX_DRIVER_EXT_FIELDS and
- XXX_DRIVER_EXT_INIT_HOOK().
-- NEW: Added to the UART driver the capability to return the number of
- not yet transferred frames when stopping an operation.
-- NEW: Added more compile-time checks to the various STM32 device drivers.
-- NEW: Improved LPC214x SPI driver, now it uses IRQs, it implements the
- new SPI device driver model.
-- NEW: Improved AT91SAM7 SPI driver, now it uses IRQs and DMAs, it implements
- the new SPI device driver model.
-- NEW: New LPC11xx SPI driver, updated the LPCXpresso demo to use the SPI.
-- NEW: New LPC13xx SPI driver, updated the LPCXpresso demo to use the SPI.
-- NEW: Added a simple STM32 ADC demo under ./testhal/STM32/ADC.
-- NEW: Added a simple STM32 CAN demo under ./testhal/STM32/CAN.
-- NEW: Added a simple STM32 PWM demo under ./testhal/STM32/PWM.
-- NEW: Added a simple STM32 SPI demo under ./testhal/STM32/SPI.
-- NEW: More assertions added to the kernel for improved bug fixing.
-- NEW: New kernel hooks: SYSTEM_TICK_EVENT_HOOK(), SYSTEM_HALT_HOOK().
-- NEW: Added board files for the Olimex STM32-H103.
-- NEW: New kernel APIs chSysGetIdleThread() and chThdGetTicks(), the new
- APIs are simple macros so there is no footprint overhead.
-- NEW: Added a generic BaseFileStream interface for future File System
- implementations or integrations (untested and not sure if it will stay or
- change).
-- NEW: Added to the documentation more notes about interrupt handlers in
- the ARM7 port.
-- NEW: Modified some tests in order to bring back code coverage to 100%
- in all modules except chdebug.c. Added a test case covering binary
- semaphores.
-- OPT: The fix to the bug 3075544 considerably improved the threads creation
- benchmarks score.
-- OPT: Speed optimizations to the STM32 SPI driver, greatly improved latency.
-- OPT: Speed optimizations to the STM32 ADC driver.
-- CHANGE: The API chThdInit() has been renamed to chThdCreateI() in order to
- make clear it is usable from interrupt handlers.
-- CHANGE: The mailboxes macros chMBSize(), chMBGetEmpty(), chMBGetFull(),
- chMBPeek() have been renamed to chMBSizeI(), chMBGetFreeCountI(),
- chMBGetUsedCountI(), chMBPeekI().
-- CHANGE: The queue APIs chQSize(), chQSpace(), chIQIsEmpty(), chIQIsFull(),
- chOQIsEmpty(), chOQIsFull() have been renamed to chQSizeI(), chQSpaceI(),
- chIQIsEmptyI(), chIQIsFullI(), chOQIsEmptyI(), chOQIsFullI().
-- CHANGE: The event APIs chEvtPend() and chEvtClear() have been renamed
- to chEvtAddFlags() and chEvtClearFlags() for consistency and correct
- English. Changed the macro chEvtIsListening() in chEvtIsListeningI().
-- CHANGE: Added a parameter to the PWM driver callbacks, the pointer to the
- driver itself.
-- CHANGE: Added a parameter to the UART driver callbacks, the pointer to the
- driver itself.
-- CHANGE: In the UART driver now an error does not automatically brings the
- receiver in UART_RX_IDLE state, the receive operation continues unless
- explicitly stopped in the error callback handler. This considerably
- simplifies the low level driver code.
-- CHANGE: Removed a spurious trailing ; after the WORKING_AREA() macro
- declaration in several ports. The ; should go after the macro invocation.
-- CHANGE: Modified the STM32 ADC driver to use the new DMA infrastructure.
-- CHANGE: Modified the STM32 SPI driver to use the new DMA infrastructure.
-- CHANGE: Added DMA cleanup code to the STM32 dmaInit() function.
-- CHANGE: Simplified preprocessor conditions in the STM32 serial driver.
-- CHANGE: Renamed most of the STM32 HAL settings macro names in order to
- make names more consistent.
- NOTE: ****** Make sure to use a mcuconf.h file taken from ******
- ****** this version in your project. ******
-- CHANGE: Renamed the existing system hooks by adding the _HOOK suffix to
- the name in order to make names more consistent.
- NOTE: ****** Make sure to use a chconf.h file taken from ******
- ****** this version in your project. ******
-- CHANGE: Extensive documentation improvements, fixed terminology in the
- events related documentation and articles.
-- CHANGE: The documentation is no more included in the distribution, the
- file ./documentation.html redirects to the online documentation page
- that contains *much* better documents.
- Note that it is still possible to generate the local documentation using
- Doxygen, the procedure is very simple and described in ./docs/readme.txt.
-
-*** 2.1.1 ***
-- FIX: Fixed insufficient stack size for idle thread (bug 3033624)(backported
- to 2.0.3).
-- FIX: Fixed misspelled word in some chioch.h and chstreams.h macros (bug
- 3031534)(backported to 2.0.3).
-- FIX: Fixed wrong macro check in the STM32 SPI driver (bug 3028562)(backported
- to 2.0.3).
-- FIX: Fixed invalid context restore in MSP430 port (bug 3027975)(backported
- to 2.0.2).
-- FIX: Fixed STM32 vectors file (bug 3026528)(backported to 2.0.2).
-- FIX: Fixed race condition in STM32 SPI driver (bug 3025854)(backported to
- 2.0.2).
-- FIX: Fixed H_LOCK and H_UNLOCK redefined with CH_USE_MALLOC_HEAP (bug
- 3025549)(backported to 2.0.2).
-- FIX: Added option to enforce the stack alignment to 32 or 64 bits in the
- Cortex-Mx port (bug 3025133)(backported to 2.0.2).
-- NEW: Centralized DMA macros in the STM32 HAL.
-- NEW: New UART device driver model, this device driver allows unbuffered,
- callback driven access to UART-type devices.
-- NEW: UART device driver for STM32 and UART demo application under
- ./testhal/STM32/UART.
-- NEW: Added friendly interrupt vectors names to the STM32 HAL (change request
- 3023944).
-- NEW: Added support for SPI3 in the STM32 HAL.
-- CHANGE: Redeclared the IRQ handlers in the various STM32 drivers using the
- new friendly vector names.
-- CHANGE: Moved the STM32 HAL stess test application under
- ./testhal/STM32/_stress_test.
-- CHANGE: Removed the option -mabi=apcs-gnu from all the Cortex-Mx demos. The
- option is not compatible with the 64 bits stack alignment now default in
- the Cortex-Mx port. Note that the 64 bits alignment has a cost both as
- performance and as space but it is the "standard".
-- OPT: Small speed optimization in the STM32 SPI driver.
-- OPT: Optimized DMA clearing in STM32 ADC and SPI drivers, there was no need
- to read/modify/write the IFCR DMA register, it is write only.
-- Fixed various documentation errors.
-
-*** 2.1.0 ***
-- FIX: Fixed notification order in input queues (bug 3020708)(backported in
- 2.0.1).
-- FIX: Fixed non functional CH_CURRP_REGISTER_CACHE option in the Cortex-M3
- port (bug 3020702)(backported in 2.0.1).
-- FIX: Fixed non functional CH_DBG_ENABLE_STACK_CHECK option in the Cortex-M3
- caused by GCC 4.5.0, the fix also improves the context switch performance
- because GCC 4.5.0 apparently was generating useless instructions within the
- very critical context switch code (bug 3019738)(backported in 2.0.1).
-- FIX: Fixed insufficient stack space assigned to the idle thread in
- Cortex-M3 port (bug 3019594)(backported in 2.0.1).
-- FIX: Fixed missing check in chIQReadTimeout() and chIQWriteTimeout() (bug
- 3019158)(backported in 2.0.1).
-- FIX: Fixed instability in Mutexes subsystem (bug 3019099)(backported
- in 2.0.1).
-- FIX: Fixed broken AVR port (bug 3016619)(backported in 2.0.0).
-- FIX: Fixed assertion in adcStop() (bug 3015109)(backported in 2.0.0).
-- NEW: Merged the new unified STM8 port, now the port supports both the
- Cosmic and Raisonance compilers.
-- NEW: Added an STM8-DISCOVERY demo, the demo can be compiled with both the
- Cosmic and Raisonance compilers under the STDV IDE. Performance reports
- have been added for both compilers.
- NOTE: The Raisonance compiler seems to have problems in debugging under
- the STDV IDE, if you need to debug using the Raisonance compiler
- consider using the RIDE7 IDE instead.
- Compiling and executing using the "release" mode under STDV works fine.
-- NEW: Added timers clock macros to the STM32 clock tree HAL driver (backported
- in 2.0.1).
-- NEW: Added Binary Semaphores among the synchronization primitives. The new
- subsystem is entirely implemented as macros over the existing and proven
- Counting Semaphores thus takes no space (experimental).
-- NEW: Added a simplified SPI driver for AT91SAM7 devices, contributed by
- Alexander (experimental).
-- NEW: Added FatFs demos for AT91SAM7S and AT91SAM7X, contributed by
- Alexander (experimental).
-- OPT: Simplified the test suite code, now it is smaller.
-- Reorganized the documentation, now the description of the device drivers
- implementation is under the HAL module instead of the Ports module.
-
-*** 1.5.9 ***
-- FIX: Fixed STM8 baud rate setup error (bug 3010990).
-- FIX: Fixed STM8 UART3 driver (bug 3009145).
-- NEW: Added a STM8_ENABLE_WFI_IDLE option to the STM8 port, the default
- is FALSE.
-- OPT: Small size optimization in the semaphores subsystem.
-- OPT: Improvements in the STM8 port, the code is now smaller and generally
- faster, also saved few bytes of RAM.
-- Added explicit casts in chevents.h, chqueues.h, chqueues.c in order to
- silence some warnings on a specific compiler.
-- Added a section in chconf.h where redefine the port-related configuration
- parameters, also added notes into the documentation about this.
-
-*** 1.5.8 ***
-- FIX: Fixed missing files from ST library zip file (bug 3006629).
-- NEW: Added a demo for the AT91SAM7S256 and board files for the Olimex
- SAM7-P256. The demo has been contributed by Alexander Kozaruk.
-- Fixed some wrong paths into the demos readme files.
-- Formatting fixes to the port templates.
-- Added notes about copyright assignment to the documentation. Fixed some
- problems in the licensing FAQ page.
-- Added documentation article about events in ChibiOS/RT.
-
-*** 1.5.7 ***
-- FIX: Fixed missing SPI driver reinitialization in the MMC driver (bug
- 3005628)(backported in 1.4.4).
-- FIX: Fixed wrong inclusion order of board.h and halconf.h into hal.h
- (bug 3005041)(backported in 1.4.4).
-- FIX: Fixed wrong GPIO ports size in the STM8 PAL driver (bug 3001528).
-- NEW: Improved clock initialization for the STM32, now it is possible to
- configure the clock using any clock source and any HSE frequency.
-- NEW: The STM32 clock tree parameters and checks are now calculated into
- a separate file in order to support multiple clock trees for different
- sub-families of the STM32 platform.
-- NEW: Added separated clock trees for the STM32 LD/MD/HD sub-family and
- the CL sub-family. Now the selection of the sub-family is done in the
- board.h file, there is no more the need to put -DSTM32F10X_xx into
- the makefile.
-- NEW: Added the palSetBusMode() capability to the STM8 PAL driver.
-- NEW: Added the palSetBusMode() capability to the LPC11xx and LPC13xx
- PAL drivers.
-- NEW: Updated the STM32 FW Library files to latest version 3.3.0.
-- CHANGE: Renamed the STM32, STM8, LPC214x, AT91SAM7x, MSP430 and simulators
- PAL configuration structures to PALConfig, it is better to have the same
- name for this structure in all ports (like for all the other drivers).
-- CHANGE: Modified the linker scripts in the ARM demos in order to increase
- compatibility with the CodeSourcery toolchain.
-- Tested the STM8 port with the latest RKit-STM8_2.28.10.0092. It works but
- the new compiler shows a slight performance regression except in one
- test case.
-- Added credits page to the documentation, improved the article regarding
- timings.
-- Performed another documentation revision cycle, fixed more bad English and
- few errors.
-
-*** 1.5.6 ***
-- FIX: Fixed centralized ARM makefile (bug 2992747)(backported in 1.4.3).
-- FIX: Fixed write problems in MMC_SPI driver (bug 2991714)(backported in
- 1.4.3).
-- FIX: Fixed wrong macros in chioch.h (bug 2989468).
-- FIX: Fixed wrong macro check in serial.h (bug 2989459)(backported in 1.4.3).
-- NEW: Added a ROMCONST macro in chtypes.h, this macro must be used for
- constant that must be placed in code space, it should not be assumed that
- the "const" keyword does that. Note that this macro is not used to place
- constants in different address spaces (AVR) because it is assumed that a
- pointer to a ROMCONST variable is compatible with a normal pointer.
-- NEW: AT91SAM7 HAL support for the DGBU UART peripheral, as SD3.
-- NEW: Introduced a new macro CH_FAST_IRQ_HANDLER() for the declaration of
- fast interrupt handlers on those architectures that support them.
-- OPT: Internal optimization in the serial driver, it now is a bit smaller
- and uses less RAM (all architectures).
-- CHANGE: Modified the STM32 FatFs demo, now it spawns a command shell or
- the serial port SD2, type "help" for the available commands. More commands
- can be easily added.
-- CHANGE: Renamed the chCoreFree() function in chCoreStatus() because it
- might be mistaken for a function that frees memory.
-- CHANGE: All ARM demos makefiles now defaults to arm-none-eabi- GNU
- toolchains because the latest YAGARTO now uses that setting. It is still
- possible to use arm-elf- toolchains by editing the TRGT variable in the
- makefiles.
-- Various documentation fixes, added new articles covering debugging under
- ChibiOS/RT, OS integration, OS stop and restart. Updated the article about
- interrupt handlers to cover also fast interrupt sources, updated the article
- about the OS porting.
-- Long overdue test code cleanup and documentation.
-- Added new test cases, now the coverage is again up to 100% except for the
- debug module that would require triggering system terminating tests (panics),
- the uncovered code is minimal, extremely simple and working anyway.
-- ChibiOS/RT has been successfully verified with the latest GCC 4.5.0.
-
-*** 1.5.5 ***
-- FIX: Removed some "dead" code in the old ARMv7-M files (there are new
- ones, see below).
-- NEW: LPC13xx support, drivers (Serial, PAL, HAL), demo and reports.
-- NEW: Added statistic info to the lwIP demo.
-- CHANGE: Renamed LPC111x port and platform in LPC11xx, minor fixes to the
- platform header files.
-- CHANGE: Small documentation fixes and improvements.
-- OPT: New Cortex-M3 port code, *huge* performance improvements in all the
- context switching related benchmarks (up to 18% depending on the benchmark).
- The new code does no more require the use of the PendSV vector that is
- thus available to the user, it also saves four RAM bytes for each thread
- in the system. The old code is still available as a fall back option while
- the new one is being hardened by peer review and time, the two ports are
- perfectly interchangeable.
-
-*** 1.5.4 ***
-- FIX: Fixed broken CH_CURRP_REGISTER_CACHE option in the ARM7 port (bug
- 2973365).
-- FIX: Fixed missing memory recovery on thread reference release in
- chRegNextThread() (bug 2971878).
-- FIX: Fixed wrong thread state macro in STM32/spi_lld.c (bug 2968142).
-- NEW: New unified ARM Cortex-Mx port, this port supports both the ARMv6M
- and ARMv7-M architecture (Cortex-M0/M1/M3/M4 so far). The new port also
- allow to easily add to new Cortex-M implementations by simply adding a
- parameters file (cmparams.h).
-- NEW: Embedded Artists LPCxpresso Base Board support files added.
-- NEW: LPC111x support, drivers (Serial, PAL, HAL) and demo.
-- NEW: The port layer now can "capture" the implementation of individual
- scheduler API functions in order to provide architecture-optimized
- versions. This is done because further scheduler optimizations are
- becoming increasingly pointless without considering architecture and
- compiler related constraints.
-- NEW: Added support for the STM8 large memory model to the STM8 port. Now
- the assembler port code is totally inlined and the chcoreasm.asm file has
- been removed.
-- NEW: Added RIDE7 project files to the STM32 demo under a ./ride7
- subdirectory, this should make things easier for RIDE7 users. The normal
- makefile is still available of course.
-- NEW: New articles and guides in the documentation.
-- NEW: Documentation improvements, now the description goes on top of each
- page, doxygen defaulted it in the middle, not exactly the best for
- readability. Improved many descriptions of the various subsystems. Fixed
- a misplaced page (STM8 port).
-- OPT: Optimization on the interface between scheduler and port layer, now
- the kernel is even smaller and the context switch performance improved
- quite a bit on all the supported architectures.
-- OPT: Simplified the implementation of chSchYieldS() and made it a macro.
- The previous implementation was probably overkill and took too much space
- even if a bit faster.
-- CHANGE: Modified the Cortex-M3 port to be a more generic Cortex-Mx port,
- changes were required to the startup code and the port code because the
- reduced instruction set of the Cortex-M0 (there are two code paths now,
- both optimized).
-- CHANGE: Modified the SysTick initialization for STM32 to use the system
- clock rather than the external clock.
-- CHANGE: Exiting from a chCondWaitTimeout() because a timeout now does not
- re-acquire the mutex, ownership is lost.
-- CHANGE: The module documentation has been moved from the kernel.dox file
- to the various source code files in order to make it easier to maintain
- and double as source comments.
-- CHANGE: Updated CMSIS files to version 1.3 and fixed the warnings in there,
- again...
-
-*** 1.5.3 ***
-- FIX: Removed C99-style variables declarations (bug 2964418)(backported
- in 1.4.2).
-- FIX: Fixed missing reschedule in chEvtSignal() (bug 2961208)(backported
- in 1.4.2).
-- NEW: Added STM8 port and demo, the demo targets the Raisonance REva board
- with STM8S208RB piggyback.
-- NEW: Enhanced the kernel size report to cover more cases.
-- NEW: Improvements to the documentation.
-- OPT: Minor optimizations in the "compact" code path.
-
-*** 1.5.2 ***
-- FIX: Fixed wrong UART deinitialization sequence in LPC214x serial driver
- (bug 2953985)(backported in 1.4.1).
-- FIX: Fixed wrong PINSEL2 offset into lpc214x.h (bug 2953981)(backported
- in 1.4.1).
-- FIX: Fixed invalid UART-related macro in the LPC214x HAL (bug 2953195)
- (backported in 1.4.1).
-- FIX: Impossible to enforce alignment greater of a pointer size for heap/core
- objects (bug 2952961).
-- FIX: Wrong prototype in template file chcore.c (bug 2951529)(backported
- in 1.4.1).
-- NEW: Added an experimental PowerPC port targeting the SPC563M/MPC563xM
- ST/Freescale automotive SOCs. The port passed the whole test suite but it
- will be developed further in next releases.
-- NEW: Added core variant name macro in chcore.h and platform name in
- hal_lld.h, the info are printed in the test report and from the "info"
- shell command.
-- NEW: Added BOARD_NAME macro to the various board.h files.
-- NEW: Added a MemoryStream class under ./os/various.
-- CHANGE: Removed an instance of a structure without name from test.h for
- increased portability of the test suite.
-- NEW: Added Mac OS-X support for the simulator. The Linux simulator has
- been renamed to Posix simulator in order to include this change in a
- single project.
-- NEW: New articles, sections and various improvements to the documentation.
-- CHANGE: Renamed the kernel header files to match the names of their source
- files. The change was also required in order to make the names less
- "generic" and less likely to match names in external libraries.
-
-*** 1.5.1 ***
-- FIX: Fixed insufficient stack space for the idle thread in the ARMCM3 port
- when compiling without optimizations (bug 2946233)(backported in 1.4.1).
-- FIX: Fixed wrong notes on function chThdResume() (bug 2943160)(backported
- in 1.4.1).
-- NEW: Implemented the concept of thread references, this mechanism ensures
- that a dynamic thread's memory is not freed while some other thread still
- owns a reference to the thread. Static threads are not affected by the new
- mechanism. Two new APIs have been added: chThdAddRef() and chThdRelease().
-- NEW: Now more than one thread can be waiting in chThdWait() as long they
- own a reference.
-- NEW: Implemented a new threads registry subsystem, the registry allows to
- enumerate the active threads at runtime and/or from a debugger. This is
- a preparatory step for a dedicated ChibiOS/RT debugger.
-- NEW: New chCoreFree() API that returns the core memory left.
-- NEW: Added to the simulators shell demos two new commands: threads and mem,
- that show the currently active threads (using the new registry) and the
- memory allocators state.
-- CHANGE: Doxygen tags cleanup in all the system code, comments are better
- looking now.
-- CHANGE: Documentation improvements.
-
-*** 1.5.0 ***
-- FIX: Fixed missing dependencies check for CH_USE_DYNAMIC (bug 2942757)
- (backported in 1.4.1).
-- FIX: Fixed swapped thread states descriptions (bug 2938445)(backported in
- 1.4.1).
-- FIX_ Fixed C99-style variable declaration (bug 2938444)(backported in 1.4.1).
-- FIX: Fixed parameter check in sdStart() function (bug 2932922)(backported in
- 1.4.0).
-- FIX: Fixed missing platform.mk file in MSP430 port (bug 2933735)(backported
- in 1.4.0).
-- CHANGE: Removed the unnamed union from the thread and heaps structures,
- some compilers do not support this non standard construct.
-- CHANGE: Removed the empty structures from the streams/channels headers.
-- CHANGE: Modified the thread-related constant macros to have a THD_ prefix.
-- CHANGE: Modified NULL assignments to function pointers to use an explicit
- cast because some compilers issue warnings without the cast.
-- OPT: Speed/size optimization to the events subsystem.
-- OPT: Speed/size optimization to the mutexes subsystem.
-- OPT: Speed/size optimization to the condvars subsystem.
-- OPT: Speed/size optimization to the synchronous messages subsystem.
-- NEW: Added support for STM32/HD/CL UART4 and UART5, thanks Egon for the
- patch.
-
-*** 1.3.8 ***
-- FIX: Fixed dequeuing in lifo_remove() function (bug 2928142).
-- FIX: Fixed spurious character generation in MSP430 serial driver (bug
- 2926838).
-- NEW: Introduced an abstract streams interface BaseSequentialStream.
-- NEW: Added timeout specification to the I/O queues read/write primitives.
-- NEW: Added support for HD and CL STM32 devices in the vectors table.
-- CHANGE: Modified the BaseChannel interface in order to make it a
- BaseSequentialStream descendant.
-- CHANGE: Updated the serial driver model in order to expose the
- BaseSequentialStream methods.
-- CHANGE: The behavior of the read/write primitives is changed, now the
- functions are synchronous and do not return until the specified number of
- bytes have been transferred or a timeout occurs, the old behavior can be
- replicated by specifying TIME_IMMEDIATE as timeout. Another difference is
- that specifying zero as bytes number is like specifying the largest size_t
- plus one, zero was an illegal value before.
-- CHANGE: Simplified the LPC214x driver by removing the option to not use the
- FIFO preload feature. Setting LPC214x_UART_FIFO_PRELOAD to 1 results in
- the same behavior.
-- Documentation fixes and improvements, testing strategy explained.
-- Added article about waking up threads from IRQ handlers.
-
-*** 1.3.7 ***
-- FIX: Fixed duplicated definition of SPI_USE_MUTUAL_EXCLUSION (bug 2922495).
-- FIX: Fixed coverage tool hanging during execution (bug 2921120).
-- FIX: Fixed Linux simulator startup message (bug 2921012).
-- FIX: Fixed section separators comments into the HAL-related files. Now all
- the files should use the same style.
-- NEW: Improved HAL configuration file.
-- NEW: Introduced a new, per-project, MCU configuration file mcuconf.h that
- contains all the drivers related settings.
-- NEW: Readability improvements to the channels code.
-- NEW: Serial driver model improvements, added states management and checks,
- added a new SD_NOISE_ERROR error event.
-- NEW: Improvements and optimizations in the various serial driver
- implementations.
-- Documentation fixes and improvements.
-
-*** 1.3.6 ***
-- FIX: Fixed missing STM32 PWM low level driver error in platform.mk by
- adding the driver files (bug 2913560).
-- NEW: The Linux simulator now works again, also supports the serial
- drivers over TCP/IP and has a command line interface like the Win32
- simulator.
-- NEW: STM32 PWM driver implementation.
-- NEW: LPC214x SPI driver implementation (SSP only, polled mode, no IRQ), this
- driver replaces the old, not HAL compatible, SSP driver.
-- NEW: LPC214x FatFS demo added, LPC214x minimal demo removed, LPC214x "normal"
- demo reduced to work like all the other generic demos.
-- NEW: Added custom mode settings to the STM32 PAL driver:
- - PAL_MODE_STM32_ALTERNATE_PUSHPULL
- - PAL_MODE_STM32_ALTERNATE_OPENDRAIN
-- NEW: Included all the board-specific files into a new directories structure
- under ./boards, this allows to not duplicate the board files into each demo.
-- CHANGE: Changes to the PWM driver model, made it simpler.
-- CHANGE: The STM32 device drivers now no more configure the I/O pins on
- initialization. Pins must be configured in board.h, the change was required
- in order to support the STM32 AFIO remapping feature.
-- CHANGE: Removed the mmcsd.c driver, it is replaced by the generic MMC_SPI
- driver present into the HAL.
-- CHANGE: Updated the GPL exception text in the documentation, this should be
- the final text for the stable version 1.4.x.
-
-*** 1.3.5 ***
-- FIX: Fixed problem with memory core allocator (bug 2912528).
-- FIX: Fixed problem with CH_USE_MEMCORE option (bug 2912522).
-- FIX: Fixed some problems in the MMC_SPI driver (bugs 2901084 and 2901172).
-- NEW: Added a command line shell component, modified the Win32 simulator
- in order to use the new shell. The shell can be used under any architecture,
- it just requires an I/O channel. Custom commands can be easily added.
-- NEW: Unified the initialization of the various drivers from a single HAL
- driver. The single drivers can be enabled or disabled from a HAL
- configuration file halconf.h.
-- NEW: New CAN driver model.
-- NEW: New PWM driver model.
-- NEW: STM32 ADC driver implementation with DMA support.
-- NEW: STM32 CAN driver implementation.
-- NEW: Extended the support to all the SAM7X and SAM7S devices thanks to
- code contributed by Liam Staskawicz.
-- NEW: Improvements to the AT91SAM7 startup code contributed by Liam.
-- NEW: Added test report for MSP430 running from the external high speed
- oscillator.
-- NEW: HAL stress test for STM32 added, the demo is located under
- ./testhal/STM32. The demo code also shows how to use the ADC, CAN and SPI
- drivers.
-- CHANGE: Removed the MII from the standard drivers, now it is part of the
- AT91SAM7 support, the header mii.h is still part of the HAL.
-- CHANGE: In the STM32 drivers now the DMA errors are handled by hook macros
- rather than by events. The default action is to halt the system but users
- are able to override this and define custom handling.
-- CHANGE: In the Cortex-M3 port, modified the NVICEnableVector() function
- to make it clear pending interrupts.
-- CHANGE: Minor changes to the ADC driver model.
-
-*** 1.3.4 ***
-- FIX: Fixed bug in STM32 PAL port driver (bug 2897636).
-- FIX: Fixed problem with ARM-CM3 context switch when compiled at level
- -O0 (bug 2890382).
-- FIX: Fixed wrong conditional in chschd.c (bug 2888836).
-- FIX: Fixed wrong macro in chheap.c (bug 2888833).
-- FIX: Fixed AIC initialization in AT91SAM7X support (bug 2888583).
-- NEW: New SPI (master) driver model.
-- NEW: SPI driver for STM32 implementing the new SPI driver model.
-- NEW: New ADC (streaming capable) driver model.
-- NEW: Generic MMC (over SPI) driver.
-- NEW: Added a STM32 demo that integrates the MMC driver and the FatFs
- file system.
-- NEW: Implemented I/O redirection on a serial driver into syscalls.c, now
- it is possible (but not recommended) to use printf()/scanf() etc. An usage
- example is in the new MMC/FatFs demo. Note the extra -D... into the Makefile.
-- CHANGE: Moved the STM32 firmware library under ./ext, this way there is no
- need to duplicate it in each demo program.
-- CHANGE: Moved the file stm32f10x.h from the demos to the platforms support
- directory.
-
-*** 1.3.3 ***
-- FIX: Fixed bug in the LPC2148 PAL driver (bug 2881380).
-- FIX: Fixed bug in the AT91SAM7X PAL driver (bug 2879933).
-- NEW: New MAC and MII driver models and implementations for the AT91SAM7X.
- Removed the old EMAC driver, updated the uIP WEB demo to use the new
- driver model.
-- NEW: Added a simple lwIP demo (web server) for the AT91SAM7X.
-- NEW: Centralized core memory manager. This simple allocator implements a
- sbrk()-like API: chCoreAlloc(). The other allocators now use this manager
- in order to get memory blocks.
-- NEW: The heap allocator has been modified, now it is possible to have
- multiple heaps. The default heap gets its memory from the new core memory
- manager.
-- NEW: Now memory pools can optionally get new objects automatically from the
- core memory manager.
-- NEW: Added newlib interface file syscalls.c under ./os/various for use with
- the newest YAGARTO releases. The file provides bindings between the C
- runtime and the core memory manager.
-- CHANGE: Because the changes in the allocators some API prototypes changed:
- chHeapAlloc(), chHeapStatus(), chThdCreateFromHeap().
-- CHANGE: Because the changes in the allocators some configuration options
- changed and some were removed, see the new template chconf.h file.
-- CHANGE: renamed ./demos/ARM7-AT91SAM7X-WEB-GCC in ARM7-AT91SAM7X-UIP-GCC.
-- FIX: Added the most restrictive GCC warning option to the makefiles (-Wextra)
- and fixed some warnings in the code, mostly unused function parameters.
-
-*** 1.3.2 ***
-- FIX: Fixed GCC 4.4.x aliasing warnings (bug 2846336)(backported in stable
- branch).
-- FIX: Modified linker scripts for GCC 4.4.x (bug 2846302)(backported in stable
- branch).
-- FIX: Fixed the CH_OPTIMIZE_SPEED option in the CM3 port (bug 2846278)
- (backported in stable branch).
-- FIX: Fixed GCC 4.4.x related problems in CM3 port (bug 2846162)(backported
- in stable branch).
-- FIX: Fixed LPC214x UART problem (bug 2841088)(backported in stable branch).
-- NEW: Improved the Cortex-M3 preemption code, now less interrupt-related
- jitter is generated and all benchmarks scores improved a bit.
-- NEW: Added new APIs chSchDoYieldS() and chThdYield().
-- MEW: Added new benchmark about RAM footprint.
-- MEW: Added new benchmark about round robin rescheduling.
-- NEW: Reorganized and rationalized the distribution tree and the
- documentation.
-- NEW: Enhanced serial driver. The driver now supports speed change at runtime
- and low power stop mode.
-- NEW: Serial driver removed from the kernel and added to the I/O subsystems
- together with PAL. Note that the related API names changed their prefix from
- chFDDxxx to sdxxx because of this.
-- NEW: Added standard CMSIS 1.2.0 support to the Cortex-M3 port. The kernel
- does not use it (the OS uses its own optimized code) but the functionality
- is available to the applications. The CMSIS files were patched in order
- to correct some warnings.
-- NEW: Updated the STM32 port to use the newest ST firmware library files
- (version 3.1.0). Note that now the ST drivers are included in the STM32
- demo directory.
-- NEW: Improved makefiles and makefile fragments, now the paths are not fixed,
- the fragments can be included also from projects outside the ChibiOS/RT files
- structure by simply defining the variable ${CHIBIOS}.
-- CHANGE: Removed the CH_USE_SERIAL_FULLDUPLEX configuration option because
- the serial driver is no more part of the kernel.
-- CHANGE: Reorganized the PAL and Serial identifiers now IOPORT1..N and
- SD1..N rather than IOPORT_A..Z and COM1..N, some of the old names were
- conflicting with some AVR libraries.
-
-*** 1.3.1 ***
-- FIX: Removed mention of an obsolete option from the documentation (bug
- 2799507).
-- NEW: Abstract digital I/O ports driver (PAL), this driver defines a common
- interface for digital I/O operations, this should help to create more
- portable applications and, in general, make easier to work with ChibiOS/RT
- on multiple architectures.
-- NEW: Port drivers for STM32, LPC214x, AT91SAM7X and MSP430, cleaned up the
- initialization code in board.c. All the demos now use PAL for I/O. AVR is
- not supported because its "sparse" registers layout, it would not be
- efficient enough for my taste.
-- Modified the STM32 demo to use the bit definitions in the ST header file,
- removed the bit definitions in board.h and stm32_serial.h.
-- Documentation section reorganization and fixes.
-- Changed the STM32 demo stack sizes, it was incorrectly adjusted in version
- 1.3.0 but it did not create problems (not a bug).
-
-*** 1.3.0 ***
-- FIX: Fixed regression in MinGW demo (bug 2745153)(backported in stable
- branch).
-- FIX: Fixed problem with the timeout constant TIME_IMMEDIATE, added a
- specific test in the test suite (bug 2755170)(backported in stable branch).
-- FIX: Fixed a problem in semaphores test case #2 (bug 2755195)(backported
- in stable branch).
-- FIX: Removed unused list functions (bug 2755230)(backported in stable
- branch).
-- FIX: Added license notice to several files (bug 2772160)(backported in
- stable branch).
-- FIX: Found new instances of the obsolete function chSysGetTime() in the
- C++ wrapper and in the WEB demo (bug 2772237)(backported in stable branch).
-- FIX: Fixed macro in test.h (bug 2781176)(backported in stable branch).
-- FIX: Fixed sequence assertion in test.c (bug 2789377)(backported in stable
- branch).
-- FIX: Fixed test_cpu_pulse() incorrect behavior (bug 2789383)(backported in
- stable branch).
-- FIX: Fixed missing volatile modifier for p_time field in Thread structure
- (bug 2789501)(backported in stable branch).
-- FIX: Fixed C99-style variable declarations (bug 2792919)(backported in
- stable branch).
-- FIX: Fixed instance of obsolete CH_USE_TERMINATE option in the C++ wrapper
- (bug 2796065)(backported in stable branch).
-- FIX: Insufficient stack allocated to the C++ LPC2148 demo (bug 2796069)
- (backported in stable branch).
-- FIX: Fixed errors in events test case (bug 2796081)(backported in stable
- branch).
-- NEW: Abstract I/O Channels mechanism introduced. This mechanism allows to
- access I/O resources through a standard interface and hides implementation
- details. The existing serial drivers were modified to offer a standard
- channel interface to the applications (the old APIs are retained as macros).
-- NEW: The I/O queues code was improved, now there are 2 separate structures:
- InputQueue and OutputQueue. There are some changes in the queue APIs
- in order to make them more symmetrical and functional. Improved the queues
- documentation. Some of the changes were needed in order to support the new
- channels mechanism as a backend for queued serial drivers.
-- NEW: Static initializers macros introduced for most kernel objects. The
- static initializers allow to not have to chXXXInit() any object and save some
- code space. The initialization functions are retained in order to allow
- initialization of dynamic objects and re-initializations.
-- NEW: Added more test cases in order to improve the test suite code coverage
- (it was 74% in version 1.2.0, it is now close to 100%).
-- NEW: Added test cases for the improved queues and serial drivers.
-- NEW: Added a code coverage analysis application under ./tests/coverage.
-- NEW: Added the test suite documentation to the general documentation.
-- NEW: Added a new "naked" context switch benchmark that better defines the
- real context switch time, previous benchmarks introduced too much overhead
- to the measurement. The STM32 performs the context switch in under 1.48uS.
-- NEW: Improved priority inheritance test cases.
-- NEW: Added architecture name strings to the port code.
-- NEW: Linux x86 simulator demo added. It is still work in progress.
-- CHANGE: Removed the half duplex queues and half duplex serial drivers because
- it was never extensively tested. The code is still available but not as part
- of the kernel.
-- CHANGE: Removed the chMsgSendWithEvent() function. It is rarely used and
- the functionality can be re-created with a compound atomic operation. Also
- removed the CH_USE_MESSAGES_EVENT configuration option.
-- CHANGE: Modified the test suite assertions in order to save RAM on the AVR
- targets. The test suite now uses much less string space.
-- CHANGE: Removed the CH_USE_SERIAL_HALFDUPLEX, CH_USE_QUEUES_TIMEOUT,
- CH_USE_QUEUES_HALFDUPLEX, CH_USE_SEMAPHORES_TIMEOUT configuration options.
-- CHANGE: Made CH_DBG_THREADS_PROFILING default to TRUE in all demos because
- the changes to the function test_cpu_pulse().
-- CHANGE: Increased main stack size to 1KiB for all the ARMx demos, 2KiB for
- the C++ LPC2148 demo. This should make things easier for unexperienced
- users.
-
-*** 1.2.0 ***
-- Added license exception text to the 1.2.0 branch.
-- FIX: Fixed serious AVR regression (bug 2731578).
-- FIX: Fixed build failure when CH_USE_MUTEXES=FALSE (bug 2730706).
-- FIX: Removed reference to an obsolete function (bug 2731661).
-- Full test cycle and test reports updated.
-- Small fixes to the documentation.
-
-*** 1.1.3unstable ***
-- FIX: Fixed makefile in STM32 demo, this bug was reported fixed in
- version 1.1.2 but it was still there (bug 2686451).
-- FIX: Fixed makefile in MSP430 demo (bug 2700690).
-- FIX: Fixed thumb mode build error in AT91SAM7X demos (bug 2700695).
-
-*** 1.1.2unstable ***
-- FIX: Fixed priority inheritance problem with condvars (bug 2674756) and
- added a specific test case to the test suite (backported in stable branch).
-- FIX: Fixed a problem in time ranges (bug 2680425)(backported in stable
- branch).
-- FIX: Build error with option CH_DBG_FILL_THREADS (bug 2683965).
-- FIX: Fixed a wrong parameter check in chVTSetI() and chThdSleep()
- (bug 2679155).
-- FIX: Build error with options CH_USE_NESTED_LOCKS && !CH_OPTIMIZE_SPEED
- (bug 2678928).
-- FIX: Removed unused chSysPuts() macro (bug 2672678).
-- FIX: Renamed function chSysInTimeWindow() as chTimeIsWithin() and renamed
- the macro chSysGetTime() in chTimeNow(), the old names are still recognized
- but marked as deprecated (fixes the bug 2678953 but goes a bit further by
- introducing a new API category "Time").
-- FIX: Fixed makefile problems in the AT91SAM7X256 and STM32 demos (bugs
- 2686347 and 2686451).
-- FIX: Fixed AT91SAM7X256 EMAC driver (bug 2686349).
-- FIX: Fixed small some errors in the documentation (bug 2692510).
-- OPT: Small optimization to the Cortex-M3 thread startup code, improved thread
- related performance scores and smaller code.
-- OPT: Alternative, non-inlined and more compact, implementations for
- port_lock() and port_unlock() in the Cortex-M3 port when CH_OPTIMIZE_SPEED
- is FALSE.
-- OPT: Improved ready list and priority ordered lists code, some space saved,
- better context switch performance.
-- Modified the test thread function to return the global test result flag.
-- Removed testcond.c|h and moved the test cases into testmtx.c. Mutexes and
- condvars have to be tested together.
-- Added architecture diagram to the documentation.
-- Removed from the documentation some references to long gone functions...
-
-*** 1.1.1unstable ***
-- FIX: Fixed a problem into the STACK_ALIGN() macro (backported in stable
- branch).
-- FIX: Fixed a problem with a wrong declaration of the PLL structure in the
- file lpc214x.h (backported in stable branch).
-- FIX: Fixed build problem with the C++ demo (bug 2687489).
-- FIX: Removed EMAC driver from the AT91SAM7X256 demo makefile (bug 2686347).
-- FIX: Removed C++ wrapper from the STM32 demo makefile (bug 2686451).
-- FIX: Fixed a problem with some event APIs not showing in the documentation
- (backported in stable branch).
-- FIX: Fixed wrong assertions in chThdWait() and chHeapFree() (backported in
- stable branch).
-- FIX: Fixed @file tag in sam7x_serial.c (bug 2788573) (backported in stable
- branch).
-- FIX: Fixed a small problem in the chcore.c template file.
-- NEW: Mailboxes (asynchronous messages) subsystem and test cases added.
-- NEW: Most APIs with a timeout specification now accept the constant
- TIME_IMMEDIATE (-1) that triggers an immediate timeout when trying to enter
- a sleep state.
-- NEW: Mode flexible debug configuration options, removed the old CH_USE_DEBUG
- and CH_USE_TRACE. Replaced with CH_DBG_ENABLE_CHECKS, SCH_DBG_ENABLE_ASSERTS,
- CH_DBG_ENABLE_TRACE and CH_DBG_FILL_THREADS.
-- NEW: Added a debug option CH_DBG_THREADS_PROFILING for threads profiling.
- A field into the Thread structure counts the consumed time. The information
- is not used into the kernel, it is meant for debugging.
-- NEW: Added a debug option CH_DBG_ENABLE_STACK_CHECK for stack overflow
- checking. The check is not performed in the kernel but in the port code.
- Currently only the ARM7 and ARMCM3 ports implements it.
-- NEW: Unified makefiles for ARM7, ARMCM3 MSP430 projects, the new makefiles
- share a common part making them easier to maintain. Also reorganized the
- demo-specific part of the makefile, now it is easier to configure and the
- option can be overridden from outside.
-- CHANGE: Changed the chSemFastWaitS() macro in chSemFastWaitI() and
- chSemGetCounter() in chSemGetCounterI().
-- CHANGE: Removed the port_puts() function from the port templates. It was not
- implemented on all ports.
-- Improvements to the test suite, added a new level of indirection that allows
- to make tests depend on the configuration options without have to put #ifs
- into the test main module. New benchmarks about semaphores and mutexes.
-
-*** 1.1.0unstable ***
-- FIX: Modified the default value for the STM32 HSI setup it was 1, it should
- be 0x10 (backported in stable branch).
-- FIX: Removed an obsolete constant (P_SUSPENDED) from thread.h (backported in
- stable branch).
-- FIX: Removed unused field mp_grow in the MemoryPool structure (backported in
- stable branch).
-- NEW: Added to the STM32 demo makefile an option to build ChibiOS/RT with the
- full STM32 FWLib 2.03. **NOTE**, except for the makefile option, the
- library is not used by the OS nor required (backported in stable branch).
-- NEW: Better separation between the port code and the system APIs, now an
- architecture-specific "driver" contains all the port related code.
- Port functions/macros are no more directly exposed as APIs to the user code.
-- NEW: Added a configuration option to enable nested system locks/unlocks.
-- NEW: Improved the interrupt handlers related code. Now interrupts are
- handled in a very similar way in every architecture. See the "Concepts"
- section and the "Writing interrupt handlers under ChibiOS/RT" article in the
- documentation.
-- NEW: Added the chEvtSignal() and chEvtSignalI() APIs that allows direct
- thread signaling, much more efficient that chEvtBroadcast() when the target
- is a known single thread.
-- NEW: Added a configuration option that enables the priority enqueuing on
- semaphores. It is defaulted to off because usually semaphores are used for
- I/O related tasks without hard realtime requirements.
-- NEW: Now the all the options in chconf.h and the various driver headers
- can be overridden externally, for example from within the Makefile.
- The options are no mode a simple define but a define with an assigned
- TRUE/FALSE value within an #ifndef block.
-- NEW: Idle thread hook macro added to the configuration file.
-- NEW: Changed the ARM7 and Cortex-M3 startup files, now the action when
- the main() function returns can be overridden by redefining the symbol
- MainExitHandler.
-- OPT: Improved ARM7 thumb port code, thanks to some GCC tricks involving
- registers usage now the kernel is much smaller, faster and most OS APIs
- use less RAM in stack frames (note, this is an ARM7 thumb mode specific
- optimization).
-- CHANGE: Now the API chThdSetPriority() returns the old priority instead
- of void.
-- CHANGE: Modified the signature of the chMsgSendWithEvent() API, it now uses
- a more efficient event signaling method.
-- CHANGE: Removed the field p_tid from the Thread structure and the related
- code, this improved the thread creation scores (~2%) and saves some RAM.
- The trace buffer field cse_tid is now populated with a simple hash of the
- thread pointer as thread identifier.
-- CHANGE: Renamed the macros chSysIRQEnter() and chSysIRQExit() in
- CH_IRQ_PROLOGUE() and CH_IRQ_EPILOGUE() in order to make very clear that
- those are not functions but inlined code. Also introduced a new macro
- CH_IRQ_HANDLER that should be used when declaring an interrupt handler.
-- CHANGE: Renamed several internal initialization functions by removing the
- "ch" prefix because could not be considered system APIs.
-- Improved ARM7 and Cortex-M3 support, new configuration options.
-- Introduced the concept of interrupt classes, see the documentation.
-- Introduced the concept of system states, see the documentation.
-- Huge improvements to the documentation.
-- Articles and notes previously in the wiki now merged in the general
- documentation and updated, the wiki entries are obsolete and will be removed.
-- New application notes and articles added.
-- Added kernel size metrics to the test reports.
-- Removed the inclusion graph from the documentation because the little
- info they add and the size of all the images. It is possible to configure
- Doxygen to have them again (and more graph types).
-
-*** 1.0.0 ***
-- License switch, added GPL exception, see exception.txt.
-- Full test cycle and test reports updated.
-- Renamed some occurrences of "Conditional Variable" in "Condition Variable" in
- the documentation.
-- FIX: Fixed some images in the documentation because problems when seen in
- Internet Explorer.
-
-*** 1.0.0rc3 ***
-- FIX: Fixed a nasty regression to the timeout unified code that affected
- some APIs since version 0.5.3. See the bug tracker for more details.
- Added a test case about this.
-- FIX: Removed the API chThdSuspend() there was a conceptual flaw and I want
- to think about the whole concept again before introducing something similar
- in future. Anyway, it is possible to replicate the functionality using
- chSchGoSleepS().
-- Fixed typos here and there.
-- Updated the states diagram in the documentation.
-
-*** 1.0.0rc2 ***
-- FIX: Removed unused variable "retaddr" from the Cortex-M3 port.
-- FIX: The macro THD_WA_SIZE was defined wrongly in the file
- ./src/templates/chcore.h.
-- Fixed some errors in the documentation.
-
-*** 1.0.0rc1 ***
-- NEW: Added new macros CH_KERNEL_VERSION set to "1.0.0rc1", CH_KERNEL_MAJOR
- set to 1, CH_KERNEL_MINOR set to 0, CH_KERNEL_PATCH set to 0.
- The macros will be updated to reflect the actual kernel version number.
-- NEW: Made all the port-specific configuration settings externally
- configurable, see the documentation.
-- FIX: Disabled the configuration option CH_USE_MESSAGES_PRIORITY from the
- MSP430 demo, the default for this option should be off.
-- FIX: Fixed a bug that prevented the THREAD_EXT_FIELDS to be compiled into
- the Thread structure.
-- FIX: Removed some references to deprecated APIs from the test suite.
-- FIX: Set the INT_REQUIRED_STACK configuration value for the ARM7 port to a
- safer 0x10, it was previously 0 (correct but trimmed to specific compiler
- settings).
-- FIX: Set the INT_REQUIRED_STACK configuration value for the AVR port to a
- safer 32.
-- FIX: Fixed the MinGW demo in order to not use any deprecated construct.
-- Removed deprecated threads APIs: chThdCreate() and chThdCreateFast().
-- Removed deprecated events APIs: chEvtWait(), chEvtWaitTimeout(), chEvtSend(),
- chEvtSendI(), EventMask().
-- Removed deprecated configuration feature CH_USE_EXIT_EVENT and the related
- API chThdGetExitEventSource(). The feature can be reimplemented in user code
- as shown by the MinGW demo.
-- Removed deprecated macros: WorkingArea(), UserStackSize(), StackAlign().
-- Added usage note into the readme of the MinGW demo.
-- Added usage notes for programmers to the ARM7 port documentation about
- interrupt handlers.
-- Port-specific settings added to the documentation.
-- Added source browser to the documentation.
-- Fixes and improvements through the documentation.
-
-*** 0.8.3 ***
-- NEW: Introduced new API chThdSleepS() as a macro, no real changes in the
- kernel code.
-- FIX: The MinGW simulated demo now works again after breaking in 0.8.2
- because the changes to the macro names.
-- FIX: Adjusted the test suite stack sizes for the MinGW simulated demo, now
- the demo passes all the tests.
-- FIX: Added fflush(stdout) to the MinGW simulation code output in order to
- make the Eclipse console work correctly.
-- FIX: Renamed the MinGW demo main source from demo.c to main.c in order to
- follow the pattern of all the other demos.
-- FIX: Added debug switches to the MinGW simulated demo, not it is possible to
- debug the demo (and the kernel) inside Eclipse without a physical board.
-- Removed lots of old deprecated constructs from the MinGW simulated demo.
- There are still some, the demo will need some rework before version 1.0.0.
-- Updated the C++ wrapper with the latest APIs changes and fixed some bugs.
-- Small fixes to the documentation.
-
-*** 0.8.2 ***
-- FIX: Included the files that were missing from version 0.8.1 distribution.
-- FIX: Duplicated sections in the documentation removed.
-- FIX: Minor problem in Cortex-M3 and AVR ports when the kernel is compiled
- using G++.
-- NEW: Added chPoolAllocI() and chPoolFreeI() APIs in order to allow the use
- of memory pools from interrupt handlers and timer callbacks.
-- CHANGE: Simplified the code for chThdWait(), it is now both smaller and
- faster. Added an important usage note to the documentation of this API.
-- CHANGE: The macros WorkingArea(), UserStackSize() and StackAlign() are now
- deprecated and will be removed in version 1.0.0. Use the new equivalents
- WORKING_AREA(), THD_WA_SIZE() and STACK_ALIGN() instead.
-- CHANGE: Renamed the default idle thread function from _IdleThread() to
- _idle().
-- Added to the LPC2148 and STM32 load scripts the options "ALIGN(16)
- SUBALIGN(16)" to the flash loading section in order to enforce the alignment
- for both the code and read only data. This is done in order to obtain more
- accurate timings from benchmarks, those families have 16 bytes
- prefetch buffers and are very sensitive to alignment changes.
- You can remove those options in order to save some flash space if accurate
- response time is not on top of your priorities, it mainly depends on your
- requirements.
-
-*** 0.8.1 ***
-- FIX: Fixed a regression in version 0.8.0, the configuration switch
- CH_USE_EVENTS_TIMEOUT was redefined as CH_USE_EVENT_TIMEOUT and this broke
- the code using events timeouts (the LPC2148 C++ demo).
-
-*** 0.8.0 ***
-- NEW: Added condvars mechanism on top of the mutexes subsystem.
-- NEW: Improved events subsystems, now it is also possible to use it just as
- "event flags" without have to use event handler callbacks.
- Some new APIs were introduced:
- * chEvtWaitOne() - Wait for a single event.
- * chEvtWaitAny() - Wait with OR condition.
- * chEvtWaitAll() - Wait with AND condition.
- * chEvtDispatch() - Invokes the event handlers associated to a mask.
- * chEvtPend() - Quickly self-pends some events.
- * chEvtRegisterMask() - Registers a set of flags on a single source.
- * EVENT_MASK() - Replaces the old EventMask() macro.
- All the "wait"-type APIs have a timeout-capable variant.
-- CHANGE: The old EventMask(), chEvtWait() and chEvtWaitTimeout() APIs are
- now deprecated and will be removed in version 1.0.0.
-- CHANGE: Modified chDbgAssert() to syntax check the condition even when the
- CH_USE_DEBUG is disabled, it produces no code but allows to check the
- optional code without have to compile twice.
-- FIX: Fixed a warning generated by the chEvtIsListening() macro.
-- Added new test cases to the test suite about condvars and the new events
- APIs.
-- Added a new benchmark to the test suite (timers set/reset performance).
-- Renamed the macro fifo_init() to queue_init() because it is used to init
- both FIFO queues and priority queues.
-- Fixes and improvements to the documentation.
-- Cleaned demo applications of old events code.
-
-*** 0.7.3 ***
-- FIX: Fixed a bug in chThdSleepUntil(), this API is no more a macro now.
-- NEW: New chThdSleepSeconds(), chThdSleepMilliseconds() and
- chThdSleepMicroseconds() utility macros.
-- CHANGE: Zero is no more a valid time specification for the chVTSetI() API.
-- CHANGE: Removed the files chsleep.c and sleep.h.
-- CHANGE: Renamed the files chdelta.c and delta.h to chvt.c and vt.h. All the
- system time related functions and macros are now there.
-- CHANGE: Renamed the structure DeltaList to VTList, it includes the system
- time counter too now.
-- CHANGE: Removed the CH_USE_SYSTEMTIME and CH_USE_VIRTUAL_TIMER configuration
- options in order to make the chconf.h file simpler. The related subsystems
- are almost always required and are now always included.
-- Small optimization to the MSP430 serial driver.
-- Improvements to the test code, now a failed assert terminates the test case.
-- Added dependency informations handling to the MSP430 demo Makefile.
-- Removed the performance spreadsheet (it was *very* old) and added a
- directory containing the test reports ./docs/reports. Each report shows the
- results from the latest test run on each target.
-- Small fixes to the documentation.
-
-*** 0.7.2 ***
-- NEW: Added a serial driver to the MSP430 port, the MSP430 port now has been
- tested on hardware and passes the test suite.
-- NEW: Added to the MSP demo program the option to run from the internal DCO
- or from an external xtal. The default is the internal DCO.
-- NEW: Added macros to convert from seconds, milliseconds and microseconds to
- system ticks. This improves application code portability among different
- ports.
-- CHANGE: Modified the test suite to use the new time conversion macros.
-- CHANGE: Modified the CM3 startup file in order to implement an early
- initialization phase: hwinit0, the late initialization phase is now named
- hwinit1. The demo now initializes the PLL before initializing the BSS and
- DATA segments, this greatly optimizes the system start up time.
-- NEW: Unified ARM7 startup file, it is shared by the LPC and SAM7 demo
- projects. The new startup file implements early and late initialization
- phases as described above for the CM3 startup file.
- The architecture specific vector tables are now encapsulated into the
- vectors.s files.
-- Modified the STM32 demo makefile to use the latest YAGARTO toolchain as
- default (arm-elf-gcc).
-- Documentation improvements, added collaboration diagrams and call graphs.
- Added a documentation-related readme under ./docs.
-
-*** 0.7.1 ***
-- NEW: New chThdInit() and chThdCreateStatic() APIs now replace the old
- chThdCreate() and chThdCreateFast() that are thus marked as deprecated.
- The new APIs use one less parameter and are faster.
-- NEW: New dynamic chThdCreateFromHeap() and chthdCreateFromMemoryPool() APIs.
- The dynamic APIs are only included if the CH_USE_DYNAMIC option is specified
- into the project configuration file.
-- NEW: Added an THREAD_EXT_EXIT macro in chconf.h to add finalization code to
- the chThdExit() API.
-- CHANGE: chThdCreateFast() is now a macro that uses chThdCreateStatic().
-- CHANGE: chThdWait() now releases the memory allocated by
- chThdCreateFromHeap() and chthdCreateFromMemoryPool(). Threads created
- through the static APIs are not affected thus the behavior is backward
- compatible.
-- CHANGE: Modified the chThdResume() API to return the resumed thread pointer
- instead of void. This allowed few optimization into the threads creation
- code.
-- CHANGE: The chThdGetExitEventSource() API and the CH_USE_EXIT_EVENT
- configuration option and the are now deprecated. Use the THREAD_EXT_EXIT
- finalization macro in order to implement a similar functionality if needed.
-- FIX: The chThdCreate() had a regression in 0.7.0, the mode parameter was
- ignored.
-- FIX: Removed duplicated call to chHeapInit() into chSysInit().
-- FIX: Fixed a syntax error in chheap.c triggered by the CH_USE_DEBUG option.
-- Added new test cases to the test suite for the new dynamic APIs.
-- Documentation fixes.
-
-*** 0.7.0 ***
-- NEW: Memory Heap Allocator functionality added. The allocator implements a
- first-fit strategy but there is an option that allow it to wrap the compiler
- provided malloc() that may implement a different strategy. The heap
- allocator is thread-safe and can use both a mutex or a semaphore as
- internal synchronization primitive.
-- NEW: Memory Pools functionality added, this mechanism allows constant-time
- allocation/freeing of constant-size objects. It can be used to dynamically
- allocate kernel objects like Semaphores, Mutexes, Threads etc fully in real
- time, of course it is also possible to manage application-defined objects.
- The pool allocator is thread-safe.
- It is worth remembering that the kernel is still entirely static, it does
- not use the allocation services internally, it is up to the application
- code to use the allocators in order to use dynamic system objects.
- Both the allocators can be disabled and removed from the memory image.
-- NEW: Added option macros in chconf.h to add custom fields and initialization
- code to the Thread structure.
-- FIX: Corrected the wrong definition of the chThdResumeI() macro.
-- FIX: The API chSemWaitTimeout() was missing in the documentation.
-- CHANGE: Modified the chMtxUnlock() and chMtxUnlockS() APIs to return the
- pointer to the released mutex instead of void.
-- CHANGE: Now the chThdResume() API asserts that the thread is in PRSUSPEND
- state rather than test it.
-- CHANGE: Removed the CH_USE_TERMINATE, CH_USE_SLEEP, CH_USE_SUSPEND and
- CH_USE_RESUME configuration options in order to make the chconf.h file
- simpler. The related functions are very small and almost always required.
-- CHANGE: The P_MSGBYPRIO thread option has been removed, now the threads
- always serve messages in priority order if the CH_USE_MESSAGES_PRIORITY
- configuration option is active.
-- Added new test cases to the test suite.
-
-*** 0.6.10 ***
-- FIX: Fixed a case-sensitiveness error in lpc214x_ssp.c, it affected only
- linux/unix users.
-- FIX: Fixed a regression introduced in version 0.6.9, the queues benchmark
- test case was missing from the tests list.
-- NEW: Added an option to the ARM7 ports, by specifying -DREENTRANT_LOCKS in
- the makefile options makes the chSysLock() and chSysUnlock() become
- reentrant. The code becomes a bit larger and slower, use it only if your
- application really needs to invoke system API under lock.
-- NEW: Added an option to the ARM7 and CM3 makefiles to strip any unused code
- and data from the binary file (the default is on).
-
-*** 0.6.9 ***
-- NEW: Added an option to exclude the support for the round robin scheduling,
- this can save some extra program space and makes the context switch a bit
- faster if the feature is not required. Threads at the same priority level
- are still supported when the feature is disabled but the scheduling among
- them becomes cooperative.
-- OPT: Improved reschedule time by reordering the sequence of operations,
- now during enqueuing the ready list contains one less element. This change
- also slightly improves the interrupt latency.
-- OPT: Optimization to the chSemReset(), reversed the order of dequeuing.
-- FIX: Fixed a bug in the chThdSetPriority() API.
-- FIX: Modified the structure names into nvic.h in order to not make them
- collide with external libraries.
-- Added a benchmark to the test suit that measures the mass reschedule
- performance.
-- Added a test_terminate_threads() function to the test framework.
-- Made the Cortex-M3 port preemption code more readable.
-- Added a ENABLE_WFI_IDLE option to the chcore.h file in the Cortex-M3 port,
- setting this option to 1 enables the kernel to enter a low power mode when
- executing the idle thread. Be careful however, this option can be not
- compatible with some JTAG probes, it is better to enable it only on final
- builds and not when debugging.
-
-*** 0.6.8 ***
-- FIX: Fixed a bug in the priority inheritance mechanism, the bug was only a
- problems when the CH_USE_MESSAGES_PRIORITY was enabled, this option is
- disabled by default in ChibiOS/RT so it should not affect any user.
-- CHANGE: The function chEvtSend() and chEvtSendI() are now renamed in
- chEvtBroadcast() and chEvtBroadcastI(), the old names are still available
- but are deprecated.
-- Made the default BASEPRI levels (CM3 port) configurable into chcore.h.
-- Many improvements to the documentation.
-- All the fixes and changes in this release were suggested/submitted by
- Leon Woestenberg (thank you).
-
-*** 0.6.7 ***
-- NEW: New chThdCreateFast() API, it is a simplified form of chThdCreate()
- that allows even faster threads creation. The new API does not support
- the "mode" and "arg" parameters (still available in the old API).
-- OPT: Removed an unrequired initialization and made other small optimizations
- to the chThdCreate().
-- OPT: Improvements to the test framework, now a virtual timer is used instead
- of software loops into the benchmarks in order to have more stable results.
-- New benchmark added to the test suite.
-- Added the C++ wrapper entries to the documentation.
-- Fixed the documentation entry for the chThdCreate() API.
-- Removed redundant ifdefs from the ch.h header.
-
-*** 0.6.6 ***
-- NEW: Improved test suite, now the suite is divided in modules and the code
- is much easier to understand. The new framework simplifies the inclusion of
- new test cases and makes possible to verify the exact sequence and the
- timing of test events.
-- NEW: New API chSysInTimeWindow() that checks if the current system time is
- within the specified time window.
-- FIX: Mutex test #1 in the test suite corrected, it failed to... fail.
-- FIX: Fixed a problem in the STM32 port USART1 driver.
-- FIX: Fixed a problem in the MMC/SD driver in the LPC2148 demo.
-- Added the definitions for packed structures to the chtypes.h files.
-- Improvements to the makefiles, now each source group has its own .mk include
- file. Now it is no more required to rewrite everything in each makefile.
-
-*** 0.6.5 ***
-- NEW: Web server demo for the AT91SAM7X256, the demo integrates the uIP
- stack and its demo applications.
-- NEW: EMAC driver added to the AT91SAM7X port.
-- FIX: Small fix to the ARM7 startup files. It used a short jump in the reset
- vector and that could fail in some memory configurations.
-- Documentation improvements.
-
-*** 0.6.4 ***
-- NEW: MSP430 port, the port code compiles correctly but it is not tested yet.
- The port requires the MSPGCC toolchain.
-- NEW: Added a CH_ARCHITECTURE_xxx define to the various chcore.h files, it
- allows to write port-dependent code.
-- NEW: Added to the documentation the technical notes about the currently
- supported ports.
-- FIX: In the ARM7 and ARMCM3 ports chanced the bool_t base type from int8_t
- to int32_t, this produces a bit faster and smaller code.
- It is nowhere required the bool_t type to be one byte sized.
-- FIX: Small fixes to the template files, there were some leftovers of the old
- type names.
-- FIX: Modified the ARM demos makefiles in order to make them more compatible
- with GCC 4.3.0, it seems the new GCC assumes -mthumb-interworking and
- -mabi=apcs by default, at least the builds I tested did so, now the makefiles
- explicitly assert -mno-thumb-interworking and -mabi=apcs-gnu in order to
- produce better code.
-- Added an Ethernet driver for AT91SAM7X EMAC, not complete yet, it will be
- required by a uIP web server demo under ChibiOS/RT coming in some next
- release.
-
-*** 0.6.3 ***
-- NEW: ARM Cortex-M3 port completed. The demo program targets the STM32F103
- chip from ST Microelectronics on an Olimex STM32-P103 board.
-- FIX: Fixed a minor error in ./ports/ARM7-LPC214x/vic.h, it should not affect
- anything.
-- FIX: Minor fix: in chThdCreate() a working area size equal to
- UserStackSize(0) was asserted as an error when in debug mode. It is now
- allowed.
-- FIX: Increased the stack size for the threads in the test suite to 128 bytes
- because THUMB/THUMB2 modes seem to use a lot more stack than ARM mode.
-
-*** 0.6.2 ***
-- NEW: Added C++ wrapper around the ChibiOS/RT core APIs, now it is possible
- to use the OS in a fully object oriented application. The wrapper offers
- classes that encapsulate threads, semaphores, mutexes, timers etc. Normal C
- APIs are still accessible from C++ code as usual.
-- NEW: Added a new LPC2148 demo using the new C++ wrapper, it is a good
- example of C++ used for an embedded application. The demo does not use RTTI
- nor standard libraries so the resulting code is very compact.
-- Enhanced the chSemSignalWait() API to return the wakeup message just like
- the other "Wait" semaphore functions do.
-- Fixed a minor problem in the ARM7 port, the extctx structure definition was
- missing one field, the effect was to allocate stacks 4 bytes shorter than
- the declared size.
-- Fixed a compile time error into the chThdSleepUntil() macro.
-- Fixes in various headers to make some macros compatible with both C and C++.
-- Fixed a regression in the LPC214x minimal demo that broke interrupt
- handling.
-- Some fixes to the doxygen documentation.
-- More work done on the ARM-CM3 port but it is still not complete.
-
-*** 0.6.1 ***
-- Removed some redundant checks from the scheduler code: improved threads
- flyback time, reduced interrupts service time.
-- Nice scheduler speed improvement obtained by removing the 2nd parameter to
- the chSchReadyI() API and manually assigning the message value only where
- is really needed (very few points in the code).
-- More space savings and speed improvements obtained by removing the
- -fno-strict-aliasing option from the makefiles, now the kernel compiles
- without any warning even without this option.
-- Removed the -falign-functions=16 option from the AT91SAM7X demo makefiles,
- the Atmel chip does not require it, the option is still present on the
- LPC21xx demos. This saves significant program space.
-- Started work on ARM Cortex-M3 architecture. The target chip is the STM32F103
- on a Olimex STM32-P103 board.
-- Added a threads state diagram to the documentation.
-- Various fixes to the doxygen documentation.
-
-*** 0.6.0 ***
-- Code refactory, all the old sized-integer definitions like LONG32, UWORD16
- etc are now replaced by the proper definitions provided by the compiler
- into stdint.h.
-- Code refactory, the previous system types style using a t_ in front of the
- name has been replaced with the standard trailing _t. The system now uses
- the size_t type defined into stddef.h. Some type names were modified in
- order to not match commonly used type names.
-- The above changes have an impact on some API prototypes but we can't help
- it, the changes were required because the type names were a concern for
- some users.
-- Implemented a serial driver in the AVR port.
-- Implemented a simple HD44780 LCD driver into the AVRmega128 demo.
-- Reworked the AVR AT90CAN128 port to share the common AVR code.
-- Modified the test suite to be compatible with 8 bit micros.
-- MSVC demo dropped, it is still possible to use the MinGW demo as simulator
- in Win32.
-- Fixed a minor error in sam7x_serial.h and lpc214x_serial.h.
-- The kernel is *unchanged* compared to version 0.5.3 except for the type
- names but the change is important enough to make this a recommended update.
-
-*** 0.5.5 ***
-- Added an AVRmega128 port. The previous AT90CANx port is still present but
- it will be redone after the AVRmega128 port is complete because it will
- share most of it. The demo is very simple, it will be expanded in next
- releases.
-- Reorganized the code of the two ARM7 ports, now all the common ARM7 code
- is in ./ports/ARM7. This will make maintenance and new ARM7 ports much much
- easier.
-- Simplified the directory structure under ./ports.
-- Added to the readme a section with our future plans/ideas.
-- The kernel is *unchanged* compared to version 0.5.3, just the new port and
- the new demo were added.
-
-*** 0.5.4 ***
-- Port for Atmel AT91SAM7X256 introduced, the port should be usable also on
- SAM7S and SAM7XC but no tests were performed. Other SAM7 processors should
- also be usable with limited changes.
- The demo currently just performs basic operations, will be enhanced in next
- ChibiOS/RT releases, see the demo readme.txt file.
-- Small fix to the thumb mode IRQ code on the LPC214x port, removed some extra
- code.
-- The kernel is *unchanged* compared to version 0.5.3, just the new port and
- the new demo were added.
-
-*** 0.5.3 ***
-- Removed the chMsgSendTimeout() API, it was conceptually flawed because,
- after sending a message, the sender *has* to wait for the answer or
- the next sender in queue would receive it instead (the messages server has
- no way to know that the sender is gone because a timeout).
- A workaround would make the messages subsystem much heavier and this is
- not acceptable.
-- Removed the test case for chMsgSendTimeout() from the test suite.
-- Space saved by reorganizing the timeout code into a single scheduler
- function chSchGoSleepTimeoutS().
-- Space optimizations in the semaphores code.
-- The API chThdSleepUntil() become a macro saving some more code space.
-- Because all the above changes the kernel code (ARM) is over 700 bytes
- smaller.
-
-*** 0.5.2 ***
-- Fixed a small problem in the main header file ch.h.
-- Small reordering in the fields of the Thread structure in order to optimize
- the space when messages are not used.
-
-*** 0.5.1 ***
-- NEW: Priority enqueing for messages can be optionally enabled by specifying
- the P_MSGBYPRIO option when creating a message server thread.
- This change allows the implementation of a priority ceiling protocol into
- message servers threads. Threads serving messages by priority and threads
- serving messages in FIFO order can exist at the same time in the system.
- This feature can be enabled or disabled by toggling the option
- CH_USE_MESSAGES_PRIORITY into the chconf.h file (disabled by default, old
- behavior).
- Note: This option brings a small overhead when sending a message regardless
- if in FIFO or priority order, if you don't need priority ordering for your
- messages it is better to keep the feature disabled in chconf.h.
-- Added to the ARM demos load scripts the capability to load code in RAM
- instead flash, the function must be marked as:
- __attribute__((section(".ramtext")))
- The option -mlong-calls should be specified in the makefile too or the
- function declared with the "long-call" attribute.
-- Fixed the MSVC demo project files.
-- Fixed some syntax incompatibilities between GCC and MSVC into chmtx.c.
-
-*** 0.5.0 ***
-- NEW: Mutexes, the new mechanism provides a complete implementation of the
- "priority inheritance" algorithm as a tool for work around the priority
- inversion problem.
- The Mutexes are not meant to replace the Semaphores that still are the best
- synchronization mechanism between interrupt handlers and high level
- code, something that Mutexes cannot do.
- Soon an article will be added to the wiki describing pro and cons of the
- various mechanisms and the correct use cases.
-- RT Semaphores subsystem removed, the Mutexes implements a better solution
- for the same problem.
-- Fixed a bug in the round robin scheduling mode, see the bug tracker for
- details and a fix for previous versions.
-- More performance improvements to the scheduler. The ready list insertion
- sequence is now reversed, it is scanned starting from the highest priority
- end. This has an important side effect into the chSchWakeupS() that makes
- most of the ready list insertions happen in constant time (extraction is
- done always in constant time).
- The worst case is always proportional to the number of threads in the ready
- list but the normal case is much more often constant than linear. See the
- new benchmarks added to the test suite.
-- Added mutexes test cases and new benchmarks to the test suite.
-- Modified the test suite in order to have each test case to have the same
- alignment enforced on functions. This is done to reduce MAM/Cache alignment
- effects on the measurement.
-- IRQ entry/exit code is now encapsulated into two new macros, see chcore.h
- for details.
-- All the asm code previously in chcore2.s is now inline asm code in chcore.c
- (ARM port), chcore2.s removed.
-- Moved all the board specific definitions/code into two new files: board.c
- and board.h. Moved all the files no more board-dependent under ports/
- (ARM port).
-- Improved the kernel performance in THUMB mode by better exploiting MAM
- locality in some critical functions. The context switch benchmark shows
- 5% improved speed.
-
-*** 0.4.5 ***
-- Moved the serial IRQ handlers and VIC vectors initialization inside the
- serial drivers. Now the serial-related code is all inside the driver.
-- Moved all the other interrupt handlers from chcore2.s into chcore.c as
- inline asm code. The interrupt code now is faster because one less call
- level.
-- Fixed a minor problem in chSysHalt() now it disables FIQ too and makes sure
- to keep the processor in the state it had when it was halted.
- Note: This is not a kernel bug but something specific with the ARM port, the
- other ports are not affected.
-- Fixed the macro chThdResumeI(), it had a regression.
-
-*** 0.4.4 ***
-- Fixed a very important bug in the preemption ARM code, important enough to
- make this update *mandatory*.
- Note: This is not a kernel bug but something specific with the ARM port, the
- other ports are not affected.
-- Fixed a nasty bug in the pure THUMB mode threads trampoline code (chcore2.s,
- threadstart), it failed on THUMB threads returning with a "bx" instruction.
- The bug did not affect ARM mode or THUMB with interworking mode.
- Note: This is not a kernel bug but something specific with the ARM port, the
- other ports are not affected.
-- Fixed a bug in chIQGetTimeout(), interrupts were not re-enabled when exiting
- the function because a timeout. The problem affected that API only.
-- Fixed a potential problem in chSysInit(), it should not affect any past
- application.
-- Added a chDbgAssert() API to the debug subsystem.
-- Cleaned up the kernel source code using chDbgAssert() instead of a lot of
- "#ifdef CH_USE_DEBUG", it is much more readable now.
-- Now the threads working area is filled with a 0x55 when in debug mode, this
- will make easier to track stack usage using a JTAG probe.
-- Added an I/O Queues benchmark to the test suite.
-- Removed the chSchTimerHandlerI() routine from chschd.c and moved it into
- chinit.c renaming it chSysTimerHandlerI() because it is not part of the
- scheduler.
-
-*** 0.4.3 ***
-- Size optimization in the events code, now the chEvtWait() reuses the
- chEvtWaitTimeout() code if it is enabled.
-- Size optimization in the semaphores code, now the chSemWaitTimeout() just
- invokes the chSemWaitTimeoutS() inside its system mutex zone. Same thing
- done with chSemWait() and chSemWaitS().
-- Size optimization in the queues code.
-- Modified the return type of chSemWait() and chSemWaitS() from void to t_msg,
- this allows to understand if the semaphore was signaled or reset without
- have to access the Thread structure.
-- Added a threads create/exit/wait benchmark to the test suite, the system
- is capable of 81712 threads started/terminated per second on the reference
- LPC2148 board. The figure is inclusive of two context switch operations
- for each thread.
-- Minor improvement in the LPC214x serial driver, unneeded events were
- generated in some rare cases.
-- Fixed a chSysInit() documentation error.
-- Fixed a chEvtWaitTimeout() documentation error.
-- Added a new debug switch: CH_USE_TRACE, previously the trace functionality
- was associated to the CH_USE_DEBUG switch.
-
-*** 0.4.2 ***
-- Added a minimal ARM7-LPC demo, you can use this one as template in order to
- create your application. It is easier to add subsystems back to the small
- demo than remove stuff from the large one.
-- Introduced support for "pure" THUMB mode, it is activated when all the
- source files are compiled in THUMB mode, the option -mthumb-interworking is
- not used in this scenario and this greatly improves both code size and
- speed.
- It is recommended to either use ARM mode or THUMB mode and not mix them
- unless you know exactly what you are doing. Mixing modes is still supported
- anyway.
-- More optimizations in the scheduler, updated the performance spreadsheet.
-- Fixed a problem with the thread working area declarations, the alignment to
- 4 bytes boundary was not enforced. Now it is defined a new macro
- WorkingArea(name, length) that takes care of both the allocation and the
- alignment.
- Example:
- static WorkingArea(waThread1, 32);
- It is expanded as:
- ULONG32 waThread1[UserStackSpace(32) >> 2];
- Now the demos use the new declaration style.
-- Fixed a small problem in sleep functions introduced in 0.4.1.
-
-*** 0.4.1 ***
-- Modified the initialization code in order to have a dedicated idle thread in
- the system, now the main() function behaves like a normal thread after
- executing chSysInit() and can use all the ChibiOS/RT APIs (it was required
- to run the idle loop in previous versions).
- Now it is also possible to use ChibiOS/RT with a single main() thread and
- just use it for the I/O capabilities, Virtual Timers and events. Now you
- don't have to use multiple threads if you don't really need to.
-- Added a spreadsheet in the documentation that describes the advantages
- and disadvantages of the various optimization options (both GCC options and
- ChibiOS/RT options), very interesting read IMO.
-- The GCC option -falign-functions=16 is now default in the Makefile, it is
- required because of the MAM unit into the LPC chips, without this option
- the code performance is less predictable and can change of some % points
- depending on how the code is aligned in the flash memory, unpredictability
- is bad for a RTOS. This option however increases the code size slightly
- because of the alignment gaps.
-- Fine tuning in the scheduler code for improved performance, deeper
- inlining and other small changes, about 5% better scheduler performance.
-- Increased the default system-mode stack size from 128 to 256 bytes because
- some optimizations and the THUMB mode seem to eat more stack space.
-- Included a Makefile in the LPC2148 demo that builds in THUMB mode.
-- Const-ified a parameter in the chEvtWait() and chEvtWaitTimeout() APIs.
-- Removed the CPU register clearing on thread start, it was not really useful,
- it is better to maximize performance instead.
-- Cleaned up the ARM port code. Now it is easier to understand.
-- Cleaned up the LPC2148 demo in main.c, it is now well documented and
- explains everything, I assumed too much stuff to be "obvious".
-
-*** 0.4.0 ***
-- NEW, added a benchmark functionality to the test suite. The benchmark
- measures the kernel throughput as messages per second and context switches
- per second. The benchmark will be useful for fine tuning the compiler
- options and the kernel itself.
-- NEW, implemented a debug subsystem, it supports debug messages and a context
- switch circular trace buffer. The debug code can be enabled/disabled by
- using the CH_USE_DEBUG in chconf.h.
- The trace buffer is meant to be fetched and decoded by an external tool
- (coming soon, it can be accessed using JTAG in the meanwhile).
-- Added new API chThdGetPriority() as a macro.
-- Implemented panic messages when CH_USE_DEBUG is enabled.
-- Added a thread identifier field to the Thread structure, it is used only
- for debug.
-- Global variable stime modified as volatile.
-- API chSysGetTime() reimplemented as a macro.
-- Fixed a regression with the CH_CURRP_REGISTER_CACHE option.
-- Fixed a problem in the LPC2148 interrupt handling code, a spurious
- interrupts fix recommended on the NXP data sheet proved to be a very bad
- idea and not about real spurious interrupts also...
-- Fixed an harmless warning message in buzzer.c.
-
-*** 0.3.6 ***
-- Added SSP (SPI1) and ext.interrupts definitions to the lpc214x.h file.
-- Added SSP driver for the LPC2148.
-- Added experimental MMC/SD block driver to the LPC2148 demo in order to
- support file systems. The driver features also events generation on card
- insert/remove, hot plugging supported.
-- Added missing chThdSuspend() declaration in threads.h.
-
-*** 0.3.5 ***
-- Space optimization in events code.
-- Changed the behavior of chEvtWaitTimeout() when the timeout parameter is
- set to zero, now it is consistent with all the other syscalls that have a
- timeout option.
-- Reorganized all the kernel inline definitions into a single file (inline.h).
-- Fixed a minor problem in the interrupt initialization code for the LPC214x
- demo, regrouped the VIC-specific code into vic.c/vic.h.
-- Fixed a bug into the LPC2148 serial driver (limited to the serial port 2).
-- Implemented HW transmit FIFO preloading in the LPC2148 serial driver in
- order to minimize the number of interrupts generated, it is possible to
- disable the feature and return to the old code which is a bit smaller, see
- the configuration parameters in ./ARM7-LPC214x/GCC/lpc214x_serial.h.
-- Some more work done on the AVR port, it is almost complete but not tested
- yet because my JTAG probe broke...
-
-*** 0.3.4 ***
-- Fixed a problem in chVTSetI().
-- New API, chVTIsArmedI(), it is a macro in delta.h.
-- New API, chThdResumeI(), it is a macro in threads.h. This function is just
- an alias for chSchReadyI() but makes the code more readable.
-- New API, chThdSuspend(). New switch CH_USE_SUSPEND added to chconf.h.
-
-*** 0.3.3 ***
-- Modified the chVTSetI(), now for the "time" parameter can have value zero
- with meaning "infinite". This allows all the APIs with timeout parameters
- to be invoked with no timeout.
-- Fixes in the documentation.
-- Renamed some APIs in the "Sch" group to have an S suffix instead of I.
-
-*** 0.3.2 ***
-- Modified the chSysInit() to give the idle thread absolute priority, the
- priority is then lowered to the minimum value into the chSysPause(). This
- is done in order to ensure that the initializations performed into the
- main() procedure are finished before any thread starts.
-- Added chThdSetPriority() new API.
-- Added a generic events generator timer module to the library code.
-- Modified the ARM7-LPC214x-GCC demo to show the use of the event timer.
-- Added the "#ifdef __cplusplus" stuff to the header files.
-- Removed an obsolete definition in ./src/templates/chtypes.h.
-
-*** 0.3.1 ***
-- Test program added to the demos. Telnet the MinGW and MSVS demos and type
- "test" at the "ch>" prompt. On the LPC214x demo the test is activated by
- pressing both the board buttons. The test performs tests on the ChibiOS/RT
- functionalities.
- The test code is also a good example of APIs usage and ChibiOS/RT behavior.
-- Fixed bug in chEvtWaitTimeout(), the timeout code performed an useless
- dequeue operation.
-- Fixed a bug in chSemWaitTimeoutS() and chSemWaitTimeout(), the semaphore
- counter was not atomically updated on a timeout condition.
-- Fixed bug on RT semaphores, the priority queuing was broken.
-- Fixed a bug in the MinGW demo, the chThdExit() code was not correctly
- reported to the thread waiting in chThdWait().
-- Fixed a function declaration in semaphores.h.
-- Lists code moved into chlists.c from various other places optimized and
- reorganized.
-- The list of the threads waiting in chThdWait() is now a single link list,
- this saves some space.
-- Cleaned the template files code, the files contained some obsolete
- declarations.
-- Code optimization in chSemWaitTimeoutS(), chSemWaitTimeout() and
- chSemSignalWait().
-- Code optimization in chEvtSend().
-- Code optimization in chVTDoTickI().
-- Added a Semaphore pointer to the Thread structure, this allows to know on
- which semaphore a thread is waiting on. It takes no space because it is
- located in the union inside the Thread structure. This also allowed a minor
- optimization inside chSemWaitTimeout() and chSemWaitTimeoutS().
-- Changed the priority type to unsigned in order to make it compatible
- with a byte value, this is very important for 8 bits architectures.
-- Modified the MinGW and MSVS demos to use 1ms ticks instead of 10ms as
- before.
-
-*** 0.3.0 ***
-- ChibiOS/RT goes beta.
-- Diet for the threads code, some simple APIs become macros.
-- Thread Local Storage implemented as a single API: chThdLS().
- The API simply returns a pointer into the thread working area, see the
- documentation on the web site.
-- Moved some documentation and images from the web site into the Doxygen
- generated HTMLs.
-
-*** 0.2.1 ***
-- Optimizations in the RT semaphores subsystem. The support for this
- subsystem should still be considered experimental and further changes may
- happen in future versions.
-- Bug fix in the virtual timers handling code, now the timers can be re-armed
- from within the callback code in order to create periodic virtual timers.
-- Modified the t_prio type in the demos to be 32bits wide instead of 16bits,
- this results in a better code in critical sections of the kernel.
-
-*** 0.2.0 ***
-- Introduced support for ARM in thumb mode.
-- Optimized context switching when thumb-interworking is not required, one
- less instruction.
-- Minor fixes to the ARM demo.
-
-*** 0.1.1 ***
-- Some fixes into the documentation
-- Renamed the makefiles to Makefile, upper case M.
-
-*** 0.1.0 ***
-- First alpha release