mirror of
https://github.com/portapack-mayhem/mayhem-firmware.git
synced 2024-12-22 16:07:44 +00:00
1196 lines
66 KiB
Plaintext
1196 lines
66 KiB
Plaintext
|
*****************************************************************************
|
||
|
*** 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.
|
||
|
| | | +--LPC11xx/ - Drivers for LPC11xx platform.
|
||
|
| | | +--LPC13xx/ - Drivers for LPC13xx platform.
|
||
|
| | | +--LPC214x/ - Drivers for LPC214x platform.
|
||
|
| | | +--MSP430/ - Drivers for MSP430 platform.
|
||
|
| | | +--SPC56x/ - Drivers for SPC56x/MPC563xx platforms.
|
||
|
| | | +--STM32/ - Drivers for STM32 platform (common).
|
||
|
| | | +--STM32F1xx/- Drivers for STM32F1xx platform.
|
||
|
| | | +--STM32F2xx/- Drivers for STM32F2xx platform.
|
||
|
| | | +--STM32F4xx/- Drivers for STM32F4xx platform.
|
||
|
| | | +--STM32L1xx/- Drivers for STM32L1xx 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).
|
||
|
| | +--RVCT/ - Ports for the Keil RVCT compiler.
|
||
|
| | | +--ARMCMx/ - Port files for ARMCMx architectures (ARMv6/7-M).
|
||
|
| +--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.
|
||
|
+--tools - Various tools.
|
||
|
+--eclipse - Eclipse enhancements.
|
||
|
|
||
|
*****************************************************************************
|
||
|
*** Releases ***
|
||
|
*****************************************************************************
|
||
|
|
||
|
*** 2.6.8 ***
|
||
|
- FIX: Fixed spurious TC interrupt in STM32 UART (v1 and v2) driver (bug #584).
|
||
|
- FIX: Fixed invalid checks on STM32L1xx LSI and LSE clocks (bug #583).
|
||
|
- FIX: Fixed RCC CAN2 macros missing in STM32F1xx platform (bug #582).
|
||
|
- FIX: Fixed misplaced __set_BASEPRI() in STM32 OTGv1 driver (bug #566).
|
||
|
- FIX: Fixed typo in code doc of chOQWriteTimeout function (bug #565).
|
||
|
- FIX: Fixed wrong condition check in MMC_SPI driver (bug #564).
|
||
|
- FIX: Fixed wrong boolean operators in mutexes module (bug #563).
|
||
|
- FIX: Fixed missing macro in STM32 USBv1 and OTGv1 drivers (bug #562).
|
||
|
- FIX: Fixed wrong paths for OLIMEX_STM32-E407_REV_D board (bug #561).
|
||
|
- FIX: Fixed wrong TIM1/8_CLK on STM32F30x when using PCLK2 with prescaler
|
||
|
(bug #557).
|
||
|
- FIX: Fixed STM32 USARTv1: serial interrupt hang on overrun (and other) error
|
||
|
(bug #558).
|
||
|
|
||
|
*** 2.6.7 ***
|
||
|
- FIX: Fixed random R0 register corruption in Keil ARMCMx port when FPU
|
||
|
is enabled (bug #556).
|
||
|
- FIX: Fixed wrong CORTEX_PRIORITY_PENDSV value in ARMCMx ports (bug #555).
|
||
|
- FIX: Safer ADC start for STM32F4 and STM32L1.
|
||
|
- FIX: AT91SAM7 SPI1 undocumented errata on manual CS manipulation.
|
||
|
- FIX: AT91SAM7 SPI set CS pin mode.
|
||
|
- FIX: Fixed AT91SAM7 gpio modes.
|
||
|
- FIX: AT91SAM7 i2c and spi driver using wrong pins for many cpu variants
|
||
|
- FIX: Fixed STM32 USB driver randomly unable to transition to VALID state
|
||
|
(bug #554).
|
||
|
- FIX: Fixed OLIMEX STM32-E407 board.h errors (FAULT input swap and wrong
|
||
|
BUSON initial output state) (bug #551).
|
||
|
- FIX: Fixed STM32F3xx clock init fails if PLL is enabled at startup
|
||
|
(bug #550).
|
||
|
- FIX: Fixed problem in GCC scatter files (bug #548).
|
||
|
- FIX: Fixed kernel function chEvtWaitOne() malfunctioning (bug #547).
|
||
|
- FIX: Fixed minor warnings while building with IAR 7.3.0 (bug #542).
|
||
|
- FIX: Fixed STM32 OTGv1 usb_lld_pump improper stack filling (bug #541).
|
||
|
- FIX: Fixed chsnprintf sometimes doesn't terminate str (bug #538).
|
||
|
- FIX: Fixed wrong wait states for STM32F401 (bug #537).
|
||
|
- FIX: Fixed failure to compile EXT driver on STM32F401, re-opened
|
||
|
ticket (bug #517).
|
||
|
|
||
|
*** 2.6.6 ***
|
||
|
- FIX: Fixed error in STM32F30x adc_lld_stop() (bug #535).
|
||
|
- FIX: Fixed STM32 DIER register setting in PWM and ICU drivers (bug #534).
|
||
|
- FIX: Fixed ARMCM4 FPU exception randomly triggered (bug #533).
|
||
|
- FIX: Fixed control transfers larger than 127 bytes don't work (bug #531).
|
||
|
- FIX: Fixed STM32F0xx ADC driver enforces continuous mode (bug #528).
|
||
|
Note, this bug enforced a change, now the bit ADC_CFGR1_CONT must be
|
||
|
manually specified in the cfgr1 field of the ADCConversionGroup
|
||
|
structure when applicable.
|
||
|
- FIX: Fixed STM32F30x ADC driver enforces continuous mode (bug #527).
|
||
|
Note, this bug enforced a change, now the bit ADC_CFGR_CONT must be
|
||
|
manually specified in the cfgr field of the ADCConversionGroup
|
||
|
structure when applicable.
|
||
|
- FIX: Fixed double clock mode for TIM1/TIM8 on STM32F30x fails (bug #525).
|
||
|
- FIX: Fixed SDC initialization error with V1.1 cards (bug #523).
|
||
|
- FIX: Fixed Race condition in STM32 SDC driver (bug #522).
|
||
|
- FIX: Fixed failure to compile EXT driver on STM32F401 (bug #517).
|
||
|
- FIX: Fixed wrong DMA channels for STM32L1 I2C1 unit (bug #516).
|
||
|
- FIX: Fixed EXT driver compile error on STM32F030 (bug #514).
|
||
|
|
||
|
*** 2.6.5 ***
|
||
|
- FIX: Fixed race condition in Cortex-M4 port with FPU and fast interrupts
|
||
|
(bug #513).
|
||
|
- FIX: Fixed STM32F1xx warning in stm32_dma.c (bug #512).
|
||
|
- FIX: Fixed invalid checks in canSTM32SetFilters() function (bug #511).
|
||
|
- FIX: Fixed missing check when disabling STM32F1 shared DMA IRQs (bug #510).
|
||
|
- FIX: Fixed STM32L1 Medium Density Plus RTC Subseconds (bug #509).
|
||
|
- FIX: Fixed stm32 CCM .ld file needs NOLOAD (bug #506).
|
||
|
- FIX: Fixed dereference possibly null pointer before checking for nulliness
|
||
|
in STM32 RTCv2 driver (bug #505).
|
||
|
- FIX: Fixed race condition in STM32 (F1, F2, F4, L1) serial driver
|
||
|
implementation (bug #503).
|
||
|
- FIX: Fixed missing make dependencies for asm files (bug #501).
|
||
|
- FIX: STM32L1 Plus Clock and I2C (bug #495).
|
||
|
- NEW: Added support for STMicroelectronics STEVAL-MKI121V1 also known as
|
||
|
INEMO-M1 Discovery board. A simple demo application using USB has been
|
||
|
added.
|
||
|
- NEW: Added support for STMicroelectronics NUCLEO-F103RB board.
|
||
|
- NEW: Added support for STMicroelectronics NUCLEO-F401RE board.
|
||
|
- NEW: Added support for STMicroelectronics NUCLEO-F030R8 board.
|
||
|
- NEW: Added support for STMicroelectronics NUCLEO-L152RE board (not tested
|
||
|
because lack of support in OpenOCD).
|
||
|
- CHANGE: Made mii_read() and mii_write() public in the STM32 MAC driver.
|
||
|
|
||
|
*** 2.6.4 ***
|
||
|
- FIX: Fixed insufficient ISR-reserved stack in ARMCMx port when
|
||
|
optimizations are disabled (bug #494).
|
||
|
- FIX: Fixed configuration descriptors larger than 127 bytes don't
|
||
|
work (bug #373).
|
||
|
- FIX: Fixed invalid cast in PWM_FRACTION_TO_WIDTH() macro (bug #487).
|
||
|
- FIX: Fixed wrong STM32 TIM9 clock source in PWM and ICU drivers (bug #486).
|
||
|
- FIX: Fixed MMC_SPI driver block_addresses is not initialized after
|
||
|
reconnection (bug #485).
|
||
|
- FIX: Fixed STM32L1 Plus Compilation Problems (bug #484).
|
||
|
- FIX: Fixed OTG HS failure when WFI instruction is enabled (bug #482).
|
||
|
- FIX: Fixed wrong STM32F4 TIM6 vector number symbol (bug #480).
|
||
|
- FIX: Fixed problem in STM32 SDADC driver initialization (bug #479).
|
||
|
- FIX: Fixed chThdShouldTerminate() documentation incorrect (bug #478).
|
||
|
- FIX: Fixed spurious callback in STM32 EXT driver (bug #477).
|
||
|
- FIX: Fixed several macro errors in STM32L1xx HAL driver (bug #476).
|
||
|
- FIX: Fixed wrong STM32 RTCv2 alarms implementation (bug #475).
|
||
|
- FIX: Fixed wrong ADC34 macros in STM32F30x HAL driver (bug #474).
|
||
|
- FIX: Fixed wrong TIM1 and TIM8 macros in STM32F30x HAL driver (bug #473).
|
||
|
- FIX: Fixed chprintf()/chSequentialStreamWrite() crash with size of 0
|
||
|
or NULL (bug #472).
|
||
|
- FIX: Fixed simulated IO message is corrupted in simulator (bug #468).
|
||
|
- FIX: Fixed typo in STMxx demo makefiles (bug #466).
|
||
|
- FIX: Fixed wrong multilib handling in ChibiOS buildsystem (bug #465).
|
||
|
- NEW: Improved makefiles backported from the 3.0 branch, make sure to use
|
||
|
Makefiles taken from this version in your projects.
|
||
|
- CHANGE: Made optional the STM32 MAC DMABMR SR reset procedure.
|
||
|
|
||
|
*** 2.6.3 ***
|
||
|
- FIX: Fixed TM32 SDC driver clock activation issue (bug #464).
|
||
|
- FIX: Fixed spurious callback in ICU driver (bug #461).
|
||
|
- FIX: Fixed compile error in STM32F0xx ADC driver when STM32F0XX_LD devices
|
||
|
are selected (bug #460).
|
||
|
- FIX: Fixed race condition in STM32 SDC driver (bug #458).
|
||
|
- FIX: Fixed race condition in STM32 OTG driver (bug #457).
|
||
|
- FIX: Fixed switch to LAN8710A PHY for STM32-E407 boards (bug #456).
|
||
|
- FIX: Fixed add PHY id of LAN8710A (bug #455).
|
||
|
- FIX: Fixed memstreams.c missing from simulator makefiles (bug #454).
|
||
|
- FIX: Fixed chprintf() does not compile in strict C90 mode (bug #453).
|
||
|
- FIX: Fixed corrupted mcuconf.h file in ARMCM4-STM32F407-DISCOVERY demo
|
||
|
(bug #452).
|
||
|
|
||
|
*** 2.6.2 ***
|
||
|
- FIX: Fixed wrong vector names for STM32Lxx.
|
||
|
- FIX: Fixed wrong STM32_TIM_CCMR2_OCxM macros on STM32F30x (bug #449).
|
||
|
- FIX: Fixed STM32F30x TIM1/TIM8 alternate clock source setting not
|
||
|
recognized (bug #448).
|
||
|
- FIX: Fixed wrong MCO2 check in STM32F4xx HAL driver (bug #447).
|
||
|
- FIX: Fixed spurious half buffer callback in STM32 ADC drivers (bug #446).
|
||
|
- FIX: Fixed callbacks changes to the ADC high level driver (bug #445).
|
||
|
- FIX: Fixed wrong definition in STM32F37x ADC driver (bug #444).
|
||
|
- FIX: Fixed wrong CORTEX_PRIORITY_PENDSV value (bug #443).
|
||
|
- FIX: Fixed lost incoming characters in STM32 USARTv1 driver (bug #442).
|
||
|
- FIX: Fixed STM32 OTG-FS wrong upper memory limit (bug #437).
|
||
|
- FIX: Fixed race condition in STM32 DMA interrupt (bug #439).
|
||
|
- FIX: Fixed timing issue in the STM32 OTGv1 USB driver (bug #436).
|
||
|
- FIX: Fixed STM32L1 remove reset flag (bug #435).
|
||
|
- FIX: Fixed unaligned data access in USB LLD (bug #434).
|
||
|
- FIX: Fixed add RTC to STM32L1 (bug #433).
|
||
|
- FIX: Fixed support 10-bit addresses in STM32 I2C driver (bug #432).
|
||
|
- FIX: Fixed duplicate STM32_GPT_USE_TIM8 definition in some mcuconf.h files
|
||
|
(bug #431).
|
||
|
- FIX: Fixed possible unalignment in GCC Cortex-M scatter files (bug #430).
|
||
|
- NEW: Added support for STM32F030xx/050xx/060xx devices.
|
||
|
- NEW: Added BOARD_OTG_NOVBUSSENS board option for STM32 OTG.
|
||
|
- NEW: Added SPI4/SPI5/SPI6 support to the STM32v1 SPIv1 low level driver.
|
||
|
- NEW: Added chvprintf() and chsnprintf() functions to the chprintf module.
|
||
|
- NEW: Added a new function shellExit() to the shell. It allows to exit the
|
||
|
shell from any command handler.
|
||
|
- NEW: Added support for STM32F401/STM32F42x/STM32F43x devices.
|
||
|
- NEW: Improved time range check in the kernel, new API chTimeElapsedSince()
|
||
|
introduced. The API chTimeIsWithin() is now a macro.
|
||
|
- NEW: Added support for STM32F0xx platform in RTCv2 driver.
|
||
|
- NEW: Improvements to the STM32F4xx backup domain initialization.
|
||
|
- NEW: Added support for STM32F4xx backup RAM.
|
||
|
- NEW: Added support of UART4 and UART5 (STM32F4xx and STM32F2xx platforms)
|
||
|
(feature request #28).
|
||
|
|
||
|
*** 2.6.1 ***
|
||
|
- FIX: Fixed PAL driver documentation error (bug #427).
|
||
|
- FIX: Fixed UART4 and 5 marked as not present in STM32F30x devices (bug #426).
|
||
|
- FIX: Fixed warning in STM32 ICU/PWM drivers when used on STM32F3xx (bug
|
||
|
#425).
|
||
|
- FIX: Fixed conditional code error in STM32 PWM driver (bug #424).
|
||
|
- FIX: Fixed error in Guards of pwm_lld.h from STM32 (bug #423).
|
||
|
- FIX: Fixed wrong RTC macro names in STM32L1xx HAL (bug #422).
|
||
|
- FIX: Fixed CodeSourcery personal version fails to build with undefined
|
||
|
errno_r (bug #421).
|
||
|
- FIX: Fixed FSMC reset on STM32F4xx (bug #420).
|
||
|
- FIX: Fixed invalid directory links in the demo files (bug #419).
|
||
|
- FIX: Fixed missing casts in time-conversion macros (bug #418).
|
||
|
- FIX: Fixed PLL2 activation condition is wrong in STM32F107 HAL (bug #417).
|
||
|
- NEW: Improvements to the STM32F4xx backup domain initialization.
|
||
|
- NEW: Added initializer for the DIER register to the STM32 GPT, ICU and
|
||
|
PWM drivers.
|
||
|
- NEW: Added support for 32bits counters to the STM32 GPT driver.
|
||
|
- NEW: Added port support for SCP560B64.
|
||
|
- CHANGE: Moved the STM32 GPT, ICU and PWM low level drivers under
|
||
|
./os/hal/platform/STM32/TIMv1. Updated all the impacted project files.
|
||
|
|
||
|
*** 2.6.0 ***
|
||
|
- FIX: Fixed MS2ST() and US2ST() macros error (bug #415).
|
||
|
- 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: 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: 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.
|
||
|
- 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.
|
||
|
- NEW: Support for STM32F30x and STM32F37x.
|
||
|
- NEW: AT91SAM7A3 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.
|
||
|
- 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 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: 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.4.4 ***
|
||
|
- FIX: Fixed wrong Keil project in ARMCM3-STM32F107 demo (bug #408).
|
||
|
- FIX: Fixed wrong macro in PWM driver (bug #407).
|
||
|
- FIX: Fixed USB driver possible deadlock under certain configurations (bug
|
||
|
#406).
|
||
|
- FIX: Fixed USB driver cannot be stopped (bug #405).
|
||
|
- FIX: Fixed fixed I2C malfunction after fixing bug 3607518 (bug 3607549).
|
||
|
- FIX: Fixed spurious interrupt disabling an STM32 DMA stream (bug 3607518).
|
||
|
- FIX: Fixed start of any ADC disables VREF and VBAT (bug 3607467).
|
||
|
- FIX: Fixed CAN_USE_SLEEP_MODE compilation problem (bug 3606616).
|
||
|
- FIX: Fixed misplaced brace in icu_lld.c (bug 3605832).
|
||
|
- FIX: Fixed bug prevents calling adcStartConversionI() within ISR (bug
|
||
|
3605053).
|
||
|
- FIX: Fixed typo in platforms/STM32/can_lld.c (bug 3604657).
|
||
|
- FIX: Fixed duplicated code in hal_lld.h (STM32F4xx) (bug 3602544).
|
||
|
- FIX: Fixed compile errors in Posix-GCC demo (bug 3601621).
|
||
|
- FIX: Fixed state checker error in MSP430 port (bug 3601460).
|
||
|
- FIX: Fixed wrong assertion in UART driver (bug 3600789).
|
||
|
- FIX: Fixed small bug in shell argument parsing code in shell_thread (bug
|
||
|
3599328).
|
||
|
- FIX: Fixed wrong condition in checksum offload of STM32 MAC driver (bug
|
||
|
3598720).
|
||
|
- FIX: Fixed error in STM32 MAC driver degrades performance (bug 3598719).
|
||
|
- NEW: Updated STM32L1xx header to the latest version.
|
||
|
|
||
|
*** 2.4.3 ***
|
||
|
- FIX: Fixed warning in STM32 ICU driver using IAR compiler (bug 3598177).
|
||
|
- FIX: Fixed typo in chOQGetEmptyI() macro (bug 3595910).
|
||
|
- FIX: Fixed possible false detect of loaded prescaler in RTCv1 driver (bug
|
||
|
3595489).
|
||
|
- FIX: Fixed unneeded RTC initialization when HAL_USE_RTC disabled
|
||
|
(bug 3594620).
|
||
|
- FIX: Fixed compilation issue with HAL_USE_RTC disabled (bug 3594083).
|
||
|
- FIX: Fixed wasting of BKP registers in RTCv1 driver (bug 3594005).
|
||
|
- FIX: Fixed potential problem with RTC_CRL_RSF bit (bug 3593972).
|
||
|
- FIX: Fixed STM32F1x rtc_lld_init not functional (bug 3592817).
|
||
|
- FIX: Fixed DMA reconfiguration problem in STM32 SPI driver (bug 3592809).
|
||
|
- FIX: Fixed STM32 UART driver redundant initialization (bug 3592764).
|
||
|
- FIX: Fixed wrong stack initializations in GCC STM32L1xx port files (bug
|
||
|
3591321).
|
||
|
- FIX: Fixed different redefinition for __main_stack_end__ symbol (bug
|
||
|
3591317).
|
||
|
- FIX: Fixed errors in STM32F0xx UART driver (bug 3589412).
|
||
|
- FIX: Fixed MSP430 port_switch code for MSPGCC issue (bug 3587633).
|
||
|
- FIX: Fixed workaround for errata in STM32F4-A devices (bug 3586425).
|
||
|
- FIX: Fixed error in palWritePad() macro (bug 3586230).
|
||
|
- FIX: Fixed missing ; in testmbox.c (bug 3585979).
|
||
|
- FIX: Fixed STM32_P407: implement mmc_lld_is_card_inserted (bug 3581929).
|
||
|
- FIX: Fixed double chSysInit() call in MSP430F1611 demo (bug 3581304).
|
||
|
- FIX: Fixed bug in abstract file interface (bug 3579660).
|
||
|
- FIX: Fixed various typos and wrong limits in the STM32F4/F2 HAL driver
|
||
|
(bug 3578944).
|
||
|
- FIX: Fixed ARM CMx crt0.c fails at low optimization levels (bug 3578927).
|
||
|
- FIX: Fixed compilation issue in syscalls.c (bug 3576771).
|
||
|
- FIX: Fixed superfluous pack #defines cause nasty warning (bug 3575662).
|
||
|
- FIX: Fixed mac.c won't compile due to misplaced declarations (bug 3575657).
|
||
|
- FIX: Fixed STM32F4 ADC prescaler incorrectly initialized (bug 3575297).
|
||
|
- FIX: Fixed RCC_APB2ENR_IOPEEN undeclared on STM32F10X_LD_VL devices (bug
|
||
|
3575098).
|
||
|
- FIX: Fixed optimization disable (-O0) breaks kernel in CortexM/RVCT (bug
|
||
|
3573123).
|
||
|
- FIX: Fixed misplaced declarations in lwip_bindings sys_arch.c (bug 3571053).
|
||
|
- FIX: Fixed FatFS won't compile with _FS_REENTRANT enabled (bug 3570135).
|
||
|
- FIX: Fixed mmc_spi.c won't compile due to misplaced declaration (bug
|
||
|
3570035).
|
||
|
- FIX: Fixed GPIO glitch during PAL initialization (bug 3569347).
|
||
|
- FIX: Fixed STM32F1x rtc_lld_init glitches rtc on hard reset (bug 3567597).
|
||
|
- FIX: Fixed STM8L, cosmic compiler: c_lreg not saved (bug 3566342).
|
||
|
- FIX: Fixed anomaly in USB enumeration (bug 3565325).
|
||
|
- FIX: Fixed problem with lwIP statistics (bug 3564134).
|
||
|
- FIX: Fixed packed structures macros not functional in IAR and RVCT port
|
||
|
(bug 3561279).
|
||
|
- FIX: Fixed Problem in FatFs demos related to LFN (bug 3560980).
|
||
|
- NEW: Added memory signature record to the registry in order to simplify
|
||
|
the implementation of ad-hoc debuggers.
|
||
|
- NEW: I2C workaround allowing to read single byte on all STM32 platforms
|
||
|
except STM32F1xx.
|
||
|
- NEW: Small adjustment in chcore.h files under ./os/ports/GCC required by a
|
||
|
difference in GCC 4.7.x.
|
||
|
|
||
|
*** 2.4.2 ***
|
||
|
- FIX: Fixed problem in STM32 DMA1 stream1 IRQ handler (bug 3538468).
|
||
|
- FIX: Fixed wrong priority assigned to TIM8 in STM32 ICU driver (bug 3536950).
|
||
|
- FIX: Fixed TIM8 not working in STM32 GPT driver (bug 3536523).
|
||
|
- FIX: Fixed timer overflow not working in STM32 ICU driver for TIM1/TIM8 (bug
|
||
|
3536522).
|
||
|
- FIX: Fixed wrong DMA channels on USART2 in STM32F10X_MD_VL devices (bug
|
||
|
3536070).
|
||
|
- FIX: Fixed issue with DMA channel init in STM32 ADC and SPI drivers (bug
|
||
|
3535938).
|
||
|
- FIX: Fixed unreliable PHY initialization (bug 3534819).
|
||
|
- FIX: Fixed wrong ADC callback buffer pointer in ADC driver (bug 3534767).
|
||
|
- FIX: Fixed lwIP-related files missing from version 2.4.1 (bug 3533887).
|
||
|
- FIX: Fixed problem with arm-v6m and state checker (bug 3532591).
|
||
|
- FIX: Fixed wrong MAC divider setting in STM32 MAC driver (bug 3531290).
|
||
|
- FIX: Fixed wrong MCO1 divider in STM32F2/F4 HAL (bug 3531289).
|
||
|
- FIX: Fixed missing "break" in AVR PAL driver (bug 3530924).
|
||
|
- FIX: Fixed timeout related race condition in STM32 I2C driver (bug 3530043).
|
||
|
- FIX: Fixed wrong macro check in STM32 MAC driver (bug 3527179).
|
||
|
- FIX: Fixed error in STM32L-Discovery board.h file (bug 3526918).
|
||
|
- NEW: Validated CAN driver on STM32F2/F4.
|
||
|
- Small fixes to the STM32F4 board files.
|
||
|
- Various documentation fixes and improvements.
|
||
|
|
||
|
*** 2.4.1 ***
|
||
|
- FIX: Fixed inconsistent LPCxxx Internal RC oscillator names (bug 3524138).
|
||
|
- FIX: Fixed wrong frequency limit checks vs VDD in STM32F2xx HAL (bug
|
||
|
3524094).
|
||
|
- FIX: Fixed STM32 I2C1 wrong alternate TX DMA setting (bug 3524088).
|
||
|
- FIX: Fixed three testhal builds fail (bug 3523322).
|
||
|
- FIX: Fixed MAC driver functions with invalid name (bug 3522808).
|
||
|
- FIX: Fixed code coverage crashes with Linux/gcc-4.4.5 (bug 3522301).
|
||
|
- FIX: Fixed macro dmaWaitCompletion() fails to compile in STM32 HAL (bug
|
||
|
3519202).
|
||
|
- FIX: Fixed ARM addresses generated in vectors table (bug 3519037).
|
||
|
- FIX: Fixed missing serial driver functionality for SAM7S64, SAM7S128 and
|
||
|
SAM7S512 (bug 3517648).
|
||
|
- FIX: Fixed a few more spelling fixes (bug 3515531).
|
||
|
- FIX: Fixed spurious ) char in STM32 serial_lld.h (bug 3514138).
|
||
|
- FIX: Fixed problem with FPU initialization in GCC Cortex-M4 port (bug
|
||
|
3513897).
|
||
|
- FIX: Spelling fixes (bug 3510812).
|
||
|
- FIX: Fixed STM32 ICUD8 not functional because wrong initialization (bug
|
||
|
3508758).
|
||
|
- FIX: Fixed chMBFetchI does not decrement mb_fullsem (bug 3504450).
|
||
|
- FIX: Fixed STM32 PLLI2S initialization error (bug 3503490).
|
||
|
- FIX: Fixed USART3 not working on STM32F2/F4 UART driver (bug 3496981).
|
||
|
- FIX: Fixed stack misalignment on Posix-MacOSX (bug 3495487).
|
||
|
- FIX: Fixed STM8S HSI clock initialization error (bug 3489727).
|
||
|
- FIX: Fixed MMC over SPI driver performs an unnecessary SPI read (bug
|
||
|
3486930).
|
||
|
- FIX: Fixed Realtime counter initialization in STM32 HALs (bug 3485500).
|
||
|
- FIX: Fixed PPC port broken when CH_DBG_SYSTEM_STATE_CHECK is activated
|
||
|
(bug 3485667).
|
||
|
- FIX: Fixed missing PLL3 check in STM32F107 HAL (bug 3485278).
|
||
|
- FIX: Fixed ADC maximum frequency limit in STM32F2/F4 ADC drivers (bug
|
||
|
3484947).
|
||
|
- FIX: Fixed various minor documentation errors (bug 3484942).
|
||
|
- NEW: STM32 Ethernet driver completed. Added STM32F107 and STM32F407
|
||
|
lwIP demos.
|
||
|
- NEW: lwIP related code is not centralized into a single place, no need to
|
||
|
duplicate the code in each application or demo.
|
||
|
- 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.
|
||
|
- 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.
|
||
|
- CHANGE: Renamed Ethernet driver in AT91 HAL ETHD1.
|
||
|
|
||
|
*** 2.4.0 ***
|
||
|
- 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: Improved Cortex-Mx port, now the Cortex-M4 are Cortex-M4F are also
|
||
|
supported. Improved startup files.
|
||
|
- 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: Improved Event Flags subsystems in the kernel.
|
||
|
- NEW: Added a macro THD_STATE_NAMES to chthreads.h. This macro is an
|
||
|
initializer for string arrays containing thread state names.
|
||
|
- 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: 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: 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.
|
||
|
- 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: Added "IRQ_STORM" test applications to those platforms supporting
|
||
|
ISR preemption.
|
||
|
- NEW: Added a chprintf() function to ./os/various, it can print on any
|
||
|
BaseChannel interface.
|
||
|
- NEW: Improved the mini shell, enhanced info command, optimizations and
|
||
|
removed the shellPrint() and shellPrintLine() functions, now it uses
|
||
|
chprintf() for output.
|
||
|
- NEW: USB driver model and USB implementation for STM32F1xx and STM32L1xx.
|
||
|
- NEW: USB CDC abstract driver.
|
||
|
- NEW: New driver models EXT, GPT, I2C, ICU, RTC, SDC, TM.
|
||
|
- NEW: Improved PWM and MAC driver models.
|
||
|
- NEW: Added support for STM32L1xx, STM32F2xx and STM32F4xx.
|
||
|
- NEW: Updated the STM32F1xx 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 an unified registers file for STM32: stm32.h. This file includes
|
||
|
the appropriate vendor files then adds its own additional definitions.
|
||
|
- NEW: Added TIM8 support to the STM32 GPT, ICU and PWM drivers.
|
||
|
- NEW: DMA sharing in the STM32 HAL.
|
||
|
- NEW: ADC specific drivers for STM32L1xx, STM32F2xx and STM32F4xx.
|
||
|
- NEW: EXT driver AT91SAM7x and STM32(all).
|
||
|
- NEW: PAL driver for AVR.
|
||
|
- NEW: GPT driver for LPC11xx, LPC13xx and STM32(all).
|
||
|
- NEW: I2C driver for STM32(all).
|
||
|
- NEW: ICU driver for STM32(all).
|
||
|
- NEW: RTC driver for STM32F1xx.
|
||
|
- NEW: SDC driver for STM32F1xx.
|
||
|
- NEW: Added handling of USART6 to the STM32 serial driver.
|
||
|
- NEW: Added demos for the ST STM32F4-Discovery and STM32L1-Discovery kits.
|
||
|
- NEW: Updated AVR demos to use the new PAL driver.
|
||
|
- 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: lwIP 1.4.0 has been integrated, this new version does not require
|
||
|
custom hooks into the Thread structure and is thus much lighter.
|
||
|
- 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: 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: 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.2.8 ***
|
||
|
- NEW: Added new API chThdExitS() in order to allow atomic operations on
|
||
|
thead exit.
|
||
|
- FIX: Fixed Extra initialization in STM32 SPI driver (bug 3436127).
|
||
|
- FIX: Fixed DMA priority setting error in STM32 UART driver (bug 3436125).
|
||
|
- FIX: Fixed DMA priority setting error in STM32 SPI driver (bug 3436124).
|
||
|
- FIX: Fixed broken support for UART5 in STM32 serial driver (bug 3434094).
|
||
|
- FIX: Fixed misplaced chRegSetThreadName() in ARM7-AT91SAM7S-FATFS-GCC demo
|
||
|
(bug 3411780).
|
||
|
- FIX: Fixed missing UART5 definition in STM32 HAL (bug 3411774).
|
||
|
- FIX: The function chThdExit() triggers an error on shell return when the
|
||
|
system state checker is enabled (bug 3411207).
|
||
|
- FIX: Some ARMCMx makefiles refer the file rules.mk in the ARM7 port (bug
|
||
|
3411180).
|
||
|
|
||
|
*** 2.2.7 ***
|
||
|
- INFO: GCC test runs performed with YAGARTO 4.6.0.
|
||
|
- NEW: Added debug plugin for Eclipse under ./tools/eclipse.
|
||
|
- 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.
|
||
|
- 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.
|
||
|
- FIX: Fixed wrong check on CH_DBG_ENABLE_STACK_CHECK setting (bug 3387671).
|
||
|
- FIX: Fixed wrong APB1 frequency check (bug 3361039).
|
||
|
- FIX: Fixed missing state in shell demos (bug 3351556).
|
||
|
- CHANGE: Removed todo.txt file, it does not belong to the stable version.
|
||
|
|
||
|
*** 2.2.6 ***
|
||
|
- FIX: Fixed race condition in Cortex-Mx ports (bug 3317500).
|
||
|
- FIX: Fixed wrong macro check in STM32 UART driver (bug 3311999).
|
||
|
|
||
|
*** 2.2.5 ***
|
||
|
- FIX: Fixed STM32F107 demo build failure (bug 3294998).
|
||
|
- 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.
|
||
|
- NEW: Added to the ARMv6-M sub-port an option to use the PendSV exception
|
||
|
instead of NMI for preemption.
|
||
|
|
||
|
*** 2.2.4 ***
|
||
|
- FIX: Fixed CodeBlocks demo broken (bug 3304718).
|
||
|
- FIX: Fixed race condition in output queues (bug 3303908).
|
||
|
- FIX: Fixed CH_USE_HEAP and CH_USE_MALLOC_HEAP conflict (bug 3303841).
|
||
|
- FIX: Fixed timeout problem in the lwIP interface layer (bug 3302420).
|
||
|
- FIX: Fixed invalid BRR() macro in AVR serial driver (bug 3299306).
|
||
|
- FIX: Fixed missing IRQ vectors amicable names for STM32 XL devices (bug
|
||
|
3298889).
|
||
|
- FIX: Fixed wrong identifier in AVR serial driver (bug 3292084).
|
||
|
- FIX: Fixed wrong macro check for STM32 XL devices (bug 3291898).
|
||
|
- FIX: Fixed SPI driver restart in STM32 SPI driver implementation, also
|
||
|
applied the same fix to the STM8S SPI driver (bug 3288758).
|
||
|
- FIX: Fixed missing state transition in ADC driver (bug 3288149).
|
||
|
- FIX: Fixed missing state transition in SPI driver (bug 3288112).
|
||
|
- 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.
|
||
|
- 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.
|
||
|
|
||
|
*** 2.2.3 ***
|
||
|
- FIX: Fixed insufficient idle thread stack in Cortex-M0-GCC port
|
||
|
(bug 3226671).
|
||
|
- FIX: Fixed stack checking in Cortex-M0-GCC port (bug 3226657).
|
||
|
- FIX: Fixed wrong checks in PAL driver (bug 3224681).
|
||
|
- FIX: Fixed wrong checks in I/O Queues (bug 3219197).
|
||
|
- FIX: Fixed invalid assertion in adcConvert() (bug 3205410).
|
||
|
- NEW: Implemented stack checking in the Cortex-Mx RVCT port.
|
||
|
- 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.
|
||
|
|
||
|
*** 2.2.2 ***
|
||
|
- FIX: Fixed race condition in CM0 ports, the fix also improves the
|
||
|
ISR latency (bug 3193062).
|
||
|
- 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).
|
||
|
- FIX: Fixed error in function chCoreAllocI() function documentation (bug
|
||
|
3191107).
|
||
|
- FIX: Fixed minor problem with memory pools (bug 3190512).
|
||
|
- NEW: Added I-Class functions to the MailBoxes subsystem, now it is
|
||
|
possible to use them as a transport layer between ISRs and Threads.
|
||
|
- CHANGE: Swapped the numeric values of the TIME_IMMEDIATE and TIME_INFINITE
|
||
|
constants. Fixed the relative documentation in various places.
|
||
|
- Documentation related fixes.
|
||
|
|
||
|
*** 2.2.1 ***
|
||
|
- FIX: Stack overflow in CM0 ports when nearing interrupts saturation (bug
|
||
|
3187105).
|
||
|
- FIX: Fixed missing e200z test report (bug 3182611).
|
||
|
- FIX: Fixed error in _BSEMAPHORE_DATA macro (bug 3184139).
|
||
|
- FIX: Error in MAC driver (bug 3179783).
|
||
|
- FIX: Fixed wrong serial driver macros (bug 3173336).
|
||
|
|
||
|
*** 2.2.0 ***
|
||
|
- NEW: The Cortex-Mx port now also supports the IAR and Keil compilers.
|
||
|
- NEW: Improvements to the Cortex-Mx port.
|
||
|
- NEW: Improved ARM port supporting both ARM7 and ARM9.
|
||
|
- NEW: Support for binary semaphores in the kernel.
|
||
|
- NEW: Improved kernel hooks.
|
||
|
- NEW: Extensive improvements to the STM32 platform support.
|
||
|
- NEW: SPI drivers for the AT91SAM7x, LPC11xx, LPC13xx, LPC214x, STM8S,
|
||
|
platforms.
|
||
|
- NEW: Unified STM8 port for both the Cosmic and the Raisonance compilers.
|
||
|
- NEW: Demos for the STM8S-Discovery, STM8L-Discovery, STM32VL-Discovery
|
||
|
boards.
|
||
|
- NEW: Improved almost all the existing device driver models in the HAL.
|
||
|
- NEW: Added test/example applications for all the device drivers in the HAL.
|
||
|
- NEW: Added support for the STM8L platform.
|
||
|
- NEW: New UART unbuffered serial device driver model.
|
||
|
- NEW: Greatly improved documentation.
|
||
|
- NEW: Lots of other minor improvements and optimizations, see the change
|
||
|
log of the 2.1.x development branch for details.
|
||
|
|
||
|
*** 2.0.10 ***
|
||
|
- FIX: Fixed missing lines from the STM32 PWM driver (bug 3154403).
|
||
|
- FIX: Fixed error in chIOGetxxxxxEventSource() macros (bug 3153550).
|
||
|
- FIX: Fixed switch condition error in STM32 PWM driver (bug 3152482).
|
||
|
|
||
|
*** 2.0.9 ***
|
||
|
- FIX: Fixed error in output queues static initializer (bug 3149141).
|
||
|
- FIX: Fixed extra notifications in input queues (bug 3148525).
|
||
|
- FIX: Fixed error in sdPutTimeout() macro (bug 3138763).
|
||
|
- FIX: Fixed preprocessing crt0.s fail (bug 3132293).
|
||
|
- Documentation related fixes.
|
||
|
|
||
|
*** 2.0.8 ***
|
||
|
- FIX: Fixed failed memory recovery by registry scan, improved the related
|
||
|
test case (bug 3116888).
|
||
|
- FIX: Fixed PWM channels going to ACTIVE state when the pulse width is
|
||
|
set to zero in the STM32 PWM driver (bug 3114481).
|
||
|
- FIX: Fixed PWM channels return to IDLE state in STM32 PWM driver (bug
|
||
|
3114467).
|
||
|
- CHANGE: Bugs 3114467 and 3114481 have been fixed by backporting the 2.1.x
|
||
|
PWM driver, there is a difference in the PWM callback parameters.
|
||
|
|
||
|
*** 2.0.7 ***
|
||
|
- FIX: Fixed typo in board name (bug 3113574).
|
||
|
- FIX: Fixed defective event wait functions with timeout (bug 3113443).
|
||
|
|
||
|
*** 2.0.6 ***
|
||
|
- FIX: Fixed typo in memstreams.h (bug 3089567).
|
||
|
- FIX: Fixed wrong macro check in LPC214x and AT91SAM7 serial drivers (bug
|
||
|
3088776).
|
||
|
- FIX: Fixed non functioning option SPI_USE_MUTUAL_EXCLUSION=FALSE (bug
|
||
|
3084764).
|
||
|
- FIX: Fixed wrong macro check in STM32 serial support (but 3078891).
|
||
|
- FIX: Fixed lwIP demo not working (bug 3076354).
|
||
|
- FIX: Fixed non functioning option CH_USE_NESTED_LOCKS (bug 3075544).
|
||
|
- CHANGE: The API chThdInit() has been renamed to chThdCreateI().
|
||
|
|
||
|
*** 2.0.5 ***
|
||
|
- FIX: Incorrect AT91SAM7X initialization, thanks Leszek (bug 3075354).
|
||
|
- FIX: Fixed race condition in function chSchGoSleepTimeoutS, thanks Balzs
|
||
|
(bug 3074984).
|
||
|
- FIX: Fixed race condition in threads creation (bug 3069854).
|
||
|
- FIX: Fixed broken CH_DBG_ENABLE_STACK_CHECK option in legacy CM3 port (bug
|
||
|
3064274).
|
||
|
- FIX: Fixed CAN_USE_SLEEP_MODE setting (bug 3064204).
|
||
|
|
||
|
*** 2.0.4 ***
|
||
|
- FIX: Fixed potential issue with GCC reorganizing instructions around "asm
|
||
|
volatile" statements (bug 3058731).
|
||
|
- FIX: Fixed reduced ARM7 performance with GCC 4.5.x (bug 3056866).
|
||
|
|
||
|
*** 2.0.3 ***
|
||
|
- Tests reports regenerated using GCC 4.5.1, small performance improvements
|
||
|
in all benchmarks.
|
||
|
- FIX: Fixed crash of the Posix simulator under Ubuntu 10.4 (bug 3055329).
|
||
|
- FIX: Fixed incorrect PLL2 setting in STM32 HAL (bug 3044770).
|
||
|
- FIX: Fixed wrong check on STM32_HCLK (bug 3044758).
|
||
|
- FIX: Fixed wrong condition check in STM32 PWM driver (bug 3041414).
|
||
|
- FIX: Corrupted IRQ stack in Cortex-Mx port (bug 3041117).
|
||
|
- FIX: Fixed a documentation error regarding the ADC driver function
|
||
|
adcStartConversion() (bug 3039890).
|
||
|
- FIX: Fixed insufficient stack size for idle thread (bug 3033624).
|
||
|
- FIX: Fixed misspelled word in some chioch.h and chstreams.h macros (bug
|
||
|
3031534).
|
||
|
- FIX: Fixed wrong macro check in the STM32 SPI driver (bug 3028562).
|
||
|
|
||
|
|
||
|
*** 2.0.2 ***
|
||
|
- FIX: Fixed invalid context restore in MSP430 port (bug 3027975).
|
||
|
- FIX: Fixed STM32 vectors file (bug 3026528).
|
||
|
- FIX: Fixed race condition in STM32 SPI driver (bug 3025854).
|
||
|
- FIX: Fixed H_LOCK and H_UNLOCK redefined with CH_USE_MALLOC_HEAP (bug
|
||
|
3025549).
|
||
|
- FIX: Added option to enforce the stack alignment to 32 or 64 bits in the
|
||
|
Cortex-Mx port (bug 3025133).
|
||
|
- NEW: Added friendly interrupt vectors names to the STM32 HAL (change request
|
||
|
3023944).
|
||
|
- 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".
|
||
|
|
||
|
*** 2.0.1 ***
|
||
|
- FIX: Fixed notification order in input queues (bug 3020708).
|
||
|
- FIX: Fixed non functional CH_CURRP_REGISTER_CACHE option in the Cortex-M3
|
||
|
port (bug 3020702).
|
||
|
- 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).
|
||
|
- FIX: Fixed insufficient stack space assigned to the idle thread in
|
||
|
Cortex-M3 port (bug 3019594).
|
||
|
- FIX: Fixed missing check in chIQReadTimeout() and chIQWriteTimeout() (bug
|
||
|
3019158).
|
||
|
- FIX: Fixed instability in Mutexes subsystem (bug 3019099).
|
||
|
- NEW: Added timers clock macros to the STM32 clock tree HAL driver.
|
||
|
|
||
|
*** 2.0.0 ***
|
||
|
- 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 a PowerPC port and demo targeting the SPC563M/MPC563xM
|
||
|
ST/Freescale automotive SOCs.
|
||
|
- NEW: Added STM8 port and demo targeting the Raisonance REva board
|
||
|
with STM8S208RB piggyback.
|
||
|
- NEW: New unified ARM Cortex-Mx port, this port supports both the ARMv6M
|
||
|
and ARMv7-M architectures (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: 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 support for STM32/HD/CL UART4 and UART5, thanks Egon for the
|
||
|
patch.
|
||
|
- NEW: Embedded Artists LPCxpresso Base Board support files added.
|
||
|
- NEW: LPC11xx support, drivers (Serial, PAL, HAL) and demo.
|
||
|
- NEW: LPC13xx support, drivers (Serial, PAL, HAL), demo and reports.
|
||
|
- 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: Updated the STM32 FW Library files to latest version 3.3.0.
|
||
|
- NEW: AT91SAM7 HAL support for the DGBU UART peripheral, as SD3.
|
||
|
- NEW: Added a demo for the AT91SAM7S256 and board files for the Olimex
|
||
|
SAM7-P256. The demo has been contributed by Alexander Kozaruk.
|
||
|
- 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.
|
||
|
- 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.
|
||
|
- 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.
|
||
|
- NEW: New articles and guides in the documentation.
|
||
|
- 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.
|
||
|
- 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.
|
||
|
- OPT: Small size optimization in the semaphores subsystem.
|
||
|
- OPT: Minor optimizations in the "compact" code path.
|
||
|
- 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.
|
||
|
- OPT: Internal optimization in the serial driver, it now is a bit smaller
|
||
|
and uses less RAM (all architectures).
|
||
|
|
||
|
*** 1.4.3 ***
|
||
|
- FIX: Fixed centralized ARM makefile (bug 2992747).
|
||
|
- FIX: Fixed write problems in MMC_SPI driver (bug 2991714).
|
||
|
- FIX: Fixed wrong macro check in serial.h (bug 2989459).
|
||
|
|
||
|
*** 1.4.2 ***
|
||
|
- FIX: Fixed missing reschedule in chEvtSignal() (bug 2961208).
|
||
|
- FIX: Removed C99-style variables declarations (bug 2964418).
|
||
|
- Minor documentation fixes.
|
||
|
|
||
|
*** 1.4.1 ***
|
||
|
- FIX: Fixed wrong UART deinitialization sequence in LPC214x serial driver
|
||
|
(bug 2953985).
|
||
|
- FIX: Fixed wrong PINSEL2 offset into lpc214x.h (bug 2953981).
|
||
|
- FIX: Fixed invalid UART-related macro in the LPC214x HAL (bug 2953195).
|
||
|
- FIX: Wrong prototype in template file chcore.c (bug 2951529).
|
||
|
- FIX: Fixed insufficient stack space for the idle thread in the ARMCM3 port
|
||
|
when compiling without optimizations (bug 2946233).
|
||
|
- FIX: Fixed wrong notes on function chThdResume() (bug 2943160).
|
||
|
- FIX: Fixed missing dependencies check for CH_USE_DYNAMIC (bug 2942757).
|
||
|
- FIX: Fixed swapped thread states descriptions (bug 2938445).
|
||
|
- FIX_ Fixed C99-style variable declaration (bug 2938444).
|
||
|
|
||
|
*** 1.4.0 ***
|
||
|
- Full test cycle and test reports updated.
|
||
|
- NEW: Reorganized and rationalized the distribution tree and the
|
||
|
documentation.
|
||
|
- NEW: Abstract Streams and I/O Channels mechanisms introduced.
|
||
|
- NEW: Added a new core memory manager.
|
||
|
- NEW: Improved Heap and Pools allocators.
|
||
|
- NEW: The I/O queues code has been improved, now there are 2 separate
|
||
|
structures: InputQueue and OutputQueue.
|
||
|
- NEW: Added timeout specification to the I/O queues read/write primitives.
|
||
|
- NEW: Static initializers macros introduced for most kernel objects.
|
||
|
- NEW: Added new APIs chSchDoYieldS() and chThdYield().
|
||
|
- NEW: Improved and simplified kernel configuration files.
|
||
|
- MEW: Added new benchmarks and test cases.
|
||
|
- 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 a code coverage analysis application under ./tests/coverage.
|
||
|
- NEW: Added the test suite documentation to the general documentation.
|
||
|
- NEW: Linux x86 simulator demo added.
|
||
|
- NEW: Improved the Cortex-M3 preemption code.
|
||
|
- NEW: Added standard CMSIS 1.2.0 support to the Cortex-M3 port.
|
||
|
- NEW: Added support for the ST firmware library to the STM32 port.
|
||
|
- NEW: Added support for HD and CL STM32 devices.
|
||
|
- NEW: Improvements to the AT91SAM7 support.
|
||
|
- NEW: Improved makefiles and makefile fragments, now the paths are not fixed.
|
||
|
- 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: Hardware Abstraction Layer (HAL) with support for PAL, ADC, CAN, MAC,
|
||
|
MMC/SD, PWM, Serial, SPI drivers. Added driver implementations to the
|
||
|
various platforms.
|
||
|
- NEW: Added support for uIP, lwIP, FatFS external libraries, added demos.
|
||
|
- Many many other improvements and minor features.
|
||
|
|
||
|
*** 1.2.4 ***
|
||
|
- FIX: Fixed GCC 4.4.x aliasing warnings (bug 2846336).
|
||
|
- FIX: Modified linker scripts for GCC 4.4.x (bug 2846302).
|
||
|
- FIX: Fixed the CH_OPTIMIZE_SPEED option in the CM3 port (bug 2846278).
|
||
|
- FIX: Fixed GCC 4.4.x related problems in CM3 port (bug 2846162).
|
||
|
- FIX: Fixed LPC214x UART problem (bug 2841088).
|
||
|
|
||
|
*** 1.2.3 ***
|
||
|
- FIX: Fixed C99-style variable declarations (bug 2792919).
|
||
|
- FIX: Fixed instance of obsolete CH_USE_TERMINATE option in the C++ wrapper
|
||
|
(bug 2796065).
|
||
|
- FIX: Insufficient stack allocated to the C++ LPC2148 demo (bug 2796069).
|
||
|
- FIX: Fixed errors in events test case (bug 2796081).
|
||
|
- 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.2 ***
|
||
|
- FIX: Fixed macro in test.h (bug 2781176).
|
||
|
- FIX: Fixed @file tag in sam7x_serial.c (bug 2788573).
|
||
|
- FIX: Fixed sequence assertion in test.c (bug 2789377).
|
||
|
- FIX: Fixed test_cpu_pulse() incorrect behavior (bug 2789383).
|
||
|
- FIX: Fixed missing volatile modifier for p_time field in Thread structure
|
||
|
(bug 2789501).
|
||
|
- CHANGE: Made the option CH_DBG_THREADS_PROFILING default to TRUE because it
|
||
|
is now required in order to execute the whole test suite. Note that this
|
||
|
option is very light so there is no real overhead in the system.
|
||
|
- Added a (harmless) workaround to the Cortex-M3 startup file in order to
|
||
|
make the RIDE7 demo compile on an unmodified distribution.
|
||
|
|
||
|
*** 1.2.1 ***
|
||
|
- FIX: Fixed regression in MinGW demo (bug 2745153).
|
||
|
- FIX: Fixed problem with the timeout constant TIME_IMMEDIATE (bug 2755170).
|
||
|
- FIX: Fixed a problem in semaphores test case #2 (bug 2755195).
|
||
|
- FIX: Removed unused list functions (bug 2755230).
|
||
|
- FIX: Added the exception notes into the source headers (bug 2772129).
|
||
|
- FIX: Added license notice to several files (bug 2772160).
|
||
|
- FIX: Found new instances of the obsolete function chSysGetTime() in the
|
||
|
C++ wrapper and in the WEB demo (bug 2772237).
|
||
|
|
||
|
*** 1.2.0 ***
|
||
|
- Full test cycle and test reports updated.
|
||
|
- 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, as 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.
|
||
|
- 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.
|
||
|
- 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).
|
||
|
- 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.
|
||
|
- 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.
|
||
|
- CHANGE: Changed the chSemFastWaitS() macro in chSemFastWaitI() and
|
||
|
chSemGetCounter() in chSemGetCounterI().
|
||
|
- 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).
|
||
|
- 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.
|
||
|
- 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.
|
||
|
|
||
|
*** 1.0.2 ***
|
||
|
- FIX: Fixed priority inheritance problem with condvars (bug 2674756).
|
||
|
- FIX: Fixed a problem in time ranges (bug 2680425).
|
||
|
- Replaced ./docs/index.html with a direct shortcut to the documentation.
|
||
|
|
||
|
*** 1.0.1 ***
|
||
|
- NEW: Added to the STM32 demo makefile an option to build ChibiOS/RT with the
|
||
|
full STM32 FWLib 2.03.
|
||
|
Note that, except for the compile option, the library is not used by the
|
||
|
OS nor supported.
|
||
|
- FIX: Fixed a problem into the STACK_ALIGN() macro.
|
||
|
- FIX: Fixed a problem with a wrong declaration of the PLL structure in the
|
||
|
file lpc214x.h.
|
||
|
- FIX: Modified the default value for the STM32 HSI setup it was 1, it should
|
||
|
be 0x10.
|
||
|
- FIX: Removed an obsolete constant (P_SUSPENDED) from thread.h.
|
||
|
- FIX: Removed unused field mp_grow in the MemoryPool structure.
|
||
|
- FIX: Fixed wrong assertions in chThdWait() and chHeapFree().
|
||
|
- FIX: Fixed a problem with some event APIs not showing in the documentation.
|
||
|
|
||
|
*** 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.
|