Commit 9bbef620 by Thanassis Tsiodras

* DRVMGR APBUART driver

parent 7a927836
......@@ -86,7 +86,7 @@ public
with ocarina_drivers_rasta_spacewire;
with ocarina_drivers_rtems_ne2000;
with ocarina_drivers_grspw_packet;
with ocarina_drivers_apbuart_serial;
with ocarina_drivers_star_dundee_spacewire_brick;
with ocarina_drivers_udp_exarm;
......@@ -232,6 +232,14 @@ public
Provided_Virtual_Bus_Class => (classifier (ocarina_buses::raw.i));
end rasta_serial.raw;
device implementation rasta_serial.apbuart_drvmgr
properties
Deployment::Driver_Name => "apbuart_serial";
Device_Driver => classifier (ocarina_drivers_apbuart_serial::serial_driver.impl);
Initialize_Entrypoint => classifier (ocarina_drivers_apbuart_serial::spg_serial_init);
Provided_Virtual_Bus_Class => (classifier (ocarina_buses::raw.i));
end rasta_serial.apbuart_drvmgr;
device implementation rasta_serial.pohiada
properties
Deployment::Driver_Name => "serial_rasta";
......@@ -2492,3 +2500,66 @@ public
end grspw_packet_driver.rasta;
end ocarina_drivers_grspw_packet;
package ocarina_drivers_apbuart_serial
public
-- This driver works for RTEMS 5 (presumably RTEMS 4.11) based on
-- drvmgr driver subsystem, using GRSPW Packet driver.
--
-- See Chapter 18 of RCC 1.3 manual
with Deployment;
with ocarina_buses;
with ocarina_drivers;
subprogram spg_serial_poller
properties
Source_Language => (C);
Source_Name => "__po_hi_c_driver_rtems_drvmgr_serial_poller";
Source_Text => ("po_hi_driver_drvmgr_common.c",
"po_hi_driver_rtems_drvmgr_serial.c");
end spg_serial_poller;
subprogram spg_serial_sender
properties
Source_Language => (C);
Source_Name => "__po_hi_c_driver_rtems_drvmgr_serial_sender";
Source_Text => ("po_hi_driver_drvmgr_common.c",
"po_hi_driver_rtems_drvmgr_serial.c");
end spg_serial_sender;
subprogram spg_serial_init
properties
Source_Language => (C);
Source_Name => "__po_hi_c_driver_rtems_drvmgr_serial_init";
Source_Text => ("po_hi_driver_drvmgr_common.c",
"po_hi_driver_rtems_drvmgr_serial.c");
end spg_serial_init;
thread serial_poller
end serial_poller;
thread implementation serial_poller.impl
calls
mycall : {
pspg : subprogram spg_serial_poller;
};
properties
Period => 1ms;
Dispatch_Protocol => Background;
end serial_poller.impl;
abstract serial_driver
properties
Deployment::Configuration_Type => classifier (ocarina_drivers::configuration_type_serial);
Deployment::Version => "0.1beta";
Deployment::Help => "Write your ASN.1 configuration here";
end serial_driver;
abstract implementation serial_driver.impl
subcomponents
receiver_apbuart_serial : thread serial_poller.impl;
sender : subprogram spg_serial_sender;
end serial_driver.impl;
end ocarina_drivers_apbuart_serial;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment