git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@14651 27425a3e-05d8-49a3-a47f-9c15f0e5edd8
This commit is contained in:
Giovanni Di Sirio 2021-08-15 14:37:13 +00:00
parent 11979e9ba2
commit 258587096d
3 changed files with 70 additions and 25 deletions

View File

@ -66,8 +66,22 @@ typedef struct {
uint8_t off_state; /**< @brief Offset of @p state field. */
uint8_t off_flags; /**< @brief Offset of @p flags field. */
uint8_t off_refs; /**< @brief Offset of @p refs field. */
uint8_t off_preempt; /**< @brief Offset of @p preempt field. */
uint8_t off_preempt; /**< @brief Offset of @p ticks field. */
uint8_t off_time; /**< @brief Offset of @p time field. */
uint8_t off_reserved[5];
uint8_t intervalsize; /**< @brief Size of a @p sysinterval_t. */
uint8_t instancesnum; /**< @brief Number of instances. */
uint8_t off_sys_state; /**< @brief Offset of @p state field. */
uint8_t off_sys_instances; /**< @brief Offset of @p instances array
field. */
uint8_t off_sys_reglist; /**< @brief Offset of @p reglist field. */
uint8_t off_sys_rfcu; /**< @brief Offset of @p rfcu field. */
uint8_t off_sys_reserved[4];
uint8_t off_inst_rlist; /**< @brief Offset of @p rlist field. */
uint8_t off_inst_vtlist; /**< @brief Offset of @p vtlist field. */
uint8_t off_inst_reglist; /**< @brief Offset of @p reglist field. */
uint8_t off_inst_core_id; /**< @brief Offset of @p core_id field. */
uint8_t off_inst_rfcu; /**< @brief Offset of @p rfcu field. */
} chdebug_t;
/*===========================================================================*/

View File

