Overview of my student placement
-
Upload
hedley-boone -
Category
Documents
-
view
34 -
download
0
description
Transcript of Overview of my student placement
April 20, 2023
Philipp Spliethoff
Overview of my student placement
Placement Overview2
Agenda
SOIS Proof of Concept – File Store ServiceBasic OverviewSpecific implementationsDocumentation
XtratuMContext Analyser
Placement Overview3
Spacecraft Onboard Interface Services (SOIS)
Placement Overview4
SOIS – Overview
Standardised Interfaces of spacecraft equipment by specifying well-defined serviceAbstracting subnetworks of the spacecraftThree service layers:
Application Support Layer servicesProvide common capabilities needed onboardUse subnetwork layer services (locally or remotely)
Transfer Layer servicesSubnetwork Layer services
Associated with one underlying data linkMapped to best possible extend (using convergence functions)
Defined by the Consultative Committee for Space Data System (CCSDS)
Placement Overview5
Spacecraft Onboard Interface Services
Com
munication M
anagement
Cmd & DataAcquisitionServices
TimeAccessService
File &Packet Store
Services
MessageTransferService
DeviceEnumeration
Service
PacketService
MemoryAccessService
SynchronisationService
DeviceDiscoveryService
TestService
Datalink Convergence Protocols
ApplicationLayer
ApplicationSupport Layer
TransferLayer
SubnetworkLayer
Network Protocol
Transport Protocol
Milbus SpaceWire CAN Wireless
MissionSpecific
Applications
Placement Overview6
SOIS – Benefit
Reusability of user-applicationsIndependent development of s/w and h/w (stable subnetworks)Core servicesPorting subsystems and payload across missions
reduced development time and cost
Placement Overview7
Spacecraft Onboard Interface Services Proof of Concept
File Store Service
Placement Overview8
SOIS File Store Service
The SOIS File Store Services provide a standard interface to allow onboard software to request:
access to files resident in a file storemodifications to files in a file storemanagement of files within a file store (e.g., create, delete, rename)
Split into File Access Service and File Management Service
Placement Overview9
SOIS FSS – File Access Service Primitives
Open a fileClose a fileRead from a fileWrite to a fileOptional:
Seek to an Offset of a file
Easy to implement
One-to-one wrapping on POSIX system calls (open, close, lseek etc.)
Placement Overview10
SOIS FSS – File Management Service Primitives
list the contents of a directorycopy and move filescreate and delete files.Optional features:
create, rename and delete directoriesget and change the user entity’s current directoryrename fileslock or unlock fileslist the currently locked filesfind a file within a file storeget the status of a file
Placement Overview11
SOIS File Store Service
SSMMproviding flat Memory I/FOBC
File andPacketStoreServices
Remote File System
UserApplications
Subnetwork Packet Service
Network File and Packet Store Access Protocols
File and PacketStore System
Subnetwork Packet Service
Network File and Packet Store Access Protocols
Subnetwork-Specific Packet Protocol
Subnetwork-Specific Packet Protocol
Service Primitives
SSMMproviding flat Memory I/F
Remote BlockStorage Protocol
Subnetwork Packet Service
Subnetwork-Specific Packet Protocol
Remote BlockStorage Protocol
Subnetwork Packet Service
Subnetwork-Specific Packet Protocol
Data Storage
Block Access
Example Deployment of the SOIS File Store Service using multiple Distributed Mass Memories
Placement Overview12
SOIS FSS – My Implementation
RTEMS LibraryHighly Configurable (at build time) through pre-processor directivesImplements all features defined by the SOIS (minimal and optional)AVL Tree added to global utility repositorynon-deterministic state machine to evaluate wildcard expressionsDocumented using Doxygen
Placement Overview13
SOIS FSS – Implementation
Based on:RTEMS 4.8RTEMS In Memory File System (IMFS)Direct Function Calls
Can easily be advanced to use network protocol
OBC
FileStoreServices
UserApplications
Network File Store Access Protocols
File Store System
Direct Function Call acting as Underlying Transport
Network File Store Access Protocols
Service Primitives
Data Storage
Block Access
IMFS
Placement Overview14
SOIS FSS – Function Implementation
Direct wrapper functions to all POSIX compatible FSOpen, Close, Read, Write, Seek, CreateFile, DeleteFile, CreateDir, DeleteDir
Implementation through combination of existing POSIX function
ListDirectory, CopyFile, MoveFile, MoveDir
Additional mechanism neededGetWorkingDirectory, RenameDir, FindFile, FileLocks(Lock/UnlockFile, ListLockedFiles…)
MoveDir is not defined by SOIS FSS, implements RenameDir through use of POSIX calls (rename() is broken in RTEMS 4.8)
Placement Overview15
SOIS FSS – Locking
Lock unopened filesLocks restrict access to the fileLock types:
lock-owner read-only access, all other user entities no accesslock-owner read-only access, all other user entities read-only accesslock-owner read-write access, all other user entities no access
No native locking from file systemNo way to check if a file is opened
Possible Solutions:1. POSIX chmod() to change access rights according to the lock2. Create lock files on the file system3. Use a internal structure to store information about locks
Placement Overview16
SOIS FSS – Locking Design
Placement Overview17
Util – AVL Tree
Self balancing binary search treeSearch in log(n) timeFast lookupBalancing done when item is inserted/deleted (log(n) time)
Operations:InsertDeleteFindInorder Walk (e.g. print content sorted
A
E
B
D
C
E
A
E
B
D
C
E
A
EB
D
C F
Insert Sequence: A, B, C, D, E, F
Binary Tree AVL Tree
A
E
B
D
C
E
A
E
B
D
C
E
A
EB
D
C F
Placement Overview18
SOIS FSS - FindFile
SOIS recommends using wildcards to match file namesnon-deterministic finite state machine to evaluate wild card characters to represent the expressionComparison between a filename and the machine in linear timePossible characters: *, +, ?, {, }
Placement Overview19
State machine
State machine for “a*c?d+e”
Placement Overview20
Documentation
Doxygen
Placement Overview21
Doxygen
Generate documentation from comments in source filesLanguages: C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors), Fortran, VHDL, PHP, C#, and to some extent D Output as HTML, Latex, rtf, PS, PDF, Man-PagesHighly configurableOpen Source and licensed under GNU GPL
Documentation is not affected by GPL
Internal PreprocessorEasy switch between different Documentation version (e.g. customer and internal version)
Placement Overview22
Doxygen – HTML Output Sample
Placement Overview23
XtratuM
Placement Overview24
XtratuM - Overview
Hypervisor for embedded systems enabling partitioningFree and Open Source (GPLv2)
Applications on top don’t derive that
Developed for leon2Able to run RTOS like RTEMS or Linux
Target:Get it working on leon3Test features
Placement Overview25
XtratuM - Conclusion
Easy to set upHardware and partitions are defined in a XML fileDocumentation is availablecreated Detailed xml file description
<CyclicPlanTable><Plan id="0" majorFrame="10s">
<Slot id="0" start="0ms" duration= "5s" partitionId="0"/><Slot id="1" start="5s" duration= "1s" partitionId="1"/><Slot id="2" start="6s" duration= "500ms" partitionId="2"/><Slot id="3" start="6500ms" duration= "100ms" partitionId="3"/><Slot id="4" start="6700ms" duration= "50ms" partitionId="4"/><Slot id="5" start="6800ms" duration= "10ms" partitionId="5"/><Slot id="6" start="6900ms" duration= "5ms" partitionId="6"/><Slot id="7" start="6950ms" duration= "1ms" partitionId="7"/><Slot id="8" start="7000ms" duration= "2s" partitionId="8"/>
</Plan></CyclicPlanTable>
Placement Overview26
XtratuM - Conclusion
Features:IPC restricted by Partition hierarchy and definition
XAL – Basic C supportRTEMS – is available, but I didn’t test itAltenatives:
LithOSPaRTiKle (GPLv2)
Placement Overview27
Context Analyser
Placement Overview28
Context Analyser
Get real timing information about RTEMS tasks running on hardware
Approach:Output Task ID to IO pins of the RASTA/FPGA-Board
Inserted code into the RTEMS source code to output the ID
Placement Overview29
Context Analyser
Result:Works with OscilloscopeLogic Analyser is ordered