Skip to content
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

Closed
skliper opened this issue Sep 25, 2019 · 4 comments
Closed

provide grut699-vxworks6 PSP updates #15

skliper opened this issue Sep 25, 2019 · 4 comments
Labels
bug Something isn't working invalid This doesn't seem right

Comments

@skliper
Copy link
Contributor

skliper commented Sep 25, 2019

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

@skliper skliper self-assigned this Sep 25, 2019
@skliper
Copy link
Contributor Author

skliper commented Sep 25, 2019

Imported from trac issue 11. Created by sduran on 2015-02-26T14:32:05, last modified: 2019-04-25T15:11:20

@skliper
Copy link
Contributor Author

skliper commented Sep 25, 2019

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.

@skliper skliper added the bug Something isn't working label Sep 25, 2019
@skliper
Copy link
Contributor Author

skliper commented Sep 25, 2019

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

@skliper
Copy link
Contributor Author

skliper commented Sep 25, 2019

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.

@skliper skliper closed this as completed Sep 25, 2019
@skliper skliper removed their assignment Sep 26, 2019
@skliper skliper added the invalid This doesn't seem right label Sep 26, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working invalid This doesn't seem right
Projects
None yet
Development

No branches or pull requests

1 participant