@ -75,41 +75,70 @@
* OS signature in ROM plus debug-related information.
*/
ROMCONST chdebug_t ch_debug = {
{'m', 'a', 'i', 'n'},
(uint8_t)0,
(uint8_t)sizeof (chdebug_t),
(uint16_t)(((unsigned)CH_KERNEL_MAJOR << 11U) |
((unsigned)CH_KERNEL_MINOR << 6U) |
((unsigned)CH_KERNEL_PATCH << 0U)),
(uint8_t)sizeof (void *),
(uint8_t)sizeof (systime_t),
(uint8_t)sizeof (thread_t),
(uint8_t)__CH_OFFSETOF(thread_t, hdr.pqueue.prio),
(uint8_t)__CH_OFFSETOF(thread_t, ctx),
(uint8_t)__CH_OFFSETOF(thread_t, rqueue.next),
(uint8_t)__CH_OFFSETOF(thread_t, rqueue.prev),
(uint8_t)__CH_OFFSETOF(thread_t, name),
.identifier = {'m', 'a', 'i', 'n'},
.zero = (uint8_t)0,
.size = (uint8_t)sizeof (chdebug_t),
.version = (uint16_t)(((unsigned)CH_KERNEL_MAJOR << 11U) |
((unsigned)CH_KERNEL_MINOR << 6U) |
((unsigned)CH_KERNEL_PATCH << 0U)),
.ptrsize = (uint8_t)sizeof (void *),
.timesize = (uint8_t)sizeof (systime_t),
.intervalsize = (uint8_t)sizeof (sysinterval_t),
.threadsize = (uint8_t)sizeof (thread_t),
.off_prio = (uint8_t)__CH_OFFSETOF(thread_t, hdr.pqueue.prio),
.off_ctx = (uint8_t)__CH_OFFSETOF(thread_t, ctx),
.off_newer = (uint8_t)__CH_OFFSETOF(thread_t, rqueue.next),
.off_older = (uint8_t)__CH_OFFSETOF(thread_t, rqueue.prev),
.off_name = (uint8_t)__CH_OFFSETOF(thread_t, name),
#if (CH_DBG_ENABLE_STACK_CHECK == TRUE) || (CH_CFG_USE_DYNAMIC == TRUE)
(uint8_t)__CH_OFFSETOF(thread_t, wabase),
.off_stklimit = (uint8_t)__CH_OFFSETOF(thread_t, wabase),
#else
(uint8_t)0,
.off_stklimit = (uint8_t)0,
#endif
(uint8_t)__CH_OFFSETOF(thread_t, state),
(uint8_t)__CH_OFFSETOF(thread_t, flags),
.off_state = (uint8_t)__CH_OFFSETOF(thread_t, state),
.off_flags = (uint8_t)__CH_OFFSETOF(thread_t, flags),
#if CH_CFG_USE_DYNAMIC == TRUE
(uint8_t)__CH_OFFSETOF(thread_t, refs),
.off_refs = (uint8_t)__CH_OFFSETOF(thread_t, refs),
#else
(uint8_t)0,
.off_refs = (uint8_t)0,
#endif
#if CH_CFG_TIME_QUANTUM > 0
(uint8_t)__CH_OFFSETOF(thread_t, ticks),
.off_preempt = (uint8_t)__CH_OFFSETOF(thread_t, ticks),
#else
(uint8_t)0,
.off_preempt = (uint8_t)0,
#endif
#if CH_DBG_THREADS_PROFILING == TRUE
(uint8_t)__CH_OFFSETOF(thread_t, time)
.off_time = (uint8_t)__CH_OFFSETOF(thread_t, time),
#else
(uint8_t)0
.off_time = (uint8_t)0,
#endif
.off_reserved = {(uint8_t)0, (uint8_t)0, (uint8_t)0, (uint8_t)0, (uint8_t)0},
.instancesnum = (uint8_t)PORT_CORES_NUMBER,
.off_sys_state = (uint8_t)__CH_OFFSETOF(ch_system_t, state),
.off_sys_instances = (uint8_t)__CH_OFFSETOF(ch_system_t, instances),
#if (CH_CFG_USE_REGISTRY == TRUE) && (CH_CFG_SMP_MODE == TRUE)
.off_sys_reglist = (uint8_t)__CH_OFFSETOF(ch_system_t, reglist),
#else
.off_sys_reglist = (uint8_t)0,
#endif
#if CH_CFG_SMP_MODE == TRUE
.off_sys_rfcu = (uint8_t)__CH_OFFSETOF(ch_system_t, rfcu),
#else
.off_sys_rfcu = (uint8_t)0,
#endif
.off_sys_reserved = {(uint8_t)0, (uint8_t)0, (uint8_t)0, (uint8_t)0},
.off_inst_rlist = (uint8_t)__CH_OFFSETOF(os_instance_t, rlist),
.off_inst_vtlist = (uint8_t)__CH_OFFSETOF(os_instance_t, vtlist),
#if ((CH_CFG_USE_REGISTRY == TRUE) && (CH_CFG_SMP_MODE == FALSE))
.off_inst_reglist = (uint8_t)__CH_OFFSETOF(os_instance_t, reglist),
#else
.off_inst_reglist = (uint8_t)0,
#endif
.off_inst_core_id = (uint8_t)__CH_OFFSETOF(os_instance_t, core_id),
#if CH_CFG_SMP_MODE == FALSE
.off_inst_rfcu = (uint8_t)__CH_OFFSETOF(os_instance_t, rfcu)
#else
.off_inst_rfcu = (uint8_t)0
#endif
};

View File

@ -74,6 +74,8 @@
*****************************************************************************
*** Next ***
- FIX: Fixed insufficient information in RT registry (bug #1169)(TBP).
- FIX: Fixed code base not compatible with -Wcast-align=strict (bug #1168)(TBP).
- FIX: Fixed wrong chconf.h for ADuCM36x demos (bug #1167)
(backported to 21.6.1).
- FIX: Fixed missing constant in ADuCM36x hal_lld.c (bug #1166)