-
Notifications
You must be signed in to change notification settings - Fork 57
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
mcp750-vxworks PSP hardcodes core as "cfe-core.o" #111
Comments
Note the suffix is here:
|
Switching to a bug, since this breaks on any multiple build system, since the target name is different. @jphickey how about removing the hardcoded value, extract it from the target properties and passing in as a -D to the PSP build? |
or add to target_config.c, and get it from there? |
Probably most resilient solution would be for the startCfeCore to pass the the moduleID in (no dependence on actual name). Second to that, could search the ID list (moduleIdListGet) for a partial name match ("core-" or "core-" + CPUNAME), and least resilient would be using the original build name as described above. The 2nd and 3rd option rely on part or all of the name not getting changed, which is an unfortunate "hidden" restriction on the user. |
As far as I know, the My suggestion is to do both:
With this approach one can get the full/complete/ideal solution if they rebuild their kernel and start CFE via |
I can implement the above if you want, but I won't be able to rebuild the VxWorks kernel AFAIK, as this requires use of the wind river IDE. I can do items 2-5 above though, if you agree with that approach. Someone else with access to the proper tools will have to rebuild the kernel. |
As a side note - it is probably worth also considering that the way the CFE does the CRC calculation here is somewhat broken at the fundamental level. On a system with actual memory protection and a sufficiently capable MMU, usually the text pages are marked "execute only" for security reasons. On this type of system access of the code/text pages as data, as CFE does to compute the CRC, will trigger a segmentation fault. It may be worth considering a completely alternative API where the CRC is computed when the module is loaded, via any available means on the platform, and a PSP API to retrieve that pre-calculated CRC. |
We've got the capability to rebuild the kernel... but lets just do 2-5 for now. If the error reporting could be improved (when a match can't be found), and a functional level test could be added (via the test app capability) that would also help us avoid future breakage. |
Improve the module ID lookup when getting the CFE core text segment info. - Ideally get the ID directly from what was loaded by startCfeCore - As a fallback use the actual CFE core name from the configdata Do not use a hardcoded name.
Fix #111, do not assume a specific core name
Requested feature
CFE_PSP_GetCFETextSegmentInfo fails if CFE_MODULE_NAME doesn't match what was run, currently hardcoded to "cfe-core.o". Could make lookup more general so it wouldn't require hardcoded name.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Checksum should work
Code snips
See fsw/mcp750-vxworks/src/cfe_psp_memory.c lines related to CFE_MODULE_NAME
System observed on:
Additional context
None
Reporter Info
Jacob Hageman - NASA/GSFC
The text was updated successfully, but these errors were encountered: