-
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
PSP modular build enhancements #6
Comments
Imported from trac issue 3. Created by jphickey on 2014-12-26T22:30:17, last modified: 2019-04-02T14:49:34 |
Trac comment by jphickey on 2014-12-28 22:53:04: Pushed commit [changeset:3c1183e] to address this. Branch name is trac-3-psp_driver_framework. |
Trac comment by glimes on 2015-01-30 11:44:29: Now reviewing [changeset:641f577 changeset 641f577] ... notes so far:
|
Trac comment by sduran on 2015-03-19 17:26:02: Good idea, recommend accept. |
Trac comment by jphickey on 2015-04-06 12:25:25: Points brought up by Greg are valid here -- good catch, didn't notice that earlier. The problem here is that I did not backport any driver //implementation//, only the API that defines the framework. Those functions are indeed part of the (shared) implementation and that NameList probably needs to be a pointer to pointer. |
Trac comment by jphickey on 2015-04-06 12:32:33: Another topic for review/discussion here is that CCSDS SOIS-App working group is actively working on a specification for hardware abstraction layers and this actually fits nicely into it, although the naming currently does not match. I believe this fits into the role of the "Subnetwork Layer" or possibly "Device Access Service" (DAS) as defined by SOIS. We could also implement SOIS electronic data sheets here as well. |
Trac comment by glimes on 2015-04-07 12:31:53: I've been testing changeset [changeset:d0f1e2b] as part |
Trac comment by jphickey on 2015-04-07 12:42:48: My general feeling at this time is to leave it out of the regular development build for now, since nothing else really depends on it being there (except for my stuff, anyway). I will merge this into the forthcoming "EDS preview" development branch while we figure out how much of the SOIS-App architecture specification we want to implement and how this fits into it. |
Trac comment by glimes on 2015-04-07 14:36:59: Will retract from the PSP ic-2015-03-10 merge. |
Trac comment by jphickey on 2015-07-17 11:20:09: This ticket was discussed in the 2015-07-14 CCB meeting and it will be split into two items:
Update: Ticket #33 has been created for item 2 above. |
Trac comment by jphickey on 2015-07-17 11:36:37: Setting back to "in_work" as I cherry-pick those components of the original change set that focus on the modular PSP build aspect (item 1 above). |
Trac comment by jphickey on 2015-08-10 11:29:37: Candidate for inclusion in the next CCB review with commit [changeset:b18ea23] This change set focuses on allowing modules to be statically linked into the PSP. This is a basis to help support different board variants without forking the entire PSP. |
Trac comment by glimes on 2015-08-11 12:31:43: Approve. For the future, it strikes me that CFE_PSP_SetupEEPROM could be
On a side note, using I suggest not holding up '''this''' ticket based on the above concerns. |
Trac comment by glimes on 2015-08-11 12:36:03: NOTE: requires coordinated integration of the [cfs_cfe:84] changes. |
Trac comment by jphickey on 2015-08-17 11:54:12: == REBASE == This has been rebased to the current CCB-approved merge (ic-2015-08-10 branch). Updated commits: [changeset:dc4760f] (basic change), [changeset:454501d] (eeprom proof-of-concept) |
Trac comment by aangie on 2015-08-25 14:25:22: accept |
Trac comment by glimes on 2015-09-08 14:01:32: Merged to development. |
Trac comment by glimes on 2016-01-11 10:42:10: Mark for PSP 1.3 per email from sstrege |
Trac comment by jhageman on 2019-04-02 14:49:34: Milestone renamed |
Currently, in order to support a different variant of a board, such as one that has the same processor but different set of peripherals, one must "clone" the entire PSP of the board and modify it to support the new board.
The problem with this approach is that as usage becomes more widespread we will end up with a large number of similar-but-different PSPs needing maintenance. Any change to the CFE that requires PSP support will require updating ALL VARIANTS of the PSP which will become increasingly difficult.
The CMake build system introduced in ticket #4 as the ability to //statically// link in a set of extra mission-defined code modules into the PSP library. With this system in place, CFS applications can bind to specific "PSP drivers" at runtime.
This is analogous to statically linking driver modules into the Linux kernel depending on the hardware configuration. As long as the interface is the same (e.g. "/dev/ttyS*"), the application need not know what hardware is actually providing the interface.
This allows code re-use in many ways:
This framework should help avoid the need to "clone-and-own" a PSP for a particular project. This is especially true for Linux PSPs which are already very generic (e.g. pc-linux easily runs on ARM Linux or PPC Linux). The framework is a very simple extension to the PSP and does not change existing PSP APIs so it will not interfere with existing code.
The text was updated successfully, but these errors were encountered: