Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 1 FOSDEM 2009 – Ada dev room ● MaRTE OS: Practical view ● Daniel Sangorrín ● Miguel.

1 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02...
Author: Andrea Felisa Godoy Agüero
0 downloads 2 Views

1 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 1 FOSDEM 2009 – Ada dev room ● MaRTE OS: Practical view ● Daniel Sangorrín ● Miguel Tellería ● This talk is sponsored by the FRESCOR european FP6 project. More information available at http://www.frescor.org

2 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 2 Where can I get it? ● MaRTE OS website: http://marte.unican.es – news RSS2.0 feed – documentation – downloads – finished projects – on-going work – forum

3 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 3 The documentation ● MaRTE OS User's Guide ● README, INSTALL ● Tutorials – Boot process – Misc utilities – QEMU ● Papers and presentations ● Other sources: – FRESCOR deliverables – Degree projects reports – Forum

4 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 4 Installation, compilation, debugging ● Requirements: – Host Computer: GNU/Linux with compilation environment and AdaCore GNAT compiler – Target Computer (only x86): ● Ethernet card for remote loading (optional) ● Serial port for remote debugging (optional) ● MaRTE OS scripts: – minstall, mkrtsmarteuc, mkmarte ● Application scripts: – mgnatmake, mgcc, mg++ ● Debugging (gdb, linux_arch, qemu, serial port)

5 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 5 Development environment

6 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 6 Example 1: hello world ● mgnatmake -g hello_world.adb ● with Text_IO; ● procedure Hello_World is ● begin ● Text_IO.New_Line; ● Text_IO.Put_Line ("Hello FOSDEM"); ● Text_IO.Put ("I'm an Ada program running on MaRTE OS."); ● Text_IO.New_Line (2); ● end Hello_World;

7 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 7 Example 2: concurrency ● Basic test of the Ceiling Locking protocol in protected objects: – A high priority task (T_High) displays periodically a message and suspends. – A low priority task (T_Low) is active all the time and periodically executes a protected operation. – T_High's messages stop while T_Low executes the protected operation since the PO's ceiling is above T_High's priority.

8 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 8 Example 3: Hardware management ● Parallel port – Handle Interrupt + Access to data register ● MHI.Associate (PP_IRQ, PP_IRQ_Handler'Unrestricted_Access); ● Outb_P (PP_CONTROL_REG, PP_IRQ_ENABLE); ● MHI.Unlock (PP_IRQ); ● loop ● PHI.Wait (Intr, Handler); ● Outb_P (PP_DATA_REG, 2#00_001_001#); delay (0.5); ● Outb_P (PP_DATA_REG, 2#00_010_010#); delay (0.5); ● end loop;

9 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 9 Example 4: RT-EP ● A Real Time Communication Protocol over Standard Ethernet – Ada95 and C Interface – Sporadic servers, Distributed Mutexes, Reliable Multicast – Bandwith reservation – Polyorb CORBA and DSA (also Rt-CCM Thales) ● Some features of Ada that are used in RT-EP implementation: – Tasking, Protected Objects, Synchronous Task control – Package hierarchy – Exceptions – Generics – C Interfaces, FLORIST (Posix Ada bindings)

10 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 10 Example 4: RT-EP 1 2 3 P=18 P=4 P=2 HP=2 HP=4 HP=1 8 1 2 3 P=0 P=4 P=2 HP=4 MSG received goto a) a) Priority arbitration b) Transmission I won! MSG

11 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 11 Example 4: RT-EP

12 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 12 Example 4: RT-EP

13 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 13 Example 4: RT-EP

14 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 14 Example 4: RT-EP

15 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 15 List of Drivers, Protocols,... ● Communication protocols and middlewares – PolyORB (DSA and CORBA) and GLADE ported to MaRTE OS x86 bare machine using RT-EP – RT-WMP Real-Time Wireless protocol (UNIZAR) – RT-EP protocol with a Bandwith reservation layer, distributed mutexes, broadcast services – FRESCAN network protocol for CAN bus with bandwith reservation and sporadic servers – DTM, the Distributed Transaction Manager of FRESCOR – MyCCM, implements the OMG CCM (THALES)

16 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 16 List of Drivers, Protocols,... ● Drivers – CAN bus – Wireless ralink rt61 – SVGA, BTTV, Soundblaster 16 – Mouse, Keyboard, Joystick – Ethernet drivers (intel eepro100, rtl8139, SiS900) – Serial port driver – I2C protocol, compass CMPS03 driver – IDE disk driver (CompactFlash and HD) and FAT 16 filesystem – Advantech Data adquisition and Digital IO cards drivers (PCM3718 and others)

17 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 17 List of Drivers, Protocols,... – laser-sick-lms200 – GPS Novatel ProPak driver – P2OS driver (compass, sonar, odometer, motors) – Yenta Cardbus ● Other features: – MaRTE OS utilities: memory buffer driver, console switcher, logger, oscilloscope, time measurements – MaRTE-spy – C++ language support – TLSF Dynamic Memory Allocator

18 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 18 Apps: Robot Controllers

19 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 19 Apps: CASEVA

20 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 20 Apps: AUSILGE

21 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 21 Apps: other projects

22 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 22 On-Going: FRESCOR

23 Grupo de Computadores y Tiempo Real Daniel Sangorrín 02/10/2016 Page 23 ● Thanks for your attention ● protected body Questions is ● entry Ask_Question(Gift : out Gift_Type) is ● begin ● Gift := Live_USB_With_MaRTE_OS_And_FRESCOR; ● Put_Line ("Thanks :)"); ● end Ask; ● end Questions;