-
Notifications
You must be signed in to change notification settings - Fork 217
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Strict-type errors/exception when creating TimeBase callback on RTEMS during cFS init #1244
Comments
Possible solution is to create a helper function like this (with better name and comments):
What do you think @jphickey ? |
@acudmore - any opinions on this one? Should probably get it resolved in Draco. |
Just saw this (sorry I missed the mention from Apr 6) ... but yeah there should just be a wrapper function to deal with the different data type. For example the POSIX implementation already has it, see OS_TimeBasePthreadEntry here: osal/src/os/posix/src/os-impl-timebase.c Lines 314 to 321 in 1de47bb
I think |
Fix #1244, Add RTEMS timebase callback wrapper
Describe the bug
A memory alignment exception occurs when running with RTEMS on GR740 board when compiling with
OMIT_DEPRECATED = true
andMISSION_RESOURCEID_MODE = "STRICT"
The exception occurs during cFS init, when starting the TimeBase callback task/thread:
https://github.com/nasa/osal/blob/main/src/os/rtems/src/os-impl-timebase.c#L392-L395
The callback thread
OS_TimeBase_CallbackThread
function argument is of typeosal_id_t
.https://github.com/nasa/osal/blob/main/src/os/shared/src/osapi-timebase.c#L381
RTEMS expects the callback function argument to be of type
rtems_task_argument
. The conversion from one type to another when starting the task causes the exception.To Reproduce
Build for rtems5-gr740 with
OMIT_DEPRECATED = true
andMISSION_RESOURCEID_MODE = "STRICT"
Run cFS on gr740 board
Expected behavior
Successful cFS init.
System observed on:
Reporter Info
Jose F Martinez Pedraza / GSFC 582
The text was updated successfully, but these errors were encountered: