diff options
-rw-r--r-- | demos/ARM7-AT91SAM7X-GCC/chconf.h | 8 | ||||
-rw-r--r-- | demos/ARM7-AT91SAM7X-WEB-GCC/chconf.h | 8 | ||||
-rw-r--r-- | demos/ARM7-LPC214x-G++/chconf.h | 8 | ||||
-rw-r--r-- | demos/ARM7-LPC214x-GCC-minimal/chconf.h | 8 | ||||
-rw-r--r-- | demos/ARM7-LPC214x-GCC/chconf.h | 8 | ||||
-rw-r--r-- | demos/ARMCM3-STM32F103-GCC/chconf.h | 8 | ||||
-rw-r--r-- | demos/AVR-AT90CANx-GCC/chconf.h | 8 | ||||
-rw-r--r-- | demos/AVR-ATmega128-GCC/chconf.h | 8 | ||||
-rw-r--r-- | demos/MSP430-MSP430x1611-GCC/chconf.h | 8 | ||||
-rw-r--r-- | demos/Win32-MinGW/chconf.h | 8 | ||||
-rw-r--r-- | demos/Win32-MinGW/chtypes.h | 1 | ||||
-rw-r--r-- | docs/Doxyfile | 2 | ||||
-rw-r--r-- | docs/index.html | 2 | ||||
-rw-r--r-- | ports/ARM7/chtypes.h | 1 | ||||
-rw-r--r-- | ports/ARMCM3/chtypes.h | 1 | ||||
-rw-r--r-- | ports/AVR/chtypes.h | 1 | ||||
-rw-r--r-- | ports/MSP430/chtypes.h | 1 | ||||
-rw-r--r-- | readme.txt | 9 | ||||
-rw-r--r-- | src/include/ch.h | 1 | ||||
-rw-r--r-- | src/kernel.mk | 2 |
20 files changed, 98 insertions, 3 deletions
diff --git a/demos/ARM7-AT91SAM7X-GCC/chconf.h b/demos/ARM7-AT91SAM7X-GCC/chconf.h index 8db71b445..b66e8f595 100644 --- a/demos/ARM7-AT91SAM7X-GCC/chconf.h +++ b/demos/ARM7-AT91SAM7X-GCC/chconf.h @@ -137,6 +137,14 @@ * are included in the kernel.*/
#define CH_USE_SERIAL_HALFDUPLEX
+/** Configuration option: if specified then the memory pools allocator APIs
+ * are included in the kernel.*/
+#define CH_USE_MEMPOOLS
+
+/** Configuration option: if specified then the memory pools allocator
+ provides an implementation of the sbrk() function.*/
+#define CH_MEMPOOLS_PROVIDE_SBRK
+
/** Configuration option: Frequency of the system timer that drives the system
* ticks. This also defines the system time unit.*/
#define CH_FREQUENCY 1000
diff --git a/demos/ARM7-AT91SAM7X-WEB-GCC/chconf.h b/demos/ARM7-AT91SAM7X-WEB-GCC/chconf.h index 8db71b445..b66e8f595 100644 --- a/demos/ARM7-AT91SAM7X-WEB-GCC/chconf.h +++ b/demos/ARM7-AT91SAM7X-WEB-GCC/chconf.h @@ -137,6 +137,14 @@ * are included in the kernel.*/
#define CH_USE_SERIAL_HALFDUPLEX
+/** Configuration option: if specified then the memory pools allocator APIs
+ * are included in the kernel.*/
+#define CH_USE_MEMPOOLS
+
+/** Configuration option: if specified then the memory pools allocator
+ provides an implementation of the sbrk() function.*/
+#define CH_MEMPOOLS_PROVIDE_SBRK
+
/** Configuration option: Frequency of the system timer that drives the system
* ticks. This also defines the system time unit.*/
#define CH_FREQUENCY 1000
diff --git a/demos/ARM7-LPC214x-G++/chconf.h b/demos/ARM7-LPC214x-G++/chconf.h index 8db71b445..b66e8f595 100644 --- a/demos/ARM7-LPC214x-G++/chconf.h +++ b/demos/ARM7-LPC214x-G++/chconf.h @@ -137,6 +137,14 @@ * are included in the kernel.*/
#define CH_USE_SERIAL_HALFDUPLEX
+/** Configuration option: if specified then the memory pools allocator APIs
+ * are included in the kernel.*/
+#define CH_USE_MEMPOOLS
+
+/** Configuration option: if specified then the memory pools allocator
+ provides an implementation of the sbrk() function.*/
+#define CH_MEMPOOLS_PROVIDE_SBRK
+
/** Configuration option: Frequency of the system timer that drives the system
* ticks. This also defines the system time unit.*/
#define CH_FREQUENCY 1000
diff --git a/demos/ARM7-LPC214x-GCC-minimal/chconf.h b/demos/ARM7-LPC214x-GCC-minimal/chconf.h index 9f903df06..cfa407fc5 100644 --- a/demos/ARM7-LPC214x-GCC-minimal/chconf.h +++ b/demos/ARM7-LPC214x-GCC-minimal/chconf.h @@ -137,6 +137,14 @@ * are included in the kernel.*/
//#define CH_USE_SERIAL_HALFDUPLEX
+/** Configuration option: if specified then the memory pools allocator APIs
+ * are included in the kernel.*/
+//#define CH_USE_MEMPOOLS
+
+/** Configuration option: if specified then the memory pools allocator
+ provides an implementation of the sbrk() function.*/
+//#define CH_MEMPOOLS_PROVIDE_SBRK
+
/** Configuration option: Frequency of the system timer that drives the system
* ticks. This also defines the system time unit.*/
#define CH_FREQUENCY 1000
diff --git a/demos/ARM7-LPC214x-GCC/chconf.h b/demos/ARM7-LPC214x-GCC/chconf.h index 8db71b445..b66e8f595 100644 --- a/demos/ARM7-LPC214x-GCC/chconf.h +++ b/demos/ARM7-LPC214x-GCC/chconf.h @@ -137,6 +137,14 @@ * are included in the kernel.*/
#define CH_USE_SERIAL_HALFDUPLEX
+/** Configuration option: if specified then the memory pools allocator APIs
+ * are included in the kernel.*/
+#define CH_USE_MEMPOOLS
+
+/** Configuration option: if specified then the memory pools allocator
+ provides an implementation of the sbrk() function.*/
+#define CH_MEMPOOLS_PROVIDE_SBRK
+
/** Configuration option: Frequency of the system timer that drives the system
* ticks. This also defines the system time unit.*/
#define CH_FREQUENCY 1000
diff --git a/demos/ARMCM3-STM32F103-GCC/chconf.h b/demos/ARMCM3-STM32F103-GCC/chconf.h index 8db71b445..b66e8f595 100644 --- a/demos/ARMCM3-STM32F103-GCC/chconf.h +++ b/demos/ARMCM3-STM32F103-GCC/chconf.h @@ -137,6 +137,14 @@ * are included in the kernel.*/
#define CH_USE_SERIAL_HALFDUPLEX
+/** Configuration option: if specified then the memory pools allocator APIs
+ * are included in the kernel.*/
+#define CH_USE_MEMPOOLS
+
+/** Configuration option: if specified then the memory pools allocator
+ provides an implementation of the sbrk() function.*/
+#define CH_MEMPOOLS_PROVIDE_SBRK
+
/** Configuration option: Frequency of the system timer that drives the system
* ticks. This also defines the system time unit.*/
#define CH_FREQUENCY 1000
diff --git a/demos/AVR-AT90CANx-GCC/chconf.h b/demos/AVR-AT90CANx-GCC/chconf.h index fca0159a2..182ba1a9b 100644 --- a/demos/AVR-AT90CANx-GCC/chconf.h +++ b/demos/AVR-AT90CANx-GCC/chconf.h @@ -137,6 +137,14 @@ * are included in the kernel.*/
#define CH_USE_SERIAL_HALFDUPLEX
+/** Configuration option: if specified then the memory pools allocator APIs
+ * are included in the kernel.*/
+#define CH_USE_MEMPOOLS
+
+/** Configuration option: if specified then the memory pools allocator
+ provides an implementation of the sbrk() function.*/
+#define CH_MEMPOOLS_PROVIDE_SBRK
+
/** Configuration option: Frequency of the system timer that drives the system
* ticks. This also defines the system time unit.*/
#define CH_FREQUENCY 1000
diff --git a/demos/AVR-ATmega128-GCC/chconf.h b/demos/AVR-ATmega128-GCC/chconf.h index fca0159a2..182ba1a9b 100644 --- a/demos/AVR-ATmega128-GCC/chconf.h +++ b/demos/AVR-ATmega128-GCC/chconf.h @@ -137,6 +137,14 @@ * are included in the kernel.*/
#define CH_USE_SERIAL_HALFDUPLEX
+/** Configuration option: if specified then the memory pools allocator APIs
+ * are included in the kernel.*/
+#define CH_USE_MEMPOOLS
+
+/** Configuration option: if specified then the memory pools allocator
+ provides an implementation of the sbrk() function.*/
+#define CH_MEMPOOLS_PROVIDE_SBRK
+
/** Configuration option: Frequency of the system timer that drives the system
* ticks. This also defines the system time unit.*/
#define CH_FREQUENCY 1000
diff --git a/demos/MSP430-MSP430x1611-GCC/chconf.h b/demos/MSP430-MSP430x1611-GCC/chconf.h index 7e29d314e..336c0d6b0 100644 --- a/demos/MSP430-MSP430x1611-GCC/chconf.h +++ b/demos/MSP430-MSP430x1611-GCC/chconf.h @@ -138,6 +138,14 @@ * are included in the kernel.*/
#define CH_USE_SERIAL_HALFDUPLEX
+/** Configuration option: if specified then the memory pools allocator APIs
+ * are included in the kernel.*/
+#define CH_USE_MEMPOOLS
+
+/** Configuration option: if specified then the memory pools allocator
+ provides an implementation of the sbrk() function.*/
+#define CH_MEMPOOLS_PROVIDE_SBRK
+
/** Configuration option: Frequency of the system timer that drives the system
* ticks. This also defines the system time unit.*/
#define CH_FREQUENCY 1000
diff --git a/demos/Win32-MinGW/chconf.h b/demos/Win32-MinGW/chconf.h index b17295c65..674d747c1 100644 --- a/demos/Win32-MinGW/chconf.h +++ b/demos/Win32-MinGW/chconf.h @@ -142,6 +142,14 @@ * are included in the kernel.*/
#define CH_USE_SERIAL_HALFDUPLEX
+/** Configuration option: if specified then the memory pools allocator APIs
+ * are included in the kernel.*/
+#define CH_USE_MEMPOOLS
+
+/** Configuration option: if specified then the memory pools allocator
+ provides an implementation of the sbrk() function.*/
+#define CH_MEMPOOLS_PROVIDE_SBRK
+
/** Configuration option: Frequency of the system timer that drives the system
* ticks. This also defines the system time unit.*/
#define CH_FREQUENCY 1000
diff --git a/demos/Win32-MinGW/chtypes.h b/demos/Win32-MinGW/chtypes.h index 0b74459bc..6f8662bd9 100644 --- a/demos/Win32-MinGW/chtypes.h +++ b/demos/Win32-MinGW/chtypes.h @@ -22,6 +22,7 @@ #define __need_NULL
#define __need_size_t
+#define __need_ptrdiff_t
#include <stddef.h>
#if !defined(_STDINT_H) && !defined(__STDINT_H_)
diff --git a/docs/Doxyfile b/docs/Doxyfile index 9fa74ba80..7f4432c52 100644 --- a/docs/Doxyfile +++ b/docs/Doxyfile @@ -5,7 +5,7 @@ #--------------------------------------------------------------------------- DOXYFILE_ENCODING = UTF-8 PROJECT_NAME = ChibiOS/RT -PROJECT_NUMBER = "0.6.10 beta" +PROJECT_NUMBER = "0.7.0 beta" OUTPUT_DIRECTORY = . CREATE_SUBDIRS = NO OUTPUT_LANGUAGE = English diff --git a/docs/index.html b/docs/index.html index bee25b525..232949a08 100644 --- a/docs/index.html +++ b/docs/index.html @@ -12,7 +12,7 @@ </tr>
<tr>
<td style="text-align: center; vertical-align: top; width: 150px;">Current
-Version 0.6.10<br>
+Version 0.7.0<br>
-<br>
<a href="http://sourceforge.net/projects/chibios/" rel="me" target="_top">Project on SourceForge</a><br>
<a href="html/index.html" target="_top" rel="me">Documentation</a><br>
diff --git a/ports/ARM7/chtypes.h b/ports/ARM7/chtypes.h index 21ee1c045..ab0dc36c8 100644 --- a/ports/ARM7/chtypes.h +++ b/ports/ARM7/chtypes.h @@ -22,6 +22,7 @@ #define __need_NULL
#define __need_size_t
+#define __need_ptrdiff_t
#include <stddef.h>
#if !defined(_STDINT_H) && !defined(__STDINT_H_)
diff --git a/ports/ARMCM3/chtypes.h b/ports/ARMCM3/chtypes.h index 21ee1c045..ab0dc36c8 100644 --- a/ports/ARMCM3/chtypes.h +++ b/ports/ARMCM3/chtypes.h @@ -22,6 +22,7 @@ #define __need_NULL
#define __need_size_t
+#define __need_ptrdiff_t
#include <stddef.h>
#if !defined(_STDINT_H) && !defined(__STDINT_H_)
diff --git a/ports/AVR/chtypes.h b/ports/AVR/chtypes.h index 6e08d93f1..2cd9c681c 100644 --- a/ports/AVR/chtypes.h +++ b/ports/AVR/chtypes.h @@ -22,6 +22,7 @@ #define __need_NULL
#define __need_size_t
+#define __need_ptrdiff_t
#include <stddef.h>
#if !defined(_STDINT_H) && !defined(__STDINT_H_)
diff --git a/ports/MSP430/chtypes.h b/ports/MSP430/chtypes.h index 319b9714e..1b7f3704b 100644 --- a/ports/MSP430/chtypes.h +++ b/ports/MSP430/chtypes.h @@ -27,6 +27,7 @@ #define __need_NULL
#define __need_size_t
+#define __need_ptrdiff_t
#include <stddef.h>
#if !defined(_STDINT_H) && !defined(__STDINT_H_)
diff --git a/readme.txt b/readme.txt index eab4a2cba..a751fe1b0 100644 --- a/readme.txt +++ b/readme.txt @@ -74,6 +74,15 @@ Win32-MinGW - ChibiOS/RT simulator and demo into a WIN32 process, *** Releases ***
*****************************************************************************
+*** 0.7.0 ***
+- NEW: Memory Pools functionality added, this mechanism allows constant-time
+ allocation/freeing of constant size objects. It can be used to dynamically
+ allocate kernel objects like Semaphores, Mutexes, Threads etc it can also
+ handle application-defined objects. The allocator is, of course, thread-safe.
+- NEW: Kernel-provided sbrk() function, it is used internally by the Memory
+ Pools but can also be used by the C runtime. There is also an option to
+ meke the Memory Pools use an user-provided sbrk() function.
+
*** 0.6.10 ***
- FIX: Fixed a case-sensitiveness error in lpc214x_ssp.c, it affected only
linux/unix users.
diff --git a/src/include/ch.h b/src/include/ch.h index cafcf2f75..e88435db8 100644 --- a/src/include/ch.h +++ b/src/include/ch.h @@ -42,6 +42,7 @@ #include "sleep.h"
#include "queues.h"
#include "serial.h"
+#include "pools.h"
#include "debug.h"
/*
diff --git a/src/kernel.mk b/src/kernel.mk index 54a9cffdd..febd8fa9c 100644 --- a/src/kernel.mk +++ b/src/kernel.mk @@ -6,4 +6,4 @@ KERNSRC = ../../src/chinit.c ../../src/chdebug.c \ ../../src/chsem.c ../../src/chmtx.c \
../../src/chevents.c ../../src/chmsg.c \
../../src/chsleep.c ../../src/chqueues.c \
- ../../src/chserial.c
+ ../../src/chserial.c ../../src/chpools.c
|