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_state; /**< @brief Offset of @p state field. */
uint8_t off_flags; /**< @brief Offset of @p flags field. */ uint8_t off_flags; /**< @brief Offset of @p flags field. */
uint8_t off_refs; /**< @brief Offset of @p refs 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_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; } chdebug_t;
/*===========================================================================*/ /*===========================================================================*/

View File

@ -75,41 +75,70 @@
* OS signature in ROM plus debug-related information. * OS signature in ROM plus debug-related information.
*/ */
ROMCONST chdebug_t ch_debug = { ROMCONST chdebug_t ch_debug = {
{'m', 'a', 'i', 'n'}, .identifier = {'m', 'a', 'i', 'n'},
(uint8_t)0, .zero = (uint8_t)0,
(uint8_t)sizeof (chdebug_t), .size = (uint8_t)sizeof (chdebug_t),
(uint16_t)(((unsigned)CH_KERNEL_MAJOR << 11U) | .version = (uint16_t)(((unsigned)CH_KERNEL_MAJOR << 11U) |
((unsigned)CH_KERNEL_MINOR << 6U) | ((unsigned)CH_KERNEL_MINOR << 6U) |
((unsigned)CH_KERNEL_PATCH << 0U)), ((unsigned)CH_KERNEL_PATCH << 0U)),
(uint8_t)sizeof (void *), .ptrsize = (uint8_t)sizeof (void *),
(uint8_t)sizeof (systime_t), .timesize = (uint8_t)sizeof (systime_t),
(uint8_t)sizeof (thread_t), .intervalsize = (uint8_t)sizeof (sysinterval_t),
(uint8_t)__CH_OFFSETOF(thread_t, hdr.pqueue.prio), .threadsize = (uint8_t)sizeof (thread_t),
(uint8_t)__CH_OFFSETOF(thread_t, ctx), .off_prio = (uint8_t)__CH_OFFSETOF(thread_t, hdr.pqueue.prio),
(uint8_t)__CH_OFFSETOF(thread_t, rqueue.next), .off_ctx = (uint8_t)__CH_OFFSETOF(thread_t, ctx),
(uint8_t)__CH_OFFSETOF(thread_t, rqueue.prev), .off_newer = (uint8_t)__CH_OFFSETOF(thread_t, rqueue.next),
(uint8_t)__CH_OFFSETOF(thread_t, name), .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) #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 #else
(uint8_t)0, .off_stklimit = (uint8_t)0,
#endif #endif
(uint8_t)__CH_OFFSETOF(thread_t, state), .off_state = (uint8_t)__CH_OFFSETOF(thread_t, state),
(uint8_t)__CH_OFFSETOF(thread_t, flags), .off_flags = (uint8_t)__CH_OFFSETOF(thread_t, flags),
#if CH_CFG_USE_DYNAMIC == TRUE #if CH_CFG_USE_DYNAMIC == TRUE
(uint8_t)__CH_OFFSETOF(thread_t, refs), .off_refs = (uint8_t)__CH_OFFSETOF(thread_t, refs),
#else #else
(uint8_t)0, .off_refs = (uint8_t)0,
#endif #endif
#if CH_CFG_TIME_QUANTUM > 0 #if CH_CFG_TIME_QUANTUM > 0
(uint8_t)__CH_OFFSETOF(thread_t, ticks), .off_preempt = (uint8_t)__CH_OFFSETOF(thread_t, ticks),
#else #else
(uint8_t)0, .off_preempt = (uint8_t)0,
#endif #endif
#if CH_DBG_THREADS_PROFILING == TRUE #if CH_DBG_THREADS_PROFILING == TRUE
(uint8_t)__CH_OFFSETOF(thread_t, time) .off_time = (uint8_t)__CH_OFFSETOF(thread_t, time),
#else #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 #endif
}; };

View File

@ -74,6 +74,8 @@
***************************************************************************** *****************************************************************************
*** Next *** *** 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) - FIX: Fixed wrong chconf.h for ADuCM36x demos (bug #1167)
(backported to 21.6.1). (backported to 21.6.1).
- FIX: Fixed missing constant in ADuCM36x hal_lld.c (bug #1166) - FIX: Fixed missing constant in ADuCM36x hal_lld.c (bug #1166)