diff options
author | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2012-08-22 14:23:02 +0000 |
---|---|---|
committer | gdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4> | 2012-08-22 14:23:02 +0000 |
commit | 4bdf358424068f452a4d5a450e6001a03ca4f819 (patch) | |
tree | f49210a5559e65fda20161f9de2c94e099e7a57a | |
parent | f6987f9e0027b8c3d9120c1daf4d1083c299eca6 (diff) | |
download | ChibiOS-4bdf358424068f452a4d5a450e6001a03ca4f819.tar.gz ChibiOS-4bdf358424068f452a4d5a450e6001a03ca4f819.tar.bz2 ChibiOS-4bdf358424068f452a4d5a450e6001a03ca4f819.zip |
Added mem
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@4613 35acf78f-673a-0410-8e92-d51de3d6d3f4
-rw-r--r-- | os/kernel/include/chregistry.h | 17 | ||||
-rw-r--r-- | os/kernel/src/chregistry.c | 45 | ||||
-rw-r--r-- | readme.txt | 2 |
3 files changed, 64 insertions, 0 deletions
diff --git a/os/kernel/include/chregistry.h b/os/kernel/include/chregistry.h index ad1bdf207..2b1d35795 100644 --- a/os/kernel/include/chregistry.h +++ b/os/kernel/include/chregistry.h @@ -30,6 +30,23 @@ #define _CHREGISTRY_H_
#if CH_USE_REGISTRY || defined(__DOXYGEN__)
+
+/**
+ * @brief ChibiOS/RT memory signature record.
+ */
+typedef struct {
+ char ch_identifier[4]; /**< @brief Always set to "CHRT". */
+ uint8_t ch_size; /**< @brief Size of this structure. */
+ uint8_t ch_reserved5; /**< @brief Reserved field. */
+ uint16_t ch_version; /**< @brief Encoded ChibiOS/RT version. */
+ uint8_t ch_ptrsize; /**< @brief Size of a pointer. */
+ uint8_t ch_options; /**< @brief Enable options bits mask. */
+ uint8_t ch_reserved10; /**< @brief Reserved field. */
+ uint8_t ch_reserved11; /**< @brief Reserved field. */
+ ReadyList *ch_rlist; /**< @brief Pointer to the ready list. */
+ VTList *ch_vtlist; /**< @brief Pointer to the timers list. */
+} chroot_t;
+
/**
* @name Macro Functions
* @{
diff --git a/os/kernel/src/chregistry.c b/os/kernel/src/chregistry.c index 52c180a3a..5036a52bc 100644 --- a/os/kernel/src/chregistry.c +++ b/os/kernel/src/chregistry.c @@ -50,6 +50,51 @@ #if CH_USE_REGISTRY || defined(__DOXYGEN__)
+/* Converting configuration options in bit masks in order to be encoded in
+ the global variable ch_root.*/
+#if CH_DBG_ENABLE_STACK_CHECK
+#define MSK_DBG_ENABLE_STACK_CHECK 1
+#else
+#define MSK_DBG_ENABLE_STACK_CHECK 0
+#endif
+
+#if CH_USE_DYNAMIC
+#define MSK_USE_DYNAMIC 2
+#else
+#define MSK_USE_DYNAMIC 0
+#endif
+
+#if CH_TIME_QUANTUM > 0
+#define MSK_TIME_QUANTUM 4
+#else
+#define MSK_TIME_QUANTUM 0
+#endif
+
+#if CH_DBG_THREADS_PROFILING
+#define MSK_DBG_THREADS_PROFILING 8
+#else
+#define MSK_DBG_THREADS_PROFILING 0
+#endif
+
+/**
+ * @brief OS signature in ROM plus debug-related information.
+ */
+ROMCONST chroot_t ch_root = {
+ "CHRT",
+ (uint8_t)sizeof (chroot_t),
+ (uint8_t)0,
+ (uint16_t)((CH_KERNEL_MAJOR << 11) |
+ (CH_KERNEL_MINOR << 6) |
+ (CH_KERNEL_PATCH) << 0),
+ (uint8_t)sizeof (void *),
+ (uint8_t)(MSK_DBG_THREADS_PROFILING | MSK_TIME_QUANTUM |
+ MSK_USE_DYNAMIC | MSK_DBG_ENABLE_STACK_CHECK),
+ (uint8_t)0,
+ (uint8_t)0,
+ &rlist,
+ &vtlist
+};
+
/**
* @brief Returns the first thread in the system.
* @details Returns the most ancient thread in the system, usually this is
diff --git a/readme.txt b/readme.txt index 7106ed375..b1a0eb792 100644 --- a/readme.txt +++ b/readme.txt @@ -162,6 +162,8 @@ 3484947)(backported to 2.4.1).
- FIX: Fixed various minor documentation errors (bug 3484942)(backported
to 2.4.1).
+- NEW: Added memory signature record to the registry in order to simplify
+ the implementation of ad-hoc debuggers.
- NEW: Small andjustment in chcore.h files under ./os/ports/GCC required by a
difference in GCC 4.7.x.
- NEW: Added another STM32F4-Discovery demo using the on-board MEMS, SPI
|