2007-09-21 09:44:36 -07:00
|
|
|
*****************************************************************************
|
|
|
|
*** Releases ***
|
|
|
|
*****************************************************************************
|
2009-04-02 06:41:54 -07:00
|
|
|
|
2009-11-15 05:03:13 -08:00
|
|
|
*** 1.3.5 ***
|
|
|
|
|
2009-10-23 08:03:07 -07:00
|
|
|
*** 1.3.4 ***
|
2009-11-14 03:23:33 -08:00
|
|
|
- FIX: Fixed bug in STM32 PAL port driver (bug 2897636).
|
2009-11-01 11:18:09 -08:00
|
|
|
- FIX: Fixed problem with ARM-CM3 context switch when compiled at level
|
|
|
|
-O0 (bug 2890382).
|
2009-11-01 10:05:54 -08:00
|
|
|
- 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).
|
2009-10-23 08:03:07 -07:00
|
|
|
- NEW: New SPI (master) driver model.
|
2009-11-01 06:14:10 -08:00
|
|
|
- NEW: SPI driver for STM32 implementing the new SPI driver model.
|
2009-11-07 02:29:32 -08:00
|
|
|
- NEW: New ADC (streaming capable) driver model.
|
2009-11-14 11:40:32 -08:00
|
|
|
- NEW: Generic MMC (over SPI) driver.
|
|
|
|
- NEW: Added a STM32 demo that integrates the MMC driver and the FatFs
|
|
|
|
file system.
|
2009-11-15 00:52:17 -08:00
|
|
|
- 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.
|
2009-11-13 13:15:13 -08:00
|
|
|
- CHANGE: Moved the STM32 firmware library under ./ext, this way there is no
|
|
|
|
need to duplicate it in each demo program.
|
2009-11-13 23:56:35 -08:00
|
|
|
- CHANGE: Moved the file stm32f10x.h from the demos to the platforms support
|
|
|
|
directory.
|
2009-10-23 08:03:07 -07:00
|
|
|
|
2009-09-30 11:18:35 -07:00
|
|
|
*** 1.3.3 ***
|
2009-10-18 10:56:20 -07:00
|
|
|
- FIX: Fixed bug in the LPC2148 PAL driver (bug 2881380).
|
|
|
|
- FIX: Fixed bug in the AT91SAM7X PAL driver (bug 2879933).
|
2009-09-30 11:18:35 -07:00
|
|
|
- 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.
|
2009-10-11 03:12:22 -07:00
|
|
|
- NEW: Added a simple lwIP demo (web server) for the AT91SAM7X.
|
2009-10-17 02:21:59 -07:00
|
|
|
- NEW: Centralized core memory manager. This simple allocator implements a
|
2009-10-16 10:45:19 -07:00
|
|
|
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
|
2009-10-17 02:54:09 -07:00
|
|
|
multiple heaps. The default heap gets its memory from the new core memory
|
|
|
|
manager.
|
2009-10-20 10:26:27 -07:00
|
|
|
- NEW: Now memory pools can optionally get new objects automatically from the
|
|
|
|
core memory manager.
|
2009-10-17 04:23:56 -07:00
|
|
|
- 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.
|
2009-10-16 10:45:19 -07:00
|
|
|
- CHANGE: Because the changes in the allocators some API prototypes changed:
|
|
|
|
chHeapAlloc(), chHeapStatus(), chThdCreateFromHeap().
|
|
|
|
- CHANGE: Because the changes in the allocators some configuration options
|
2009-10-17 08:42:19 -07:00
|
|
|
changed and some were removed, see the new template chconf.h file.
|
2009-10-11 03:29:56 -07:00
|
|
|
- CHANGE: renamed ./demos/ARM7-AT91SAM7X-WEB-GCC in ARM7-AT91SAM7X-UIP-GCC.
|
2009-10-17 04:07:15 -07:00
|
|
|
- FIX: Added the most restrictive GCC warning option to the makefiles (-Wextra)
|
|
|
|
and fixed some warnings in the code, mostly unused function parameters.
|
2009-09-30 11:18:35 -07:00
|
|
|
|
2009-07-18 05:19:47 -07:00
|
|
|
*** 1.3.2 ***
|
2009-08-29 05:06:55 -07:00
|
|
|
- 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).
|
2009-09-12 10:46:03 -07:00
|
|
|
- FIX: Fixed GCC 4.4.x related problems in CM3 port (bug 2846162)(backported
|
|
|
|
in stable branch).
|
2009-08-29 05:06:55 -07:00
|
|
|
- FIX: Fixed LPC214x UART problem (bug 2841088)(backported in stable branch).
|
2009-09-13 02:38:59 -07:00
|
|
|
- NEW: Improved the Cortex-M3 preemption code, now less interrupt-related
|
|
|
|
jitter is generated and all benchmarks scores improved a bit.
|
2009-09-12 10:46:03 -07:00
|
|
|
- NEW: Added new APIs chSchDoYieldS() and chThdYield().
|
2009-09-13 01:21:02 -07:00
|
|
|
- MEW: Added new benchmark about RAM footprint.
|
2009-09-05 08:31:27 -07:00
|
|
|
- MEW: Added new benchmark about round robin rescheduling.
|
2009-08-30 09:35:39 -07:00
|
|
|
- NEW: Reorganized and rationalized the distribution tree and the
|
|
|
|
documentation.
|
2009-08-19 06:11:25 -07:00
|
|
|
- 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
|
2009-09-12 10:46:03 -07:00
|
|
|
together with PAL. Note that the related API names changed their prefix from
|
|
|
|
chFDDxxx to sdxxx because of this.
|
2009-07-18 05:19:47 -07:00
|
|
|
- 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
|
2009-07-18 09:32:27 -07:00
|
|
|
(version 3.1.0). Note that now the ST drivers are included in the STM32
|
2009-08-16 06:07:24 -07:00
|
|
|
demo directory.
|
2009-09-19 01:00:34 -07:00
|
|
|
- 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}.
|
2009-08-19 06:11:25 -07:00
|
|
|
- CHANGE: Removed the CH_USE_SERIAL_FULLDUPLEX configuration option because
|
|
|
|
the serial driver is no more part of the kernel.
|
2009-08-27 09:42:07 -07:00
|
|
|
- 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.
|
2009-07-18 05:19:47 -07:00
|
|
|
|
2009-05-26 10:21:52 -07:00
|
|
|
*** 1.3.1 ***
|
2009-06-01 08:20:25 -07:00
|
|
|
- FIX: Removed mention of an obsolete option from the documentation (bug
|
|
|
|
2799507).
|
2009-06-14 09:49:17 -07:00
|
|
|
- NEW: Abstract digital I/O ports driver (PAL), this driver defines a common
|
2009-06-01 11:01:11 -07:00
|
|
|
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.
|
2009-06-14 11:03:34 -07:00
|
|
|
- NEW: Port drivers for STM32, LPC214x, AT91SAM7X and MSP430, cleaned up the
|
2009-06-14 09:49:17 -07:00
|
|
|
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.
|
2009-06-21 10:07:05 -07:00
|
|
|
- Modified the STM32 demo to use the bit definitions in the ST header file,
|
2009-06-21 10:29:01 -07:00
|
|
|
removed the bit definitions in board.h and stm32_serial.h.
|
2009-06-01 08:20:25 -07:00
|
|
|
- Documentation section reorganization and fixes.
|
2009-05-30 07:20:55 -07:00
|
|
|
- Changed the STM32 demo stack sizes, it was incorrectly adjusted in version
|
|
|
|
1.3.0 but it did not create problems (not a bug).
|
2009-05-26 10:21:52 -07:00
|
|
|
|
2009-04-09 11:56:07 -07:00
|
|
|
*** 1.3.0 ***
|
|
|
|
- FIX: Fixed regression in MinGW demo (bug 2745153)(backported in stable
|
|
|
|
branch).
|
2009-04-12 01:38:51 -07:00
|
|
|
- FIX: Fixed problem with the timeout constant TIME_IMMEDIATE, added a
|
|
|
|
specific test in the test suite (bug 2755170)(backported in stable branch).
|
2009-04-12 01:47:21 -07:00
|
|
|
- FIX: Fixed a problem in semaphores test case #2 (bug 2755195)(backported
|
|
|
|
in stable branch).
|
2009-04-18 06:11:25 -07:00
|
|
|
- FIX: Removed unused list functions (bug 2755230)(backported in stable
|
2009-04-12 02:05:08 -07:00
|
|
|
branch).
|
2009-04-18 03:34:23 -07:00
|
|
|
- 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).
|
2009-04-25 08:12:34 -07:00
|
|
|
- FIX: Fixed macro in test.h (bug 2781176)(backported in stable branch).
|
2009-05-09 06:06:30 -07:00
|
|
|
- FIX: Fixed sequence assertion in test.c (bug 2789377)(backported in stable
|
|
|
|
branch).
|
2009-05-09 07:55:18 -07:00
|
|
|
- FIX: Fixed test_cpu_pulse() incorrect behavior (bug 2789383)(backported in
|
|
|
|
stable branch).
|
2009-05-09 12:51:12 -07:00
|
|
|
- FIX: Fixed missing volatile modifier for p_time field in Thread structure
|
|
|
|
(bug 2789501)(backported in stable branch).
|
2009-05-17 02:17:17 -07:00
|
|
|
- FIX: Fixed C99-style variable declarations (bug 2792919)(backported in
|
|
|
|
stable branch).
|
2009-05-24 06:38:16 -07:00
|
|
|
- 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).
|
2009-05-03 02:51:01 -07:00
|
|
|
- NEW: Abstract I/O Channels mechanism introduced. This mechanism allows to
|
|
|
|
access I/O resources through a standard interface and hides implementation
|
2009-05-03 09:44:08 -07:00
|
|
|
details. The existing serial drivers were modified to offer a standard
|
2009-05-16 03:57:16 -07:00
|
|
|
channel interface to the applications (the old APIs are retained as macros).
|
2009-05-03 02:51:01 -07:00
|
|
|
- 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.
|
2009-05-16 07:49:41 -07:00
|
|
|
- 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.
|
2009-04-17 07:53:04 -07:00
|
|
|
- NEW: Added more test cases in order to improve the test suite code coverage
|
2009-05-03 09:42:52 -07:00
|
|
|
(it was 74% in version 1.2.0, it is now close to 100%).
|
2009-05-16 03:57:16 -07:00
|
|
|
- NEW: Added test cases for the improved queues and serial drivers.
|
|
|
|
- NEW: Added a code coverage analysis application under ./tests/coverage.
|
2009-05-09 09:46:49 -07:00
|
|
|
- NEW: Added the test suite documentation to the general documentation.
|
2009-04-17 07:53:04 -07:00
|
|
|
- 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.
|
2009-05-09 09:46:49 -07:00
|
|
|
- NEW: Improved priority inheritance test cases.
|
2009-04-25 07:56:16 -07:00
|
|
|
- NEW: Added architecture name strings to the port code.
|
2009-05-23 03:54:35 -07:00
|
|
|
- NEW: Linux x86 simulator demo added. It is still work in progress.
|
2009-05-01 05:58:05 -07:00
|
|
|
- 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.
|
2009-04-19 00:15:05 -07:00
|
|
|
- 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.
|
2009-04-25 04:12:10 -07:00
|
|
|
- CHANGE: Modified the test suite assertions in order to save RAM on the AVR
|
2009-05-01 00:39:07 -07:00
|
|
|
targets. The test suite now uses much less string space.
|
2009-05-09 09:05:41 -07:00
|
|
|
- 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().
|
2009-05-24 06:51:52 -07:00
|
|
|
- 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.
|
2009-04-09 11:56:07 -07:00
|
|
|
|
2009-04-02 06:41:54 -07:00
|
|
|
*** 1.2.0 ***
|
|
|
|
- Added license exception text to the 1.2.0 branch.
|
2009-04-04 10:40:51 -07:00
|
|
|
- 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).
|
2009-04-02 06:41:54 -07:00
|
|
|
- Full test cycle and test reports updated.
|
|
|
|
- Small fixes to the documentation.
|
2009-03-28 14:08:58 -07:00
|
|
|
|
|
|
|
*** 1.1.3unstable ***
|
2009-03-31 07:54:49 -07:00
|
|
|
- FIX: Fixed makefile in STM32 demo, this bug was reported fixed in
|
|
|
|
version 1.1.2 but it was still there (bug 2686451).
|
2009-03-31 08:03:25 -07:00
|
|
|
- FIX: Fixed makefile in MSP430 demo (bug 2700690).
|
|
|
|
- FIX: Fixed thumb mode build error in AT91SAM7X demos (bug 2700695).
|
2007-09-21 09:44:36 -07:00
|
|
|
|
2009-03-08 10:39:46 -07:00
|
|
|
*** 1.1.2unstable ***
|
2009-03-09 04:17:02 -07:00
|
|
|
- FIX: Fixed priority inheritance problem with condvars (bug 2674756) and
|
|
|
|
added a specific test case to the test suite (backported in stable branch).
|
2009-03-10 15:05:31 -07:00
|
|
|
- FIX: Fixed a problem in time ranges (bug 2680425)(backported in stable
|
|
|
|
branch).
|
2009-03-11 14:53:55 -07:00
|
|
|
- FIX: Build error with option CH_DBG_FILL_THREADS (bug 2683965).
|
2009-03-11 07:24:02 -07:00
|
|
|
- FIX: Fixed a wrong parameter check in chVTSetI() and chThdSleep()
|
|
|
|
(bug 2679155).
|
2009-03-10 08:31:58 -07:00
|
|
|
- FIX: Build error with options CH_USE_NESTED_LOCKS && !CH_OPTIMIZE_SPEED
|
|
|
|
(bug 2678928).
|
2009-03-08 10:39:46 -07:00
|
|
|
- FIX: Removed unused chSysPuts() macro (bug 2672678).
|
2009-03-10 08:31:58 -07:00
|
|
|
- FIX: Renamed function chSysInTimeWindow() as chTimeIsWithin() and renamed
|
|
|
|
the macro chSysGetTime() in chTimeNow(), the old names are still recognized
|
2009-03-11 02:22:59 -07:00
|
|
|
but marked as deprecated (fixes the bug 2678953 but goes a bit further by
|
|
|
|
introducing a new API category "Time").
|
2009-03-13 14:38:09 -07:00
|
|
|
- FIX: Fixed makefile problems in the AT91SAM7X256 and STM32 demos (bugs
|
|
|
|
2686347 and 2686451).
|
|
|
|
- FIX: Fixed AT91SAM7X256 EMAC driver (bug 2686349).
|
2009-03-18 12:53:33 -07:00
|
|
|
- FIX: Fixed small some errors in the documentation (bug 2692510).
|
2009-03-13 13:53:08 -07:00
|
|
|
- OPT: Small optimization to the Cortex-M3 thread startup code, improved thread
|
2009-03-12 11:46:53 -07:00
|
|
|
related performance scores and smaller code.
|
2009-03-13 14:49:55 -07:00
|
|
|
- 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.
|
2009-03-19 02:42:03 -07:00
|
|
|
- OPT: Improved ready list and priority ordered lists code, some space saved,
|
|
|
|
better context switch performance.
|
2009-03-13 12:30:52 -07:00
|
|
|
- Modified the test thread function to return the global test result flag.
|
2009-03-09 04:17:02 -07:00
|
|
|
- Removed testcond.c|h and moved the test cases into testmtx.c. Mutexes and
|
|
|
|
condvars have to be tested together.
|
2009-03-08 10:39:46 -07:00
|
|
|
- Added architecture diagram to the documentation.
|
2009-03-11 07:24:02 -07:00
|
|
|
- Removed from the documentation some references to long gone functions...
|
2009-03-08 10:39:46 -07:00
|
|
|
|
2009-02-14 01:11:26 -08:00
|
|
|
*** 1.1.1unstable ***
|
2009-02-20 12:21:37 -08:00
|
|
|
- FIX: Fixed a problem into the STACK_ALIGN() macro (backported in stable
|
|
|
|
branch).
|
2009-02-17 10:25:56 -08:00
|
|
|
- FIX: Fixed a problem with a wrong declaration of the PLL structure in the
|
|
|
|
file lpc214x.h (backported in stable branch).
|
2009-03-15 02:27:36 -07:00
|
|
|
- FIX: Fixed build problem with the C++ demo (bug 2687489).
|
2009-03-13 12:41:13 -07:00
|
|
|
- FIX: Removed EMAC driver from the AT91SAM7X256 demo makefile (bug 2686347).
|
|
|
|
- FIX: Removed C++ wrapper from the STM32 demo makefile (bug 2686451).
|
2009-02-14 13:28:10 -08:00
|
|
|
- FIX: Fixed a problem with some event APIs not showing in the documentation
|
|
|
|
(backported in stable branch).
|
2009-02-14 10:20:33 -08:00
|
|
|
- FIX: Fixed wrong assertions in chThdWait() and chHeapFree() (backported in
|
|
|
|
stable branch).
|
2009-05-09 02:43:14 -07:00
|
|
|
- FIX: Fixed @file tag in sam7x_serial.c (bug 2788573) (backported in stable
|
|
|
|
branch).
|
2009-02-14 13:28:10 -08:00
|
|
|
- FIX: Fixed a small problem in the chcore.c template file.
|
2009-02-18 04:58:35 -08:00
|
|
|
- NEW: Mailboxes (asynchronous messages) subsystem and test cases added.
|
2009-03-07 10:20:31 -08:00
|
|
|
- NEW: Most APIs with a timeout specification now accept the constant
|
2009-03-08 01:16:19 -08:00
|
|
|
TIME_IMMEDIATE (-1) that triggers an immediate timeout when trying to enter
|
|
|
|
a sleep state.
|
2009-02-14 10:20:33 -08:00
|
|
|
- NEW: Mode flexible debug configuration options, removed the old CH_USE_DEBUG
|
2009-02-20 12:14:42 -08:00
|
|
|
and CH_USE_TRACE. Replaced with CH_DBG_ENABLE_CHECKS, SCH_DBG_ENABLE_ASSERTS,
|
2009-05-09 12:51:12 -07:00
|
|
|
CH_DBG_ENABLE_TRACE and CH_DBG_FILL_THREADS.
|
2009-02-17 10:25:56 -08:00
|
|
|
- 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.
|
2009-02-21 03:14:24 -08:00
|
|
|
Currently only the ARM7 and ARMCM3 ports implements it.
|
2009-02-22 01:56:36 -08:00
|
|
|
- NEW: Unified makefiles for ARM7, ARMCM3 MSP430 projects, the new makefiles
|
2009-02-19 10:32:51 -08:00
|
|
|
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
|
2009-03-08 01:16:19 -08:00
|
|
|
option can be overridden from outside.
|
2009-02-17 10:25:56 -08:00
|
|
|
- CHANGE: Changed the chSemFastWaitS() macro in chSemFastWaitI() and
|
|
|
|
chSemGetCounter() in chSemGetCounterI().
|
2009-02-22 00:43:49 -08:00
|
|
|
- CHANGE: Removed the port_puts() function from the port templates. It was not
|
|
|
|
implemented on all ports.
|
2009-02-16 10:22:49 -08:00
|
|
|
- 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
|
2009-02-28 01:39:02 -08:00
|
|
|
into the test main module. New benchmarks about semaphores and mutexes.
|
2009-02-14 01:11:26 -08:00
|
|
|
|
2009-01-05 09:23:24 -08:00
|
|
|
*** 1.1.0unstable ***
|
2009-02-04 12:22:32 -08:00
|
|
|
- FIX: Modified the default value for the STM32 HSI setup it was 1, it should
|
2009-02-07 04:42:29 -08:00
|
|
|
be 0x10 (backported in stable branch).
|
|
|
|
- FIX: Removed an obsolete constant (P_SUSPENDED) from thread.h (backported in
|
2009-02-04 12:22:32 -08:00
|
|
|
stable branch).
|
2009-02-14 10:20:33 -08:00
|
|
|
- FIX: Removed unused field mp_grow in the MemoryPool structure (backported in
|
2009-02-04 12:22:32 -08:00
|
|
|
stable branch).
|
2009-02-08 05:02:31 -08:00
|
|
|
- NEW: Added to the STM32 demo makefile an option to build ChibiOS/RT with the
|
2009-02-13 23:27:00 -08:00
|
|
|
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).
|
2009-01-06 10:38:05 -08:00
|
|
|
- NEW: Better separation between the port code and the system APIs, now an
|
|
|
|
architecture-specific "driver" contains all the port related code.
|
2009-01-18 01:45:57 -08:00
|
|
|
Port functions/macros are no more directly exposed as APIs to the user code.
|
2009-01-06 03:46:31 -08:00
|
|
|
- NEW: Added a configuration option to enable nested system locks/unlocks.
|
2009-01-05 09:23:24 -08:00
|
|
|
- NEW: Improved the interrupt handlers related code. Now interrupts are
|
2009-01-24 09:59:51 -08:00
|
|
|
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.
|
2009-02-02 04:48:17 -08:00
|
|
|
- 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.
|
2009-02-07 06:59:26 -08:00
|
|
|
- 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
|
2009-02-08 05:02:31 -08:00
|
|
|
TRUE/FALSE value within an #ifndef block.
|
2009-02-07 04:42:29 -08:00
|
|
|
- NEW: Idle thread hook macro added to the configuration file.
|
2009-02-09 14:01:42 -08:00
|
|
|
- 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.
|
2009-01-22 07:37:29 -08:00
|
|
|
- OPT: Improved ARM7 thumb port code, thanks to some GCC tricks involving
|
2009-01-22 11:16:43 -08:00
|
|
|
registers usage now the kernel is much smaller, faster and most OS APIs
|
2009-01-22 07:37:29 -08:00
|
|
|
use less RAM in stack frames (note, this is an ARM7 thumb mode specific
|
|
|
|
optimization).
|
2009-02-11 11:37:57 -08:00
|
|
|
- CHANGE: Now the API chThdSetPriority() returns the old priority instead
|
|
|
|
of void.
|
2009-02-02 04:48:17 -08:00
|
|
|
- CHANGE: Modified the signature of the chMsgSendWithEvent() API, it now uses
|
|
|
|
a more efficient event signaling method.
|
2009-02-01 02:07:13 -08:00
|
|
|
- CHANGE: Removed the field p_tid from the Thread structure and the related
|
2009-02-01 05:24:54 -08:00
|
|
|
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.
|
2009-01-11 03:30:46 -08:00
|
|
|
- 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.
|
2009-02-14 08:17:07 -08:00
|
|
|
- CHANGE: Renamed several internal initialization functions by removing the
|
2009-02-08 05:02:31 -08:00
|
|
|
"ch" prefix because could not be considered system APIs.
|
2009-01-22 12:20:45 -08:00
|
|
|
- Improved ARM7 and Cortex-M3 support, new configuration options.
|
2009-01-16 07:41:08 -08:00
|
|
|
- Introduced the concept of interrupt classes, see the documentation.
|
2009-01-18 05:44:50 -08:00
|
|
|
- Introduced the concept of system states, see the documentation.
|
2009-02-09 14:18:39 -08:00
|
|
|
- Huge improvements to the documentation.
|
2009-01-19 05:31:37 -08:00
|
|
|
- Articles and notes previously in the wiki now merged in the general
|
2009-01-22 07:37:29 -08:00
|
|
|
documentation and updated, the wiki entries are obsolete and will be removed.
|
2009-01-19 07:10:41 -08:00
|
|
|
- New application notes and articles added.
|
2009-02-13 22:54:06 -08:00
|
|
|
- Added kernel size metrics to the test reports.
|
2009-02-04 07:18:37 -08:00
|
|
|
- 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).
|
2009-01-05 09:23:24 -08:00
|
|
|
|
2009-01-30 09:31:27 -08:00
|
|
|
*** 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.
|
|
|
|
|
2009-01-22 11:16:43 -08:00
|
|
|
*** 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.
|
|
|
|
|
2009-01-05 09:23:24 -08:00
|
|
|
*** 1.0.0rc2 ***
|
|
|
|
- FIX: Removed unused variable "retaddr" from the Cortex-M3 port.
|
2009-01-06 01:32:35 -08:00
|
|
|
- FIX: The macro THD_WA_SIZE was defined wrongly in the file
|
|
|
|
./src/templates/chcore.h.
|
2009-01-09 12:23:21 -08:00
|
|
|
- Fixed some errors in the documentation.
|
2009-01-05 09:23:24 -08:00
|
|
|
|
2008-12-29 04:12:53 -08:00
|
|
|
*** 1.0.0rc1 ***
|
|
|
|
- NEW: Added new macros CH_KERNEL_VERSION set to "1.0.0rc1", CH_KERNEL_MAJOR
|
2008-12-29 03:06:49 -08:00
|
|
|
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.
|
2008-12-29 04:12:53 -08:00
|
|
|
- NEW: Made all the port-specific configuration settings externally
|
|
|
|
configurable, see the documentation.
|
2008-12-28 02:07:46 -08:00
|
|
|
- FIX: Disabled the configuration option CH_USE_MESSAGES_PRIORITY from the
|
|
|
|
MSP430 demo, the default for this option should be off.
|
2008-12-29 00:58:17 -08:00
|
|
|
- FIX: Fixed a bug that prevented the THREAD_EXT_FIELDS to be compiled into
|
|
|
|
the Thread structure.
|
2008-12-29 03:38:21 -08:00
|
|
|
- FIX: Removed some references to deprecated APIs from the test suite.
|
2008-12-30 10:15:30 -08:00
|
|
|
- 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).
|
2009-01-09 12:23:21 -08:00
|
|
|
- FIX: Set the INT_REQUIRED_STACK configuration value for the AVR port to a
|
2008-12-30 10:15:30 -08:00
|
|
|
safer 32.
|
2008-12-29 04:53:10 -08:00
|
|
|
- FIX: Fixed the MinGW demo in order to not use any deprecated construct.
|
2008-12-29 00:58:17 -08:00
|
|
|
- Removed deprecated threads APIs: chThdCreate() and chThdCreateFast().
|
2008-12-28 03:17:09 -08:00
|
|
|
- Removed deprecated events APIs: chEvtWait(), chEvtWaitTimeout(), chEvtSend(),
|
|
|
|
chEvtSendI(), EventMask().
|
2008-12-28 02:07:46 -08:00
|
|
|
- Removed deprecated configuration feature CH_USE_EXIT_EVENT and the related
|
2008-12-31 01:41:14 -08:00
|
|
|
API chThdGetExitEventSource(). The feature can be reimplemented in user code
|
|
|
|
as shown by the MinGW demo.
|
2008-12-28 03:17:09 -08:00
|
|
|
- Removed deprecated macros: WorkingArea(), UserStackSize(), StackAlign().
|
2008-12-27 02:31:16 -08:00
|
|
|
- Added usage note into the readme of the MinGW demo.
|
2008-12-28 05:17:52 -08:00
|
|
|
- Added usage notes for programmers to the ARM7 port documentation about
|
|
|
|
interrupt handlers.
|
2008-12-29 03:38:21 -08:00
|
|
|
- Port-specific settings added to the documentation.
|
2008-12-30 02:21:01 -08:00
|
|
|
- Added source browser to the documentation.
|
2008-12-28 05:40:49 -08:00
|
|
|
- Fixes and improvements through the documentation.
|
2008-12-27 02:31:16 -08:00
|
|
|
|
2008-12-07 02:21:40 -08:00
|
|
|
*** 0.8.3 ***
|
2008-12-23 00:47:30 -08:00
|
|
|
- NEW: Introduced new API chThdSleepS() as a macro, no real changes in the
|
2008-12-28 02:07:46 -08:00
|
|
|
kernel code.
|
2008-12-13 01:55:16 -08:00
|
|
|
- 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.
|
2008-12-13 02:34:39 -08:00
|
|
|
- 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
|
2008-12-13 01:55:16 -08:00
|
|
|
debug the demo (and the kernel) inside Eclipse without a physical board.
|
2008-12-13 02:34:39 -08:00
|
|
|
- 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.
|
2008-12-07 02:21:40 -08:00
|
|
|
- Updated the C++ wrapper with the latest APIs changes and fixed some bugs.
|
|
|
|
- Small fixes to the documentation.
|
|
|
|
|
2008-11-21 12:06:17 -08:00
|
|
|
*** 0.8.2 ***
|
2008-12-06 02:59:44 -08:00
|
|
|
- FIX: Included the files that were missing from version 0.8.1 distribution.
|
2008-11-21 12:06:17 -08:00
|
|
|
- FIX: Duplicated sections in the documentation removed.
|
2008-11-29 04:56:26 -08:00
|
|
|
- FIX: Minor problem in Cortex-M3 and AVR ports when the kernel is compiled
|
|
|
|
using G++.
|
2008-11-27 11:38:03 -08:00
|
|
|
- NEW: Added chPoolAllocI() and chPoolFreeI() APIs in order to allow the use
|
|
|
|
of memory pools from interrupt handlers and timer callbacks.
|
2008-12-06 02:59:44 -08:00
|
|
|
- CHANGE: Simplified the code for chThdWait(), it is now both smaller and
|
|
|
|
faster. Added an important usage note to the documentation of this API.
|
2008-11-29 02:54:24 -08:00
|
|
|
- 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().
|
2008-12-06 03:42:25 -08:00
|
|
|
- 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.
|
2008-11-21 12:06:17 -08:00
|
|
|
|
2008-11-17 10:35:05 -08:00
|
|
|
*** 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).
|
|
|
|
|
2008-11-08 02:58:59 -08:00
|
|
|
*** 0.8.0 ***
|
2008-11-09 03:12:11 -08:00
|
|
|
- NEW: Added condvars mechanism on top of the mutexes subsystem.
|
2008-11-08 02:58:59 -08:00
|
|
|
- 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:
|
2008-11-09 01:31:17 -08:00
|
|
|
* 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.
|
2008-11-15 01:51:40 -08:00
|
|
|
* EVENT_MASK() - Replaces the old EventMask() macro.
|
2008-11-08 02:58:59 -08:00
|
|
|
All the "wait"-type APIs have a timeout-capable variant.
|
2008-11-15 01:51:40 -08:00
|
|
|
- CHANGE: The old EventMask(), chEvtWait() and chEvtWaitTimeout() APIs are
|
|
|
|
now deprecated and will be removed in version 1.0.0.
|
2008-11-05 13:43:21 -08:00
|
|
|
- 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
|
2008-11-08 02:58:59 -08:00
|
|
|
optional code without have to compile twice.
|
2008-11-09 01:31:17 -08:00
|
|
|
- FIX: Fixed a warning generated by the chEvtIsListening() macro.
|
2008-11-09 04:03:59 -08:00
|
|
|
- Added new test cases to the test suite about condvars and the new events
|
|
|
|
APIs.
|
2008-11-02 04:43:53 -08:00
|
|
|
- Added a new benchmark to the test suite (timers set/reset performance).
|
2008-11-03 13:34:42 -08:00
|
|
|
- Renamed the macro fifo_init() to queue_init() because it is used to init
|
|
|
|
both FIFO queues and priority queues.
|
2008-11-05 12:56:55 -08:00
|
|
|
- Fixes and improvements to the documentation.
|
2008-11-15 02:19:57 -08:00
|
|
|
- Cleaned demo applications of old events code.
|
2008-11-02 04:43:53 -08:00
|
|
|
|
2008-10-18 02:58:54 -07:00
|
|
|
*** 0.7.3 ***
|
2008-10-26 03:45:42 -07:00
|
|
|
- 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.
|
2008-10-25 04:02:35 -07:00
|
|
|
- CHANGE: Removed the files chsleep.c and sleep.h.
|
2008-10-25 03:35:10 -07:00
|
|
|
- CHANGE: Renamed the files chdelta.c and delta.h to chvt.c and vt.h. All the
|
2008-10-26 07:03:35 -07:00
|
|
|
system time related functions and macros are now there.
|
2008-10-25 03:35:10 -07:00
|
|
|
- CHANGE: Renamed the structure DeltaList to VTList, it includes the system
|
|
|
|
time counter too now.
|
2008-10-25 02:34:25 -07:00
|
|
|
- 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.
|
2008-10-21 11:33:52 -07:00
|
|
|
- Small optimization to the MSP430 serial driver.
|
2008-11-01 10:53:25 -07:00
|
|
|
- Improvements to the test code, now a failed assert terminates the test case.
|
2008-10-25 00:11:42 -07:00
|
|
|
- Added dependency informations handling to the MSP430 demo Makefile.
|
2008-10-18 02:58:54 -07:00
|
|
|
- Removed the performance spreadsheet (it was *very* old) and added a
|
2008-10-25 00:11:42 -07:00
|
|
|
directory containing the test reports ./docs/reports. Each report shows the
|
|
|
|
results from the latest test run on each target.
|
2008-10-26 06:59:19 -07:00
|
|
|
- Small fixes to the documentation.
|
2008-10-18 02:58:54 -07:00
|
|
|
|
2008-10-04 00:44:48 -07:00
|
|
|
*** 0.7.2 ***
|
2008-10-12 10:31:38 -07:00
|
|
|
- NEW: Added a serial driver to the MSP430 port, the MSP430 port now has been
|
|
|
|
tested on hardware and passes the test suite.
|
2008-10-12 10:51:41 -07:00
|
|
|
- NEW: Added to the MSP demo program the option to run from the internal DCO
|
2008-10-15 11:27:58 -07:00
|
|
|
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.
|
2008-10-15 11:29:36 -07:00
|
|
|
- CHANGE: Modified the test suite to use the new time conversion macros.
|
2008-10-04 02:31:36 -07:00
|
|
|
- CHANGE: Modified the CM3 startup file in order to implement an early
|
2008-10-15 11:53:15 -07:00
|
|
|
initialization phase: hwinit0, the late initialization phase is now named
|
2008-10-04 02:31:36 -07:00
|
|
|
hwinit1. The demo now initializes the PLL before initializing the BSS and
|
|
|
|
DATA segments, this greatly optimizes the system start up time.
|
2008-10-04 03:07:48 -07:00
|
|
|
- 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
|
2008-10-04 05:00:18 -07:00
|
|
|
vectors.s files.
|
2008-10-04 00:44:48 -07:00
|
|
|
- Modified the STM32 demo makefile to use the latest YAGARTO toolchain as
|
|
|
|
default (arm-elf-gcc).
|
2008-10-16 13:24:33 -07:00
|
|
|
- Documentation improvements, added collaboration diagrams and call graphs.
|
2008-10-17 11:33:35 -07:00
|
|
|
Added a documentation-related readme under ./docs.
|
2008-10-12 10:54:43 -07:00
|
|
|
|
2008-09-20 08:34:56 -07:00
|
|
|
*** 0.7.1 ***
|
2008-09-22 08:29:48 -07:00
|
|
|
- NEW: New chThdInit() and chThdCreateStatic() APIs now replace the old
|
2008-09-23 08:04:14 -07:00
|
|
|
chThdCreate() and chThdCreateFast() that are thus marked as deprecated.
|
2008-09-22 08:29:48 -07:00
|
|
|
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.
|
2008-09-26 03:46:10 -07:00
|
|
|
- NEW: Added an THREAD_EXT_EXIT macro in chconf.h to add finalization code to
|
|
|
|
the chThdExit() API.
|
2008-09-24 04:55:40 -07:00
|
|
|
- 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.
|
2008-09-24 07:44:42 -07:00
|
|
|
- CHANGE: Modified the chThdResume() API to return the resumed thread pointer
|
2008-09-26 03:46:10 -07:00
|
|
|
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.
|
2008-09-20 08:34:56 -07:00
|
|
|
- FIX: The chThdCreate() had a regression in 0.7.0, the mode parameter was
|
2008-09-24 04:55:40 -07:00
|
|
|
ignored.
|
|
|
|
- FIX: Removed duplicated call to chHeapInit() into chSysInit().
|
2008-09-24 07:44:42 -07:00
|
|
|
- FIX: Fixed a syntax error in chheap.c triggered by the CH_USE_DEBUG option.
|
2008-09-23 08:04:14 -07:00
|
|
|
- Added new test cases to the test suite for the new dynamic APIs.
|
2008-09-24 04:55:40 -07:00
|
|
|
- Documentation fixes.
|
2008-09-20 08:34:56 -07:00
|
|
|
|
2008-08-26 03:38:29 -07:00
|
|
|
*** 0.7.0 ***
|
2008-08-28 06:34:46 -07:00
|
|
|
- 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
|
2008-09-06 01:56:34 -07:00
|
|
|
allocator is thread-safe and can use both a mutex or a semaphore as
|
2008-08-28 08:10:54 -07:00
|
|
|
internal synchronization primitive.
|
2008-08-26 03:38:29 -07:00
|
|
|
- NEW: Memory Pools functionality added, this mechanism allows constant-time
|
2008-08-28 06:34:46 -07:00
|
|
|
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.
|
2008-08-28 08:10:54 -07:00
|
|
|
The pool allocator is thread-safe.
|
2008-09-03 06:24:21 -07:00
|
|
|
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.
|
2008-08-28 06:34:46 -07:00
|
|
|
Both the allocators can be disabled and removed from the memory image.
|
2008-09-05 06:04:28 -07:00
|
|
|
- NEW: Added option macros in chconf.h to add custom fields and initialization
|
|
|
|
code to the Thread structure.
|
2008-09-03 03:58:43 -07:00
|
|
|
- FIX: Corrected the wrong definition of the chThdResumeI() macro.
|
2008-09-03 05:43:02 -07:00
|
|
|
- FIX: The API chSemWaitTimeout() was missing in the documentation.
|
2008-09-11 08:03:25 -07:00
|
|
|
- CHANGE: Modified the chMtxUnlock() and chMtxUnlockS() APIs to return the
|
|
|
|
pointer to the released mutex instead of void.
|
2008-09-13 02:01:16 -07:00
|
|
|
- CHANGE: Now the chThdResume() API asserts that the thread is in PRSUSPEND
|
|
|
|
state rather than test it.
|
2008-09-03 05:18:39 -07:00
|
|
|
- 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.
|
2008-09-06 01:56:34 -07:00
|
|
|
- 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.
|
2008-08-28 06:34:46 -07:00
|
|
|
- Added new test cases to the test suite.
|
2008-08-26 03:38:29 -07:00
|
|
|
|
2008-08-08 02:31:54 -07:00
|
|
|
*** 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.
|
2008-08-25 06:00:11 -07:00
|
|
|
- NEW: Added an option to the ARM7 ports, by specifying -DREENTRANT_LOCKS in
|
2008-08-25 06:03:30 -07:00
|
|
|
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.
|
2008-08-25 07:17:38 -07:00
|
|
|
- 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).
|
2008-08-08 02:31:54 -07:00
|
|
|
|
2008-07-25 07:32:39 -07:00
|
|
|
*** 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
|
2008-07-26 10:45:04 -07:00
|
|
|
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.
|
2008-07-30 04:01:56 -07:00
|
|
|
- OPT: Improved reschedulation 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.
|
2008-07-26 04:40:09 -07:00
|
|
|
- FIX: Fixed a bug in the chThdSetPriority() API.
|
2008-07-26 10:39:01 -07:00
|
|
|
- FIX: Modified the structure names into nvic.h in order to not make them
|
|
|
|
collide with external libraries.
|
2008-07-30 04:01:56 -07:00
|
|
|
- Added a benchmark to the test suit that measures the mass reschedulation
|
|
|
|
performance.
|
2008-07-30 07:56:35 -07:00
|
|
|
- Added a test_terminate_threads() function to the test framework.
|
2008-07-25 08:13:41 -07:00
|
|
|
- Made the Cortex-M3 port preemption code more readable.
|
2008-08-01 02:24:16 -07:00
|
|
|
- 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
|
2008-08-01 02:27:27 -07:00
|
|
|
compatible with some JTAG probes, it is better to enable it only on final
|
2008-08-01 02:24:16 -07:00
|
|
|
builds and not when debugging.
|
2008-07-25 07:32:39 -07:00
|
|
|
|
2008-07-22 02:55:51 -07:00
|
|
|
*** 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.
|
2008-07-23 03:38:16 -07:00
|
|
|
- CHANGE: The function chEvtSend() and chEvtSendI() are now renamed in
|
|
|
|
chEvtBroadcast() and chEvtBroadcastI(), the old names are still available
|
|
|
|
but are deprecated.
|
2008-07-23 03:22:14 -07:00
|
|
|
- Made the default BASEPRI levels (CM3 port) configurable into chcore.h.
|
2008-07-23 03:38:16 -07:00
|
|
|
- Many improvements to the documentation.
|
|
|
|
- All the fixes and changes in this release were suggested/submitted by
|
|
|
|
Leon Woestenberg (thank you).
|
2008-07-22 02:55:51 -07:00
|
|
|
|
2008-07-02 05:32:13 -07:00
|
|
|
*** 0.6.7 ***
|
2008-07-04 02:50:46 -07:00
|
|
|
- NEW: New chThdCreateFast() API, it is a simplified form of chThdCreate()
|
2008-07-05 00:11:12 -07:00
|
|
|
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().
|
2008-07-02 07:01:18 -07:00
|
|
|
- OPT: Improvements to the test framework, now a virtual timer is used instead
|
2009-01-22 07:37:29 -08:00
|
|
|
of software loops into the benchmarks in order to have more stable results.
|
2008-07-06 01:45:08 -07:00
|
|
|
- New benchmark added to the test suite.
|
2008-07-02 05:32:13 -07:00
|
|
|
- Added the C++ wrapper entries to the documentation.
|
2008-07-04 02:50:46 -07:00
|
|
|
- Fixed the documentation entry for the chThdCreate() API.
|
2008-07-07 05:38:56 -07:00
|
|
|
- Removed redundant ifdefs from the ch.h header.
|
2008-07-02 05:32:13 -07:00
|
|
|
|
2008-06-19 06:14:32 -07:00
|
|
|
*** 0.6.6 ***
|
2008-06-26 03:54:55 -07:00
|
|
|
- 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.
|
2008-06-26 07:35:14 -07:00
|
|
|
- FIX: Mutex test #1 in the test suite corrected, it failed to... fail.
|
2008-06-25 04:53:39 -07:00
|
|
|
- FIX: Fixed a problem in the STM32 port USART1 driver.
|
2008-07-02 07:01:18 -07:00
|
|
|
- FIX: Fixed a problem in the MMC/SD driver in the LPC2148 demo.
|
2008-06-19 06:14:32 -07:00
|
|
|
- Added the definitions for packed structures to the chtypes.h files.
|
2008-06-26 07:06:21 -07:00
|
|
|
- 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.
|
2008-06-19 06:14:32 -07:00
|
|
|
|
2008-05-16 02:17:25 -07:00
|
|
|
*** 0.6.5 ***
|
2008-05-27 02:30:20 -07:00
|
|
|
- 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.
|
2008-05-16 08:09:49 -07:00
|
|
|
- FIX: Small fix to the ARM7 startup files. It used a short jump in the reset
|
2008-05-20 05:44:49 -07:00
|
|
|
vector and that could fail in some memory configurations.
|
2008-05-31 00:51:10 -07:00
|
|
|
- Documentation improvements.
|
2008-05-16 02:17:25 -07:00
|
|
|
|
2008-04-23 01:36:16 -07:00
|
|
|
*** 0.6.4 ***
|
2008-05-08 08:32:09 -07:00
|
|
|
- NEW: MSP430 port, the port code compiles correctly but it is not tested yet.
|
|
|
|
The port requires the MSPGCC toolchain.
|
2008-05-07 06:08:43 -07:00
|
|
|
- NEW: Added a CH_ARCHITECTURE_xxx define to the various chcore.h files, it
|
|
|
|
allows to write port-dependent code.
|
2008-05-08 08:32:09 -07:00
|
|
|
- NEW: Added to the documentation the technical notes about the currently
|
|
|
|
supported ports.
|
2008-05-07 06:08:43 -07:00
|
|
|
- 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.
|
2008-05-08 08:32:09 -07:00
|
|
|
It is nowhere required the bool_t type to be one byte sized.
|
2008-05-07 06:08:43 -07:00
|
|
|
- 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
|
2008-04-23 08:42:26 -07:00
|
|
|
explicitly assert -mno-thumb-interworking and -mabi=apcs-gnu in order to
|
|
|
|
produce better code.
|
2008-05-08 08:32:09 -07:00
|
|
|
- Added an Ethernet driver for AT91SAM7X EMAC, not complete yet, it will be
|
2008-05-07 06:08:43 -07:00
|
|
|
required by a uIP web server demo under ChibiOS/RT coming in some next
|
|
|
|
release.
|
2008-05-07 05:00:55 -07:00
|
|
|
|
2008-04-09 08:26:18 -07:00
|
|
|
*** 0.6.3 ***
|
2008-04-18 05:33:52 -07:00
|
|
|
- NEW: ARM Cortex-M3 port completed. The demo program targets the STM32F103
|
|
|
|
chip from ST Microelectronics on an Olimex STM32-P103 board.
|
2008-04-18 08:08:39 -07:00
|
|
|
- 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
|
2008-04-17 07:44:21 -07:00
|
|
|
because THUMB/THUMB2 modes seem to use a lot more stack than ARM mode.
|
2008-04-09 08:26:18 -07:00
|
|
|
|
2008-03-17 08:43:03 -07:00
|
|
|
*** 0.6.2 ***
|
2008-03-26 09:25:26 -07:00
|
|
|
- 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.
|
2008-03-27 05:33:31 -07:00
|
|
|
- Enhanced the chSemSignalWait() API to return the wakeup message just like
|
2008-04-23 03:37:10 -07:00
|
|
|
the other "Wait" semaphore functions do.
|
2008-03-18 09:31:24 -07:00
|
|
|
- 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.
|
2008-03-26 09:25:26 -07:00
|
|
|
- Fixed a compile time error into the chThdSleepUntil() macro.
|
|
|
|
- Fixes in various headers to make some macros compatible with both C and C++.
|
2008-03-27 05:33:31 -07:00
|
|
|
- Fixed a regression in the LPC214x minimal demo that broke interrupt
|
|
|
|
handling.
|
2009-01-22 07:37:29 -08:00
|
|
|
- Some fixes to the doxygen documentation.
|
2008-03-27 05:33:31 -07:00
|
|
|
- More work done on the ARM-CM3 port but it is still not complete.
|
2008-03-17 08:43:03 -07:00
|
|
|
|
2008-03-11 07:32:04 -07:00
|
|
|
*** 0.6.1 ***
|
|
|
|
- Removed some redundant checks from the scheduler code: improved threads
|
2008-03-12 08:23:10 -07:00
|
|
|
flyback time, reduced interrupts service time.
|
|
|
|
- Nice scheduler speed improvement obtained by removing the 2nd parameter to
|
2008-03-12 04:24:24 -07:00
|
|
|
the chSchReadyI() API and manually assigning the message value only where
|
|
|
|
is really needed (very few points in the code).
|
2008-03-12 14:22:42 -07:00
|
|
|
- More space savings and speed improvements obtained by removing the
|
2008-03-12 14:05:13 -07:00
|
|
|
-fno-strict-aliasing option from the makefiles, now the kernel compiles
|
2008-03-12 14:22:42 -07:00
|
|
|
without any warning even without this option.
|
2008-03-11 07:32:04 -07:00
|
|
|
- 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
|
2008-03-12 14:22:42 -07:00
|
|
|
LPC21xx demos. This saves significant program space.
|
2008-03-15 01:49:15 -07:00
|
|
|
- Started work on ARM Cortex-M3 architecture. The target chip is the STM32F103
|
2008-03-13 07:41:17 -07:00
|
|
|
on a Olimex STM32-P103 board.
|
2008-03-14 09:08:11 -07:00
|
|
|
- Added a threads state diagram to the documentation.
|
2009-01-22 07:37:29 -08:00
|
|
|
- Various fixes to the doxygen documentation.
|
2008-03-11 07:32:04 -07:00
|
|
|
|
2008-03-05 02:59:11 -08:00
|
|
|
*** 0.6.0 ***
|
2008-03-03 07:52:55 -08:00
|
|
|
- Code refactory, all the old sized-integer definitions like LONG32, UWORD16
|
|
|
|
etc are now replaced by the proper definitions provided by the compiler
|
2008-03-05 02:59:11 -08:00
|
|
|
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
|
2008-03-06 08:05:42 -08:00
|
|
|
it, the changes were required because the type names were a concern for
|
2008-03-05 02:59:11 -08:00
|
|
|
some users.
|
|
|
|
- Implemented a serial driver in the AVR port.
|
2008-03-07 07:24:00 -08:00
|
|
|
- Implemented a simple HD44780 LCD driver into the AVRmega128 demo.
|
2008-03-06 03:38:11 -08:00
|
|
|
- Reworked the AVR AT90CAN128 port to share the common AVR code.
|
2008-03-05 07:56:12 -08:00
|
|
|
- Modified the test suite to be compatible with 8 bit micros.
|
2008-03-04 02:33:38 -08:00
|
|
|
- MSVC demo dropped, it is still possible to use the MinGW demo as simulator
|
|
|
|
in Win32.
|
2008-03-04 08:08:22 -08:00
|
|
|
- Fixed a minor error in sam7x_serial.h and lpc214x_serial.h.
|
2008-03-05 07:56:12 -08:00
|
|
|
- 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.
|
2008-03-03 07:52:55 -08:00
|
|
|
|
2008-02-22 03:09:02 -08:00
|
|
|
*** 0.5.5 ***
|
2008-03-01 01:54:08 -08:00
|
|
|
- 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
|
2008-03-01 01:55:14 -08:00
|
|
|
share most of it. The demo is very simple, it will be expanded in next
|
|
|
|
releases.
|
2008-02-22 03:09:02 -08:00
|
|
|
- Reorganized the code of the two ARM7 ports, now all the common ARM7 code
|
2008-02-27 07:53:49 -08:00
|
|
|
is in ./ports/ARM7. This will make maintenance and new ARM7 ports much much
|
2008-02-22 03:09:02 -08:00
|
|
|
easier.
|
2008-02-22 07:23:32 -08:00
|
|
|
- Simplified the directory structure under ./ports.
|
|
|
|
- Added to the readme a section with our future plans/ideas.
|
2008-02-27 07:53:49 -08:00
|
|
|
- The kernel is *unchanged* compared to version 0.5.3, just the new port and
|
|
|
|
the new demo were added.
|
2008-02-22 03:09:02 -08:00
|
|
|
|
2008-02-06 06:41:28 -08:00
|
|
|
*** 0.5.4 ***
|
2009-01-22 07:37:29 -08:00
|
|
|
- Port for Atmel AT91SAM7X256 introduced, the port should be usable also on
|
2008-02-19 08:29:25 -08:00
|
|
|
SAM7S and SAM7XC but no tests were performed. Other SAM7 processors should
|
2009-01-22 07:37:29 -08:00
|
|
|
also be usable with limited changes.
|
2008-02-19 08:29:25 -08:00
|
|
|
The demo currently just performs basic operations, will be enhanced in next
|
2008-02-21 05:31:30 -08:00
|
|
|
ChibiOS/RT releases, see the demo readme.txt file.
|
2008-02-21 07:10:49 -08:00
|
|
|
- Small fix to the thumb mode IRQ code on the LPC214x port, removed some extra
|
|
|
|
code.
|
2008-02-27 07:53:49 -08:00
|
|
|
- The kernel is *unchanged* compared to version 0.5.3, just the new port and
|
|
|
|
the new demo were added.
|
2008-02-06 06:41:28 -08:00
|
|
|
|
2008-01-23 06:50:42 -08:00
|
|
|
*** 0.5.3 ***
|
2008-01-25 02:07:18 -08:00
|
|
|
- Removed the chMsgSendTimeout() API, it was conceptually flawed because,
|
2008-01-23 06:50:42 -08:00
|
|
|
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
|
2008-01-25 02:11:55 -08:00
|
|
|
not acceptable.
|
2008-01-23 06:50:42 -08:00
|
|
|
- Removed the test case for chMsgSendTimeout() from the test suite.
|
|
|
|
- Space saved by reorganizing the timeout code into a single scheduler
|
2008-01-25 02:43:05 -08:00
|
|
|
function chSchGoSleepTimeoutS().
|
2008-01-25 02:07:18 -08:00
|
|
|
- Space optimizations in the semaphores code.
|
2008-01-23 06:50:42 -08:00
|
|
|
- The API chThdSleepUntil() become a macro saving some more code space.
|
2008-01-25 02:07:18 -08:00
|
|
|
- Because all the above changes the kernel code (ARM) is over 700 bytes
|
2008-01-23 06:50:42 -08:00
|
|
|
smaller.
|
|
|
|
|
2008-01-10 05:52:44 -08:00
|
|
|
*** 0.5.2 ***
|
2008-01-17 01:34:46 -08:00
|
|
|
- Fixed a small problem in the main header file ch.h.
|
2008-01-10 05:52:44 -08:00
|
|
|
- Small reordering in the fields of the Thread structure in order to optimize
|
|
|
|
the space when messages are not used.
|
|
|
|
|
2008-01-01 09:45:25 -08:00
|
|
|
*** 0.5.1 ***
|
2008-01-07 06:06:46 -08:00
|
|
|
- NEW: Priority enqueing for messages can be optionally enabled by specifying
|
2008-01-08 05:41:04 -08:00
|
|
|
the P_MSGBYPRIO option when creating a message server thread.
|
2008-01-07 06:06:46 -08:00
|
|
|
This change allows the implementation of a priority ceiling protocol into
|
|
|
|
message servers threads. Threads serving messages by priority and threads
|
2009-01-22 07:37:29 -08:00
|
|
|
serving messages in FIFO order can exist at the same time in the system.
|
2008-01-07 06:16:06 -08:00
|
|
|
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).
|
2008-01-07 06:06:46 -08:00
|
|
|
Note: This option brings a small overhead when sending a message regardless
|
2009-01-22 07:37:29 -08:00
|
|
|
if in FIFO or priority order, if you don't need priority ordering for your
|
2008-02-25 08:29:25 -08:00
|
|
|
messages it is better to keep the feature disabled in chconf.h.
|
2008-01-01 09:45:25 -08:00
|
|
|
- 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")))
|
2008-01-07 02:49:59 -08:00
|
|
|
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.
|
2009-01-22 07:37:29 -08:00
|
|
|
- Fixed some syntax incompatibilities between GCC and MSVC into chmtx.c.
|
2008-01-01 09:45:25 -08:00
|
|
|
|
2007-12-16 11:01:30 -08:00
|
|
|
*** 0.5.0 ***
|
2007-12-19 03:23:56 -08:00
|
|
|
- NEW: Mutexes, the new mechanism provides a complete implementation of the
|
|
|
|
"priority inheritance" algorithm as a tool for work around the priority
|
|
|
|
inversion problem.
|
2007-12-17 06:57:44 -08:00
|
|
|
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.
|
2007-12-16 11:01:30 -08:00
|
|
|
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.
|
2007-12-22 03:34:39 -08:00
|
|
|
- Fixed a bug in the round robin scheduling mode, see the bug tracker for
|
|
|
|
details and a fix for previous versions.
|
2007-12-22 04:43:37 -08:00
|
|
|
- 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).
|
2007-12-22 03:34:39 -08:00
|
|
|
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.
|
2007-12-21 07:27:59 -08:00
|
|
|
- Added mutexes test cases and new benchmarks to the test suite.
|
2007-12-17 06:57:44 -08:00
|
|
|
- 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.
|
2007-12-18 02:46:23 -08:00
|
|
|
- All the asm code previously in chcore2.s is now inline asm code in chcore.c
|
2007-12-18 06:00:01 -08:00
|
|
|
(ARM port), chcore2.s removed.
|
2007-12-18 01:41:28 -08:00
|
|
|
- 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).
|
2007-12-18 06:00:01 -08:00
|
|
|
- Improved the kernel performance in THUMB mode by better exploiting MAM
|
2007-12-18 08:26:42 -08:00
|
|
|
locality in some critical functions. The context switch benchmark shows
|
|
|
|
5% improved speed.
|
2007-12-16 11:01:30 -08:00
|
|
|
|
2007-12-09 01:16:33 -08:00
|
|
|
*** 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.
|
2007-12-11 04:01:24 -08:00
|
|
|
- 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.
|
2007-12-13 06:05:37 -08:00
|
|
|
- Fixed the macro chThdResumeI(), it had a regression.
|
2007-12-09 01:16:33 -08:00
|
|
|
|
2007-12-03 06:54:05 -08:00
|
|
|
*** 0.4.4 ***
|
2007-12-08 04:05:22 -08:00
|
|
|
- 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.
|
2007-12-07 05:29:14 -08:00
|
|
|
- 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.
|
2007-12-08 04:05:22 -08:00
|
|
|
Note: This is not a kernel bug but something specific with the ARM port, the
|
|
|
|
other ports are not affected.
|
2007-12-07 05:29:14 -08:00
|
|
|
- Fixed a bug in chIQGetTimeout(), interrupts were not re-enabled when exiting
|
|
|
|
the function because a timeout. The problem affected that API only.
|
2007-12-07 07:56:04 -08:00
|
|
|
- Fixed a potential problem in chSysInit(), it should not affect any past
|
|
|
|
application.
|
2007-12-03 06:54:05 -08:00
|
|
|
- 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.
|
2007-12-03 08:19:47 -08:00
|
|
|
- Added an I/O Queues benchmark to the test suite.
|
2007-12-04 06:48:41 -08:00
|
|
|
- Removed the chSchTimerHandlerI() routine from chschd.c and moved it into
|
|
|
|
chinit.c renaming it chSysTimerHandlerI() because it is not part of the
|
|
|
|
scheduler.
|
2007-12-03 06:54:05 -08:00
|
|
|
|
2007-11-26 08:00:25 -08:00
|
|
|
*** 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
|
2007-11-30 01:00:50 -08:00
|
|
|
invokes the chSemWaitTimeoutS() inside its system mutex zone. Same thing
|
|
|
|
done with chSemWait() and chSemWaitS().
|
|
|
|
- Size optimization in the queues code.
|
2007-12-01 02:29:09 -08:00
|
|
|
- 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.
|
2007-11-29 01:16:53 -08:00
|
|
|
- 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.
|
2007-11-27 08:02:12 -08:00
|
|
|
- Minor improvement in the LPC214x serial driver, unneeded events were
|
|
|
|
generated in some rare cases.
|
2007-11-26 08:00:25 -08:00
|
|
|
- Fixed a chSysInit() documentation error.
|
2007-11-29 08:31:44 -08:00
|
|
|
- Fixed a chEvtWaitTimeout() documentation error.
|
2007-11-27 08:02:12 -08:00
|
|
|
- Added a new debug switch: CH_USE_TRACE, previously the trace functionality
|
|
|
|
was associated to the CH_USE_DEBUG switch.
|
2007-11-26 08:00:25 -08:00
|
|
|
|
2007-11-21 08:42:13 -08:00
|
|
|
*** 0.4.2 ***
|
2007-11-24 01:50:09 -08:00
|
|
|
- Added a minimal ARM7-LPC demo, you can use this one as template in order to
|
2007-11-22 07:24:50 -08:00
|
|
|
create your application. It is easier to add subsystems back to the small
|
|
|
|
demo than remove stuff from the large one.
|
2007-11-22 03:29:17 -08:00
|
|
|
- Introduced support for "pure" THUMB mode, it is activated when all the
|
|
|
|
source files are compiled in THUMB mode, the option -mthumb-interworking is
|
2007-11-22 07:24:50 -08:00
|
|
|
not used in this scenario and this greatly improves both code size and
|
|
|
|
speed.
|
2007-11-21 08:42:13 -08:00
|
|
|
It is recommended to either use ARM mode or THUMB mode and not mix them
|
2007-11-23 08:09:11 -08:00
|
|
|
unless you know exactly what you are doing. Mixing modes is still supported
|
|
|
|
anyway.
|
2007-11-24 01:50:09 -08:00
|
|
|
- More optimizations in the scheduler, updated the performance spreadsheet.
|
2007-11-22 07:24:50 -08:00
|
|
|
- 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.
|
2007-11-23 05:53:53 -08:00
|
|
|
- Fixed a small problem in sleep functions introduced in 0.4.1.
|
2007-11-21 08:42:13 -08:00
|
|
|
|
2007-11-16 05:14:30 -08:00
|
|
|
*** 0.4.1 ***
|
2007-11-18 01:45:45 -08:00
|
|
|
- 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
|
2007-11-19 03:09:33 -08:00
|
|
|
just use it for the I/O capabilities, Virtual Timers and events. Now you
|
2007-11-18 01:52:31 -08:00
|
|
|
don't have to use multiple threads if you don't really need to.
|
2007-11-16 05:14:30 -08:00
|
|
|
- Added a spreadsheet in the documentation that describes the advantages
|
|
|
|
and disadvantages of the various optimization options (both GCC options and
|
2007-11-19 03:09:33 -08:00
|
|
|
ChibiOS/RT options), very interesting read IMO.
|
2009-01-22 07:37:29 -08:00
|
|
|
- The GCC option -falign-functions=16 is now default in the Makefile, it is
|
2007-11-16 05:14:30 -08:00
|
|
|
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
|
2007-11-16 08:15:47 -08:00
|
|
|
depending on how the code is aligned in the flash memory, unpredictability
|
2007-11-16 05:14:30 -08:00
|
|
|
is bad for a RTOS. This option however increases the code size slightly
|
2007-11-16 08:15:47 -08:00
|
|
|
because of the alignment gaps.
|
|
|
|
- Fine tuning in the scheduler code for improved performance, deeper
|
2007-11-19 03:09:33 -08:00
|
|
|
inlining and other small changes, about 5% better scheduler performance.
|
2007-11-16 08:15:47 -08:00
|
|
|
- Increased the default system-mode stack size from 128 to 256 bytes because
|
2007-11-19 03:09:33 -08:00
|
|
|
some optimizations and the THUMB mode seem to eat more stack space.
|
2007-11-16 08:15:47 -08:00
|
|
|
- Included a Makefile in the LPC2148 demo that builds in THUMB mode.
|
|
|
|
- Const-ified a parameter in the chEvtWait() and chEvtWaitTimeout() APIs.
|
2007-11-19 03:09:33 -08:00
|
|
|
- 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".
|
2007-11-16 05:14:30 -08:00
|
|
|
|
2007-11-12 07:02:23 -08:00
|
|
|
*** 0.4.0 ***
|
2007-11-13 08:38:23 -08:00
|
|
|
- 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
|
2007-11-12 07:02:23 -08:00
|
|
|
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).
|
2007-11-14 08:32:41 -08:00
|
|
|
- Added new API chThdGetPriority() as a macro.
|
2007-11-12 07:02:23 -08:00
|
|
|
- Implemented panic messages when CH_USE_DEBUG is enabled.
|
|
|
|
- Added a thread identifier field to the Thread structure, it is used only
|
|
|
|
for debug.
|
2007-11-13 08:38:23 -08:00
|
|
|
- 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...
|
2007-11-12 07:02:23 -08:00
|
|
|
- Fixed an harmless warning message in buzzer.c.
|
|
|
|
|
2007-10-30 03:46:57 -07:00
|
|
|
*** 0.3.6 ***
|
2007-11-02 08:34:52 -07:00
|
|
|
- Added SSP (SPI1) and ext.interrupts definitions to the lpc214x.h file.
|
2007-11-01 04:56:10 -07:00
|
|
|
- Added SSP driver for the LPC2148.
|
2007-11-02 08:34:52 -07:00
|
|
|
- Added experimental MMC/SD block driver to the LPC2148 demo in order to
|
2007-11-03 09:25:52 -07:00
|
|
|
support file systems. The driver features also events generation on card
|
|
|
|
insert/remove, hot plugging supported.
|
2009-01-22 07:37:29 -08:00
|
|
|
- Added missing chThdSuspend() declaration in threads.h.
|
2007-10-30 03:46:57 -07:00
|
|
|
|
2007-10-19 01:25:15 -07:00
|
|
|
*** 0.3.5 ***
|
|
|
|
- Space optimization in events code.
|
2007-10-19 06:00:24 -07:00
|
|
|
- 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.
|
2007-10-23 11:43:39 -07:00
|
|
|
- Reorganized all the kernel inline definitions into a single file (inline.h).
|
|
|
|
- Fixed a minor problem in the interrupt initialization code for the LPC214x
|
2007-10-24 08:05:24 -07:00
|
|
|
demo, regrouped the VIC-specific code into vic.c/vic.h.
|
2007-10-23 12:50:46 -07:00
|
|
|
- Fixed a bug into the LPC2148 serial driver (limited to the serial port 2).
|
2007-11-13 08:38:23 -08:00
|
|
|
- Implemented HW transmit FIFO preloading in the LPC2148 serial driver in
|
2007-10-24 05:12:43 -07:00
|
|
|
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.
|
2007-10-27 00:37:32 -07:00
|
|
|
- Some more work done on the AVR port, it is almost complete but not tested
|
|
|
|
yet because my JTAG probe broke...
|
2007-10-19 01:25:15 -07:00
|
|
|
|
2007-10-14 00:07:54 -07:00
|
|
|
*** 0.3.4 ***
|
|
|
|
- Fixed a problem in chVTSetI().
|
2007-10-15 07:52:56 -07:00
|
|
|
- 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.
|
|
|
|
|
2007-10-12 23:59:54 -07:00
|
|
|
*** 0.3.3 ***
|
|
|
|
- Modified the chVTSetI(), now for the "time" parameter can have value zero
|
2007-10-13 04:04:26 -07:00
|
|
|
with meaning "infinite". This allows all the APIs with timeout parameters
|
|
|
|
to be invoked with no timeout.
|
2007-10-12 23:59:54 -07:00
|
|
|
- Fixes in the documentation.
|
|
|
|
- Renamed some APIs in the "Sch" group to have an S suffix instead of I.
|
|
|
|
|
2007-10-04 10:40:45 -07:00
|
|
|
*** 0.3.2 ***
|
2007-10-06 02:53:07 -07:00
|
|
|
- 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
|
2007-10-15 07:52:56 -07:00
|
|
|
main() procedure are finished before any thread starts.
|
2007-10-06 02:53:07 -07:00
|
|
|
- Added chThdSetPriority() new API.
|
2009-01-22 07:37:29 -08:00
|
|
|
- Added a generic events generator timer module to the library code.
|
2007-10-06 10:01:14 -07:00
|
|
|
- Modified the ARM7-LPC214x-GCC demo to show the use of the event timer.
|
2007-10-06 01:58:52 -07:00
|
|
|
- Added the "#ifdef __cplusplus" stuff to the header files.
|
|
|
|
- Removed an obsolete definition in ./src/templates/chtypes.h.
|
2007-10-04 10:40:45 -07:00
|
|
|
|
2007-10-01 10:42:47 -07:00
|
|
|
*** 0.3.1 ***
|
2007-10-03 11:18:58 -07:00
|
|
|
- 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
|
2007-10-03 11:19:49 -07:00
|
|
|
pressing both the board buttons. The test performs tests on the ChibiOS/RT
|
|
|
|
functionalities.
|
2007-10-03 10:14:03 -07:00
|
|
|
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.
|
2007-10-02 09:52:18 -07:00
|
|
|
- Lists code moved into chlists.c from various other places optimized and
|
|
|
|
reorganized.
|
2007-10-01 10:42:47 -07:00
|
|
|
- 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.
|
2007-10-03 10:14:03 -07:00
|
|
|
- Code optimization in chSemWaitTimeoutS(), chSemWaitTimeout() and
|
|
|
|
chSemSignalWait().
|
2007-10-01 10:42:47 -07:00
|
|
|
- Code optimization in chEvtSend().
|
2007-10-03 10:14:03 -07:00
|
|
|
- Code optimization in chVTDoTickI().
|
2007-10-01 10:42:47 -07:00
|
|
|
- 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().
|
2007-10-01 10:44:01 -07:00
|
|
|
- Changed the priority type to unsigned in order to make it compatible
|
|
|
|
with a byte value, this is very important for 8 bits architectures.
|
2007-10-03 10:14:03 -07:00
|
|
|
- Modified the MinGW and MSVS demos to use 1ms ticks instead of 10ms as
|
|
|
|
before.
|
2007-10-01 10:42:47 -07:00
|
|
|
|
2007-09-28 11:42:04 -07:00
|
|
|
*** 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.
|
2009-01-22 07:37:29 -08:00
|
|
|
- Moved some documentation and images from the web site into the Doxygen
|
2007-09-28 11:42:04 -07:00
|
|
|
generated HTMLs.
|
|
|
|
|
2007-09-25 11:41:39 -07:00
|
|
|
*** 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.
|
|
|
|
|
2007-09-22 07:10:02 -07:00
|
|
|
*** 0.2.0 ***
|
|
|
|
- Introduced support for ARM in thumb mode.
|
2007-09-22 07:12:10 -07:00
|
|
|
- Optimized context switching when thumb-interworking is not required, one
|
|
|
|
less instruction.
|
2007-09-22 07:10:02 -07:00
|
|
|
- Minor fixes to the ARM demo.
|
|
|
|
|
2007-09-21 09:44:36 -07:00
|
|
|
*** 0.1.1 ***
|
|
|
|
- Some fixes into the documentation
|
2007-11-22 07:24:50 -08:00
|
|
|
- Renamed the makefiles to Makefile, upper case M.
|
2007-09-21 09:44:36 -07:00
|
|
|
|
|
|
|
*** 0.1.0 ***
|
2007-09-25 11:41:39 -07:00
|
|
|
- First alpha release
|