You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
system implementation motor_system.impl
subcomponents
Control : process ctr.impl;
CPU1 : processor cpu.impl;
Mem1 : memory motor_memory.impl;
Motor : device mtr.impl;
USB : bus universal_serial_bus.impl;
connections
BC1 : bus access USB -> CPU1.BA1;
BC2 : bus access USB -> Mem1.BA2;
BC3 : bus access USB -> Motor.BA3;
Rotate_Conn : port Control.send_rotation -> Motor.rec_rotation;
properties
Actual_Processor_Binding => (reference (CPU1)) applies to Control;
Actual_Memory_Binding => (reference (Mem1)) applies to Control;
Actual_Connection_Binding => (reference (USB)) applies to Rotate_Conn;
end motor_system.impl;
--- Memory- ---
memory motor_memory
features
BA2 : requires bus access universal_serial_bus.impl;
end motor_memory;
memory implementation motor_memory.impl
end motor_memory.impl;
--- Devices ---
device mtr
features
BA3 : requires bus access universal_serial_bus.impl;
rec_rotation : in event data port dummy;
end mtr;
device implementation mtr.impl
end mtr.impl;
---- Buses ----
bus universal_serial_bus
end universal_serial_bus;
bus implementation universal_serial_bus.impl
properties
Deployment::Transport_API => BSD_Sockets;
end universal_serial_bus.impl;
-- Processor --
processor cpu
features
BA1 : requires bus access universal_serial_bus.impl;
properties
--Deployment::Execution_Platform => LINUX64;
POK::Architecture => x86;
POK::BSP => x86_qemu;
end cpu;
Hi
With POK, I ran the makefile:
BUILD = --models=pololu_motor.aadl --no-run
TESTS = compile-x86 compile-ppc compile-sparc
include $(POK_PATH)/misc/mk/examples.mk
and received this error:
Will execute ocarina -aadlv2 -f -g pok_c pololu_motor.aadl $POK_PATH/misc/aadl-library.aadl
+========================== OCARINA BUG DETECTED =========================+
| Detected exception: SYSTEM.ASSERTIONS.ASSERT_FAILURE |
| Error: ocarina-me_aadl-aadl_instances-nodes.adb:183 |
| Please refer to the User's Guide for more details. |
+=========================================================================+
Exception name: SYSTEM.ASSERTIONS.ASSERT_FAILURE
Message: ocarina-me_aadl-aadl_instances-nodes.adb:183
Code generation failed
make: *** [build] Error 1
This is my AADL model:
package pololu_motor
public
with Deployment, Data_Model, POK;
-- System --
system motor_system
end motor_system;
system implementation motor_system.impl
subcomponents
Control : process ctr.impl;
CPU1 : processor cpu.impl;
Mem1 : memory motor_memory.impl;
Motor : device mtr.impl;
USB : bus universal_serial_bus.impl;
connections
BC1 : bus access USB -> CPU1.BA1;
BC2 : bus access USB -> Mem1.BA2;
BC3 : bus access USB -> Motor.BA3;
Rotate_Conn : port Control.send_rotation -> Motor.rec_rotation;
properties
Actual_Processor_Binding => (reference (CPU1)) applies to Control;
Actual_Memory_Binding => (reference (Mem1)) applies to Control;
Actual_Connection_Binding => (reference (USB)) applies to Rotate_Conn;
end motor_system.impl;
--- Memory- ---
memory motor_memory
features
BA2 : requires bus access universal_serial_bus.impl;
end motor_memory;
memory implementation motor_memory.impl
end motor_memory.impl;
--- Devices ---
device mtr
features
BA3 : requires bus access universal_serial_bus.impl;
rec_rotation : in event data port dummy;
end mtr;
device implementation mtr.impl
end mtr.impl;
---- Buses ----
bus universal_serial_bus
end universal_serial_bus;
bus implementation universal_serial_bus.impl
properties
Deployment::Transport_API => BSD_Sockets;
end universal_serial_bus.impl;
-- Processor --
processor cpu
features
BA1 : requires bus access universal_serial_bus.impl;
properties
--Deployment::Execution_Platform => LINUX64;
POK::Architecture => x86;
POK::BSP => x86_qemu;
end cpu;
processor implementation cpu.impl
subcomponents
partition : virtual processor mypartition.impl;
properties
--Scheduling_Protocol => (Posix_1003_Highest_Priority_First_Protocol);
--Priority_Range => 1 .. 2;
POK::Major_Frame => 1000 ms;
POK::Scheduler => STATIC;
POK::Slots => (1000 ms);
POK::Slots_Allocation => (reference (partition));
end cpu.impl;
---Virtual Processor---
virtual processor mypartition
properties
POK::Scheduler => RR;
end mypartition;
virtual processor implementation mypartition.impl
end mypartition.impl;
-- Processes --
process ctr
features
send_rotation : out event data port dummy;
properties
POK::Needed_Memory_Size => 120 KByte;
end ctr;
process implementation ctr.impl
subcomponents
activity : thread task.impl;
connections
Rot_Conn: port activity.rotate_out -> send_rotation;
end ctr.impl;
-- Threads --
thread task
features
rotate_out : out event data port dummy;
end task;
thread implementation task.impl
calls
Mycalls: {
hello_code : subprogram Hello_Spg;
};
connections
Param_Conn : parameter hello_code.Param1 -> rotate_out;
properties
Dispatch_Protocol => Periodic;
Period => 1000 ms;
Recover_Execution_time => 10 ms .. 20 ms;
Deadline => 1000 ms;
Priority => 1;
end task.impl;
----- Data ------
data dummy
properties
Data_Model::Data_Representation => Float;
end dummy;
-- Subprograms --
subprogram Hello_Spg
features
Param1 : out parameter dummy;
properties
Source_Language => (C);
Source_Name => "simple";
POK::Source_Location => "../../../simple.o";
end Hello_Spg;
end pololu_motor;
Regards,
Peter
The text was updated successfully, but these errors were encountered: