-
Notifications
You must be signed in to change notification settings - Fork 58
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
provide grut699-vxworks6 PSP updates #15
Comments
Imported from trac issue 11. Created by sduran on 2015-02-26T14:32:05, last modified: 2019-04-25T15:11:20 |
Trac comment by sduran on 2015-08-27 15:42:36: Since testing and Class A related modifications were performed to the ut699 PSP in the trac-10 branch, the single change in trac #15 has been applied to the trac-10 branch. trac-11 branch is no longer needed. |
Trac comment by sduran on 2015-08-27 17:36:07: cherry picked commits [changeset:323a401] and [changeset:2a8eac9] from #32 into trac-11 branch to add SP0 PSP |
Trac comment by jhageman on 2019-04-25 15:00:20: Marked as invalid since it applies to a custom PSP, feel free to reopen if this work is still relevant to community development. |
JSC developed grut699-vxworks6 PSP from JSC's subversion repo rev 1202 was provided to GSFC and released with cFE 6.41.
Since its release, changes have been made that need to be push to the main repo.
JSC Redmine issue #158 8
Fixes get time base issue in grut699 PSP
As currently implemented, CFE_PSP_Get_Timebase() does not set tbu and tbl correctly, based on
From cfe_es_perf.c::CFE_ES_PerfLogAdd()
/* Time is stored as 2 32 bit integers, (TimerLower32, TimerUpper32): /
/ TimerLower32 is the curent value of the hardware timer register. /
/ TimerUpper32 is the number of times the timer has rolled over. /
/ /
/ Time is stored as a absolute time instead of a relative time between log /
/ entries. This will yield better accuracy since storing relative time between /
/ entries will accumulate (rounding/sampling) errors over time. It also is /
/ faster since the time does not need to be calculated.
For this board, since upper is seconds and the 32-bit timer register is reset to
0 (basically rolled over) every second that exactly fits this definition.
upper = g_nSecondsCount; <-- upper is correct
lower needs to be changed
FROM
lower = sysTimestampLock();
lower /= sysTimestampFreq() / 1000000UL;
TO
lower = sysTimestampLock();
When using using the 64-bit TBR on PPC processors, this definition still fits, because
the upper 32-bits increments each time the lower 32-bits rolls over at 2^32.
Also, in cfe_psp_timer.c, I am pretty sure that CFE_PSP_TIMER_LOW32_ROLLOVER should
be 9375000 instead of 0. It rolls over each second at 9375000 ticks. 0 means it rolls
over at its max (2^32) value, which in this case it does not.
NOTE: This only impacts the correctness of performance log data time tags. No other code in CFS uses this function.
JSC Redmine issue 18 55
PSP updates for cFE 6.4.x compatibility
In compiler-opts.mak, changed
FROM:
$(CFE_TOOLS)/elf2cfetbl/elf2cfetbl
TO
TABLE_BIN = elf2cfetbl
Also, changed PSP rev to 1.2
The text was updated successfully, but these errors were encountered: