diff --git a/emBODY/eBcode/arch-arm/board/amc/examples/basic/proj/amc-basic.uvoptx b/emBODY/eBcode/arch-arm/board/amc/examples/basic/proj/amc-basic.uvoptx
index d7d035d6f9..cbb6442252 100644
--- a/emBODY/eBcode/arch-arm/board/amc/examples/basic/proj/amc-basic.uvoptx
+++ b/emBODY/eBcode/arch-arm/board/amc/examples/basic/proj/amc-basic.uvoptx
@@ -75,7 +75,7 @@
1
0
- 1
+ 0
18
@@ -459,7 +459,7 @@
0
0
- 0
+ 1
18
@@ -504,7 +504,7 @@
0
ULP2CM3
- -U-O206 -O206 -S8 -C0 -P00000000 -N00("") -D00(00000000) -L00(0) -TO65537 -TC400000000 -TT10000000 -TP18 -TDX0 -TDD0 -TDS8007 -TDT0 -TDC1F -TIE80000001 -TIP9 -FO7 -FD20000000 -FC8000 -FN1 -FF0STM32H7x_2048.FLM -FS08000000 -FL0200000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM)
+ -UP0948199 -O206 -S8 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(6BA02477) -L00(0) -TO65537 -TC400000000 -TT10000000 -TP18 -TDX0 -TDD0 -TDS8001 -TDT0 -TDC1F -TIE80000001 -TIP9 -FO7 -FD20000000 -FC8000 -FN1 -FF0STM32H7x_2048.FLM -FS08000000 -FL0200000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM)
0
@@ -539,7 +539,7 @@
0
DLGUARM
- d
+
diff --git a/emBODY/eBcode/arch-arm/board/amc/examples/basicping/proj/amc-basicping.uvoptx b/emBODY/eBcode/arch-arm/board/amc/examples/basicping/proj/amc-basicping.uvoptx
index 08b86d7322..2b06d7e3f3 100644
--- a/emBODY/eBcode/arch-arm/board/amc/examples/basicping/proj/amc-basicping.uvoptx
+++ b/emBODY/eBcode/arch-arm/board/amc/examples/basicping/proj/amc-basicping.uvoptx
@@ -262,7 +262,7 @@
1
0
- 1
+ 0
18
@@ -454,7 +454,7 @@
1
0
- 0
+ 1
18
@@ -499,7 +499,7 @@
0
ULP2CM3
- -U -O206 -S8 -C0 -P00000000 -N00("") -D00(00000000) -L00(0) -TO65555 -TC400000000 -TT10000000 -TP18 -TDX0 -TDD0 -TDS8007 -TDT0 -TDC1F -TIE80000001 -TIP9 -FO7 -FD20000000 -FC8000 -FN1 -FF0STM32H7x_2048.FLM -FS08000000 -FL0200000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM)
+ -UP0948199 -O206 -S8 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(6BA02477) -L00(0) -TO65555 -TC400000000 -TT10000000 -TP18 -TDX0 -TDD0 -TDS8001 -TDT0 -TDC1F -TIE80000001 -TIP9 -FO7 -FD20000000 -FC8000 -FN1 -FF0STM32H7x_2048.FLM -FS08000000 -FL0200000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM)
0
@@ -534,7 +534,7 @@
0
DLGUARM
- (105=-1,-1,-1,-1,0)
+
diff --git a/emBODY/eBcode/arch-arm/board/amc/examples/embot-os/proj/amc-embot-os.uvoptx b/emBODY/eBcode/arch-arm/board/amc/examples/embot-os/proj/amc-embot-os.uvoptx
index 1366937f25..ec956fe09e 100644
--- a/emBODY/eBcode/arch-arm/board/amc/examples/embot-os/proj/amc-embot-os.uvoptx
+++ b/emBODY/eBcode/arch-arm/board/amc/examples/embot-os/proj/amc-embot-os.uvoptx
@@ -797,7 +797,7 @@
1
0
- 1
+ 0
18
@@ -961,6 +961,480 @@
+
+ demo-embot-cmsisos2-ulpro
+ 0x4
+ ARM-ADS
+
+ 12000000
+
+ 1
+ 1
+ 0
+ 1
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\lst\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+
+ 18
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 1
+
+
+
+
+
+
+
+
+
+
+ BIN\ULP2CM3.DLL
+
+
+
+ 0
+ ULP2CM3
+ -UP0948199 -O206 -S8 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(6BA02477) -L00(0) -TO65555 -TC400000000 -TT10000000 -TP18 -TDX0 -TDD0 -TDS8001 -TDT0 -TDC1F -TIE80000001 -TIP9 -FO7 -FD20000000 -FC8000 -FN1 -FF0STM32H7x_2048.FLM -FS08000000 -FL0200000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM)
+
+
+ 0
+ JL2CM3
+ -U752001923 -O78 -S8 -ZTIFSpeedSel50000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(6BA02477) -L00(4) -TO19 -TC400000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -TB1 -TFE0 -FO7 -FD20000000 -FC8000 -FN1 -FF0STM32H7x_2048.FLM -FS08000000 -FL0200000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM)
+
+
+ 0
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 ) -FN1 -FC8000 -FD20000000 -FF0STM32H7x_2048 -FL0200000 -FS08000000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM)
+
+
+ 0
+ ST-LINKIII-KEIL_SWO
+ -U-O206 -O206 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(6BA02477) -L00(0) -TO131091 -TC400000000 -TT10000000 -TP21 -TDS8021 -TDT0 -TDC1F -TIE80000001 -TIP9 -FO7 -FD20000000 -FC8000 -FN1 -FF0STM32H7x_2048.FLM -FS08000000 -FL0200000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM)
+
+
+ 0
+ ARMRTXEVENTFLAGS
+ -L200 -Z16 -C0 -M1 -T1
+
+
+ 0
+ DLGTARM
+ (1010=-1,-1,-1,-1,0)(6017=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(6016=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)
+
+
+ 0
+ ARMDBGFLAGS
+
+
+
+ 0
+ DLGUARM
+
+
+
+
+
+
+ 0
+ 1
+ cpufreq,0x0A
+
+
+ 1
+ 1
+ SystemCoreClock,0x0A
+
+
+
+
+ 0
+ 2
+ osRtxInfo
+
+
+
+
+ 1
+ 0
+ 0x20003134
+ 0
+
+
+
+ 0
+
+
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+ 1
+ 1
+ 0
+ 2
+ 10000000
+
+
+
+
+
+ demo-embot-osal-ulpro
+ 0x4
+ ARM-ADS
+
+ 12000000
+
+ 1
+ 1
+ 0
+ 1
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\lst\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 0
+ 1
+
+ 18
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 1
+
+
+
+
+
+
+
+
+
+
+ BIN\ULP2CM3.DLL
+
+
+
+ 0
+ ULP2CM3
+ -UP0948199 -O206 -S8 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(6BA02477) -L00(0) -TO65555 -TC400000000 -TT10000000 -TP18 -TDX0 -TDD0 -TDS8001 -TDT0 -TDC1F -TIE80000001 -TIP9 -FO7 -FD20000000 -FC8000 -FN1 -FF0STM32H7x_2048.FLM -FS08000000 -FL0200000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM)
+
+
+ 0
+ JL2CM3
+ -U752001923 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(6BA02477) -L00(4) -TO13299 -TC400000000 -TP4 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIPF -TB1 -TFE1 -FO7 -FD20000000 -FC8000 -FN1 -FF0STM32H7x_2048.FLM -FS08000000 -FL0200000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM)
+
+
+ 0
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 ) -FN1 -FC8000 -FD20000000 -FF0STM32H7x_2048 -FL0200000 -FS08000000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM)
+
+
+ 0
+ ST-LINKIII-KEIL_SWO
+ -U005700373137510539383538 -O206 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(6BA02477) -L00(0) -TO131075 -TC400000000 -TT10000000 -TP21 -TDS8021 -TDT0 -TDC1F -TIE80000001 -TIP9 -FO7 -FD20000000 -FC8000 -FN1 -FF0STM32H7x_2048.FLM -FS08000000 -FL0200000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM)
+
+
+ 0
+ ARMRTXEVENTFLAGS
+ -L200 -Z7 -C0 -M1 -T1
+
+
+ 0
+ DLGTARM
+ (1010=-1,-1,-1,-1,0)(6017=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(6016=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)
+
+
+ 0
+ ARMDBGFLAGS
+
+
+
+ 0
+ DLGUARM
+
+
+
+
+
+
+ 0
+ 1
+ osthread
+
+
+ 1
+ 1
+ tmr
+
+
+ 2
+ 1
+ _internals.cfg->isr_queue,0x10
+
+
+ 3
+ 1
+ errormsg
+
+
+ 4
+ 1
+ errormsg
+
+
+ 5
+ 1
+ errormsg
+
+
+ 6
+ 1
+ pImpl
+
+
+ 7
+ 1
+ largestack
+
+
+ 8
+ 1
+ frame
+
+
+ 9
+ 1
+ hfdcan
+
+
+
+
+ 0
+ 2
+ osRtxInfo
+
+
+
+
+ 1
+ 0
+ 0x20003134
+ 0
+
+
+
+ 0
+
+
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+ 1
+ 1
+ 0
+ 2
+ 10000000
+
+
+
+
main
0
diff --git a/emBODY/eBcode/arch-arm/board/amc/examples/embot-os/proj/amc-embot-os.uvprojx b/emBODY/eBcode/arch-arm/board/amc/examples/embot-os/proj/amc-embot-os.uvprojx
index cfd998373f..6c6094a4a0 100644
--- a/emBODY/eBcode/arch-arm/board/amc/examples/embot-os/proj/amc-embot-os.uvprojx
+++ b/emBODY/eBcode/arch-arm/board/amc/examples/embot-os/proj/amc-embot-os.uvprojx
@@ -2632,6 +2632,1319 @@
+
+ demo-embot-cmsisos2-ulpro
+ 0x4
+ ARM-ADS
+ 6160000::V6.16::ARMCLANG
+ 1
+
+
+ STM32H745IIKx:CM7
+ STMicroelectronics
+ Keil.STM32H7xx_DFP.2.8.0
+ http://www.keil.com/pack/
+ IRAM(0x38000000,0x00010000) IRAM2(0x24000000,0x00080000) IROM(0x08000000,0x00100000) XRAM(0x20000000,0x00020000) CPUTYPE("Cortex-M7") FPU3(DFPU) CLOCK(12000000) ELITTLE
+
+
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC8000 -FN1 -FF0STM32H7x_2048 -FS08000000 -FL0200000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM))
+ 0
+ $$Device:STM32H745IIKx$Drivers\CMSIS\Device\ST\STM32H7xx\Include\stm32h7xx.h
+
+
+
+
+
+
+
+
+
+ $$Device:STM32H745IIKx$CMSIS\SVD\STM32H745_CM7.svd
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+
+ .\obj\
+ amc-embot
+ 1
+ 0
+ 1
+ 1
+ 1
+ .\lst\
+ 1
+ 0
+ 0
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 3
+
+
+ 0
+
+
+ SARMCM3.DLL
+ -REMAP -MPU
+ DCM.DLL
+ -pCM7
+ SARMCM3.DLL
+ -MPU
+ TCM.DLL
+ -pCM7
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 16
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+ 1
+ 4096
+
+ 1
+ BIN\UL2CM3.DLL
+
+
+
+
+
+ 0
+
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ "Cortex-M7"
+
+ 0
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 3
+ 0
+ 0
+ 1
+ 0
+ 8
+ 0
+ 0
+ 0
+ 0
+ 3
+ 4
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x38000000
+ 0x10000
+
+
+ 1
+ 0x8000000
+ 0x100000
+
+
+ 1
+ 0x20000000
+ 0x20000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x8000000
+ 0x100000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x20000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x38000000
+ 0x10000
+
+
+ 0
+ 0x24000000
+ 0x80000
+
+
+
+
+
+ 1
+ 3
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 3
+ 0
+ 1
+ 0
+ 0
+ 0
+ 3
+ 8
+ 1
+ 1
+ 0
+ 0
+ 0
+
+ -Wno-pragma-pack -Wno-deprecated-register -DEMBOT_USE_rtos_cmsisos2
+ USE_STM32HAL STM32HAL_BOARD_AMC STM32HAL_DRIVER_V1A0
+
+ ..\..\..\..\..\libs\lowlevel\stm32hal\api;..\..\..\..\..\libs\highlevel\abslayer\cmsisos2\api;..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core;..\..\..\..\..\embot\hw;..\..\..\..\..\embot\os;..\..\..\..\..\embot\app;..\..\..\..\..\embot\app;..\..\..\bsp
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 4
+
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0x08000000
+ 0x20000000
+
+ .\nucleoh7-application0offset.sct
+
+
+ --diag_suppress=L6329
+
+
+
+
+
+
+
+ main
+
+
+ main-basic.cpp
+ 8
+ ../src/main-basic.cpp
+
+
+
+
+ stm32hal
+
+
+ stm32hal.h7.amc.v1A0.lib
+ 4
+ ..\..\..\..\..\libs\lowlevel\stm32hal\lib\stm32hal.h7.amc.v1A0.lib
+
+
+
+
+ stm32hal-config
+
+
+ stm32hal.h7.startup.amc.CM7.s
+ 2
+ ..\cfg\stm32hal.h7.startup.amc.CM7.s
+
+
+
+
+ rtos
+
+
+ cmsisos2.lib
+ 4
+ ..\..\..\..\..\libs\highlevel\abslayer\cmsisos2\lib\cmsisos2.lib
+
+
+ osal.cm4.dbg.lib
+ 4
+ ..\..\..\..\..\libs\highlevel\abslayer\osal\lib\osal.cm4.dbg.lib
+
+
+ 2
+ 0
+ 0
+ 0
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 11
+
+
+ 1
+
+
+
+
+
+ eventviewer.c
+ 1
+ ..\..\..\..\..\libs\midware\eventviewer\src\eventviewer.c
+
+
+ 2
+ 0
+ 0
+ 0
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 11
+
+
+ 1
+
+
+
+ 2
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+ embot-core
+
+
+ embot_core.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core.cpp
+
+
+ embot_core_binary.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core_binary.cpp
+
+
+ embot_core_utils.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core_utils.cpp
+
+
+
+
+ embot-hw
+
+
+ embot_hw_bsp.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_bsp.cpp
+
+
+ embot_hw.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw.cpp
+
+
+ embot_hw_gpio.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_gpio.cpp
+
+
+ embot_hw_led.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_led.cpp
+
+
+ embot_hw_lowlevel.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_lowlevel.cpp
+
+
+ 2
+ 0
+ 0
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 11
+
+
+ 1
+
+
+
+ 2
+ 1
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+
+
+
+
+
+
+
+
+
+
+
+ embot_hw_sys.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_sys.cpp
+
+
+ embot_hw_button.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_button.cpp
+
+
+ embot_hw_can.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_can.cpp
+
+
+ embot_hw_flash.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_flash.cpp
+
+
+
+
+ embot-os
+
+
+ embot_os.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os.cpp
+
+
+ embot_os_Action.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_Action.cpp
+
+
+ embot_os_theCallbackManager.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_theCallbackManager.cpp
+
+
+ embot_os_theScheduler.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_theScheduler.cpp
+
+
+ embot_os_theTimerManager.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_theTimerManager.cpp
+
+
+ embot_os_Thread.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_Thread.cpp
+
+
+ embot_os_Timer.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_Timer.cpp
+
+
+ embot_os_rtos.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_rtos.cpp
+
+
+
+
+ embot-app
+
+
+ embot_app_theLEDmanager.cpp
+ 8
+ ..\..\..\..\..\embot\app\embot_app_theLEDmanager.cpp
+
+
+
+
+ embot::hw::bsp
+
+
+ embot_hw_bsp_amc.cpp
+ 8
+ ..\..\..\bsp\embot_hw_bsp_amc.cpp
+
+
+
+
+
+
+ demo-embot-osal-ulpro
+ 0x4
+ ARM-ADS
+ 6160000::V6.16::ARMCLANG
+ 1
+
+
+ STM32H745IIKx:CM7
+ STMicroelectronics
+ Keil.STM32H7xx_DFP.2.8.0
+ http://www.keil.com/pack/
+ IRAM(0x38000000,0x00010000) IRAM2(0x24000000,0x00080000) IROM(0x08000000,0x00100000) XRAM(0x20000000,0x00020000) CPUTYPE("Cortex-M7") FPU3(DFPU) CLOCK(12000000) ELITTLE
+
+
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC8000 -FN1 -FF0STM32H7x_2048 -FS08000000 -FL0200000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM))
+ 0
+ $$Device:STM32H745IIKx$Drivers\CMSIS\Device\ST\STM32H7xx\Include\stm32h7xx.h
+
+
+
+
+
+
+
+
+
+ $$Device:STM32H745IIKx$CMSIS\SVD\STM32H745_CM7.svd
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+
+ .\obj\
+ h7disco
+ 1
+ 0
+ 1
+ 1
+ 1
+ .\lst\
+ 1
+ 0
+ 0
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 3
+
+
+ 0
+
+
+ SARMCM3.DLL
+ -REMAP -MPU
+ DCM.DLL
+ -pCM7
+ SARMCM3.DLL
+ -MPU
+ TCM.DLL
+ -pCM7
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 16
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+ 1
+ 4096
+
+ 1
+ BIN\UL2CM3.DLL
+
+
+
+
+
+ 0
+
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ "Cortex-M7"
+
+ 0
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 3
+ 0
+ 0
+ 1
+ 0
+ 8
+ 0
+ 0
+ 0
+ 0
+ 3
+ 4
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x38000000
+ 0x10000
+
+
+ 1
+ 0x8000000
+ 0x100000
+
+
+ 1
+ 0x20000000
+ 0x20000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x8000000
+ 0x100000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x20000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x38000000
+ 0x10000
+
+
+ 0
+ 0x24000000
+ 0x80000
+
+
+
+
+
+ 1
+ 2
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 3
+ 0
+ 1
+ 0
+ 0
+ 0
+ 3
+ 8
+ 1
+ 1
+ 0
+ 0
+ 0
+
+ -Wno-pragma-pack -Wno-deprecated-register -DEMBOT_USE_rtos_osal
+ USE_STM32HAL STM32HAL_BOARD_AMC STM32HAL_DRIVER_V1A0
+
+ ..\..\..\..\..\libs\lowlevel\stm32hal\api;..\..\..\..\..\libs\highlevel\abslayer\osal\api;..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core;..\..\..\..\..\embot\hw;..\..\..\..\..\embot\os;..\..\..\..\..\embot\app;..\..\..\..\..\embot\app;..\..\..\..\..\libs\midware\eventviewer\api;..\..\..\bsp
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 4
+
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0x08000000
+ 0x20000000
+
+ ..\..\embot-updater\proj\stm32h745disco-application0offset.sct
+
+
+ --diag_suppress=L6329
+
+
+
+
+
+
+
+ main
+
+
+ main-basic.cpp
+ 8
+ ../src/main-basic.cpp
+
+
+
+
+ stm32hal
+
+
+ stm32hal.h7.amc.v1A0.lib
+ 4
+ ..\..\..\..\..\libs\lowlevel\stm32hal\lib\stm32hal.h7.amc.v1A0.lib
+
+
+
+
+ stm32hal-config
+
+
+ stm32hal.h7.startup.amc.CM7.s
+ 2
+ ..\cfg\stm32hal.h7.startup.amc.CM7.s
+
+
+
+
+ rtos
+
+
+ cmsisos2.lib
+ 4
+ ..\..\..\..\..\libs\highlevel\abslayer\cmsisos2\lib\cmsisos2.lib
+
+
+ 2
+ 0
+ 0
+ 0
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 11
+
+
+ 1
+
+
+
+
+
+ osal.cm4.dbg.lib
+ 4
+ ..\..\..\..\..\libs\highlevel\abslayer\osal\lib\osal.cm4.dbg.lib
+
+
+ eventviewer.c
+ 1
+ ..\..\..\..\..\libs\midware\eventviewer\src\eventviewer.c
+
+
+
+
+ embot-core
+
+
+ embot_core.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core.cpp
+
+
+ embot_core_binary.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core_binary.cpp
+
+
+ embot_core_utils.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core_utils.cpp
+
+
+
+
+ embot-hw
+
+
+ embot_hw_bsp.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_bsp.cpp
+
+
+ embot_hw.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw.cpp
+
+
+ embot_hw_gpio.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_gpio.cpp
+
+
+ embot_hw_led.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_led.cpp
+
+
+ embot_hw_lowlevel.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_lowlevel.cpp
+
+
+ 2
+ 0
+ 0
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 11
+
+
+ 1
+
+
+
+ 2
+ 1
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+
+
+
+
+
+
+
+
+
+
+
+ embot_hw_sys.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_sys.cpp
+
+
+ embot_hw_button.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_button.cpp
+
+
+ embot_hw_can.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_can.cpp
+
+
+ embot_hw_flash.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_flash.cpp
+
+
+
+
+ embot-os
+
+
+ embot_os.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os.cpp
+
+
+ embot_os_Action.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_Action.cpp
+
+
+ embot_os_theCallbackManager.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_theCallbackManager.cpp
+
+
+ embot_os_theScheduler.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_theScheduler.cpp
+
+
+ embot_os_theTimerManager.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_theTimerManager.cpp
+
+
+ embot_os_Thread.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_Thread.cpp
+
+
+ embot_os_Timer.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_Timer.cpp
+
+
+ embot_os_rtos.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_rtos.cpp
+
+
+
+
+ embot-app
+
+
+ embot_app_theLEDmanager.cpp
+ 8
+ ..\..\..\..\..\embot\app\embot_app_theLEDmanager.cpp
+
+
+
+
+ embot::hw::bsp
+
+
+ embot_hw_bsp_amc.cpp
+ 8
+ ..\..\..\bsp\embot_hw_bsp_amc.cpp
+
+
+
+
+
diff --git a/emBODY/eBcode/arch-arm/board/amc/examples/udpdemobasic/proj/amc-udpdemo-basic.uvoptx b/emBODY/eBcode/arch-arm/board/amc/examples/udpdemobasic/proj/amc-udpdemo-basic.uvoptx
index faf5e70616..2e9c1d2ade 100644
--- a/emBODY/eBcode/arch-arm/board/amc/examples/udpdemobasic/proj/amc-udpdemo-basic.uvoptx
+++ b/emBODY/eBcode/arch-arm/board/amc/examples/udpdemobasic/proj/amc-udpdemo-basic.uvoptx
@@ -327,7 +327,7 @@
1
0
- 1
+ 0
18
@@ -525,6 +525,263 @@
+
+ udpdemo-basic-osal-ulpro
+ 0x4
+ ARM-ADS
+
+ 12000000
+
+ 1
+ 1
+ 0
+ 1
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\lst\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 0
+ 1
+
+ 18
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 1
+
+
+
+
+
+
+
+
+
+
+ BIN\ULP2CM3.DLL
+
+
+
+ 0
+ ULP2CM3
+ -UP0948199 -O206 -S8 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(6BA02477) -L00(0) -TO65555 -TC400000000 -TT10000000 -TP18 -TDX0 -TDD0 -TDS8001 -TDT0 -TDC1F -TIE80000001 -TIP9 -FO7 -FD20000000 -FC8000 -FN1 -FF0STM32H7x_2048.FLM -FS08000000 -FL0200000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM)
+
+
+ 0
+ JL2CM3
+ -U752001923 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(6BA02477) -L00(4) -TO19 -TC400000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP9 -TB1 -TFE0 -FO7 -FD20000000 -FC8000 -FN1 -FF0STM32H7x_2048.FLM -FS08000000 -FL0200000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM)
+
+
+ 0
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 ) -FN1 -FC8000 -FD20000000 -FF0STM32H7x_2048 -FL0200000 -FS08000000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM)
+
+
+ 0
+ ST-LINKIII-KEIL_SWO
+ -U -O206 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("") -D00(00000000) -L00(0) -TO131091 -TC400000000 -TT10000000 -TP21 -TDS8021 -TDT0 -TDC1F -TIE80000001 -TIP9 -FO7 -FD20000000 -FC8000 -FN1 -FF0STM32H7x_2048.FLM -FS08000000 -FL0200000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM)
+
+
+ 0
+ ARMRTXEVENTFLAGS
+ -L200 -Z18 -C0 -M1 -T1
+
+
+ 0
+ DLGTARM
+ (1010=-1,-1,-1,-1,0)(6017=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(6016=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)
+
+
+ 0
+ ARMDBGFLAGS
+
+
+
+ 0
+ DLGUARM
+
+
+
+
+
+
+ 0
+ 1
+ osthread
+
+
+ 1
+ 1
+ tmr
+
+
+ 2
+ 1
+ _internals.cfg->isr_queue,0x10
+
+
+ 3
+ 1
+ errormsg
+
+
+ 4
+ 1
+ errormsg
+
+
+ 5
+ 1
+ errormsg
+
+
+ 6
+ 1
+ pImpl
+
+
+ 7
+ 1
+ largestack
+
+
+ 8
+ 1
+ frame
+
+
+ 9
+ 1
+ hfdcan
+
+
+
+
+ 0
+ 2
+ osRtxInfo
+
+
+
+
+ 1
+ 0
+ 0x20003134
+ 0
+
+
+
+ 0
+
+
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+ 1
+ 1
+ 0
+ 2
+ 10000000
+
+
+
+
udpdemo-basic-cmsisos2-segger
0x4
@@ -949,9 +1206,226 @@
+
+ udpdemo-basic-cmsisos2-ulpro
+ 0x4
+ ARM-ADS
+
+ 12000000
+
+ 1
+ 1
+ 0
+ 1
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\lst\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+
+ 18
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 1
+
+
+
+
+
+
+
+
+
+
+ BIN\ULP2CM3.DLL
+
+
+
+ 0
+ ULP2CM3
+ -UP0948199 -O206 -S8 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(6BA02477) -L00(0) -TO65555 -TC400000000 -TT10000000 -TP18 -TDX0 -TDD0 -TDS8001 -TDT0 -TDC1F -TIE80000001 -TIP9 -FO7 -FD20000000 -FC8000 -FN1 -FF0STM32H7x_2048.FLM -FS08000000 -FL0200000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM)
+
+
+ 0
+ JL2CM3
+ -U752001923 -O78 -S2 -ZTIFSpeedSel5000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(6BA02477) -L00(4) -TO19 -TC400000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP9 -TB1 -TFE0 -FO7 -FD20000000 -FC8000 -FN1 -FF0STM32H7x_2048.FLM -FS08000000 -FL0200000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM)
+
+
+ 0
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 ) -FN1 -FC8000 -FD20000000 -FF0STM32H7x_2048 -FL0200000 -FS08000000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM)
+
+
+ 0
+ ST-LINKIII-KEIL_SWO
+ -U-O206 -O206 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P1 -N00("ARM CoreSight SW-DP (ARM Core") -D00(6BA02477) -L00(0) -TO131091 -TC400000000 -TT10000000 -TP21 -TDS8021 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC8000 -FN1 -FF0STM32H7x_2048.FLM -FS08000000 -FL0200000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM)
+
+
+ 0
+ ARMRTXEVENTFLAGS
+ -L200 -Z19 -C0 -M1 -T1
+
+
+ 0
+ DLGTARM
+ (1010=-1,-1,-1,-1,0)(6017=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(6016=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)
+
+
+ 0
+ ARMDBGFLAGS
+
+
+
+ 0
+ DLGUARM
+
+
+
+
+
+
+ 0
+ 1
+ osthread
+
+
+ 1
+ 1
+ t
+
+
+
+
+ 0
+ 2
+ osRtxInfo
+
+
+
+
+ 1
+ 0
+ 0x240007CC
+ 0
+
+
+
+ 0
+
+
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+ 1
+ 1
+ 0
+ 2
+ 10000000
+
+
+
+
main
- 0
+ 1
0
0
0
diff --git a/emBODY/eBcode/arch-arm/board/amc/examples/udpdemobasic/proj/amc-udpdemo-basic.uvprojx b/emBODY/eBcode/arch-arm/board/amc/examples/udpdemobasic/proj/amc-udpdemo-basic.uvprojx
index b94a616dd4..b276764108 100644
--- a/emBODY/eBcode/arch-arm/board/amc/examples/udpdemobasic/proj/amc-udpdemo-basic.uvprojx
+++ b/emBODY/eBcode/arch-arm/board/amc/examples/udpdemobasic/proj/amc-udpdemo-basic.uvprojx
@@ -1338,6 +1338,672 @@
+
+ udpdemo-basic-osal-ulpro
+ 0x4
+ ARM-ADS
+ 6160000::V6.16::ARMCLANG
+ 1
+
+
+ STM32H745IIKx:CM7
+ STMicroelectronics
+ Keil.STM32H7xx_DFP.2.8.0
+ http://www.keil.com/pack/
+ IRAM(0x38000000,0x00010000) IRAM2(0x24000000,0x00080000) IROM(0x08000000,0x00100000) XRAM(0x20000000,0x00020000) CPUTYPE("Cortex-M7") FPU3(DFPU) CLOCK(12000000) ELITTLE
+
+
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC8000 -FN1 -FF0STM32H7x_2048 -FS08000000 -FL0200000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM))
+ 0
+ $$Device:STM32H745IIKx$Drivers\CMSIS\Device\ST\STM32H7xx\Include\stm32h7xx.h
+
+
+
+
+
+
+
+
+
+ $$Device:STM32H745IIKx$CMSIS\SVD\STM32H745_CM7.svd
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+
+ .\obj\
+ h7disco
+ 1
+ 0
+ 1
+ 1
+ 1
+ .\lst\
+ 1
+ 0
+ 0
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 3
+
+
+ 0
+
+
+ SARMCM3.DLL
+ -REMAP -MPU
+ DCM.DLL
+ -pCM7
+ SARMCM3.DLL
+ -MPU
+ TCM.DLL
+ -pCM7
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 16
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+ 1
+ 4096
+
+ 1
+ BIN\UL2CM3.DLL
+
+
+
+
+
+ 0
+
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ "Cortex-M7"
+
+ 0
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 3
+ 0
+ 0
+ 1
+ 0
+ 8
+ 0
+ 0
+ 0
+ 0
+ 3
+ 4
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x38000000
+ 0x10000
+
+
+ 1
+ 0x8000000
+ 0x100000
+
+
+ 1
+ 0x20000000
+ 0x20000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x8000000
+ 0x100000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x20000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x38000000
+ 0x10000
+
+
+ 0
+ 0x24000000
+ 0x80000
+
+
+
+
+
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 3
+ 0
+ 1
+ 0
+ 0
+ 0
+ 3
+ 8
+ 1
+ 1
+ 0
+ 0
+ 0
+
+ -DUSE_PC104_ADDRESSING -Dembotapp_UDPDEMOBASIC -DmodifiedCMSISETH -Wno-pragma-pack -Wno-deprecated-register -DEMBOT_USE_rtos_osal
+ USE_STM32HAL STM32HAL_BOARD_AMC STM32HAL_DRIVER_V1A0
+
+ ..\..\..\..\..\libs\lowlevel\stm32hal\api;..\..\..\..\..\libs\highlevel\abslayer\osal\api;..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core;..\..\..\..\..\embot\hw;..\..\..\..\..\embot\os;..\..\..\..\..\embot\app;..\..\..\bsp;..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\prot\eth;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core;..\src;..\..\..\..\..\libs\highlevel\abslayer\ipal\api;..\cfg;..\..\bsp-ipal;..\..\..\..\..\libs\midware\eventviewer\api
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 4
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0x08000000
+ 0x20000000
+
+ ..\..\bsp-ipal\stm32h745xx_flash_CM7-udp.sct
+
+
+ --diag_suppress=L6329
+
+
+
+
+
+
+
+ main
+
+
+ udpdemobasic-main.cpp
+ 8
+ ..\src\udpdemobasic-main.cpp
+
+
+
+
+ stm32hal
+
+
+ stm32hal.h7.amc.v1A0.lib
+ 4
+ ..\..\..\..\..\libs\lowlevel\stm32hal\lib\stm32hal.h7.amc.v1A0.lib
+
+
+
+
+ stm32hal-config
+
+
+ startup_stm32h745xx_CM7.s
+ 2
+ ..\cfg\startup_stm32h745xx_CM7.s
+
+
+
+
+ rtos
+
+
+ cmsisos2.lib
+ 4
+ ..\..\..\..\..\libs\highlevel\abslayer\cmsisos2\lib\cmsisos2.lib
+
+
+ 2
+ 0
+ 0
+ 0
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 11
+
+
+ 1
+
+
+
+
+
+ osal.cm4.dbg.lib
+ 4
+ ..\..\..\..\..\libs\highlevel\abslayer\osal\lib\osal.cm4.dbg.lib
+
+
+ eventviewer.c
+ 1
+ ..\..\..\..\..\libs\midware\eventviewer\src\eventviewer.c
+
+
+
+
+ embot-core
+
+
+ embot_core.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core.cpp
+
+
+ embot_core_binary.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core_binary.cpp
+
+
+ embot_core_utils.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core_utils.cpp
+
+
+
+
+ embot-hw
+
+
+ embot_hw_bsp.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_bsp.cpp
+
+
+ embot_hw.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw.cpp
+
+
+ embot_hw_gpio.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_gpio.cpp
+
+
+ embot_hw_led.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_led.cpp
+
+
+ embot_hw_lowlevel.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_lowlevel.cpp
+
+
+ 2
+ 0
+ 0
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 11
+
+
+ 1
+
+
+
+ 2
+ 1
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+
+
+
+
+
+
+
+
+
+
+
+ embot_hw_sys.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_sys.cpp
+
+
+ embot_hw_button.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_button.cpp
+
+
+ embot_hw_can.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_can.cpp
+
+
+ embot_hw_flash.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_flash.cpp
+
+
+
+
+ embot-os
+
+
+ embot_os.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os.cpp
+
+
+ embot_os_Action.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_Action.cpp
+
+
+ embot_os_theCallbackManager.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_theCallbackManager.cpp
+
+
+ embot_os_theScheduler.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_theScheduler.cpp
+
+
+ embot_os_theTimerManager.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_theTimerManager.cpp
+
+
+ embot_os_Thread.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_Thread.cpp
+
+
+ embot_os_Timer.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_Timer.cpp
+
+
+ embot_os_rtos.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_rtos.cpp
+
+
+
+
+ embot-app
+
+
+ embot_app_theLEDmanager.cpp
+ 8
+ ..\..\..\..\..\embot\app\embot_app_theLEDmanager.cpp
+
+
+
+
+ embot::hw::bsp
+
+
+ embot_hw_bsp_amc.cpp
+ 8
+ ..\..\..\bsp\embot_hw_bsp_amc.cpp
+
+
+
+
+ ipal-lib
+
+
+ ipal.lwip.h7.lib
+ 4
+ ..\..\..\..\..\libs\highlevel\abslayer\ipal\lib\ipal.lwip.h7.lib
+
+
+
+
+ ipal-cfg
+
+
+ ipal_cfg2.cpp
+ 8
+ ..\cfg\ipal_cfg2.cpp
+
+
+
+
+ bsp-ipal
+
+
+ ipal_hal_eth_stm32h7.c
+ 1
+ ..\..\bsp-ipal\ipal_hal_eth_stm32h7.c
+
+
+ stm32h7xx_ethirqhandler.c
+ 1
+ ..\..\bsp-ipal\stm32h7xx_ethirqhandler.c
+
+
+
+
+
udpdemo-basic-cmsisos2-segger
0x4
@@ -2056,7 +2722,724 @@
- udpdemo-basic-cmsisos2-stlinkv3
+ udpdemo-basic-cmsisos2-stlinkv3
+ 0x4
+ ARM-ADS
+ 6160000::V6.16::ARMCLANG
+ 1
+
+
+ STM32H745IIKx:CM7
+ STMicroelectronics
+ Keil.STM32H7xx_DFP.2.8.0
+ http://www.keil.com/pack/
+ IRAM(0x38000000,0x00010000) IRAM2(0x24000000,0x00080000) IROM(0x08000000,0x00100000) XRAM(0x20000000,0x00020000) CPUTYPE("Cortex-M7") FPU3(DFPU) CLOCK(12000000) ELITTLE
+
+
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC8000 -FN1 -FF0STM32H7x_2048 -FS08000000 -FL0200000 -FP0($$Device:STM32H745IIKx$CMSIS\Flash\STM32H7x_2048.FLM))
+ 0
+ $$Device:STM32H745IIKx$Drivers\CMSIS\Device\ST\STM32H7xx\Include\stm32h7xx.h
+
+
+
+
+
+
+
+
+
+ $$Device:STM32H745IIKx$CMSIS\SVD\STM32H745_CM7.svd
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+
+ .\obj\
+ udpdemobasic
+ 1
+ 0
+ 1
+ 1
+ 1
+ .\lst\
+ 1
+ 0
+ 0
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 3
+
+
+ 0
+
+
+ SARMCM3.DLL
+ -REMAP -MPU
+ DCM.DLL
+ -pCM7
+ SARMCM3.DLL
+ -MPU
+ TCM.DLL
+ -pCM7
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 16
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+ 1
+ 4096
+
+ 1
+ BIN\UL2CM3.DLL
+
+
+
+
+
+ 0
+
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ "Cortex-M7"
+
+ 0
+ 0
+ 0
+ 1
+ 1
+ 1
+ 0
+ 3
+ 0
+ 0
+ 1
+ 0
+ 8
+ 0
+ 0
+ 0
+ 0
+ 3
+ 4
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x38000000
+ 0x10000
+
+
+ 1
+ 0x8000000
+ 0x100000
+
+
+ 1
+ 0x20000000
+ 0x20000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x8000000
+ 0x100000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x20000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x38000000
+ 0x10000
+
+
+ 0
+ 0x24000000
+ 0x80000
+
+
+
+
+
+ 1
+ 4
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 3
+ 0
+ 0
+ 0
+ 0
+ 0
+ 3
+ 8
+ 1
+ 1
+ 0
+ 0
+ 0
+
+ -DUSE_PC104_ADDRESSING -Dembotapp_UDPDEMOBASIC -DmodifiedCMSISETH -Wno-pragma-pack -Wno-deprecated-register -DEMBOT_USE_rtos_cmsisos2
+ USE_STM32HAL STM32HAL_BOARD_AMC STM32HAL_DRIVER_V1A0
+
+ ..\..\..\..\..\libs\lowlevel\stm32hal\api;..\..\..\..\..\libs\highlevel\abslayer\cmsisos2\api;..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core;..\..\..\..\..\embot\hw;..\..\..\..\..\embot\os;..\..\..\..\..\embot\app;..\..\..\bsp;..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\prot\eth;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core;..\src;..\..\..\..\..\libs\highlevel\abslayer\ipal\api;..\cfg;..\..\bsp-ipal
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0x08000000
+ 0x38000000
+
+ ..\..\bsp-ipal\stm32h745xx_flash_CM7-udp.sct
+
+
+ --diag_suppress=L6329
+
+
+
+
+
+
+
+ main
+
+
+ udpdemobasic-main.cpp
+ 8
+ ..\src\udpdemobasic-main.cpp
+
+
+
+
+ stm32hal
+
+
+ stm32hal.h7.amc.v1A0.lib
+ 4
+ ..\..\..\..\..\libs\lowlevel\stm32hal\lib\stm32hal.h7.amc.v1A0.lib
+
+
+
+
+ stm32hal-config
+
+
+ startup_stm32h745xx_CM7.s
+ 2
+ ..\cfg\startup_stm32h745xx_CM7.s
+
+
+
+
+ rtos
+
+
+ cmsisos2.lib
+ 4
+ ..\..\..\..\..\libs\highlevel\abslayer\cmsisos2\lib\cmsisos2.lib
+
+
+ osal.cm4.dbg.lib
+ 4
+ ..\..\..\..\..\libs\highlevel\abslayer\osal\lib\osal.cm4.dbg.lib
+
+
+ 2
+ 0
+ 0
+ 0
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 11
+
+
+ 1
+
+
+
+
+
+ eventviewer.c
+ 1
+ ..\..\..\..\..\libs\midware\eventviewer\src\eventviewer.c
+
+
+ 2
+ 0
+ 0
+ 0
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 11
+
+
+ 1
+
+
+
+ 2
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+ embot-core
+
+
+ embot_core.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core.cpp
+
+
+ embot_core_binary.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core_binary.cpp
+
+
+ embot_core_utils.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core_utils.cpp
+
+
+
+
+ embot-hw
+
+
+ embot_hw_bsp.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_bsp.cpp
+
+
+ embot_hw.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw.cpp
+
+
+ embot_hw_gpio.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_gpio.cpp
+
+
+ embot_hw_led.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_led.cpp
+
+
+ embot_hw_lowlevel.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_lowlevel.cpp
+
+
+ 2
+ 0
+ 0
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 11
+
+
+ 1
+
+
+
+ 2
+ 1
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+
+
+
+
+
+
+
+
+
+
+
+ embot_hw_sys.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_sys.cpp
+
+
+ embot_hw_button.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_button.cpp
+
+
+ embot_hw_can.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_can.cpp
+
+
+ embot_hw_flash.cpp
+ 8
+ ..\..\..\..\..\embot\hw\embot_hw_flash.cpp
+
+
+
+
+ embot-os
+
+
+ embot_os.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os.cpp
+
+
+ embot_os_Action.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_Action.cpp
+
+
+ embot_os_theCallbackManager.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_theCallbackManager.cpp
+
+
+ embot_os_theScheduler.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_theScheduler.cpp
+
+
+ embot_os_theTimerManager.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_theTimerManager.cpp
+
+
+ embot_os_Thread.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_Thread.cpp
+
+
+ embot_os_Timer.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_Timer.cpp
+
+
+ embot_os_rtos.cpp
+ 8
+ ..\..\..\..\..\embot\os\embot_os_rtos.cpp
+
+
+
+
+ embot-app
+
+
+ embot_app_theLEDmanager.cpp
+ 8
+ ..\..\..\..\..\embot\app\embot_app_theLEDmanager.cpp
+
+
+
+
+ embot::hw::bsp
+
+
+ embot_hw_bsp_amc.cpp
+ 8
+ ..\..\..\bsp\embot_hw_bsp_amc.cpp
+
+
+
+
+ ipal-lib
+
+
+ ipal.lwip.h7.lib
+ 4
+ ..\..\..\..\..\libs\highlevel\abslayer\ipal\lib\ipal.lwip.h7.lib
+
+
+
+
+ ipal-cfg
+
+
+ ipal_cfg2.cpp
+ 8
+ ..\cfg\ipal_cfg2.cpp
+
+
+
+
+ bsp-ipal
+
+
+ ipal_hal_eth_stm32h7.c
+ 1
+ ..\..\bsp-ipal\ipal_hal_eth_stm32h7.c
+
+
+ stm32h7xx_ethirqhandler.c
+ 1
+ ..\..\bsp-ipal\stm32h7xx_ethirqhandler.c
+
+
+
+
+
+
+ udpdemo-basic-cmsisos2-ulpro
0x4
ARM-ADS
6160000::V6.16::ARMCLANG
diff --git a/emBODY/eBcode/arch-arm/board/amc/examples/udpdemobasic/src/udpdemobasic-main.cpp b/emBODY/eBcode/arch-arm/board/amc/examples/udpdemobasic/src/udpdemobasic-main.cpp
index 65b1bc2121..2a0d2cfc4e 100644
--- a/emBODY/eBcode/arch-arm/board/amc/examples/udpdemobasic/src/udpdemobasic-main.cpp
+++ b/emBODY/eBcode/arch-arm/board/amc/examples/udpdemobasic/src/udpdemobasic-main.cpp
@@ -76,7 +76,7 @@ constexpr embot::hw::LED otherLED = embot::hw::LED::three;
static void s_ipal_start();
static void s_start_IPALproc_thread();
static void s_start_UDPcomm_thread();
-
+static void s_start_ETHmonitor_thread();
void onIdle(embot::os::Thread *t, void* idleparam)
{
@@ -110,7 +110,11 @@ void initSystem(embot::os::Thread *t, void* initparam)
// also starting the communication thread UDPcomm
// it is a thread similar to tecnologix's udp_comm_app_thread
- s_start_UDPcomm_thread();
+ s_start_UDPcomm_thread();
+
+
+ // also starting a periodic thread where we can ask the status of the eth switch
+ s_start_ETHmonitor_thread();
embot::core::print("quitting the INIT thread. Normal scheduling starts");
}
@@ -150,7 +154,8 @@ embot::os::EventThread *tIPALproc {nullptr};
embot::os::PeriodicThread *tIPALtick {nullptr};
// the UDP comm is an event based thread
embot::os::EventThread *tUDPcomm {nullptr};
-
+// the ETH mon is a periodic thread
+embot::os::PeriodicThread *tETHmon {nullptr};
//constexpr embot::os::Event evt_CONNECT {1};
constexpr embot::os::Event evt_RXframe {2};
@@ -299,6 +304,32 @@ static void s_ipal_start()
+
+
+// thread tETHmon
+
+void tETHmon_startup(embot::os::Thread *t, void *param);
+void tETHmon_onperiod(embot::os::Thread *t, void *param);
+void t_ETHmon(void* p) { reinterpret_cast(p)->run(); }
+
+static void s_start_ETHmonitor_thread()
+{
+ tETHmon = new embot::os::PeriodicThread;
+
+ embot::os::PeriodicThread::Config tConfig {
+ 6*1024,
+ embot::os::Priority::high47,
+ tETHmon_startup, // the startup function
+ nullptr, // it param
+ 100*embot::core::time1millisec, // the period
+ tETHmon_onperiod,
+ "tETHmon"
+ };
+
+ tETHmon->start(tConfig, t_ETHmon);
+}
+
+
// thread tUDPcomm
void tUDPcomm_startup(embot::os::Thread *t, void *param);
@@ -323,7 +354,7 @@ static void s_start_UDPcomm_thread()
}
-// in here we have teccnologix's udp_comm_app_thread() split into startup() and forever loop
+// in here we have tecnologix's udp_comm_app_thread() split into startup() and forever loop
constexpr uint32_t UDP_APP_MAX_PAYLOAD = 1034;
@@ -582,6 +613,28 @@ static void udp_rcv_cb_func(void *arg, ipal_udpsocket_t *skt, ipal_packet_t *pkt
#endif
}
+// code for the periodic thread tETHmon
+void tETHmon_startup(embot::os::Thread *t, void *param)
+{
+ embot::core::print(std::string("calling tETHmon_startup() @ ") + embot::core::TimeFormatter(embot::core::now()).to_string());
+
+ // add in here initialization code for the driver which asks the ETH switch
+}
+
+
+void tETHmon_onperiod(embot::os::Thread *t, void *param)
+{
+ embot::core::print(std::string("calling tETHmon_onperiod() @ ") + embot::core::TimeFormatter(embot::core::now()).to_string());
+
+ // add in here code which asks the ETH switch about its status
+
+ bool link0isup = false;
+ bool link1isup = false;
+ std::string msg = std::string("ETH link 0 is ") + (link0isup ? "UP" : "DOWN") + " ETH link 1 is " + (link1isup ? "UP" : "DOWN");
+
+ embot::core::print(msg + " @ " + embot::core::TimeFormatter(embot::core::now()).to_string());
+}
+
// --------------------------------------------------------------------------------------------------------------------
// - end-of-file (leave a blank line after)
diff --git a/emBODY/eBcode/arch-arm/board/ems004/appl/v2/cfg/abslayer/osalos2_cfg.c b/emBODY/eBcode/arch-arm/board/ems004/appl/v2/cfg/abslayer/osalos2_cfg.c
new file mode 100644
index 0000000000..312a6bfe0a
--- /dev/null
+++ b/emBODY/eBcode/arch-arm/board/ems004/appl/v2/cfg/abslayer/osalos2_cfg.c
@@ -0,0 +1,244 @@
+/*
+ * Copyright (C) 2011 Department of Robotics Brain and Cognitive Sciences - Istituto Italiano di Tecnologia
+ * Author: Marco Accame
+ * email: marco.accame@iit.it
+ * website: www.robotcub.org
+ * Permission is granted to copy, distribute, and/or modify this program
+ * under the terms of the GNU General Public License, version 2 or any
+ * later version published by the Free Software Foundation.
+ *
+ * A copy of the license can be found at
+ * http://www.robotcub.org/icub/license/gpl.txt
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+ * Public License for more details
+*/
+
+/* @file osal_cfg-open.c
+ @brief This file keeps internal configuration of the osal.
+ @author marco.accame@iit.it
+ @date 11/27/2009
+**/
+
+
+// --------------------------------------------------------------------------------------------------------------------
+// - external dependencies
+// --------------------------------------------------------------------------------------------------------------------
+
+#undef DONTUSE_EOtheFatalError
+
+#if !defined(DONTUSE_EOtheFatalError)
+ #include "EOtheFatalError.h"
+#else
+ #include "EOtheErrorManager.h"
+ #include "EoError.h"
+ #include "hal_trace.h"
+ #include "hal_sys.h"
+ #include "hal_led.h"
+#endif
+
+
+#include "osal.h"
+#include "osal_arch_arm.h"
+
+
+// --------------------------------------------------------------------------------------------------------------------
+// - declaration of extern public interface
+// --------------------------------------------------------------------------------------------------------------------
+
+
+#include "osal_cfg.h"
+
+
+#if defined(OSAL_USE_rtos_cmsisos2)
+
+#else
+
+extern void* osal_ext_calloc(uint32_t s, uint32_t n)
+{
+ void* ret = calloc(s, n);
+ return(ret);
+}
+
+extern void* osal_ext_realloc(void* m, uint32_t s)
+{
+ void* ret = realloc(m, s);
+ return(ret);
+}
+
+extern void osal_ext_free(void* m)
+{
+ free(m);
+}
+
+#endif
+
+static void s_osal_cfg_on_fatal_error(void* task, osal_fatalerror_t errorcode, const char * errormsg);
+static void s_osal_cfg_on_idle(void);
+
+
+const osal_cfg_t osal_cfg =
+{
+ EO_INIT(.rtostype) (osal_rtostype_t)OSAL_RTOSTYPE, // uint8_t rtostype;
+ EO_INIT(.memorymodel) (osal_memorymodel_t)OSAL_MEMMODEL,
+ EO_INIT(.prio) OSAL_PRIO,
+ EO_INIT(.cpufam) (osal_cpufamily_t)OSAL_CPUFAM, // uint8_t cpufam;
+ EO_INIT(.cpufreq) OSAL_CPUFREQ, // uint32_t cpufreq;
+ EO_INIT(.tick) (osal_reltime_t)OSAL_TICK, // uint32_t tick;
+ EO_INIT(.launcherstacksize) OSAL_LAUNSTKSIZE, // uint16_t launcherstacksize;
+ EO_INIT(.idlestacksize) OSAL_IDLESTKSIZE, // uint16_t idlestacksize;
+ EO_INIT(.roundrobin) (osal_bool_t)OSAL_RROBIN, // uint8_t roundrobin;
+ EO_INIT(.roundrobintick) OSAL_RROBINTICK, // uint32_t roundrobintick;
+
+ EO_INIT(.tasknum) OSAL_TASKNUM, // uint8_t tasknum;
+ EO_INIT(.globalstacksize) OSAL_GLOBSTKSIZE, // uint16_t globalstacksize;
+ EO_INIT(.timernum) OSAL_TIMERNUM, // uint8_t timernum;
+ EO_INIT(.mutexnum) OSAL_MUTEXNUM, // uint8_t mutexnum;
+ EO_INIT(.semaphorenum) OSAL_SEMAPHORENUM, // uint8_t semaphorenum;
+ EO_INIT(.mqueuenum) OSAL_MQUEUENUM,
+ EO_INIT(.mqueueelemnum) OSAL_MQUEUEELEMNUM,
+ EO_INIT(.arch)
+ {
+ EO_INIT(.nothingsofar) 0
+ },
+ EO_INIT(.extfn)
+ {
+ EO_INIT(.hal_sys_irqn_priority_set) NULL,
+ EO_INIT(.usr_on_fatal_error) s_osal_cfg_on_fatal_error,
+ EO_INIT(.usr_on_idle) s_osal_cfg_on_idle
+ }
+};
+
+
+const osal_cfg_t *osal_cfgMINEX = &osal_cfg;
+
+
+static void s_osal_cfg_on_fatal_error(void* task, osal_fatalerror_t errorcode, const char * errormsg)
+{
+#if !defined(DONTUSE_EOtheFatalError)
+ fatal_error_descriptor_t *des = eo_fatalerror_GetDescriptor(eo_fatalerror_GetHandle());
+ des->handlertype = fatalerror_handler_osal;
+ des->handlererrorcode = errorcode;
+ des->param = task;
+ des->mpucontext = NULL;
+ eo_fatalerror_Restart(eo_fatalerror_GetHandle(), des);
+#else
+ #warning DONTUSE_EOtheFatalError is defined, are you sure?
+ uint8_t tskid = 0;
+ char str[64];
+ osal_task_id_get((osal_task_t*)task, &tskid);
+ snprintf(str, sizeof(str), "osalerror %d taskid %d: %s", errorcode, tskid, errormsg);
+
+ if(eobool_true == eo_errman_IsErrorHandlerConfigured(eo_errman_GetHandle()))
+ {
+ // ok ... use the error manager, either in its simple form or in its networked form
+ eOerrmanDescriptor_t errdes = {0};
+ errdes.code = eoerror_code_get(eoerror_category_System, eoerror_value_SYS_osalerror);
+ errdes.par16 = errorcode;
+ errdes.par64 = 0;
+ errdes.sourcedevice = eo_errman_sourcedevice_localboard;
+ errdes.sourceaddress = 0;
+ eo_errman_Error(eo_errman_GetHandle(), eo_errortype_fatal, str, "OSAL", &errdes);
+ }
+ else
+ {
+ if(NULL != errormsg)
+ {
+ hal_trace_puts(errormsg);
+ }
+
+
+ // in case of fatal error we blink all leds but led1
+ hal_led_init(hal_led0, NULL);
+ hal_led_init(hal_led1, NULL);
+ hal_led_init(hal_led2, NULL);
+ hal_led_init(hal_led3, NULL);
+ hal_led_init(hal_led4, NULL);
+ hal_led_init(hal_led5, NULL);
+
+ hal_led_off(hal_led0);
+ hal_led_off(hal_led1);
+ hal_led_off(hal_led2);
+ hal_led_off(hal_led3);
+ hal_led_off(hal_led4);
+ hal_led_off(hal_led5);
+
+ for(;;)
+ {
+ hal_sys_delay(100);
+
+ hal_led_toggle(hal_led0);
+ //hal_led_toggle(hal_led1);
+ hal_led_toggle(hal_led2);
+ hal_led_toggle(hal_led3);
+ hal_led_toggle(hal_led4);
+ hal_led_toggle(hal_led5);
+ }
+ }
+#endif
+}
+
+static void s_osal_cfg_on_idle(void)
+{
+ for(;;);
+}
+
+#if defined(OSAL_USE_rtos_cmsisos2)
+
+// -- redefinition of ...
+
+// is elsewhere
+
+#else
+
+// -- redefinition of ...
+
+// required by the arm c stdlib: gives a different memory space for the stdlib to each thread in the arm compiler
+void * __user_perthread_libspace(void)
+{
+ static volatile uint8_t fc = 1;
+ void *ret = osal_arch_arm_armc99stdlib_getlibspace(fc);
+ fc = 0;
+ return(ret);
+}
+
+// required by the arm c stdlib: initialises a mutex
+int _mutex_initialize(void *m)
+{
+ return(osal_arch_arm_armc99stdlib_mutex_initialize(m));
+}
+
+// required by the arm c stdlib: takes a mutex
+void _mutex_acquire(void *m)
+{
+ osal_arch_arm_armc99stdlib_mutex_acquire(m);
+}
+
+// required by the arm c stdlib: releases a mutex
+void _mutex_release(void *m)
+{
+ osal_arch_arm_armc99stdlib_mutex_release(m);
+}
+
+
+#endif
+//volatile uint32_t* stk = (volatile uint32_t*)0x200187f8;
+//static const uint32_t stkwords = (6*1024)/4;
+//uint32_t cnt = 0;
+//extern void _platform_post_stackheap_init (void);
+//void _platform_post_stackheap_init (void) {
+//
+// for(cnt=8; cnt>> -----------------------------------------------------------
+// --------------------------------------------------------------------------------------------------------------------
+
+
+// Configuration of OSAL
+// It holds configuration for objects used in OSAL
+
+
+// Porting specifics
+// sssssssss
+// RTOS type <0=> IITmodified-RTXARM <1=> OOSIIT
+// Only IITmodified-RTXARM and OOSIIT are so far supported.
+#ifndef OSAL_RTOSTYPE
+ #define OSAL_RTOSTYPE 1
+#endif
+
+
+// CPU family <0=> Cortex M3 <1=> Cortex M4
+// Only Cortex M3 and M4 are now supported.
+#ifndef OSAL_CPUFAM
+ #define OSAL_CPUFAM 1
+#endif
+
+// CPU Frequency [Hz] <1-1000000000>
+// Specify CPU frequency.
+// Default: 72000000 (72MHz on STM32F107)
+#ifndef OSAL_CPUFREQ
+ #define OSAL_CPUFREQ 168000000
+#endif
+
+
+
+// Porting specifics
+
+
+// Scheduler
+// sssssssss
+
+
+// Priority of the tick handler <1-15>
+// Set the priority of teh tick handler. Lower number is higher priority.
+// Default: 15
+#ifndef OSAL_PRIO
+ #define OSAL_PRIO 15
+#endif
+
+// Timer tick value [us] <1-1000000>
+// Set the timer tick, the base of time for OSAL.
+// Default: 1000 (1ms)
+#ifndef OSAL_TICK
+ #define OSAL_TICK 1000
+#endif
+
+
+// Round-Robin Task switching
+// Enable Round-Robin
+// Default: Disabled
+#ifndef OSAL_RROBIN
+ #define OSAL_RROBIN 0
+#endif
+
+// Round-Robin tick time [ticks] <1-1000>
+// Define how long a task will execute before a task switch.
+// Default: 5
+#ifndef OSAL_RROBINTICK
+ #define OSAL_RROBINTICK 10
+#endif
+
+//
+
+
+
+// Scheduler
+
+
+// System resources
+// sssssssss
+
+
+// Stack size for launcher task [bytes] <200-4096:8>
+// Set the stack size for launcher task.
+// Default: 128
+#ifndef OSAL_LAUNSTKSIZE
+ #define OSAL_LAUNSTKSIZE 4096
+#endif
+
+// Stack size for idle task [bytes] <200-4096:8>
+// Set the stack size for idle task.
+// Default: 128
+#ifndef OSAL_IDLESTKSIZE
+ #define OSAL_IDLESTKSIZE 2048
+#endif
+
+
+// System resources
+
+
+// Memory model
+// sssssssss
+
+
+// Memory model <0=> static allocation <1=> dynamic allocation
+// with static allocation all the memory needed by OSAL objects is allocate at startup and retrieved when required.
+// with dynamic allocation the memry is retrieved just when it is needed
+#ifndef OSAL_MEMMODEL
+ #define OSAL_MEMMODEL 1
+#endif
+
+
+
+// Memory model
+
+
+
+// Max number of OSAL resources for static allocation mode
+// This section is relevant only if the memory model is static.
+
+// Number of user tasks <0-250>
+// Maximum number of tasks that will run at the same time.
+// Default: 6
+#ifndef OSAL_TASKNUM
+ #define OSAL_TASKNUM 8
+#endif
+
+// Total stack size for all the user tasks [bytes] <256-16384:8>
+// Define max. size in bytes of the global stack.
+// Default: 256 (only one task for instance)
+#ifndef OSAL_GLOBSTKSIZE
+ #define OSAL_GLOBSTKSIZE 8192
+#endif
+
+
+// Number of timers <0-250>
+// Define max number of timers.
+// Default: 0 (User timers disabled)
+#ifndef OSAL_TIMERNUM
+ #define OSAL_TIMERNUM 8
+#endif
+
+
+// Number of mutexes <0-250>
+// Define max. number of mutexes that will run at the same time.
+// Default: 0 (Mutexes not enabled)
+#ifndef OSAL_MUTEXNUM
+ #define OSAL_MUTEXNUM 8
+#endif
+
+
+// Number of semaphores <0-250>
+// Define max. number of semaphores that will run at the same time.
+// Default: 0 (Semaphores not enabled)
+#ifndef OSAL_SEMAPHORENUM
+ #define OSAL_SEMAPHORENUM 4
+#endif
+
+
+// Number of message queues <0-250>
+// Define max. number of message queues that that will run at the same time.
+// Default: 0 (Message queues not enabled)
+#ifndef OSAL_MQUEUENUM
+ #define OSAL_MQUEUENUM 8
+#endif
+
+// Total number of messages in message queues <0-1000>
+// Define max. number of messages that can be contained in all the message queues.
+// Default: 0 (Message queues not enabled)
+#ifndef OSAL_MQUEUEELEMNUM
+ #define OSAL_MQUEUEELEMNUM 128
+#endif
+
+
+
+// OSAL objects
+
+
+
+//
+
+
+// --------------------------------------------------------------------------------------------------------------------
+//------------- <<< end of configuration section >>> ------------------------------------------------------------------
+// --------------------------------------------------------------------------------------------------------------------
+
+
+// - some controls ----------------------------------------------------------------------------------------------------
+
+#if(OSAL_RTOSTYPE > 1)
+ #error only arm-rtx modified by iit and oosiit are supported so far
+#endif
+
+#if(OSAL_RTOSTYPE == 0)
+ #if(OSAL_MEMMODEL == 1)
+ #error only oosiit supports dynamic memory model
+ #endif
+
+ #if(OSAL_MQUEUEELEMNUM < OSAL_MQUEUENUM)
+ #error more messagequeues than messages ...
+ #endif
+
+#endif
+
+
+
+// - end of controls --------------------------------------------------------------------------------------------------
+
+#ifdef __cplusplus
+} // closing brace for extern "C"
+#endif
+
+#endif // include-guard
+
+
+// - end-of-file (leave a blank line after)----------------------------------------------------------------------------
+
+
diff --git a/emBODY/eBcode/arch-arm/board/ems004/appl/v2/main/eom_emsappl_main-test-osalos2.cpp b/emBODY/eBcode/arch-arm/board/ems004/appl/v2/main/eom_emsappl_main-test-osalos2.cpp
new file mode 100644
index 0000000000..0b9c0adaa0
--- /dev/null
+++ b/emBODY/eBcode/arch-arm/board/ems004/appl/v2/main/eom_emsappl_main-test-osalos2.cpp
@@ -0,0 +1,413 @@
+/*
+ * Copyright (C) 2011 Department of Robotics Brain and Cognitive Sciences - Istituto Italiano di Tecnologia
+ * Author: Marco Accame
+ * email: marco.accame@iit.it
+ * website: www.robotcub.org
+ * Permission is granted to copy, distribute, and/or modify this program
+ * under the terms of the GNU General Public License, version 2 or any
+ * later version published by the Free Software Foundation.
+ *
+ * A copy of the license can be found at
+ * http://www.robotcub.org/icub/license/gpl.txt
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
+ * Public License for more details
+*/
+
+/* @file eom_emsappl_main.cpp
+ @brief This file keeps the main of an application on ems using the embobj
+ @author marco.accame@iit.it
+ @date 05/21/2012
+**/
+
+// --------------------------------------------------------------------------------------------------------------------
+// - external dependencies
+// --------------------------------------------------------------------------------------------------------------------
+
+
+
+
+#include "stdint.h"
+#include "stdlib.h"
+#include "string.h"
+
+
+
+#include "EOMtheSystem.h"
+
+#include "EOMtheEMSapplCfg.h"
+#include "EOMtheEMSappl.h"
+
+
+
+#include "EOtheLEDpulser.h"
+
+#include "EoError.h"
+#include "EOtheErrorManager.h"
+
+
+
+#include "EOtheCANmapping.h"
+
+
+// --------------------------------------------------------------------------------------------------------------------
+// - declaration of external variables
+// --------------------------------------------------------------------------------------------------------------------
+
+
+
+// --------------------------------------------------------------------------------------------------------------------
+// - declaration of extern public interface
+// --------------------------------------------------------------------------------------------------------------------
+
+// --------------------------------------------------------------------------------------------------------------------
+// - declaration of extern hidden interface
+// --------------------------------------------------------------------------------------------------------------------
+
+
+
+
+// --------------------------------------------------------------------------------------------------------------------
+// - #define with internal scope
+// --------------------------------------------------------------------------------------------------------------------
+
+
+
+// --------------------------------------------------------------------------------------------------------------------
+// - definition (and initialisation) of extern variables, but better using _get(), _set()
+// --------------------------------------------------------------------------------------------------------------------
+
+
+
+// --------------------------------------------------------------------------------------------------------------------
+// - typedef with internal scope
+// --------------------------------------------------------------------------------------------------------------------
+
+
+// --------------------------------------------------------------------------------------------------------------------
+// - declaration of static functions
+// --------------------------------------------------------------------------------------------------------------------
+
+static void s_eom_emsappl_main_init(void);
+
+
+
+// --------------------------------------------------------------------------------------------------------------------
+// - definition (and initialisation) of static variables
+// --------------------------------------------------------------------------------------------------------------------
+// empty-section
+
+
+// --------------------------------------------------------------------------------------------------------------------
+// - definition of extern public functions
+// --------------------------------------------------------------------------------------------------------------------
+
+
+int main(void)
+{
+ EOMtheEMSapplCfg* emscfg = eom_emsapplcfg_Initialise();
+
+ eom_sys_Initialise( &emscfg->wsyscfg.msyscfg,
+ &emscfg->wsyscfg.mempoolcfg,
+ &emscfg->wsyscfg.errmancfg,
+ &emscfg->wsyscfg.tmrmancfg,
+ &emscfg->wsyscfg.cbkmancfg
+ );
+
+ eom_sys_Start(eom_sys_GetHandle(), s_eom_emsappl_main_init);
+
+}
+
+
+
+extern void eom_emstransceiver_callback_incaseoferror_in_sequencenumberReceived(EOreceiver *receiver)
+{ // the only reason of using the following two variables as static is: to reduce the use of stack.
+ static int64_t delta = 0;
+ static eOerrmanDescriptor_t errdes =
+ {
+ EO_INIT(.code) EOERRORCODE(eoerror_category_System, eoerror_value_SYS_transceiver_rxseqnumber_error),
+ EO_INIT(.sourcedevice) eo_errman_sourcedevice_localboard,
+ EO_INIT(.sourceaddress) 0,
+ EO_INIT(.par16) 0,
+ EO_INIT(.par64) 0
+ };
+
+ const eOreceiver_seqnum_error_t *err = eo_receiver_GetSequenceNumberError(receiver);
+
+ if(NULL == err)
+ {
+ errdes.code = EOERRORCODE(eoerror_category_System, eoerror_value_SYS_runtimeerror);
+ errdes.par64 = 0x123467fabc222;
+ errdes.par16 = 1;
+ eo_errman_Error(eo_errman_GetHandle(), eo_errortype_warning, NULL, NULL, &errdes);
+ return;
+ }
+
+ if(1 == err->rec_seqnum)
+ {
+ // it is the first packet received from a remote transmitter freshly initted (i.e., robotInterface has just re-started bu this board was alive well before)
+ // thus, we dont issue an error but an info:
+ errdes.code = EOERRORCODE(eoerror_category_System, eoerror_value_SYS_transceiver_rxseqnumber_restarted);
+ errdes.par64 = err->exp_seqnum;
+ errdes.par16 = 1;
+ eo_errman_Error(eo_errman_GetHandle(), eo_errortype_info, NULL, NULL, &errdes);
+
+ // ok, now we must set back the error code as it is normal.
+ errdes.code = EOERRORCODE(eoerror_category_System, eoerror_value_SYS_transceiver_rxseqnumber_error);
+ }
+ else
+ {
+ delta = err->rec_seqnum - err->exp_seqnum;
+ if(delta > EO_INT16_MAX) delta = EO_INT16_MAX; //32767
+ else if(delta < EO_INT16_MIN) delta = EO_INT16_MIN; //-32768;
+
+ errdes.code = EOERRORCODE(eoerror_category_System, eoerror_value_SYS_transceiver_rxseqnumber_error);
+ errdes.par16 = (int16_t)delta;
+ errdes.par64 = err->exp_seqnum;
+ eo_errman_Error(eo_errman_GetHandle(), eo_errortype_error, NULL, NULL, &errdes);
+ }
+}
+
+
+extern void eom_emstransceiver_callback_incaseoferror_invalidframe(EOreceiver *receiver)
+{
+ static eOerrmanDescriptor_t errdesinvframe =
+ {
+ EO_INIT(.code) EOERRORCODE(eoerror_category_System, eoerror_value_SYS_transceiver_rxinvalidframe_error),
+ EO_INIT(.sourcedevice) eo_errman_sourcedevice_localboard,
+ EO_INIT(.sourceaddress) 0,
+ EO_INIT(.par16) 0,
+ EO_INIT(.par64) 0
+ };
+
+ eo_errman_Error(eo_errman_GetHandle(), eo_errortype_error, NULL, NULL, &errdesinvframe);
+}
+
+
+// --------------------------------------------------------------------------------------------------------------------
+// - definition of extern hidden functions
+// --------------------------------------------------------------------------------------------------------------------
+
+
+
+
+// --------------------------------------------------------------------------------------------------------------------
+// - definition of static functions
+// --------------------------------------------------------------------------------------------------------------------
+
+//#define TESTOS2
+
+#if defined(TESTOS2)
+
+EOMtask * tskevt = NULL;
+EOMtask * tskmsg = NULL;
+
+#define PERIODIC 1
+#if (1 == PERIODIC)
+// does not work. maybe timers
+void s_testperiodic(void *p)
+{
+ eom_task_Start((EOMtask*)p);
+}
+static void s_testperiodic_startup(EOMtask *rt, uint32_t n)
+{
+ eo_errman_Trace(eo_errman_GetHandle(), "called s_testperiodic_startup()", "TESTOS2");
+}
+
+static void s_testperiodic_run(EOMtask *rt, uint32_t n)
+{
+ eo_errman_Trace(eo_errman_GetHandle(), "called s_testperiodic_run()", "TESTOS2");
+}
+#endif // PERIODIC
+
+
+#define EVENT 0
+// event ok ...
+#if (1 == EVENT)
+void s_testevent(void *p)
+{
+ eom_task_Start((EOMtask*)p);
+}
+
+static void s_testevent_startup(EOMtask *rt, uint32_t n)
+{
+ eo_errman_Trace(eo_errman_GetHandle(), "called s_testevent_startup()", "TESTOS2");
+}
+
+static void s_testevent_run(EOMtask *rt, uint32_t n)
+{
+ char str[96];
+ snprintf(str, sizeof(str), "called s_testevent_run() w/ n = %d", n);
+ eo_errman_Trace(eo_errman_GetHandle(), str, "TESTOS2");
+}
+#endif // EVENT
+
+// timer is ik
+#define TIMER 1
+#if (1 == TIMER)
+uint32_t s_testtimer_counter = 0;
+void s_testtimer_callback(osal_timer_t* tmr, void* par)
+{
+ uint32_t *v = (uint32_t*)par;
+ (*v)++;
+ char str[96];
+ snprintf(str, sizeof(str), "timer triggered value = %d", *v);
+ eo_errman_Trace(eo_errman_GetHandle(), str, "xxxx()");
+
+ if(NULL != tskevt)
+ {
+ eo_errman_Trace(eo_errman_GetHandle(), "and sending event", "xxx()");
+ eom_task_SetEvent(tskevt, 3);
+ }
+
+ if(NULL != tskmsg)
+ {
+ eo_errman_Trace(eo_errman_GetHandle(), "and sending message number", "xxx()");
+ eom_task_SendMessage(tskmsg, *v, 200*1000);
+ eo_errman_Trace(eo_errman_GetHandle(), "and sending message pointer", "xxx()");
+ eom_task_SendMessage(tskmsg, (uint32_t)v, 200*1000);
+ }
+}
+#endif // TIMER
+
+
+#define MESSAGE 1
+// event ok ...
+#if (1 == MESSAGE)
+void s_testmessage(void *p)
+{
+ eom_task_Start((EOMtask*)p);
+}
+
+static void s_testmessage_startup(EOMtask *rt, uint32_t n)
+{
+ eo_errman_Trace(eo_errman_GetHandle(), "called s_testmessage_startup()", "TESTOS2");
+}
+
+static void s_testmessage_run(EOMtask *rt, uint32_t n)
+{
+ char str[96];
+ snprintf(str, sizeof(str), "called s_testmessage_run() w/ n = %d", n);
+ eo_errman_Trace(eo_errman_GetHandle(), str, "TESTOS2");
+}
+#endif // EVENT
+
+#endif // TESTOS2
+
+
+/** @fn static void s_eom_emsappl_main_init(void)
+ @brief It initialises the emsappl
+ @details bla bla bla.
+ **/
+
+static void s_eom_emsappl_main_init(void)
+{
+ char str[96];
+ snprintf(str, sizeof(str), "just started the user-defined function s_eom_emsappl_main_init()");
+ eo_errman_Trace(eo_errman_GetHandle(), str, "eom_sys_Start()");
+
+#if defined(TESTOS2)
+
+// periodic fails ...
+#if (1 == TIMER)
+ osal_timer_timing_t tm;
+ osal_timer_onexpiry_t onexp;
+
+ tm.count = 1000*eok_reltime1ms;
+ tm.mode = osal_tmrmodeFOREVER;
+ tm.startat = eok_abstimeNOW;
+
+ onexp.cbk = s_testtimer_callback;
+ onexp.par = &s_testtimer_counter;
+
+ osal_timer_t *ot = osal_timer_new();
+ osal_timer_start(ot, &tm, &onexp, osal_callerAUTOdetect);
+#endif
+
+// periodic ok ...
+#if (1 == PERIODIC)
+ eom_task_New( eom_mtask_Periodic,
+ 30, //prio
+ 4*1024, // cfg->stacksize,
+ s_testperiodic_startup, s_testperiodic_run,
+ 0,
+ 1000*eok_reltime1ms, // cfg->taskperiod,
+ NULL,
+ s_testperiodic,
+ "testperiodic"
+ );
+#endif
+
+
+// event ok ...
+#if (1 == EVENT)
+ tskevt = eom_task_New( eom_mtask_EventDriven,
+ 31, //cfg->priority,
+ 4*1024, //cfg->stacksize,
+ s_testevent_startup, s_testevent_run,
+ 0,
+ 5000*eok_reltime1ms, // timeout,
+ NULL,
+ s_testevent,
+ "testevent"
+ );
+#endif
+
+// event ok ...
+#if (1 == MESSAGE)
+ tskmsg = eom_task_New( eom_mtask_MessageDriven,
+ 33, //cfg->priority,
+ 4*1024, //cfg->stacksize,
+ s_testmessage_startup, s_testmessage_run,
+ 8, // maxmessages
+ 5000*eok_reltime1ms, // timeout,
+ NULL,
+ s_testmessage,
+ "testmessage"
+ );
+#endif
+
+
+#else
+
+ snprintf(str, sizeof(str), "s_eom_emsappl_main_init() is about to init EOtheLEDpulser");
+ eo_errman_Trace(eo_errman_GetHandle(), str, "eom_sys_Start()");
+
+ // init leds via the EOtheLEDpulser object
+ eOledpulser_cfg_t ledpulsercfg =
+ {
+ EO_INIT(.led_enable_mask) (1 << eo_ledpulser_led_zero | 1 << eo_ledpulser_led_one | 1 << eo_ledpulser_led_two | 1 << eo_ledpulser_led_three | 1 << eo_ledpulser_led_four | 1 << eo_ledpulser_led_five),
+ EO_INIT(.led_init) (eOint8_fp_uint8_cvoidp_t) hal_led_init,
+ EO_INIT(.led_on) (eOint8_fp_uint8_t) hal_led_on,
+ EO_INIT(.led_off) (eOint8_fp_uint8_t) hal_led_off,
+ EO_INIT(.led_toggle) (eOint8_fp_uint8_t) hal_led_toggle
+ };
+
+ eo_ledpulser_Initialise(&ledpulsercfg);
+
+
+ eo_ledpulser_On(eo_ledpulser_GetHandle(), eo_ledpulser_led_zero);
+ eo_ledpulser_On(eo_ledpulser_GetHandle(), eo_ledpulser_led_one);
+ eo_ledpulser_Start(eo_ledpulser_GetHandle(), eo_ledpulser_led_five, 2000*eok_reltime1ms, 0);
+
+
+ // init the ems application
+// EOMtheEMSapplCfg* emscfg = eom_emsapplcfg_GetHandle();
+// eom_emsappl_Initialise(&emscfg->applcfg);
+
+#endif
+
+ snprintf(str, sizeof(str), "quitting the user-defined function s_eom_emsappl_main_init()");
+ eo_errman_Trace(eo_errman_GetHandle(), str, "eom_sys_Start()");
+}
+
+
+
+// --------------------------------------------------------------------------------------------------------------------
+// - end-of-file (leave a blank line after)
+// --------------------------------------------------------------------------------------------------------------------
+
+
+
diff --git a/emBODY/eBcode/arch-arm/board/ems004/appl/v2/proj/ems4rd.d2r.osalos2.uvoptx b/emBODY/eBcode/arch-arm/board/ems004/appl/v2/proj/ems4rd.d2r.osalos2.uvoptx
new file mode 100644
index 0000000000..02755d070a
--- /dev/null
+++ b/emBODY/eBcode/arch-arm/board/ems004/appl/v2/proj/ems4rd.d2r.osalos2.uvoptx
@@ -0,0 +1,3945 @@
+
+
+
+ 1.0
+
+ ### uVision Project, (C) Keil Software
+
+
+ *.c
+ *.s*; *.src; *.a*
+ *.obj; *.o
+ *.lib
+ *.txt; *.h; *.inc; *.md
+ *.plm
+ *.cpp
+ 0
+
+
+
+ 0
+ 0
+
+
+
+ ems4rd-zero
+ 0x4
+ ARM-ADS
+
+ 25000000
+
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\Lst\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+
+ 255
+
+
+ 0
+ Getting Started (STM32F4-Discovery)
+ C:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\1.0.8\Documents\DM00037368.pdf
+
+
+ 1
+ User Manual (STM32F4-Discovery)
+ C:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\1.0.8\Documents\DM00039084.pdf
+
+
+ 2
+ User Manual (MCBSTM32F400)
+ C:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\1.0.8\Documents\mcbstm32f200.chm
+
+
+ 3
+ Schematics (MCBSTM32F400)
+ C:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\1.0.8\Documents\mcbstm32f400-schematics.pdf
+
+
+ 4
+ Bill of Materials (STM32F4-Discovery)
+ C:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\1.0.8\Documents\stm32f4discovery_bom.zip
+
+
+ 5
+ Gerber Files (STM32F4-Discovery)
+ C:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\1.0.8\Documents\stm32f4discovery_gerber.zip
+
+
+ 6
+ Schematics (STM32F4-Discovery)
+ C:\Keil_v5\ARM\PACK\Keil\STM32F4xx_DFP\1.0.8\Documents\stm32f4discovery_sch.zip
+
+
+ 7
+ MCBSTM32F400 Evaluation Board Web Page (MCBSTM32F400)
+ http://www.keil.com/mcbstm32f400/
+
+
+ 8
+ STM32F4-Discovery Web Page (STM32F4-Discovery)
+ http://www.st.com/web/catalog/tools/FM116/SC959/SS1532/LN1199/PF252419
+
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 7
+
+
+
+
+
+
+
+
+
+ .\eventviewer-stm32-cfg.ini
+ BIN\ULP2CM3.DLL
+
+
+
+ 0
+ ULP2CM3
+ -UP1125346 -O207 -S12 -C0 -P00 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO19 -TC168000000 -TP18 -TDX0 -TDD0 -TDS8000 -TDT0 -TDC1F -TIE80000001 -TIP9 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407IG$Flash\STM32F4xx_1024.FLM)
+
+
+ 0
+ DLGUARM
+
+
+
+ 0
+ DLGARARM
+ (6000=626,372,1323,788,0)
+
+
+ 0
+ DLGDARM
+ (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=-1,-1,-1,-1,0)(121=-1,-1,-1,-1,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(124=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)
+
+
+ 0
+ DLGTARM
+ (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=0,80,366,305,0)(1009=-1,-1,-1,-1,0)(1012=-1,-1,-1,-1,0)
+
+
+ 0
+ ARMDBGFLAGS
+ -T0
+
+
+ 0
+ UL2CM3
+ -UV0153FBE -O14 -S0 -C0 -N00("ARM CoreSight JTAG-DP") -D00(3BA00477) -L00(4) -N01("Unknown JTAG device") -D01(06418041) -L01(5) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_CL -FS08000000 -FL040000
+
+
+
+
+ 0
+ 0
+ 379
+ 1
+ 134275202
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\cfg\eoemsappl\overridden_appl.c
+
+
+
+
+ 1
+ 0
+ 378
+ 1
+ 134275196
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\cfg\eoemsappl\overridden_appl.c
+
+
+
+
+ 2
+ 0
+ 104
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\acemor\acemorising\003\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v1\cfg\eoemsappl\eom_emsappl_main.c
+
+
+
+
+ 3
+ 0
+ 154
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\acemor\acemorising\003\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v1\cfg\eoemsappl\eom_emsappl_main.c
+
+
+
+
+ 4
+ 0
+ 156
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\acemor\acemorising\003\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v1\cfg\eoemsappl\eom_emsappl_main.c
+
+
+
+
+ 5
+ 0
+ 589
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheEMSapplBody.c
+
+
+
+
+ 6
+ 0
+ 820
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheEMSapplBody.c
+
+
+
+
+ 7
+ 0
+ 108
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\acemor\acemorising\003\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v1\cfg\eoemsappl\eom_emsappl_main.c
+
+
+
+
+ 8
+ 0
+ 158
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\acemor\acemorising\003\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v1\cfg\eoemsappl\eom_emsappl_main.c
+
+
+
+
+ 9
+ 0
+ 160
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\acemor\acemorising\003\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v1\cfg\eoemsappl\eom_emsappl_main.c
+
+
+
+
+ 10
+ 0
+ 1650
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\acemor\acemorising\100\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\wip\cfg\eoappservices\icub-can-proto\eOcfg_icubCanProto_motorBoardMsgFunctions.c
+
+
+
+
+ 11
+ 0
+ 262
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheEMSapplBody.c
+
+
+
+
+ 12
+ 0
+ 181
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\ace\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\main\eom_emsappl_main.c
+
+
+
+
+ 13
+ 0
+ 191
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\ace\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\main\eom_emsappl_main.c
+
+
+
+
+ 14
+ 0
+ 195
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\ace\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\main\eom_emsappl_main.c
+
+
+
+
+ 15
+ 0
+ 221
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\can\EOtheCANmapping.c
+
+
+
+
+ 16
+ 0
+ 192
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\ace\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\main\eom_emsappl_main.c
+
+
+
+
+ 17
+ 0
+ 214
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\ace\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\main\eom_emsappl_main.c
+
+
+
+
+ 18
+ 0
+ 224
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\ace\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\main\eom_emsappl_main.c
+
+
+
+
+ 19
+ 0
+ 577
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_appl.c
+
+
+
+
+ 20
+ 0
+ 580
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_appl.c
+
+
+
+
+ 21
+ 0
+ 587
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_appl.c
+
+
+
+
+ 22
+ 0
+ 1133
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheEMSapplBody.c
+
+
+
+
+ 23
+ 0
+ 1156
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheEMSapplBody.c
+
+
+
+
+ 24
+ 0
+ 1135
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheEMSapplBody.c
+
+
+
+
+ 25
+ 0
+ 1145
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheEMSapplBody.c
+
+
+
+
+ 26
+ 0
+ 1146
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheEMSapplBody.c
+
+
+
+
+ 27
+ 0
+ 1140
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheEMSapplBody.c
+
+
+
+
+ 28
+ 0
+ 1150
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheEMSapplBody.c
+
+
+
+
+ 29
+ 0
+ 1151
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheEMSapplBody.c
+
+
+
+
+ 30
+ 0
+ 1161
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheEMSapplBody.c
+
+
+
+
+ 31
+ 0
+ 1139
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheEMSapplBody.c
+
+
+
+
+ 32
+ 0
+ 1144
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheEMSapplBody.c
+
+
+
+
+ 33
+ 0
+ 1149
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheEMSapplBody.c
+
+
+
+
+ 34
+ 0
+ 1196
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheEMSapplBody.c
+
+
+
+
+ 35
+ 0
+ 1202
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheEMSapplBody.c
+
+
+
+
+ 36
+ 0
+ 1203
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheEMSapplBody.c
+
+
+
+
+ 37
+ 0
+ 1208
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheEMSapplBody.c
+
+
+
+
+ 38
+ 0
+ 1213
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheEMSapplBody.c
+
+
+
+
+ 39
+ 0
+ 414
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_appl.c
+
+
+
+
+ 40
+ 0
+ 263
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheCANdiscovery2.c
+
+
+
+
+ 41
+ 0
+ 211
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheEMSapplBody.c
+
+
+
+
+ 42
+ 0
+ 548
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\Users\maccame\acemor\acemorising\004-branch\icub-firmware\emBODY\eBcode\arch-arm\board\ems004\appl\v2\src\eoappservices\EOtheInertial.c
+
+
+
+
+ 43
+ 0
+ 824
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_appl.c
+
+
+
+
+ 44
+ 0
+ 837
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_appl.c
+
+
+
+
+ 45
+ 0
+ 290
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheSTRAIN.c
+
+
+
+
+ 46
+ 0
+ 200
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotASperiodic.c
+
+
+
+
+ 47
+ 0
+ 802
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_appl.c
+
+
+
+
+ 48
+ 0
+ 819
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_appl.c
+
+
+
+
+ 49
+ 0
+ 282
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheCANdiscovery2.c
+
+
+
+
+ 50
+ 0
+ 831
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_appl.c
+
+
+
+
+ 51
+ 0
+ 848
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_appl.c
+
+
+
+
+ 52
+ 0
+ 801
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_appl.c
+
+
+
+
+ 53
+ 0
+ 818
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_appl.c
+
+
+
+
+ 54
+ 0
+ 830
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_appl.c
+
+
+
+
+ 55
+ 0
+ 847
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_appl.c
+
+
+
+
+ 56
+ 0
+ 886
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheSKIN.c
+
+
+
+
+ 57
+ 0
+ 415
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_appl.c
+
+
+
+
+ 58
+ 0
+ 292
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheServices.c
+
+
+
+
+ 59
+ 0
+ 315
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheServices.c
+
+
+
+
+ 60
+ 0
+ 362
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheEncoderReader.c
+
+
+
+
+ 61
+ 0
+ 337
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheMAIS.c
+
+
+
+
+ 62
+ 0
+ 196
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheServices.c
+
+
+
+
+ 63
+ 0
+ 1134
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\ipnet\EOMtheIPnet.c
+
+
+
+
+ 64
+ 0
+ 247
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ C:\ace\icub-firmware\emBODY\eBcode\arch-arm\libs\midware\hl-plus\src\utils\hl_i2c.c
+
+
+
+
+
+
+ 0
+ 1
+ applbodycfg
+
+
+ 1
+ 1
+ eo_emsapplbody_cfg_default
+
+
+
+
+ 1
+ 0
+ 0x2000e190
+ 0
+
+
+
+
+ 2
+ 0
+ loc_device_def
+ 0
+
+
+
+
+ 3
+ 0
+ xxx
+ 0
+
+
+
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ ems4rd
+ 0x4
+ ARM-ADS
+
+ 25000000
+
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\Lst\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 0
+ 1
+
+ 18
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 1
+
+
+
+
+
+
+
+
+
+ .\eventviewer-stm32-cfg.ini
+ BIN\ULP2CM3.DLL
+
+
+
+ 0
+ JL2CM3
+ -U752001923 -O78 -S8 -ZTIFSpeedSel50000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO19 -TC168000000 -TP21 -TDS8003 -TDT0 -TDC1F -TIE80000001 -TIP9 -TB1 -TFE0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407IG$CMSIS\Flash\STM32F4xx_1024.FLM)
+
+
+ 0
+ ARMRTXEVENTFLAGS
+ -L200 -Z15 -C0 -M1 -T1
+
+
+ 0
+ ULP2CM3
+ -UP0948199 -O207 -S12 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO65555 -TC168000000 -TT168000000 -TP18 -TDX0 -TDD0 -TDS8000 -TDT0 -TDC1F -TIE80000001 -TIP9 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407IG$CMSIS\Flash\STM32F4xx_1024.FLM)
+
+
+ 0
+ DLGUARM
+
+
+
+ 0
+ DLGARARM
+ (6000=626,372,1323,788,0)
+
+
+ 0
+ DLGDARM
+ (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=-1,-1,-1,-1,0)(121=-1,-1,-1,-1,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(124=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)
+
+
+ 0
+ DLGTARM
+ (1010=0,403,450,960,0)(1007=0,645,187,920,0)(1008=0,201,376,437,0)(1009=0,372,258,960,0)(1012=-1,-1,-1,-1,0)
+
+
+ 0
+ ARMDBGFLAGS
+ -T0
+
+
+ 0
+ UL2CM3
+ -UV0153FBE -O14 -S0 -C0 -N00("ARM CoreSight JTAG-DP") -D00(3BA00477) -L00(4) -N01("Unknown JTAG device") -D01(06418041) -L01(5) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_CL -FS08000000 -FL040000
+
+
+
+
+
+ 0
+ 1
+ pHFmore00
+
+
+ 1
+ 1
+ &ram08data
+
+
+ 2
+ 1
+ &mq
+
+
+ 3
+ 1
+ &str
+
+
+ 4
+ 1
+ &ledpulsercfg
+
+
+ 5
+ 1
+ &status
+
+
+
+
+ 0
+ 2
+ applbodyconfig
+
+
+ 1
+ 2
+ encstr
+
+
+ 2
+ 2
+ cfg.streams
+
+
+
+
+ 1
+ 0
+ 0x200187f0
+ 0
+
+
+
+
+ 2
+ 0
+ 0x200187f8
+ 0
+
+
+
+
+ 3
+ 0
+ xxx
+ 0
+
+
+
+
+ 4
+ 0
+ eOas_pos_data_maxnumber
+ 0
+
+
+
+ 0
+
+
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 2
+ 50000000
+
+
+
+
+
+ ems-trace-osal
+ 0x4
+ ARM-ADS
+
+ 25000000
+
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\Lst\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 0
+ 0
+
+ 18
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 4
+
+
+
+
+
+
+
+
+
+ .\eventviewer-stm32-cfg.ini
+ Segger\JL2CM3.dll
+
+
+
+ 0
+ JL2CM3
+ -U752001923 -O78 -S8 -ZTIFSpeedSel50000 -A0 -C0 -JU1 -JI127.0.0.1 -JP0 -RST0 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(4) -TO19 -TC168000000 -TP21 -TDS8003 -TDT0 -TDC1F -TIE80000001 -TIP9 -TB1 -TFE0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407IG$CMSIS\Flash\STM32F4xx_1024.FLM)
+
+
+ 0
+ ARMRTXEVENTFLAGS
+ -L200 -Z15 -C0 -M1 -T1
+
+
+ 0
+ ULP2CM3
+ -UP0948199 -O207 -S12 -C0 -P00000000 -N00("") -D00(00000000) -L00(0) -TO65555 -TC168000000 -TT168000000 -TP18 -TDX0 -TDD0 -TDS8000 -TDT0 -TDC1F -TIE80000001 -TIP9 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F407IG$CMSIS\Flash\STM32F4xx_1024.FLM)
+
+
+ 0
+ DLGUARM
+ d
+
+
+ 0
+ DLGARARM
+ (6000=626,372,1323,788,0)
+
+
+ 0
+ DLGDARM
+ (1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=-1,-1,-1,-1,0)(121=-1,-1,-1,-1,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(124=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)
+
+
+ 0
+ DLGTARM
+ (1010=-1593,718,-1143,1275,0)(1007=-2178,645,-1991,920,0)(1008=-643,201,-267,437,0)(1009=-932,641,-674,1229,0)(1012=-1,-1,-1,-1,0)
+
+
+ 0
+ ARMDBGFLAGS
+ -T0
+
+
+ 0
+ UL2CM3
+ -UV0153FBE -O14 -S0 -C0 -N00("ARM CoreSight JTAG-DP") -D00(3BA00477) -L00(4) -N01("Unknown JTAG device") -D01(06418041) -L01(5) -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F10x_CL -FS08000000 -FL040000
+
+
+
+
+ 0
+ 0
+ 686
+ 1
+ 134442938
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ ..\src\eoappservices\EOtheServices.c
+
+ \\ems004\../src/eoappservices/EOtheServices.c\686
+
+
+
+
+ 0
+ 1
+ FATALERR_tmrman
+
+
+ 1
+ 1
+ FATALERR_rtos
+
+
+ 2
+ 1
+ p_task
+
+
+ 3
+ 1
+ count
+
+
+
+
+ 0
+ 2
+ applbodyconfig
+
+
+ 1
+ 2
+ encstr
+
+
+ 2
+ 2
+ cfg.streams
+
+
+
+
+ 1
+ 0
+ 0xE000ED14
+ 0
+
+
+
+
+ 2
+ 0
+ loc_device_def
+ 0
+
+
+
+
+ 3
+ 0
+ xxx
+ 0
+
+
+
+
+ 4
+ 0
+ eOas_pos_data_maxnumber
+ 0
+
+
+
+ 0
+
+
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 2
+ 50000000
+
+
+
+
+
+ main
+ 1
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+ ..\main\eom_emsappl_main-test-osalos2.cpp
+ eom_emsappl_main-test-osalos2.cpp
+ 0
+ 0
+
+
+
+
+ abslayer-lib
+ 1
+ 0
+ 0
+ 0
+
+ 2
+ 2
+ 4
+ 0
+ 0
+ 0
+ ..\..\..\..\..\libs\highlevel\abslayer\ipal\lib\ipal.base.medium.cm4.lib
+ ipal.base.medium.cm4.lib
+ 0
+ 0
+
+
+ 2
+ 3
+ 4
+ 0
+ 0
+ 0
+ ..\..\..\..\..\libs\highlevel\abslayer\osal\lib\osal.cmsisos2.lib
+ osal.cmsisos2.lib
+ 0
+ 0
+
+
+ 2
+ 4
+ 4
+ 0
+ 0
+ 0
+ ..\..\..\..\..\libs\highlevel\abslayer\hal2\lib\hal2.ems4rd.ethdbg.lib
+ hal2.ems4rd.ethdbg.lib
+ 0
+ 0
+
+
+
+
+ abslayer-cfg
+ 1
+ 0
+ 0
+ 0
+
+ 3
+ 5
+ 5
+ 0
+ 0
+ 0
+ ..\cfg\abslayer\hal_core_cfg.h
+ hal_core_cfg.h
+ 0
+ 0
+
+
+ 3
+ 6
+ 5
+ 0
+ 0
+ 0
+ ..\cfg\abslayer\ipal_cfg.h
+ ipal_cfg.h
+ 0
+ 0
+
+
+ 3
+ 7
+ 1
+ 0
+ 0
+ 0
+ ..\cfg\abslayer\hal_core_cfg.c
+ hal_core_cfg.c
+ 0
+ 0
+
+
+ 3
+ 8
+ 1
+ 0
+ 0
+ 0
+ ..\cfg\abslayer\ipal_cfg.c
+ ipal_cfg.c
+ 0
+ 0
+
+
+ 3
+ 9
+ 2
+ 0
+ 0
+ 0
+ ..\cfg\abslayer\hal_startup_mpu_name_stm32f407ig-v6.s
+ hal_startup_mpu_name_stm32f407ig-v6.s
+ 0
+ 0
+
+
+ 3
+ 10
+ 1
+ 0
+ 0
+ 0
+ ..\cfg\abslayer\osalos2_cfg.c
+ osalos2_cfg.c
+ 0
+ 0
+
+
+
+
+ eo-core
+ 0
+ 0
+ 0
+ 0
+
+ 4
+ 11
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOaction.c
+ EOaction.c
+ 0
+ 0
+
+
+ 4
+ 12
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOarray.c
+ EOarray.c
+ 0
+ 0
+
+
+ 4
+ 13
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EoCommon.c
+ EoCommon.c
+ 0
+ 0
+
+
+ 4
+ 14
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOconstarray.c
+ EOconstarray.c
+ 0
+ 0
+
+
+ 4
+ 15
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOconstvector.c
+ EOconstvector.c
+ 0
+ 0
+
+
+ 4
+ 16
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOdeque.c
+ EOdeque.c
+ 0
+ 0
+
+
+ 4
+ 17
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOfifo.c
+ EOfifo.c
+ 0
+ 0
+
+
+ 4
+ 18
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOfifoByte.c
+ EOfifoByte.c
+ 0
+ 0
+
+
+ 4
+ 19
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOfifoWord.c
+ EOfifoWord.c
+ 0
+ 0
+
+
+ 4
+ 20
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOlist.c
+ EOlist.c
+ 0
+ 0
+
+
+ 4
+ 21
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOpacket.c
+ EOpacket.c
+ 0
+ 0
+
+
+ 4
+ 22
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOsm.c
+ EOsm.c
+ 0
+ 0
+
+
+ 4
+ 23
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOtheErrorManager.c
+ EOtheErrorManager.c
+ 0
+ 0
+
+
+ 4
+ 24
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOtheLEDpulser.c
+ EOtheLEDpulser.c
+ 0
+ 0
+
+
+ 4
+ 25
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOtheMemoryPool.c
+ EOtheMemoryPool.c
+ 0
+ 0
+
+
+ 4
+ 26
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOtimer.c
+ EOtimer.c
+ 0
+ 0
+
+
+ 4
+ 27
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOumlsm.c
+ EOumlsm.c
+ 0
+ 0
+
+
+ 4
+ 28
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOvector.c
+ EOvector.c
+ 0
+ 0
+
+
+ 4
+ 29
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOVmutex.c
+ EOVmutex.c
+ 0
+ 0
+
+
+ 4
+ 30
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOVtask.c
+ EOVtask.c
+ 0
+ 0
+
+
+ 4
+ 31
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOVtheCallbackManager.c
+ EOVtheCallbackManager.c
+ 0
+ 0
+
+
+ 4
+ 32
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOVtheSystem.c
+ EOVtheSystem.c
+ 0
+ 0
+
+
+ 4
+ 33
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOVtheTimerManager.c
+ EOVtheTimerManager.c
+ 0
+ 0
+
+
+
+
+ eo-core-mee
+ 1
+ 0
+ 0
+ 0
+
+ 5
+ 34
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\core\exec\multitask\EOMmutex.c
+ EOMmutex.c
+ 0
+ 0
+
+
+ 5
+ 35
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\core\exec\multitask\EOMtask.c
+ EOMtask.c
+ 0
+ 0
+
+
+ 5
+ 36
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\core\exec\multitask\EOMtheCallbackManager.c
+ EOMtheCallbackManager.c
+ 0
+ 0
+
+
+ 5
+ 37
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\core\exec\multitask\EOMtheSystem.c
+ EOMtheSystem.c
+ 0
+ 0
+
+
+ 5
+ 38
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\core\exec\multitask\EOMtheTimerManager.c
+ EOMtheTimerManager.c
+ 0
+ 0
+
+
+
+
+ eo-ipnet
+ 1
+ 0
+ 0
+ 0
+
+ 6
+ 39
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\ipnet\EOMtheIPnet.c
+ EOMtheIPnet.c
+ 0
+ 0
+
+
+ 6
+ 40
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\ipnet\EOsocket.c
+ EOsocket.c
+ 0
+ 0
+
+
+ 6
+ 41
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\ipnet\EOsocketDatagram.c
+ EOsocketDatagram.c
+ 0
+ 0
+
+
+ 6
+ 42
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\ipnet\EOVtheIPnet.c
+ EOVtheIPnet.c
+ 0
+ 0
+
+
+
+
+ eo-arm-env
+ 0
+ 0
+ 0
+ 0
+
+ 7
+ 43
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\embenv\EOtheARMenvironment.c
+ EOtheARMenvironment.c
+ 0
+ 0
+
+
+ 7
+ 44
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\embenv\EOVtheEnvironment.c
+ EOVtheEnvironment.c
+ 0
+ 0
+
+
+
+
+ eventviewer
+ 0
+ 0
+ 0
+ 0
+
+ 8
+ 45
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\libs\midware\eventviewer\src\eventviewer.c
+ eventviewer.c
+ 0
+ 0
+
+
+
+
+ arm-services-embenv
+ 0
+ 0
+ 0
+ 0
+
+ 9
+ 46
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\libs\highlevel\services\embenv\src\eEcommon.c
+ eEcommon.c
+ 0
+ 0
+
+
+ 9
+ 47
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\libs\highlevel\services\embenv\src\eEsharedServices.c
+ eEsharedServices.c
+ 0
+ 0
+
+
+ 9
+ 48
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\libs\highlevel\services\embenv\src\shalBASE.c
+ shalBASE.c
+ 0
+ 0
+
+
+ 9
+ 49
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\libs\highlevel\services\embenv\src\shalINFO.c
+ shalINFO.c
+ 0
+ 0
+
+
+ 9
+ 50
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\libs\highlevel\services\embenv\src\shalPART.c
+ shalPART.c
+ 0
+ 0
+
+
+
+
+ eo-emsappl
+ 0
+ 0
+ 0
+ 0
+
+ 10
+ 51
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\ctrloop\eOcfg_sm_EMSappl.c
+ eOcfg_sm_EMSappl.c
+ 0
+ 0
+
+
+ 10
+ 52
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSapplCfg.c
+ EOMtheEMSapplCfg.c
+ 0
+ 0
+
+
+ 10
+ 53
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSbackdoor.c
+ EOMtheEMSbackdoor.c
+ 0
+ 0
+
+
+ 10
+ 54
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSbackdoortransceiver.c
+ EOMtheEMSbackdoortransceiver.c
+ 0
+ 0
+
+
+ 10
+ 55
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSconfigurator.c
+ EOMtheEMSconfigurator.c
+ 0
+ 0
+
+
+ 10
+ 56
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSdiscoverylistener.c
+ EOMtheEMSdiscoverylistener.c
+ 0
+ 0
+
+
+ 10
+ 57
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSdiscoverytransceiver.c
+ EOMtheEMSdiscoverytransceiver.c
+ 0
+ 0
+
+
+ 10
+ 58
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSerror.c
+ EOMtheEMSerror.c
+ 0
+ 0
+
+
+ 10
+ 59
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSrunner.c
+ EOMtheEMSrunner.c
+ 0
+ 0
+
+
+ 10
+ 60
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSsocket.c
+ EOMtheEMSsocket.c
+ 0
+ 0
+
+
+ 10
+ 61
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMStransceiver.c
+ EOMtheEMStransceiver.c
+ 0
+ 0
+
+
+ 10
+ 62
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSappl.c
+ EOMtheEMSappl.c
+ 0
+ 0
+
+
+
+
+ eo-emsappl-cfg
+ 0
+ 0
+ 0
+ 0
+
+ 11
+ 63
+ 5
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\EOMtheEMSapplCfg_cfg.h
+ EOMtheEMSapplCfg_cfg.h
+ 0
+ 0
+
+
+ 11
+ 64
+ 1
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_runner.c
+ overridden_runner.c
+ 0
+ 0
+
+
+ 11
+ 65
+ 1
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_appl.c
+ overridden_appl.c
+ 0
+ 0
+
+
+ 11
+ 66
+ 1
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_sm.c
+ overridden_sm.c
+ 0
+ 0
+
+
+ 11
+ 67
+ 1
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_configurator.c
+ overridden_configurator.c
+ 0
+ 0
+
+
+ 11
+ 68
+ 1
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_backdoortransceiver.c
+ overridden_backdoortransceiver.c
+ 0
+ 0
+
+
+ 11
+ 69
+ 1
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_error.c
+ overridden_error.c
+ 0
+ 0
+
+
+ 11
+ 70
+ 1
+ 0
+ 0
+ 0
+ ..\cfg\eoemsappl\overridden_controller.c
+ overridden_controller.c
+ 0
+ 0
+
+
+ 11
+ 71
+ 1
+ 0
+ 0
+ 0
+ ..\src\eoappservices\testRTC.c
+ testRTC.c
+ 0
+ 0
+
+
+
+
+ opc-protocol
+ 0
+ 0
+ 0
+ 0
+
+ 12
+ 72
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\opcprot\OPCprotocolManager.c
+ OPCprotocolManager.c
+ 0
+ 0
+
+
+
+
+ appl-services
+ 1
+ 0
+ 0
+ 0
+
+ 13
+ 73
+ 8
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSdiagnostic.cpp
+ EOMtheEMSdiagnostic.cpp
+ 0
+ 0
+
+
+ 13
+ 74
+ 1
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheServices.c
+ EOtheServices.c
+ 0
+ 0
+
+
+ 13
+ 75
+ 1
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheVirtualStrain.c
+ EOtheVirtualStrain.c
+ 0
+ 0
+
+
+ 13
+ 76
+ 1
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheMAIS.c
+ EOtheMAIS.c
+ 0
+ 0
+
+
+ 13
+ 77
+ 1
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheSTRAIN.c
+ EOtheSTRAIN.c
+ 0
+ 0
+
+
+ 13
+ 78
+ 1
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheSKIN.c
+ EOtheSKIN.c
+ 0
+ 0
+
+
+ 13
+ 79
+ 1
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheMC4boards.c
+ EOtheMC4boards.c
+ 0
+ 0
+
+
+ 13
+ 80
+ 1
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheCANdiscovery2.c
+ EOtheCANdiscovery2.c
+ 0
+ 0
+
+
+ 13
+ 81
+ 1
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheMotionController.c
+ EOtheMotionController.c
+ 0
+ 0
+
+
+ 13
+ 82
+ 1
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheEncoderReader.c
+ EOtheEncoderReader.c
+ 0
+ 0
+
+
+ 13
+ 83
+ 1
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheETHmonitor.c
+ EOtheETHmonitor.c
+ 0
+ 0
+
+
+ 13
+ 84
+ 1
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOCurrentsWatchdog.c
+ EOCurrentsWatchdog.c
+ 0
+ 0
+
+
+ 13
+ 85
+ 1
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheInertials2.c
+ EOtheInertials2.c
+ 0
+ 0
+
+
+ 13
+ 86
+ 1
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOwatchdog.c
+ EOwatchdog.c
+ 0
+ 0
+
+
+ 13
+ 87
+ 1
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheSharedHW.c
+ EOtheSharedHW.c
+ 0
+ 0
+
+
+ 13
+ 88
+ 1
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheMEMS.c
+ EOtheMEMS.c
+ 0
+ 0
+
+
+ 13
+ 89
+ 1
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheInertials3.c
+ EOtheInertials3.c
+ 0
+ 0
+
+
+ 13
+ 90
+ 1
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheTemperatures.c
+ EOtheTemperatures.c
+ 0
+ 0
+
+
+ 13
+ 91
+ 1
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOthePSC.c
+ EOthePSC.c
+ 0
+ 0
+
+
+ 13
+ 92
+ 1
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOthePOS.c
+ EOthePOS.c
+ 0
+ 0
+
+
+ 13
+ 93
+ 1
+ 0
+ 0
+ 0
+ ..\src\eoappservices\EOtheFatalError.c
+ EOtheFatalError.c
+ 0
+ 0
+
+
+
+
+ eo-motor-controller
+ 0
+ 0
+ 0
+ 0
+
+ 14
+ 94
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\mc\Calibrators.c
+ Calibrators.c
+ 0
+ 0
+
+
+ 14
+ 95
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\mc\AbsEncoder.c
+ AbsEncoder.c
+ 0
+ 0
+
+
+ 14
+ 96
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\mc\Controller.c
+ Controller.c
+ 0
+ 0
+
+
+ 14
+ 97
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\mc\Joint.c
+ Joint.c
+ 0
+ 0
+
+
+ 14
+ 98
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\mc\JointSet.c
+ JointSet.c
+ 0
+ 0
+
+
+ 14
+ 99
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\mc\Motor.c
+ Motor.c
+ 0
+ 0
+
+
+ 14
+ 100
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\mc\Pid.c
+ Pid.c
+ 0
+ 0
+
+
+ 14
+ 101
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\mc\Trajectory.c
+ Trajectory.c
+ 0
+ 0
+
+
+ 14
+ 102
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\mc\WatchDog.c
+ WatchDog.c
+ 0
+ 0
+
+
+
+
+ eo-comm-transport
+ 0
+ 0
+ 0
+ 0
+
+ 15
+ 103
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOagent.c
+ EOagent.c
+ 0
+ 0
+
+
+ 15
+ 104
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOconfirmationManager.c
+ EOconfirmationManager.c
+ 0
+ 0
+
+
+ 15
+ 105
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOhostTransceiver.c
+ EOhostTransceiver.c
+ 0
+ 0
+
+
+ 15
+ 106
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOnvSet.c
+ EOnvSet.c
+ 0
+ 0
+
+
+ 15
+ 107
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOproxy.c
+ EOproxy.c
+ 0
+ 0
+
+
+ 15
+ 108
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOnv.c
+ EOnv.c
+ 0
+ 0
+
+
+ 15
+ 109
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOreceiver.c
+ EOreceiver.c
+ 0
+ 0
+
+
+ 15
+ 110
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOrop.c
+ EOrop.c
+ 0
+ 0
+
+
+ 15
+ 111
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOropframe.c
+ EOropframe.c
+ 0
+ 0
+
+
+ 15
+ 112
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtheBOARDtransceiver.c
+ EOtheBOARDtransceiver.c
+ 0
+ 0
+
+
+ 15
+ 113
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtheFormer.c
+ EOtheFormer.c
+ 0
+ 0
+
+
+ 15
+ 114
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtheParser.c
+ EOtheParser.c
+ 0
+ 0
+
+
+ 15
+ 115
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtransceiver.c
+ EOtransceiver.c
+ 0
+ 0
+
+
+ 15
+ 116
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtransmitter.c
+ EOtransmitter.c
+ 0
+ 0
+
+
+ 15
+ 117
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtheInfoDispatcher.c
+ EOtheInfoDispatcher.c
+ 0
+ 0
+
+
+
+
+ eo-protocol
+ 0
+ 0
+ 0
+ 0
+
+ 16
+ 118
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocol.c
+ EoProtocol.c
+ 0
+ 0
+
+
+ 16
+ 119
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolAS_fun.c
+ EoProtocolAS_fun.c
+ 0
+ 0
+
+
+ 16
+ 120
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolAS_rom.c
+ EoProtocolAS_rom.c
+ 0
+ 0
+
+
+ 16
+ 121
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolEPs.c
+ EoProtocolEPs.c
+ 0
+ 0
+
+
+ 16
+ 122
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolMC_fun.c
+ EoProtocolMC_fun.c
+ 0
+ 0
+
+
+ 16
+ 123
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolMC_rom.c
+ EoProtocolMC_rom.c
+ 0
+ 0
+
+
+ 16
+ 124
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolMN_fun.c
+ EoProtocolMN_fun.c
+ 0
+ 0
+
+
+ 16
+ 125
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolMN_rom.c
+ EoProtocolMN_rom.c
+ 0
+ 0
+
+
+ 16
+ 126
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolSK_fun.c
+ EoProtocolSK_fun.c
+ 0
+ 0
+
+
+ 16
+ 127
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolSK_rom.c
+ EoProtocolSK_rom.c
+ 0
+ 0
+
+
+ 16
+ 128
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoError.c
+ EoError.c
+ 0
+ 0
+
+
+ 16
+ 129
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoBoards.c
+ EoBoards.c
+ 0
+ 0
+
+
+ 16
+ 130
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoAnalogSensors.c
+ EoAnalogSensors.c
+ 0
+ 0
+
+
+ 16
+ 131
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoManagement.c
+ EoManagement.c
+ 0
+ 0
+
+
+ 16
+ 132
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoUpdaterProtocol.c
+ EoUpdaterProtocol.c
+ 0
+ 0
+
+
+ 16
+ 133
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoMotionControl.c
+ EoMotionControl.c
+ 0
+ 0
+
+
+
+
+ eo-protocol-cfg-callbacks
+ 0
+ 0
+ 0
+ 0
+
+ 17
+ 134
+ 1
+ 0
+ 0
+ 0
+ ..\cfg\eoprot-callbacks\EoProtocolMN_fun_ems4rd.c
+ EoProtocolMN_fun_ems4rd.c
+ 0
+ 0
+
+
+ 17
+ 135
+ 1
+ 0
+ 0
+ 0
+ ..\cfg\eoprot-callbacks\EoProtocolAS_fun_ems4rd.c
+ EoProtocolAS_fun_ems4rd.c
+ 0
+ 0
+
+
+ 17
+ 136
+ 1
+ 0
+ 0
+ 0
+ ..\cfg\eoprot-callbacks\EoProtocolSK_fun_ems4rd.c
+ EoProtocolSK_fun_ems4rd.c
+ 0
+ 0
+
+
+ 17
+ 137
+ 1
+ 0
+ 0
+ 0
+ ..\cfg\eoprot-callbacks\EoProtocolMC_fun_ems4rd.c
+ EoProtocolMC_fun_ems4rd.c
+ 0
+ 0
+
+
+
+
+ eoprot-can
+ 0
+ 0
+ 0
+ 0
+
+ 18
+ 138
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\can\EOtheCANmapping.c
+ EOtheCANmapping.c
+ 0
+ 0
+
+
+ 18
+ 139
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\can\EOtheCANprotocol.c
+ EOtheCANprotocol.c
+ 0
+ 0
+
+
+ 18
+ 140
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\can\EOtheCANservice.c
+ EOtheCANservice.c
+ 0
+ 0
+
+
+
+
+ eoprot-can-cfg-protocol
+ 0
+ 0
+ 0
+ 0
+
+ 19
+ 141
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotASperiodic.c
+ EoCANprotASperiodic.c
+ 0
+ 0
+
+
+ 19
+ 142
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotASpolling.c
+ EoCANprotASpolling.c
+ 0
+ 0
+
+
+ 19
+ 143
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotMCperiodic.c
+ EoCANprotMCperiodic.c
+ 0
+ 0
+
+
+ 19
+ 144
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotMCpolling.c
+ EoCANprotMCpolling.c
+ 0
+ 0
+
+
+ 19
+ 145
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotSKperiodic.c
+ EoCANprotSKperiodic.c
+ 0
+ 0
+
+
+ 19
+ 146
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotISperiodic.c
+ EoCANprotISperiodic.c
+ 0
+ 0
+
+
+
+
+ eo-board
+ 0
+ 0
+ 0
+ 0
+
+ 20
+ 147
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\board\EOtheEntities.c
+ EOtheEntities.c
+ 0
+ 0
+
+
+ 20
+ 148
+ 1
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embobj\plus\board\EOappEncodersReader.c
+ EOappEncodersReader.c
+ 0
+ 0
+
+
+
+
+ embot::core
+ 1
+ 0
+ 0
+ 0
+
+ 21
+ 149
+ 8
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embot\cif\embot_cif_core.cpp
+ embot_cif_core.cpp
+ 0
+ 0
+
+
+ 21
+ 150
+ 8
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core.cpp
+ embot_core.cpp
+ 0
+ 0
+
+
+ 21
+ 151
+ 8
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core_binary.cpp
+ embot_core_binary.cpp
+ 0
+ 0
+
+
+ 21
+ 152
+ 8
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core_utils.cpp
+ embot_core_utils.cpp
+ 0
+ 0
+
+
+
+
+ embot::prot::eth
+ 0
+ 0
+ 0
+ 0
+
+ 22
+ 153
+ 8
+ 0
+ 0
+ 0
+ ..\..\..\..\..\embot\cif\embot_cif_diagnostic.cpp
+ embot_cif_diagnostic.cpp
+ 0
+ 0
+
+
+ 22
+ 154
+ 8
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\prot\eth\embot_prot_eth_diagnostic_Host.cpp
+ embot_prot_eth_diagnostic_Host.cpp
+ 0
+ 0
+
+
+ 22
+ 155
+ 8
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\prot\eth\embot_prot_eth_diagnostic_Node.cpp
+ embot_prot_eth_diagnostic_Node.cpp
+ 0
+ 0
+
+
+ 22
+ 156
+ 8
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\prot\eth\embot_prot_eth_rop.cpp
+ embot_prot_eth_rop.cpp
+ 0
+ 0
+
+
+ 22
+ 157
+ 8
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\prot\eth\embot_prot_eth_ropframe.cpp
+ embot_prot_eth_ropframe.cpp
+ 0
+ 0
+
+
+
+
diff --git a/emBODY/eBcode/arch-arm/board/ems004/appl/v2/proj/ems4rd.d2r.osalos2.uvprojx b/emBODY/eBcode/arch-arm/board/ems004/appl/v2/proj/ems4rd.d2r.osalos2.uvprojx
new file mode 100644
index 0000000000..67a9d6a5bf
--- /dev/null
+++ b/emBODY/eBcode/arch-arm/board/ems004/appl/v2/proj/ems4rd.d2r.osalos2.uvprojx
@@ -0,0 +1,3994 @@
+
+
+
+ 2.1
+
+ ### uVision Project, (C) Keil Software
+
+
+
+ ems4rd-zero
+ 0x4
+ ARM-ADS
+ 0
+
+
+ STM32F407IG
+ STMicroelectronics
+ IRAM(0x20000000-0x2001FFFF) IRAM2(0x10000000-0x1000FFFF) IROM(0x8000000-0x80FFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2
+
+ "Startup\ST\STM32F4xx\startup_stm32f4xx.s" ("STM32F4xx Startup Code")
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000)
+ 6104
+ stm32f4xx.h
+
+
+
+
+
+
+
+
+
+ SFD\ST\STM32F4xx\STM32F40x.sfr
+ 0
+ 0
+
+
+
+ ST\STM32F4xx\
+ ST\STM32F4xx\
+
+ 0
+ 0
+ 0
+ 0
+ 1
+
+ .\Obj\
+ ems4rd-zero
+ 1
+ 0
+ 1
+ 1
+ 1
+ .\Lst\
+ 1
+ 0
+ 0
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 0
+ cmd.exe /C copy .\Obj\ems4rd-zero.hex ..\bin\ems4rd-zero.hex
+
+ 0
+ 0
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 3
+
+
+ 1
+
+
+ SARMCM3.DLL
+ -MPU -REMAP
+ DCM.DLL
+ -pCM4
+ SARMCM3.DLL
+ -MPU
+ TCM.DLL
+ -pCM4
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 16
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+ 1
+ 4100
+
+ 1
+ BIN\ULP2CM3.DLL
+ "" ()
+
+
+
+
+ 0
+
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ "Cortex-M4"
+
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ 0
+ 2
+ 0
+ 0
+ 1
+ 0
+ 8
+ 0
+ 0
+ 0
+ 0
+ 3
+ 5
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x20000
+
+
+ 1
+ 0x8000000
+ 0x100000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x8000000
+ 0x100000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x20000
+
+
+ 0
+ 0x10000000
+ 0x10000
+
+
+
+
+
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+
+ -DemBODYrobot_ROBOT_NAME=icubANY -DemBODYrobot_BOARD_NAME=boardEMS4RD -DemBODYrobot_BOARD_NUMBER=boardnumberANY
+ NOT_ICUB_GENOVA04 ICUB_DARMSTADT01 EOPROT_USE_MN_VERSION_2_0 HAL_IS_VERSION_2 USE_PROTO_PROXY EENV_EAPPLICATION_FORCE_CODE_OFFSET_TO_ZERO
+
+ ..\..\..\..\..\libs\highlevel\abslayer\ipal\api;..\..\..\..\..\libs\highlevel\abslayer\osal\api;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core;..\..\..\..\..\embobj\core\exec\multitask;..\..\..\..\..\embobj\plus\embenv;..\..\..\..\..\embobj\plus\ipnet;..\..\..\..\..\libs\highlevel\services\embenv\api;..\..\..\..\..\libs\midware\eventviewer\api;..\cfg\eoemsappl;..\cfg\abslayer;..\..\..\..\..\embobj\plus\ctrloop;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\api;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport;..\..\..\..\..\embobj\plus\board\ems001;..\..\..\..\..\embobj\plus\mc;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\utils;.;..\cfg\eoprot-callbacks;..\src\eoappservices;..\cfg\eoappservices\icub-can-proto;..\cfg\eoappservices\icub-can-net;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\robotconfig\v1\backdoor;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\opcprot;..\..\..\..\..\..\..\..\..\icub-firmware-shared\can\canProtocolLib;..\cfg\eoprot-boards;..\..\..\..\..\libs\highlevel\abslayer\hal2\api;..\..\..\..\ems004\env\cfg;..\cfg\eoemsappl;..\..\..\..\..\libs\highlevel\services\embodyrobot;..\..\..\..\..\libs\midware\hl-plus\api
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 4
+
+ --cpreproc
+
+
+ ..\cfg\abslayer
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0x08000000
+ 0x20000000
+
+ .\eApplication-zerooffset.sct
+
+
+
+
+
+
+
+
+
+
+ main
+
+
+ eom_emsappl_main-test-osalos2.cpp
+ 1
+ ..\main\eom_emsappl_main-test-osalos2.cpp
+
+
+
+
+ abslayer-lib
+
+
+ ipal.base.medium.cm4.lib
+ 4
+ ..\..\..\..\..\libs\highlevel\abslayer\ipal\lib\ipal.base.medium.cm4.lib
+
+
+ osal.cmsisos2.lib
+ 4
+ ..\..\..\..\..\libs\highlevel\abslayer\osal\lib\osal.cmsisos2.lib
+
+
+ hal2.ems4rd.ethdbg.lib
+ 4
+ ..\..\..\..\..\libs\highlevel\abslayer\hal2\lib\hal2.ems4rd.ethdbg.lib
+
+
+
+
+ abslayer-cfg
+
+
+ hal_core_cfg.h
+ 5
+ ..\cfg\abslayer\hal_core_cfg.h
+
+
+ ipal_cfg.h
+ 5
+ ..\cfg\abslayer\ipal_cfg.h
+
+
+ hal_core_cfg.c
+ 1
+ ..\cfg\abslayer\hal_core_cfg.c
+
+
+ ipal_cfg.c
+ 1
+ ..\cfg\abslayer\ipal_cfg.c
+
+
+ hal_startup_mpu_name_stm32f407ig-v6.s
+ 2
+ ..\cfg\abslayer\hal_startup_mpu_name_stm32f407ig-v6.s
+
+
+ osalos2_cfg.c
+ 1
+ ..\cfg\abslayer\osalos2_cfg.c
+
+
+
+
+ eo-core
+
+
+ EOaction.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOaction.c
+
+
+ EOarray.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOarray.c
+
+
+ EoCommon.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EoCommon.c
+
+
+ EOconstarray.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOconstarray.c
+
+
+ EOconstvector.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOconstvector.c
+
+
+ EOdeque.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOdeque.c
+
+
+ EOfifo.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOfifo.c
+
+
+ EOfifoByte.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOfifoByte.c
+
+
+ EOfifoWord.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOfifoWord.c
+
+
+ EOlist.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOlist.c
+
+
+ EOpacket.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOpacket.c
+
+
+ EOsm.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOsm.c
+
+
+ EOtheErrorManager.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOtheErrorManager.c
+
+
+ EOtheLEDpulser.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOtheLEDpulser.c
+
+
+ EOtheMemoryPool.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOtheMemoryPool.c
+
+
+ EOtimer.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOtimer.c
+
+
+ EOumlsm.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOumlsm.c
+
+
+ EOvector.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOvector.c
+
+
+ EOVmutex.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOVmutex.c
+
+
+ EOVtask.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOVtask.c
+
+
+ EOVtheCallbackManager.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOVtheCallbackManager.c
+
+
+ EOVtheSystem.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOVtheSystem.c
+
+
+ EOVtheTimerManager.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOVtheTimerManager.c
+
+
+
+
+ eo-core-mee
+
+
+ EOMmutex.c
+ 1
+ ..\..\..\..\..\embobj\core\exec\multitask\EOMmutex.c
+
+
+ EOMtask.c
+ 1
+ ..\..\..\..\..\embobj\core\exec\multitask\EOMtask.c
+
+
+ EOMtheCallbackManager.c
+ 1
+ ..\..\..\..\..\embobj\core\exec\multitask\EOMtheCallbackManager.c
+
+
+ EOMtheSystem.c
+ 1
+ ..\..\..\..\..\embobj\core\exec\multitask\EOMtheSystem.c
+
+
+ EOMtheTimerManager.c
+ 1
+ ..\..\..\..\..\embobj\core\exec\multitask\EOMtheTimerManager.c
+
+
+
+
+ eo-ipnet
+
+
+ EOMtheIPnet.c
+ 1
+ ..\..\..\..\..\embobj\plus\ipnet\EOMtheIPnet.c
+
+
+ EOsocket.c
+ 1
+ ..\..\..\..\..\embobj\plus\ipnet\EOsocket.c
+
+
+ EOsocketDatagram.c
+ 1
+ ..\..\..\..\..\embobj\plus\ipnet\EOsocketDatagram.c
+
+
+ EOVtheIPnet.c
+ 1
+ ..\..\..\..\..\embobj\plus\ipnet\EOVtheIPnet.c
+
+
+
+
+ eo-arm-env
+
+
+ EOtheARMenvironment.c
+ 1
+ ..\..\..\..\..\embobj\plus\embenv\EOtheARMenvironment.c
+
+
+ EOVtheEnvironment.c
+ 1
+ ..\..\..\..\..\embobj\plus\embenv\EOVtheEnvironment.c
+
+
+
+
+ eventviewer
+
+
+ eventviewer.c
+ 1
+ ..\..\..\..\..\libs\midware\eventviewer\src\eventviewer.c
+
+
+
+
+ arm-services-embenv
+
+
+ eEcommon.c
+ 1
+ ..\..\..\..\..\libs\highlevel\services\embenv\src\eEcommon.c
+
+
+ eEsharedServices.c
+ 1
+ ..\..\..\..\..\libs\highlevel\services\embenv\src\eEsharedServices.c
+
+
+ shalBASE.c
+ 1
+ ..\..\..\..\..\libs\highlevel\services\embenv\src\shalBASE.c
+
+
+ shalINFO.c
+ 1
+ ..\..\..\..\..\libs\highlevel\services\embenv\src\shalINFO.c
+
+
+ shalPART.c
+ 1
+ ..\..\..\..\..\libs\highlevel\services\embenv\src\shalPART.c
+
+
+
+
+ eo-emsappl
+
+
+ eOcfg_sm_EMSappl.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\eOcfg_sm_EMSappl.c
+
+
+ EOMtheEMSapplCfg.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSapplCfg.c
+
+
+ EOMtheEMSbackdoor.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSbackdoor.c
+
+
+ EOMtheEMSbackdoortransceiver.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSbackdoortransceiver.c
+
+
+ EOMtheEMSconfigurator.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSconfigurator.c
+
+
+ EOMtheEMSdiscoverylistener.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSdiscoverylistener.c
+
+
+ EOMtheEMSdiscoverytransceiver.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSdiscoverytransceiver.c
+
+
+ EOMtheEMSerror.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSerror.c
+
+
+ EOMtheEMSrunner.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSrunner.c
+
+
+ EOMtheEMSsocket.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSsocket.c
+
+
+ EOMtheEMStransceiver.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMStransceiver.c
+
+
+ EOMtheEMSappl.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSappl.c
+
+
+
+
+ eo-emsappl-cfg
+
+
+ EOMtheEMSapplCfg_cfg.h
+ 5
+ ..\cfg\eoemsappl\EOMtheEMSapplCfg_cfg.h
+
+
+ overridden_runner.c
+ 1
+ ..\cfg\eoemsappl\overridden_runner.c
+
+
+ overridden_appl.c
+ 1
+ ..\cfg\eoemsappl\overridden_appl.c
+
+
+ overridden_sm.c
+ 1
+ ..\cfg\eoemsappl\overridden_sm.c
+
+
+ overridden_configurator.c
+ 1
+ ..\cfg\eoemsappl\overridden_configurator.c
+
+
+ overridden_backdoortransceiver.c
+ 1
+ ..\cfg\eoemsappl\overridden_backdoortransceiver.c
+
+
+ overridden_error.c
+ 1
+ ..\cfg\eoemsappl\overridden_error.c
+
+
+ overridden_controller.c
+ 1
+ ..\cfg\eoemsappl\overridden_controller.c
+
+
+ testRTC.c
+ 1
+ ..\src\eoappservices\testRTC.c
+
+
+
+
+ opc-protocol
+
+
+ OPCprotocolManager.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\opcprot\OPCprotocolManager.c
+
+
+
+
+ appl-services
+
+
+ EOMtheEMSdiagnostic.cpp
+ 8
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSdiagnostic.cpp
+
+
+ EOtheServices.c
+ 1
+ ..\src\eoappservices\EOtheServices.c
+
+
+ EOtheVirtualStrain.c
+ 1
+ ..\src\eoappservices\EOtheVirtualStrain.c
+
+
+ EOtheMAIS.c
+ 1
+ ..\src\eoappservices\EOtheMAIS.c
+
+
+ EOtheSTRAIN.c
+ 1
+ ..\src\eoappservices\EOtheSTRAIN.c
+
+
+ EOtheSKIN.c
+ 1
+ ..\src\eoappservices\EOtheSKIN.c
+
+
+ EOtheMC4boards.c
+ 1
+ ..\src\eoappservices\EOtheMC4boards.c
+
+
+ EOtheCANdiscovery2.c
+ 1
+ ..\src\eoappservices\EOtheCANdiscovery2.c
+
+
+ EOtheMotionController.c
+ 1
+ ..\src\eoappservices\EOtheMotionController.c
+
+
+ EOtheEncoderReader.c
+ 1
+ ..\src\eoappservices\EOtheEncoderReader.c
+
+
+ EOtheETHmonitor.c
+ 1
+ ..\src\eoappservices\EOtheETHmonitor.c
+
+
+ EOCurrentsWatchdog.c
+ 1
+ ..\src\eoappservices\EOCurrentsWatchdog.c
+
+
+ EOtheInertials2.c
+ 1
+ ..\src\eoappservices\EOtheInertials2.c
+
+
+ EOwatchdog.c
+ 1
+ ..\src\eoappservices\EOwatchdog.c
+
+
+ EOtheSharedHW.c
+ 1
+ ..\src\eoappservices\EOtheSharedHW.c
+
+
+ EOtheMEMS.c
+ 1
+ ..\src\eoappservices\EOtheMEMS.c
+
+
+ EOtheInertials3.c
+ 1
+ ..\src\eoappservices\EOtheInertials3.c
+
+
+ EOtheTemperatures.c
+ 1
+ ..\src\eoappservices\EOtheTemperatures.c
+
+
+ EOthePSC.c
+ 1
+ ..\src\eoappservices\EOthePSC.c
+
+
+ EOthePOS.c
+ 1
+ ..\src\eoappservices\EOthePOS.c
+
+
+ EOtheFatalError.c
+ 1
+ ..\src\eoappservices\EOtheFatalError.c
+
+
+
+
+ eo-motor-controller
+
+
+ Calibrators.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\Calibrators.c
+
+
+ AbsEncoder.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\AbsEncoder.c
+
+
+ Controller.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\Controller.c
+
+
+ Joint.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\Joint.c
+
+
+ JointSet.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\JointSet.c
+
+
+ Motor.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\Motor.c
+
+
+ Pid.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\Pid.c
+
+
+ Trajectory.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\Trajectory.c
+
+
+ WatchDog.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\WatchDog.c
+
+
+
+
+ eo-comm-transport
+
+
+ EOagent.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOagent.c
+
+
+ EOconfirmationManager.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOconfirmationManager.c
+
+
+ EOhostTransceiver.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOhostTransceiver.c
+
+
+ EOnvSet.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOnvSet.c
+
+
+ EOproxy.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOproxy.c
+
+
+ EOnv.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOnv.c
+
+
+ EOreceiver.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOreceiver.c
+
+
+ EOrop.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOrop.c
+
+
+ EOropframe.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOropframe.c
+
+
+ EOtheBOARDtransceiver.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtheBOARDtransceiver.c
+
+
+ EOtheFormer.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtheFormer.c
+
+
+ EOtheParser.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtheParser.c
+
+
+ EOtransceiver.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtransceiver.c
+
+
+ EOtransmitter.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtransmitter.c
+
+
+ EOtheInfoDispatcher.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtheInfoDispatcher.c
+
+
+
+
+ eo-protocol
+
+
+ EoProtocol.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocol.c
+
+
+ EoProtocolAS_fun.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolAS_fun.c
+
+
+ EoProtocolAS_rom.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolAS_rom.c
+
+
+ EoProtocolEPs.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolEPs.c
+
+
+ EoProtocolMC_fun.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolMC_fun.c
+
+
+ EoProtocolMC_rom.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolMC_rom.c
+
+
+ EoProtocolMN_fun.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolMN_fun.c
+
+
+ EoProtocolMN_rom.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolMN_rom.c
+
+
+ EoProtocolSK_fun.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolSK_fun.c
+
+
+ EoProtocolSK_rom.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolSK_rom.c
+
+
+ EoError.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoError.c
+
+
+ EoBoards.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoBoards.c
+
+
+ EoAnalogSensors.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoAnalogSensors.c
+
+
+ EoManagement.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoManagement.c
+
+
+ EoUpdaterProtocol.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoUpdaterProtocol.c
+
+
+ EoMotionControl.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoMotionControl.c
+
+
+
+
+ eo-protocol-cfg-callbacks
+
+
+ EoProtocolMN_fun_ems4rd.c
+ 1
+ ..\cfg\eoprot-callbacks\EoProtocolMN_fun_ems4rd.c
+
+
+ EoProtocolAS_fun_ems4rd.c
+ 1
+ ..\cfg\eoprot-callbacks\EoProtocolAS_fun_ems4rd.c
+
+
+ EoProtocolSK_fun_ems4rd.c
+ 1
+ ..\cfg\eoprot-callbacks\EoProtocolSK_fun_ems4rd.c
+
+
+ EoProtocolMC_fun_ems4rd.c
+ 1
+ ..\cfg\eoprot-callbacks\EoProtocolMC_fun_ems4rd.c
+
+
+
+
+ eoprot-can
+
+
+ EOtheCANmapping.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\EOtheCANmapping.c
+
+
+ EOtheCANprotocol.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\EOtheCANprotocol.c
+
+
+ EOtheCANservice.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\EOtheCANservice.c
+
+
+
+
+ eoprot-can-cfg-protocol
+
+
+ EoCANprotASperiodic.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotASperiodic.c
+
+
+ EoCANprotASpolling.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotASpolling.c
+
+
+ EoCANprotMCperiodic.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotMCperiodic.c
+
+
+ EoCANprotMCpolling.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotMCpolling.c
+
+
+ EoCANprotSKperiodic.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotSKperiodic.c
+
+
+ EoCANprotISperiodic.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotISperiodic.c
+
+
+
+
+ eo-board
+
+
+ EOtheEntities.c
+ 1
+ ..\..\..\..\..\embobj\plus\board\EOtheEntities.c
+
+
+ EOappEncodersReader.c
+ 1
+ ..\..\..\..\..\embobj\plus\board\EOappEncodersReader.c
+
+
+
+
+ embot::core
+
+
+ embot_cif_core.cpp
+ 8
+ ..\..\..\..\..\embot\cif\embot_cif_core.cpp
+
+
+ embot_core.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core.cpp
+
+
+ embot_core_binary.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core_binary.cpp
+
+
+ embot_core_utils.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core_utils.cpp
+
+
+
+
+ embot::prot::eth
+
+
+ embot_cif_diagnostic.cpp
+ 8
+ ..\..\..\..\..\embot\cif\embot_cif_diagnostic.cpp
+
+
+ embot_prot_eth_diagnostic_Host.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\prot\eth\embot_prot_eth_diagnostic_Host.cpp
+
+
+ embot_prot_eth_diagnostic_Node.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\prot\eth\embot_prot_eth_diagnostic_Node.cpp
+
+
+ embot_prot_eth_rop.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\prot\eth\embot_prot_eth_rop.cpp
+
+
+ embot_prot_eth_ropframe.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\prot\eth\embot_prot_eth_ropframe.cpp
+
+
+
+
+
+
+ ems4rd
+ 0x4
+ ARM-ADS
+ 6160000::V6.16::ARMCLANG
+ 1
+
+
+ STM32F407IG
+ STMicroelectronics
+ Keil.STM32F4xx_DFP.2.15.0
+ http://www.keil.com/pack/
+ IRAM(0x20000000-0x2001FFFF) IRAM2(0x10000000-0x1000FFFF) IROM(0x8000000-0x80FFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2
+
+ "Startup\ST\STM32F4xx\startup_stm32f4xx.s" ("STM32F4xx Startup Code")
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000)
+ 6104
+ stm32f4xx.h
+
+
+
+
+
+
+
+
+
+ SFD\ST\STM32F4xx\STM32F40x.sfr
+ 0
+ 0
+
+
+
+ ST\STM32F4xx\
+ ST\STM32F4xx\
+
+ 0
+ 0
+ 0
+ 0
+ 1
+
+ .\Obj\
+ ems004
+ 1
+ 0
+ 1
+ 1
+ 1
+ .\Lst\
+ 1
+ 0
+ 0
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 0
+ cmd.exe /C copy .\Obj\ems004.hex ..\bin\ems004.hex
+
+ 0
+ 0
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 3
+
+
+ 1
+
+
+ SARMCM3.DLL
+ -MPU -REMAP
+ DCM.DLL
+ -pCM4
+ SARMCM3.DLL
+ -MPU
+ TCM.DLL
+ -pCM4
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 16
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+ 1
+ 4100
+
+ 1
+ BIN\ULP2CM3.DLL
+ "" ()
+
+
+
+
+ 0
+
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ "Cortex-M4"
+
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ 0
+ 2
+ 0
+ 0
+ 1
+ 0
+ 8
+ 0
+ 0
+ 0
+ 0
+ 3
+ 5
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x20000
+
+
+ 1
+ 0x8000000
+ 0x100000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x8000000
+ 0x100000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x20000
+
+
+ 0
+ 0x10000000
+ 0x10000
+
+
+
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 3
+ 0
+ 1
+ 1
+ 0
+ 0
+ 3
+ 8
+ 1
+ 1
+ 0
+ 0
+ 0
+
+ -DRTX_NO_MULTITHREAD_CLIB -DOSAL_USE_rtos_cmsisos2 -DEOTHESERVICES_disable_thePOS -Wno-pragma-pack -Wno-deprecated-register -DUSE_EMS4RD -DUSE_OLD_BUGGY_MODE_TO_SEND_UP_FULLSCALE_WITH_INVERTED_BYTES
+ DIAGNOSTIC2_enabled DIAGNOSTIC2_receive_from_daemon DIAGNOSTIC2_send_to_yarprobotinterface _no_DIAGNOSTIC2_send_to_daemon
+
+ ..\..\..\..\..\libs\highlevel\abslayer\ipal\api;..\..\..\..\..\libs\highlevel\abslayer\osal\api;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core;..\..\..\..\..\embobj\core\exec\multitask;..\..\..\..\..\embobj\plus\embenv;..\..\..\..\..\embobj\plus\ipnet;..\..\..\..\..\libs\highlevel\services\embenv\api;..\..\..\..\..\libs\midware\eventviewer\api;..\cfg\eoemsappl;..\cfg\abslayer;..\..\..\..\..\embobj\plus\ctrloop;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\api;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport;..\..\..\..\..\embobj\plus\board\ems001;..\..\..\..\..\embobj\plus\mc;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\utils;.;..\cfg\eoprot-callbacks;..\src\eoappservices;..\cfg\eoappservices\icub-can-proto;..\cfg\eoappservices\icub-can-net;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\robotconfig\v1\backdoor;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\opcprot;..\..\..\..\..\..\..\..\..\icub-firmware-shared\can\canProtocolLib;..\cfg\eoprot-boards;..\..\..\..\..\libs\highlevel\abslayer\hal2\api;..\..\..\..\ems004\env\cfg;..\cfg\eoemsappl;..\..\..\..\..\libs\highlevel\services\embodyrobot;..\..\..\..\..\libs\midware\hl-plus\api;..\..\..\..\..\embobj\plus\can;..\..\..\..\..\embobj\plus\can\config-can-mapping;..\..\..\..\..\embobj\plus\can\config-can-protocol;..\..\..\..\..\embobj\plus\board;..\..\..\..\mc4plus\appl\v2\src\eoappservices;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embot;..\..\..\..\..\embot\cif;..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core;..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\prot\eth;..\..\..\..\..\libs\highlevel\abslayer\cmsisos2\api;..\..\..\..\..\embot\os
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 4
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0x08000000
+ 0x20000000
+
+ .\eApplication-v6.sct
+
+
+ --diag_suppress=L6329
+
+
+
+
+
+
+
+ main
+
+
+ eom_emsappl_main-test-osalos2.cpp
+ 1
+ ..\main\eom_emsappl_main-test-osalos2.cpp
+
+
+
+
+ abslayer-lib
+
+
+ ipal.base.medium.cm4.lib
+ 4
+ ..\..\..\..\..\libs\highlevel\abslayer\ipal\lib\ipal.base.medium.cm4.lib
+
+
+ osal.cmsisos2.lib
+ 4
+ ..\..\..\..\..\libs\highlevel\abslayer\osal\lib\osal.cmsisos2.lib
+
+
+ hal2.ems4rd.ethdbg.lib
+ 4
+ ..\..\..\..\..\libs\highlevel\abslayer\hal2\lib\hal2.ems4rd.ethdbg.lib
+
+
+
+
+ abslayer-cfg
+
+
+ hal_core_cfg.h
+ 5
+ ..\cfg\abslayer\hal_core_cfg.h
+
+
+ ipal_cfg.h
+ 5
+ ..\cfg\abslayer\ipal_cfg.h
+
+
+ hal_core_cfg.c
+ 1
+ ..\cfg\abslayer\hal_core_cfg.c
+
+
+ ipal_cfg.c
+ 1
+ ..\cfg\abslayer\ipal_cfg.c
+
+
+ hal_startup_mpu_name_stm32f407ig-v6.s
+ 2
+ ..\cfg\abslayer\hal_startup_mpu_name_stm32f407ig-v6.s
+
+
+ osalos2_cfg.c
+ 1
+ ..\cfg\abslayer\osalos2_cfg.c
+
+
+
+
+ eo-core
+
+
+ EOaction.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOaction.c
+
+
+ EOarray.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOarray.c
+
+
+ EoCommon.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EoCommon.c
+
+
+ EOconstarray.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOconstarray.c
+
+
+ EOconstvector.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOconstvector.c
+
+
+ EOdeque.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOdeque.c
+
+
+ EOfifo.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOfifo.c
+
+
+ EOfifoByte.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOfifoByte.c
+
+
+ EOfifoWord.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOfifoWord.c
+
+
+ EOlist.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOlist.c
+
+
+ EOpacket.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOpacket.c
+
+
+ EOsm.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOsm.c
+
+
+ EOtheErrorManager.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOtheErrorManager.c
+
+
+ EOtheLEDpulser.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOtheLEDpulser.c
+
+
+ EOtheMemoryPool.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOtheMemoryPool.c
+
+
+ EOtimer.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOtimer.c
+
+
+ EOumlsm.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOumlsm.c
+
+
+ EOvector.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOvector.c
+
+
+ EOVmutex.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOVmutex.c
+
+
+ EOVtask.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOVtask.c
+
+
+ EOVtheCallbackManager.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOVtheCallbackManager.c
+
+
+ EOVtheSystem.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOVtheSystem.c
+
+
+ EOVtheTimerManager.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOVtheTimerManager.c
+
+
+
+
+ eo-core-mee
+
+
+ EOMmutex.c
+ 1
+ ..\..\..\..\..\embobj\core\exec\multitask\EOMmutex.c
+
+
+ EOMtask.c
+ 1
+ ..\..\..\..\..\embobj\core\exec\multitask\EOMtask.c
+
+
+ EOMtheCallbackManager.c
+ 1
+ ..\..\..\..\..\embobj\core\exec\multitask\EOMtheCallbackManager.c
+
+
+ EOMtheSystem.c
+ 1
+ ..\..\..\..\..\embobj\core\exec\multitask\EOMtheSystem.c
+
+
+ EOMtheTimerManager.c
+ 1
+ ..\..\..\..\..\embobj\core\exec\multitask\EOMtheTimerManager.c
+
+
+
+
+ eo-ipnet
+
+
+ EOMtheIPnet.c
+ 1
+ ..\..\..\..\..\embobj\plus\ipnet\EOMtheIPnet.c
+
+
+ EOsocket.c
+ 1
+ ..\..\..\..\..\embobj\plus\ipnet\EOsocket.c
+
+
+ EOsocketDatagram.c
+ 1
+ ..\..\..\..\..\embobj\plus\ipnet\EOsocketDatagram.c
+
+
+ EOVtheIPnet.c
+ 1
+ ..\..\..\..\..\embobj\plus\ipnet\EOVtheIPnet.c
+
+
+
+
+ eo-arm-env
+
+
+ EOtheARMenvironment.c
+ 1
+ ..\..\..\..\..\embobj\plus\embenv\EOtheARMenvironment.c
+
+
+ EOVtheEnvironment.c
+ 1
+ ..\..\..\..\..\embobj\plus\embenv\EOVtheEnvironment.c
+
+
+
+
+ eventviewer
+
+
+ eventviewer.c
+ 1
+ ..\..\..\..\..\libs\midware\eventviewer\src\eventviewer.c
+
+
+
+
+ arm-services-embenv
+
+
+ eEcommon.c
+ 1
+ ..\..\..\..\..\libs\highlevel\services\embenv\src\eEcommon.c
+
+
+ eEsharedServices.c
+ 1
+ ..\..\..\..\..\libs\highlevel\services\embenv\src\eEsharedServices.c
+
+
+ shalBASE.c
+ 1
+ ..\..\..\..\..\libs\highlevel\services\embenv\src\shalBASE.c
+
+
+ shalINFO.c
+ 1
+ ..\..\..\..\..\libs\highlevel\services\embenv\src\shalINFO.c
+
+
+ shalPART.c
+ 1
+ ..\..\..\..\..\libs\highlevel\services\embenv\src\shalPART.c
+
+
+
+
+ eo-emsappl
+
+
+ eOcfg_sm_EMSappl.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\eOcfg_sm_EMSappl.c
+
+
+ EOMtheEMSapplCfg.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSapplCfg.c
+
+
+ EOMtheEMSbackdoor.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSbackdoor.c
+
+
+ EOMtheEMSbackdoortransceiver.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSbackdoortransceiver.c
+
+
+ EOMtheEMSconfigurator.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSconfigurator.c
+
+
+ EOMtheEMSdiscoverylistener.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSdiscoverylistener.c
+
+
+ EOMtheEMSdiscoverytransceiver.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSdiscoverytransceiver.c
+
+
+ EOMtheEMSerror.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSerror.c
+
+
+ EOMtheEMSrunner.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSrunner.c
+
+
+ EOMtheEMSsocket.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSsocket.c
+
+
+ EOMtheEMStransceiver.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMStransceiver.c
+
+
+ EOMtheEMSappl.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSappl.c
+
+
+
+
+ eo-emsappl-cfg
+
+
+ EOMtheEMSapplCfg_cfg.h
+ 5
+ ..\cfg\eoemsappl\EOMtheEMSapplCfg_cfg.h
+
+
+ overridden_runner.c
+ 1
+ ..\cfg\eoemsappl\overridden_runner.c
+
+
+ overridden_appl.c
+ 1
+ ..\cfg\eoemsappl\overridden_appl.c
+
+
+ overridden_sm.c
+ 1
+ ..\cfg\eoemsappl\overridden_sm.c
+
+
+ overridden_configurator.c
+ 1
+ ..\cfg\eoemsappl\overridden_configurator.c
+
+
+ overridden_backdoortransceiver.c
+ 1
+ ..\cfg\eoemsappl\overridden_backdoortransceiver.c
+
+
+ overridden_error.c
+ 1
+ ..\cfg\eoemsappl\overridden_error.c
+
+
+ overridden_controller.c
+ 1
+ ..\cfg\eoemsappl\overridden_controller.c
+
+
+ testRTC.c
+ 1
+ ..\src\eoappservices\testRTC.c
+
+
+
+
+ opc-protocol
+
+
+ OPCprotocolManager.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\opcprot\OPCprotocolManager.c
+
+
+
+
+ appl-services
+
+
+ EOMtheEMSdiagnostic.cpp
+ 8
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSdiagnostic.cpp
+
+
+ EOtheServices.c
+ 1
+ ..\src\eoappservices\EOtheServices.c
+
+
+ EOtheVirtualStrain.c
+ 1
+ ..\src\eoappservices\EOtheVirtualStrain.c
+
+
+ EOtheMAIS.c
+ 1
+ ..\src\eoappservices\EOtheMAIS.c
+
+
+ EOtheSTRAIN.c
+ 1
+ ..\src\eoappservices\EOtheSTRAIN.c
+
+
+ EOtheSKIN.c
+ 1
+ ..\src\eoappservices\EOtheSKIN.c
+
+
+ EOtheMC4boards.c
+ 1
+ ..\src\eoappservices\EOtheMC4boards.c
+
+
+ EOtheCANdiscovery2.c
+ 1
+ ..\src\eoappservices\EOtheCANdiscovery2.c
+
+
+ EOtheMotionController.c
+ 1
+ ..\src\eoappservices\EOtheMotionController.c
+
+
+ EOtheEncoderReader.c
+ 1
+ ..\src\eoappservices\EOtheEncoderReader.c
+
+
+ EOtheETHmonitor.c
+ 1
+ ..\src\eoappservices\EOtheETHmonitor.c
+
+
+ EOCurrentsWatchdog.c
+ 1
+ ..\src\eoappservices\EOCurrentsWatchdog.c
+
+
+ EOtheInertials2.c
+ 1
+ ..\src\eoappservices\EOtheInertials2.c
+
+
+ EOwatchdog.c
+ 1
+ ..\src\eoappservices\EOwatchdog.c
+
+
+ EOtheSharedHW.c
+ 1
+ ..\src\eoappservices\EOtheSharedHW.c
+
+
+ EOtheMEMS.c
+ 1
+ ..\src\eoappservices\EOtheMEMS.c
+
+
+ EOtheInertials3.c
+ 1
+ ..\src\eoappservices\EOtheInertials3.c
+
+
+ EOtheTemperatures.c
+ 1
+ ..\src\eoappservices\EOtheTemperatures.c
+
+
+ EOthePSC.c
+ 1
+ ..\src\eoappservices\EOthePSC.c
+
+
+ EOthePOS.c
+ 1
+ ..\src\eoappservices\EOthePOS.c
+
+
+ EOtheFatalError.c
+ 1
+ ..\src\eoappservices\EOtheFatalError.c
+
+
+
+
+ eo-motor-controller
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 11
+
+
+ 1
+
+
+
+ 2
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 0
+ 2
+ 2
+ 0
+ 2
+ 2
+
+
+
+
+
+
+
+
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+
+
+
+
+
+
+
+
+
+
+
+ Calibrators.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\Calibrators.c
+
+
+ AbsEncoder.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\AbsEncoder.c
+
+
+ Controller.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\Controller.c
+
+
+ Joint.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\Joint.c
+
+
+ JointSet.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\JointSet.c
+
+
+ Motor.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\Motor.c
+
+
+ Pid.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\Pid.c
+
+
+ Trajectory.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\Trajectory.c
+
+
+ WatchDog.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\WatchDog.c
+
+
+
+
+ eo-comm-transport
+
+
+ EOagent.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOagent.c
+
+
+ EOconfirmationManager.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOconfirmationManager.c
+
+
+ EOhostTransceiver.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOhostTransceiver.c
+
+
+ EOnvSet.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOnvSet.c
+
+
+ EOproxy.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOproxy.c
+
+
+ EOnv.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOnv.c
+
+
+ EOreceiver.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOreceiver.c
+
+
+ EOrop.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOrop.c
+
+
+ EOropframe.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOropframe.c
+
+
+ EOtheBOARDtransceiver.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtheBOARDtransceiver.c
+
+
+ EOtheFormer.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtheFormer.c
+
+
+ EOtheParser.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtheParser.c
+
+
+ EOtransceiver.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtransceiver.c
+
+
+ EOtransmitter.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtransmitter.c
+
+
+ EOtheInfoDispatcher.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtheInfoDispatcher.c
+
+
+
+
+ eo-protocol
+
+
+ EoProtocol.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocol.c
+
+
+ EoProtocolAS_fun.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolAS_fun.c
+
+
+ EoProtocolAS_rom.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolAS_rom.c
+
+
+ EoProtocolEPs.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolEPs.c
+
+
+ EoProtocolMC_fun.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolMC_fun.c
+
+
+ EoProtocolMC_rom.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolMC_rom.c
+
+
+ EoProtocolMN_fun.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolMN_fun.c
+
+
+ EoProtocolMN_rom.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolMN_rom.c
+
+
+ EoProtocolSK_fun.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolSK_fun.c
+
+
+ EoProtocolSK_rom.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolSK_rom.c
+
+
+ EoError.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoError.c
+
+
+ EoBoards.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoBoards.c
+
+
+ EoAnalogSensors.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoAnalogSensors.c
+
+
+ EoManagement.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoManagement.c
+
+
+ EoUpdaterProtocol.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoUpdaterProtocol.c
+
+
+ EoMotionControl.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoMotionControl.c
+
+
+
+
+ eo-protocol-cfg-callbacks
+
+
+ EoProtocolMN_fun_ems4rd.c
+ 1
+ ..\cfg\eoprot-callbacks\EoProtocolMN_fun_ems4rd.c
+
+
+ EoProtocolAS_fun_ems4rd.c
+ 1
+ ..\cfg\eoprot-callbacks\EoProtocolAS_fun_ems4rd.c
+
+
+ EoProtocolSK_fun_ems4rd.c
+ 1
+ ..\cfg\eoprot-callbacks\EoProtocolSK_fun_ems4rd.c
+
+
+ EoProtocolMC_fun_ems4rd.c
+ 1
+ ..\cfg\eoprot-callbacks\EoProtocolMC_fun_ems4rd.c
+
+
+
+
+ eoprot-can
+
+
+ EOtheCANmapping.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\EOtheCANmapping.c
+
+
+ EOtheCANprotocol.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\EOtheCANprotocol.c
+
+
+ EOtheCANservice.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\EOtheCANservice.c
+
+
+
+
+ eoprot-can-cfg-protocol
+
+
+ EoCANprotASperiodic.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotASperiodic.c
+
+
+ EoCANprotASpolling.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotASpolling.c
+
+
+ EoCANprotMCperiodic.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotMCperiodic.c
+
+
+ EoCANprotMCpolling.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotMCpolling.c
+
+
+ EoCANprotSKperiodic.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotSKperiodic.c
+
+
+ EoCANprotISperiodic.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotISperiodic.c
+
+
+
+
+ eo-board
+
+
+ EOtheEntities.c
+ 1
+ ..\..\..\..\..\embobj\plus\board\EOtheEntities.c
+
+
+ EOappEncodersReader.c
+ 1
+ ..\..\..\..\..\embobj\plus\board\EOappEncodersReader.c
+
+
+
+
+ embot::core
+
+
+ embot_cif_core.cpp
+ 8
+ ..\..\..\..\..\embot\cif\embot_cif_core.cpp
+
+
+ embot_core.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core.cpp
+
+
+ embot_core_binary.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core_binary.cpp
+
+
+ embot_core_utils.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core_utils.cpp
+
+
+
+
+ embot::prot::eth
+
+
+ embot_cif_diagnostic.cpp
+ 8
+ ..\..\..\..\..\embot\cif\embot_cif_diagnostic.cpp
+
+
+ embot_prot_eth_diagnostic_Host.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\prot\eth\embot_prot_eth_diagnostic_Host.cpp
+
+
+ embot_prot_eth_diagnostic_Node.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\prot\eth\embot_prot_eth_diagnostic_Node.cpp
+
+
+ embot_prot_eth_rop.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\prot\eth\embot_prot_eth_rop.cpp
+
+
+ embot_prot_eth_ropframe.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\prot\eth\embot_prot_eth_ropframe.cpp
+
+
+
+
+
+
+ ems-trace-osal
+ 0x4
+ ARM-ADS
+ 6160000::V6.16::ARMCLANG
+ 1
+
+
+ STM32F407IG
+ STMicroelectronics
+ Keil.STM32F4xx_DFP.2.15.0
+ http://www.keil.com/pack/
+ IRAM(0x20000000-0x2001FFFF) IRAM2(0x10000000-0x1000FFFF) IROM(0x8000000-0x80FFFFF) CLOCK(25000000) CPUTYPE("Cortex-M4") FPU2
+
+ "Startup\ST\STM32F4xx\startup_stm32f4xx.s" ("STM32F4xx Startup Code")
+ UL2CM3(-O207 -S0 -C0 -FO7 -FD20000000 -FC800 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000)
+ 6104
+ stm32f4xx.h
+
+
+
+
+
+
+
+
+
+ SFD\ST\STM32F4xx\STM32F40x.sfr
+ 0
+ 0
+
+
+
+ ST\STM32F4xx\
+ ST\STM32F4xx\
+
+ 0
+ 0
+ 0
+ 0
+ 1
+
+ .\Obj\
+ ems004
+ 1
+ 0
+ 1
+ 1
+ 1
+ .\Lst\
+ 1
+ 0
+ 0
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 0
+ cmd.exe /C copy .\Obj\ems004.hex ..\bin\ems004.hex
+
+ 0
+ 0
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 3
+
+
+ 1
+
+
+ SARMCM3.DLL
+ -MPU -REMAP
+ DCM.DLL
+ -pCM4
+ SARMCM3.DLL
+ -MPU
+ TCM.DLL
+ -pCM4
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 16
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+ 1
+ 4100
+
+ 1
+ BIN\ULP2CM3.DLL
+ "" ()
+
+
+
+
+ 0
+
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ "Cortex-M4"
+
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ 0
+ 2
+ 0
+ 0
+ 1
+ 0
+ 8
+ 0
+ 0
+ 0
+ 0
+ 3
+ 5
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x20000
+
+
+ 1
+ 0x8000000
+ 0x100000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x8000000
+ 0x100000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x20000
+
+
+ 0
+ 0x10000000
+ 0x10000
+
+
+
+
+
+ 1
+ 6
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 3
+ 0
+ 1
+ 1
+ 0
+ 0
+ 3
+ 8
+ 1
+ 1
+ 0
+ 0
+ 0
+
+ -DFATALERR_trace_TMRMAN -DFATALERR_trace_RTOS -DEOTHESERVICES_disable_thePOS -Wno-pragma-pack -Wno-deprecated-register -DUSE_EMS4RD -DUSE_OLD_BUGGY_MODE_TO_SEND_UP_FULLSCALE_WITH_INVERTED_BYTES
+ DIAGNOSTIC2_enabled DIAGNOSTIC2_receive_from_daemon DIAGNOSTIC2_send_to_yarprobotinterface _no_DIAGNOSTIC2_send_to_daemon
+
+ ..\..\..\..\..\libs\highlevel\abslayer\ipal\api;..\..\..\..\..\libs\highlevel\abslayer\osal\api;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core;..\..\..\..\..\embobj\core\exec\multitask;..\..\..\..\..\embobj\plus\embenv;..\..\..\..\..\embobj\plus\ipnet;..\..\..\..\..\libs\highlevel\services\embenv\api;..\..\..\..\..\libs\midware\eventviewer\api;..\cfg\eoemsappl;..\cfg\abslayer;..\..\..\..\..\embobj\plus\ctrloop;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\api;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport;..\..\..\..\..\embobj\plus\board\ems001;..\..\..\..\..\embobj\plus\mc;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\utils;.;..\cfg\eoprot-callbacks;..\src\eoappservices;..\cfg\eoappservices\icub-can-proto;..\cfg\eoappservices\icub-can-net;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\robotconfig\v1\backdoor;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\opcprot;..\..\..\..\..\..\..\..\..\icub-firmware-shared\can\canProtocolLib;..\cfg\eoprot-boards;..\..\..\..\..\libs\highlevel\abslayer\hal2\api;..\..\..\..\ems004\env\cfg;..\cfg\eoemsappl;..\..\..\..\..\libs\highlevel\services\embodyrobot;..\..\..\..\..\libs\midware\hl-plus\api;..\..\..\..\..\embobj\plus\can;..\..\..\..\..\embobj\plus\can\config-can-mapping;..\..\..\..\..\embobj\plus\can\config-can-protocol;..\..\..\..\..\embobj\plus\board;..\..\..\..\mc4plus\appl\v2\src\eoappservices;..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embot;..\..\..\..\..\embot\cif;..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core;..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\prot\eth
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 4
+
+
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0x08000000
+ 0x20000000
+
+ .\eApplication-v6.sct
+
+
+ --diag_suppress=L6329
+
+
+
+
+
+
+
+ main
+
+
+ eom_emsappl_main-test-osalos2.cpp
+ 1
+ ..\main\eom_emsappl_main-test-osalos2.cpp
+
+
+
+
+ abslayer-lib
+
+
+ ipal.base.medium.cm4.lib
+ 4
+ ..\..\..\..\..\libs\highlevel\abslayer\ipal\lib\ipal.base.medium.cm4.lib
+
+
+ osal.cmsisos2.lib
+ 4
+ ..\..\..\..\..\libs\highlevel\abslayer\osal\lib\osal.cmsisos2.lib
+
+
+ 2
+ 0
+ 0
+ 0
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 11
+
+
+ 1
+
+
+
+
+
+ hal2.ems4rd.ethdbg.lib
+ 4
+ ..\..\..\..\..\libs\highlevel\abslayer\hal2\lib\hal2.ems4rd.ethdbg.lib
+
+
+
+
+ abslayer-cfg
+
+
+ hal_core_cfg.h
+ 5
+ ..\cfg\abslayer\hal_core_cfg.h
+
+
+ ipal_cfg.h
+ 5
+ ..\cfg\abslayer\ipal_cfg.h
+
+
+ hal_core_cfg.c
+ 1
+ ..\cfg\abslayer\hal_core_cfg.c
+
+
+ ipal_cfg.c
+ 1
+ ..\cfg\abslayer\ipal_cfg.c
+
+
+ hal_startup_mpu_name_stm32f407ig-v6.s
+ 2
+ ..\cfg\abslayer\hal_startup_mpu_name_stm32f407ig-v6.s
+
+
+ osalos2_cfg.c
+ 1
+ ..\cfg\abslayer\osalos2_cfg.c
+
+
+
+
+ eo-core
+
+
+ EOaction.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOaction.c
+
+
+ EOarray.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOarray.c
+
+
+ EoCommon.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EoCommon.c
+
+
+ EOconstarray.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOconstarray.c
+
+
+ EOconstvector.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOconstvector.c
+
+
+ EOdeque.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOdeque.c
+
+
+ EOfifo.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOfifo.c
+
+
+ EOfifoByte.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOfifoByte.c
+
+
+ EOfifoWord.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOfifoWord.c
+
+
+ EOlist.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOlist.c
+
+
+ EOpacket.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOpacket.c
+
+
+ EOsm.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOsm.c
+
+
+ EOtheErrorManager.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOtheErrorManager.c
+
+
+ EOtheLEDpulser.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOtheLEDpulser.c
+
+
+ EOtheMemoryPool.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOtheMemoryPool.c
+
+
+ EOtimer.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOtimer.c
+
+
+ EOumlsm.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOumlsm.c
+
+
+ EOvector.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOvector.c
+
+
+ EOVmutex.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOVmutex.c
+
+
+ EOVtask.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOVtask.c
+
+
+ EOVtheCallbackManager.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOVtheCallbackManager.c
+
+
+ EOVtheSystem.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOVtheSystem.c
+
+
+ EOVtheTimerManager.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core\EOVtheTimerManager.c
+
+
+
+
+ eo-core-mee
+
+
+ EOMmutex.c
+ 1
+ ..\..\..\..\..\embobj\core\exec\multitask\EOMmutex.c
+
+
+ EOMtask.c
+ 1
+ ..\..\..\..\..\embobj\core\exec\multitask\EOMtask.c
+
+
+ EOMtheCallbackManager.c
+ 1
+ ..\..\..\..\..\embobj\core\exec\multitask\EOMtheCallbackManager.c
+
+
+ EOMtheSystem.c
+ 1
+ ..\..\..\..\..\embobj\core\exec\multitask\EOMtheSystem.c
+
+
+ EOMtheTimerManager.c
+ 1
+ ..\..\..\..\..\embobj\core\exec\multitask\EOMtheTimerManager.c
+
+
+
+
+ eo-ipnet
+
+
+ EOMtheIPnet.c
+ 1
+ ..\..\..\..\..\embobj\plus\ipnet\EOMtheIPnet.c
+
+
+ EOsocket.c
+ 1
+ ..\..\..\..\..\embobj\plus\ipnet\EOsocket.c
+
+
+ EOsocketDatagram.c
+ 1
+ ..\..\..\..\..\embobj\plus\ipnet\EOsocketDatagram.c
+
+
+ EOVtheIPnet.c
+ 1
+ ..\..\..\..\..\embobj\plus\ipnet\EOVtheIPnet.c
+
+
+
+
+ eo-arm-env
+
+
+ EOtheARMenvironment.c
+ 1
+ ..\..\..\..\..\embobj\plus\embenv\EOtheARMenvironment.c
+
+
+ EOVtheEnvironment.c
+ 1
+ ..\..\..\..\..\embobj\plus\embenv\EOVtheEnvironment.c
+
+
+
+
+ eventviewer
+
+
+ eventviewer.c
+ 1
+ ..\..\..\..\..\libs\midware\eventviewer\src\eventviewer.c
+
+
+
+
+ arm-services-embenv
+
+
+ eEcommon.c
+ 1
+ ..\..\..\..\..\libs\highlevel\services\embenv\src\eEcommon.c
+
+
+ eEsharedServices.c
+ 1
+ ..\..\..\..\..\libs\highlevel\services\embenv\src\eEsharedServices.c
+
+
+ shalBASE.c
+ 1
+ ..\..\..\..\..\libs\highlevel\services\embenv\src\shalBASE.c
+
+
+ shalINFO.c
+ 1
+ ..\..\..\..\..\libs\highlevel\services\embenv\src\shalINFO.c
+
+
+ shalPART.c
+ 1
+ ..\..\..\..\..\libs\highlevel\services\embenv\src\shalPART.c
+
+
+
+
+ eo-emsappl
+
+
+ eOcfg_sm_EMSappl.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\eOcfg_sm_EMSappl.c
+
+
+ EOMtheEMSapplCfg.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSapplCfg.c
+
+
+ EOMtheEMSbackdoor.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSbackdoor.c
+
+
+ EOMtheEMSbackdoortransceiver.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSbackdoortransceiver.c
+
+
+ EOMtheEMSconfigurator.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSconfigurator.c
+
+
+ EOMtheEMSdiscoverylistener.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSdiscoverylistener.c
+
+
+ EOMtheEMSdiscoverytransceiver.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSdiscoverytransceiver.c
+
+
+ EOMtheEMSerror.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSerror.c
+
+
+ EOMtheEMSrunner.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSrunner.c
+
+
+ EOMtheEMSsocket.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSsocket.c
+
+
+ EOMtheEMStransceiver.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMStransceiver.c
+
+
+ EOMtheEMSappl.c
+ 1
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSappl.c
+
+
+
+
+ eo-emsappl-cfg
+
+
+ EOMtheEMSapplCfg_cfg.h
+ 5
+ ..\cfg\eoemsappl\EOMtheEMSapplCfg_cfg.h
+
+
+ overridden_runner.c
+ 1
+ ..\cfg\eoemsappl\overridden_runner.c
+
+
+ overridden_appl.c
+ 1
+ ..\cfg\eoemsappl\overridden_appl.c
+
+
+ overridden_sm.c
+ 1
+ ..\cfg\eoemsappl\overridden_sm.c
+
+
+ overridden_configurator.c
+ 1
+ ..\cfg\eoemsappl\overridden_configurator.c
+
+
+ overridden_backdoortransceiver.c
+ 1
+ ..\cfg\eoemsappl\overridden_backdoortransceiver.c
+
+
+ overridden_error.c
+ 1
+ ..\cfg\eoemsappl\overridden_error.c
+
+
+ overridden_controller.c
+ 1
+ ..\cfg\eoemsappl\overridden_controller.c
+
+
+ testRTC.c
+ 1
+ ..\src\eoappservices\testRTC.c
+
+
+
+
+ opc-protocol
+
+
+ OPCprotocolManager.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\opcprot\OPCprotocolManager.c
+
+
+
+
+ appl-services
+
+
+ EOMtheEMSdiagnostic.cpp
+ 8
+ ..\..\..\..\..\embobj\plus\ctrloop\EOMtheEMSdiagnostic.cpp
+
+
+ EOtheServices.c
+ 1
+ ..\src\eoappservices\EOtheServices.c
+
+
+ EOtheVirtualStrain.c
+ 1
+ ..\src\eoappservices\EOtheVirtualStrain.c
+
+
+ EOtheMAIS.c
+ 1
+ ..\src\eoappservices\EOtheMAIS.c
+
+
+ EOtheSTRAIN.c
+ 1
+ ..\src\eoappservices\EOtheSTRAIN.c
+
+
+ EOtheSKIN.c
+ 1
+ ..\src\eoappservices\EOtheSKIN.c
+
+
+ EOtheMC4boards.c
+ 1
+ ..\src\eoappservices\EOtheMC4boards.c
+
+
+ EOtheCANdiscovery2.c
+ 1
+ ..\src\eoappservices\EOtheCANdiscovery2.c
+
+
+ EOtheMotionController.c
+ 1
+ ..\src\eoappservices\EOtheMotionController.c
+
+
+ EOtheEncoderReader.c
+ 1
+ ..\src\eoappservices\EOtheEncoderReader.c
+
+
+ EOtheETHmonitor.c
+ 1
+ ..\src\eoappservices\EOtheETHmonitor.c
+
+
+ EOCurrentsWatchdog.c
+ 1
+ ..\src\eoappservices\EOCurrentsWatchdog.c
+
+
+ EOtheInertials2.c
+ 1
+ ..\src\eoappservices\EOtheInertials2.c
+
+
+ EOwatchdog.c
+ 1
+ ..\src\eoappservices\EOwatchdog.c
+
+
+ EOtheSharedHW.c
+ 1
+ ..\src\eoappservices\EOtheSharedHW.c
+
+
+ EOtheMEMS.c
+ 1
+ ..\src\eoappservices\EOtheMEMS.c
+
+
+ EOtheInertials3.c
+ 1
+ ..\src\eoappservices\EOtheInertials3.c
+
+
+ EOtheTemperatures.c
+ 1
+ ..\src\eoappservices\EOtheTemperatures.c
+
+
+ EOthePSC.c
+ 1
+ ..\src\eoappservices\EOthePSC.c
+
+
+ EOthePOS.c
+ 1
+ ..\src\eoappservices\EOthePOS.c
+
+
+ EOtheFatalError.c
+ 1
+ ..\src\eoappservices\EOtheFatalError.c
+
+
+
+
+ eo-motor-controller
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 11
+
+
+ 1
+
+
+
+ 2
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 0
+ 2
+ 2
+ 0
+ 2
+ 2
+
+
+
+
+
+
+
+
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+
+
+
+
+
+
+
+
+
+
+
+ Calibrators.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\Calibrators.c
+
+
+ AbsEncoder.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\AbsEncoder.c
+
+
+ Controller.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\Controller.c
+
+
+ Joint.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\Joint.c
+
+
+ JointSet.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\JointSet.c
+
+
+ Motor.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\Motor.c
+
+
+ Pid.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\Pid.c
+
+
+ Trajectory.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\Trajectory.c
+
+
+ WatchDog.c
+ 1
+ ..\..\..\..\..\embobj\plus\mc\WatchDog.c
+
+
+
+
+ eo-comm-transport
+
+
+ EOagent.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOagent.c
+
+
+ EOconfirmationManager.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOconfirmationManager.c
+
+
+ EOhostTransceiver.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOhostTransceiver.c
+
+
+ EOnvSet.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOnvSet.c
+
+
+ EOproxy.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOproxy.c
+
+
+ EOnv.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOnv.c
+
+
+ EOreceiver.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOreceiver.c
+
+
+ EOrop.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOrop.c
+
+
+ EOropframe.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOropframe.c
+
+
+ EOtheBOARDtransceiver.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtheBOARDtransceiver.c
+
+
+ EOtheFormer.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtheFormer.c
+
+
+ EOtheParser.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtheParser.c
+
+
+ EOtransceiver.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtransceiver.c
+
+
+ EOtransmitter.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtransmitter.c
+
+
+ EOtheInfoDispatcher.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\transport\EOtheInfoDispatcher.c
+
+
+
+
+ eo-protocol
+
+
+ EoProtocol.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocol.c
+
+
+ EoProtocolAS_fun.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolAS_fun.c
+
+
+ EoProtocolAS_rom.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolAS_rom.c
+
+
+ EoProtocolEPs.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolEPs.c
+
+
+ EoProtocolMC_fun.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolMC_fun.c
+
+
+ EoProtocolMC_rom.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolMC_rom.c
+
+
+ EoProtocolMN_fun.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolMN_fun.c
+
+
+ EoProtocolMN_rom.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolMN_rom.c
+
+
+ EoProtocolSK_fun.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolSK_fun.c
+
+
+ EoProtocolSK_rom.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\protocol\src\EoProtocolSK_rom.c
+
+
+ EoError.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoError.c
+
+
+ EoBoards.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoBoards.c
+
+
+ EoAnalogSensors.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoAnalogSensors.c
+
+
+ EoManagement.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoManagement.c
+
+
+ EoUpdaterProtocol.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoUpdaterProtocol.c
+
+
+ EoMotionControl.c
+ 1
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\plus\comm-v2\icub\EoMotionControl.c
+
+
+
+
+ eo-protocol-cfg-callbacks
+
+
+ EoProtocolMN_fun_ems4rd.c
+ 1
+ ..\cfg\eoprot-callbacks\EoProtocolMN_fun_ems4rd.c
+
+
+ EoProtocolAS_fun_ems4rd.c
+ 1
+ ..\cfg\eoprot-callbacks\EoProtocolAS_fun_ems4rd.c
+
+
+ EoProtocolSK_fun_ems4rd.c
+ 1
+ ..\cfg\eoprot-callbacks\EoProtocolSK_fun_ems4rd.c
+
+
+ EoProtocolMC_fun_ems4rd.c
+ 1
+ ..\cfg\eoprot-callbacks\EoProtocolMC_fun_ems4rd.c
+
+
+
+
+ eoprot-can
+
+
+ EOtheCANmapping.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\EOtheCANmapping.c
+
+
+ EOtheCANprotocol.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\EOtheCANprotocol.c
+
+
+ EOtheCANservice.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\EOtheCANservice.c
+
+
+
+
+ eoprot-can-cfg-protocol
+
+
+ EoCANprotASperiodic.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotASperiodic.c
+
+
+ EoCANprotASpolling.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotASpolling.c
+
+
+ EoCANprotMCperiodic.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotMCperiodic.c
+
+
+ EoCANprotMCpolling.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotMCpolling.c
+
+
+ EoCANprotSKperiodic.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotSKperiodic.c
+
+
+ EoCANprotISperiodic.c
+ 1
+ ..\..\..\..\..\embobj\plus\can\config-can-protocol\EoCANprotISperiodic.c
+
+
+
+
+ eo-board
+
+
+ EOtheEntities.c
+ 1
+ ..\..\..\..\..\embobj\plus\board\EOtheEntities.c
+
+
+ EOappEncodersReader.c
+ 1
+ ..\..\..\..\..\embobj\plus\board\EOappEncodersReader.c
+
+
+
+
+ embot::core
+
+
+ embot_cif_core.cpp
+ 8
+ ..\..\..\..\..\embot\cif\embot_cif_core.cpp
+
+
+ embot_core.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core.cpp
+
+
+ embot_core_binary.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core_binary.cpp
+
+
+ embot_core_utils.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core_utils.cpp
+
+
+
+
+ embot::prot::eth
+
+
+ embot_cif_diagnostic.cpp
+ 8
+ ..\..\..\..\..\embot\cif\embot_cif_diagnostic.cpp
+
+
+ embot_prot_eth_diagnostic_Host.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\prot\eth\embot_prot_eth_diagnostic_Host.cpp
+
+
+ embot_prot_eth_diagnostic_Node.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\prot\eth\embot_prot_eth_diagnostic_Node.cpp
+
+
+ embot_prot_eth_rop.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\prot\eth\embot_prot_eth_rop.cpp
+
+
+ embot_prot_eth_ropframe.cpp
+ 8
+ ..\..\..\..\..\..\..\..\..\icub-firmware-shared\embot\prot\eth\embot_prot_eth_ropframe.cpp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ems4rd
+ 0
+ 1
+
+
+
+
+
diff --git a/emBODY/eBcode/arch-arm/board/ems004/appl/v2/src/eoappservices/EOtheFatalError.c b/emBODY/eBcode/arch-arm/board/ems004/appl/v2/src/eoappservices/EOtheFatalError.c
index 025187fe93..b3862e0447 100644
--- a/emBODY/eBcode/arch-arm/board/ems004/appl/v2/src/eoappservices/EOtheFatalError.c
+++ b/emBODY/eBcode/arch-arm/board/ems004/appl/v2/src/eoappservices/EOtheFatalError.c
@@ -339,6 +339,25 @@ static const char * s_get_threaname_mode1(fatal_error_descriptor_t *des)
return(eom_task_GetName(tsk));
}
+#if defined(OSAL_USE_rtos_cmsisos2)
+
+static const char * s_get_threaname_mode2(const fatal_error_descriptor_t *des, osal_task_id_t *ptid)
+{
+// osal_task_id_t tid1 = 0;
+// osal_task_id_get(osal_task_get(osal_callerAUTOdetect), &tid1);
+// volatile osal_task_id_t tid2 = tid1;
+// tid2 = tid2;
+
+ osal_task_id_t tid = 0;
+
+ osal_task_id_get(osal_task_get(osal_callerAUTOdetect), &tid);
+
+ *ptid = tid;
+
+ return s_tid_to_threadname(tid);
+
+}
+#else
extern void * oosiit_tsk_self(void);
extern uint8_t oosiit_tsk_get_id(void * tp);
@@ -355,6 +374,7 @@ static const char * s_get_threaname_mode2(const fatal_error_descriptor_t *des, o
return s_tid_to_threadname(tid);
}
+#endif
static const char * s_get_threadinfo(const fatal_error_descriptor_t *des, osal_task_id_t *tid)
{
@@ -461,12 +481,16 @@ static const char * s_get_threadstring(const char *s, osal_task_id_t tid)
static uint32_t s_getmillitime(void)
{
+#if defined(OSAL_USE_rtos_cmsisos2)
+ return 0;
+#else
// using oosiit_time and osal_info_get_tick() we DONT call the SVC handler,
// so we have better possibility of success even in case of fatal disaster...
extern volatile uint64_t oosiit_time;
uint64_t ms = oosiit_time * osal_info_get_tick() / 1000;
-
+
return ms;
+#endif
}
static void s_save_standard(fatal_error_descriptor_t *des)
diff --git a/emBODY/eBcode/arch-arm/board/mtb4/application/proj/mtb4-application-v6.uvoptx b/emBODY/eBcode/arch-arm/board/mtb4/application/proj/mtb4-application-v6.uvoptx
index 437837bcec..173689044c 100644
--- a/emBODY/eBcode/arch-arm/board/mtb4/application/proj/mtb4-application-v6.uvoptx
+++ b/emBODY/eBcode/arch-arm/board/mtb4/application/proj/mtb4-application-v6.uvoptx
@@ -1602,7 +1602,7 @@
embot-hw
- 1
+ 0
0
0
0
@@ -1766,7 +1766,7 @@
other-hw
- 1
+ 0
0
0
0
@@ -1842,7 +1842,7 @@
embot::hw::bsp
- 1
+ 0
0
0
0
@@ -1860,12 +1860,4 @@
-
- ::CMSIS
- 0
- 0
- 0
- 1
-
-
diff --git a/emBODY/eBcode/arch-arm/board/mtb4/application/proj/mtb4-application-v6.uvprojx b/emBODY/eBcode/arch-arm/board/mtb4/application/proj/mtb4-application-v6.uvprojx
index a766712bc0..1fece854dd 100644
--- a/emBODY/eBcode/arch-arm/board/mtb4/application/proj/mtb4-application-v6.uvprojx
+++ b/emBODY/eBcode/arch-arm/board/mtb4/application/proj/mtb4-application-v6.uvprojx
@@ -17,7 +17,7 @@
STM32L433RCTx
STMicroelectronics
Keil.STM32L4xx_DFP.2.5.0
- https://www.keil.com/pack/
+ http://www.keil.com/pack/
IRAM(0x20000000,0x0000C000) IRAM2(0x10000000,0x00004000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M4") FPU2 DSP CLOCK(12000000) ELITTLE
@@ -832,78 +832,6 @@
-
- ::CMSIS
-
-
- 0
- 0
- 0
- 0
- 0
- 0
- 2
- 2
- 2
- 2
- 11
-
-
- 1
-
-
-
- 2
- 0
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 0
- 2
- 2
- 2
- 2
- 2
- 0
- 0
- 2
- 2
- 2
- 2
- 2
-
-
-
-
-
-
-
-
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 0
-
-
-
-
-
-
-
-
-
-
@@ -917,7 +845,7 @@
STM32L433RCTx
STMicroelectronics
Keil.STM32L4xx_DFP.2.5.0
- https://www.keil.com/pack/
+ http://www.keil.com/pack/
IRAM(0x20000000,0x0000C000) IRAM2(0x10000000,0x00004000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M4") FPU2 DSP CLOCK(12000000) ELITTLE
@@ -1700,92 +1628,20 @@
-
- ::CMSIS
-
-
- 0
- 0
- 0
- 0
- 0
- 0
- 2
- 2
- 2
- 2
- 11
-
-
- 1
-
-
-
- 2
- 0
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 0
- 2
- 2
- 2
- 2
- 2
- 0
- 0
- 2
- 2
- 2
- 2
- 2
-
-
-
-
-
-
-
-
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 0
-
-
-
-
-
-
-
-
-
-
mtb4-v190
0x4
ARM-ADS
- 6150000::V6.15::ARMCLANG
+ 6160000::V6.16::ARMCLANG
1
STM32L433RCTx
STMicroelectronics
Keil.STM32L4xx_DFP.2.5.0
- https://www.keil.com/pack/
+ http://www.keil.com/pack/
IRAM(0x20000000,0x0000C000) IRAM2(0x10000000,0x00004000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M4") FPU2 DSP CLOCK(12000000) ELITTLE
@@ -2638,92 +2494,20 @@
-
- ::CMSIS
-
-
- 0
- 0
- 0
- 0
- 0
- 0
- 2
- 2
- 2
- 2
- 11
-
-
- 1
-
-
-
- 2
- 0
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 0
- 2
- 2
- 2
- 2
- 2
- 0
- 0
- 2
- 2
- 2
- 2
- 2
-
-
-
-
-
-
-
-
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 0
-
-
-
-
-
-
-
-
-
-
mtb4-v190-cmsisos2
0x4
ARM-ADS
- 6140000::V6.14::ARMCLANG
+ 6160000::V6.16::ARMCLANG
1
STM32L433RCTx
STMicroelectronics
Keil.STM32L4xx_DFP.2.5.0
- https://www.keil.com/pack/
+ http://www.keil.com/pack/
IRAM(0x20000000,0x0000C000) IRAM2(0x10000000,0x00004000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M4") FPU2 DSP CLOCK(12000000) ELITTLE
@@ -3045,7 +2829,7 @@
-Wno-pragma-pack -Wno-deprecated-register
EMBOT_USE_rtos_cmsisos2 USE_STM32HAL STM32HAL_BOARD_MTB4 STM32HAL_DRIVER_V190
- ..\src-plus;..\..\..\..\..\..\eBcode\arch-arm\libs\highlevel\abslayer\cmsisos2\api;..\..\..\..\..\..\eBcode\arch-arm\embobj\core\exec\multitask;..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core;..\..\..\..\..\..\eBcode\arch-arm\libs\lowlevel\stm32hal\api;..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core;..\..\..\..\..\..\eBcode\arch-arm\embot\app;..\..\..\..\..\..\eBcode\arch-arm\embot\i2h;..\..\..\..\..\..\eBcode\arch-arm\embot\hw;..\..\..\..\..\..\eBcode\arch-arm\embot\os;..\..\..\..\..\..\eBcode\arch-arm\embot;..\src\others;..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core;..\..\..\..\..\..\..\..\icub-firmware-shared\can\canProtocolLib;..\..\..\..\embot\app\skeleton;..\..\..\..\embot\prot\can
+ ..\src-plus;..\..\..\..\..\..\eBcode\arch-arm\libs\highlevel\abslayer\cmsisos2\api;..\..\..\..\..\..\eBcode\arch-arm\embobj\core\exec\multitask;..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core;..\..\..\..\..\..\eBcode\arch-arm\libs\lowlevel\stm32hal\api;..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core;..\..\..\..\..\..\eBcode\arch-arm\embot\app;..\..\..\..\..\..\eBcode\arch-arm\embot\i2h;..\..\..\..\..\..\eBcode\arch-arm\embot\hw;..\..\..\..\..\..\eBcode\arch-arm\embot\os;..\..\..\..\..\..\eBcode\arch-arm\embot;..\src\others;..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core;..\..\..\..\..\..\..\..\icub-firmware-shared\can\canProtocolLib;..\..\..\..\embot\app\skeleton;..\..\..\..\embot\prot\can;..\..\bsp
@@ -3627,95 +3411,13 @@
-
- ::CMSIS
-
-
- 0
- 0
- 0
- 0
- 0
- 0
- 2
- 2
- 2
- 2
- 11
-
-
- 1
-
-
-
- 2
- 0
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 0
- 2
- 2
- 2
- 2
- 2
- 0
- 0
- 2
- 2
- 2
- 2
- 2
-
-
-
-
-
-
-
-
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/emBODY/eBcode/arch-arm/board/stm32h745disco/examples/embot-os/proj/stm32h745disco-embot-os.uvoptx b/emBODY/eBcode/arch-arm/board/stm32h745disco/examples/embot-os/proj/stm32h745disco-embot-os.uvoptx
index f2b2d1596a..bec7c011b5 100644
--- a/emBODY/eBcode/arch-arm/board/stm32h745disco/examples/embot-os/proj/stm32h745disco-embot-os.uvoptx
+++ b/emBODY/eBcode/arch-arm/board/stm32h745disco/examples/embot-os/proj/stm32h745disco-embot-os.uvoptx
@@ -75,7 +75,7 @@
1
0
- 0
+ 1
18
@@ -160,6 +160,16 @@
1
SystemCoreClock,0x0A
+
+ 2
+ 1
+ cbk
+
+
+ 3
+ 1
+ osKernelReady
+
@@ -172,7 +182,7 @@
1
0
- 0x20003134
+ (uint32_t *)thread->stack_mem
0
@@ -282,7 +292,7 @@
1
0
- 1
+ 0
18
diff --git a/emBODY/eBcode/arch-arm/board/stm32h745disco/examples/embot-os/proj/stm32h745disco-embot-os.uvprojx b/emBODY/eBcode/arch-arm/board/stm32h745disco/examples/embot-os/proj/stm32h745disco-embot-os.uvprojx
index c2356b7205..b3f6f39f91 100644
--- a/emBODY/eBcode/arch-arm/board/stm32h745disco/examples/embot-os/proj/stm32h745disco-embot-os.uvprojx
+++ b/emBODY/eBcode/arch-arm/board/stm32h745disco/examples/embot-os/proj/stm32h745disco-embot-os.uvprojx
@@ -313,7 +313,7 @@
1
- 3
+ 1
0
0
1
diff --git a/emBODY/eBcode/arch-arm/board/strain2/application/proj/strain2-application-v6.uvoptx b/emBODY/eBcode/arch-arm/board/strain2/application/proj/strain2-application-v6.uvoptx
index 49e612be72..b5b6e8c5ec 100644
--- a/emBODY/eBcode/arch-arm/board/strain2/application/proj/strain2-application-v6.uvoptx
+++ b/emBODY/eBcode/arch-arm/board/strain2/application/proj/strain2-application-v6.uvoptx
@@ -1104,7 +1104,7 @@
0
ULP2CM3
- -UP1123199 -O206 -S13 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO65554 -TC16000000 -TT16000000 -TP18 -TDX0 -TDD0 -TDS8000 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32L4xx_256.FLM -FS08000000 -FL040000 -FP0($$Device:STM32L433RCTx$CMSIS\Flash\STM32L4xx_256.FLM)
+ -UP0948199 -O206 -S13 -C0 -P00000000 -N00("ARM CoreSight SW-DP") -D00(2BA01477) -L00(0) -TO65554 -TC16000000 -TT16000000 -TP18 -TDX0 -TDD0 -TDS8000 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32L4xx_256.FLM -FS08000000 -FL040000 -FP0($$Device:STM32L433RCTx$CMSIS\Flash\STM32L4xx_256.FLM)
0
@@ -1177,7 +1177,7 @@
0
1
- 0
+ 1
0
0
0
@@ -1225,7 +1225,7 @@
main
- 1
+ 0
0
0
0
@@ -1413,7 +1413,7 @@
embot
- 1
+ 0
0
0
0
@@ -1749,7 +1749,7 @@
embot-application
- 1
+ 0
0
0
0
@@ -2091,12 +2091,4 @@
-
- ::CMSIS
- 0
- 0
- 0
- 1
-
-
diff --git a/emBODY/eBcode/arch-arm/board/strain2/application/proj/strain2-application-v6.uvprojx b/emBODY/eBcode/arch-arm/board/strain2/application/proj/strain2-application-v6.uvprojx
index 14d30471ac..41626b0416 100644
--- a/emBODY/eBcode/arch-arm/board/strain2/application/proj/strain2-application-v6.uvprojx
+++ b/emBODY/eBcode/arch-arm/board/strain2/application/proj/strain2-application-v6.uvprojx
@@ -16,8 +16,8 @@
STM32L433RCTx
STMicroelectronics
- Keil.STM32L4xx_DFP.2.2.0
- http://www.keil.com/pack
+ Keil.STM32L4xx_DFP.2.5.0
+ http://www.keil.com/pack/
IRAM(0x20000000,0x0000C000) IRAM2(0x10000000,0x00004000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M4") FPU2 DSP CLOCK(12000000) ELITTLE
@@ -185,6 +185,7 @@
0
2
0
+ 0
1
0
8
@@ -351,7 +352,7 @@
0
0
0
- 0
+ 4
@@ -810,78 +811,6 @@
-
- ::CMSIS
-
-
- 0
- 0
- 0
- 0
- 0
- 0
- 2
- 2
- 2
- 2
- 11
-
-
- 1
-
-
-
- 2
- 0
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 0
- 2
- 2
- 2
- 2
- 2
- 0
- 0
- 2
- 2
- 2
- 2
- 2
-
-
-
-
-
-
-
-
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
-
-
-
-
-
-
-
-
-
-
@@ -894,8 +823,8 @@
STM32L433RCTx
STMicroelectronics
- Keil.STM32L4xx_DFP.2.2.0
- http://www.keil.com/pack
+ Keil.STM32L4xx_DFP.2.5.0
+ http://www.keil.com/pack/
IRAM(0x20000000,0x0000C000) IRAM2(0x10000000,0x00004000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M4") FPU2 DSP CLOCK(12000000) ELITTLE
@@ -1063,6 +992,7 @@
0
2
0
+ 0
1
0
8
@@ -1229,7 +1159,7 @@
0
0
0
- 0
+ 4
@@ -1688,92 +1618,20 @@
-
- ::CMSIS
-
-
- 0
- 0
- 0
- 0
- 0
- 0
- 2
- 2
- 2
- 2
- 11
-
-
- 1
-
-
-
- 2
- 0
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 0
- 2
- 2
- 2
- 2
- 2
- 0
- 0
- 2
- 2
- 2
- 2
- 2
-
-
-
-
-
-
-
-
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
-
-
-
-
-
-
-
-
-
-
strain2-v1B0
0x4
ARM-ADS
- 6120000::V6.12::.\ARMCLANG
+ 6160000::V6.16::ARMCLANG
1
STM32L433RCTx
STMicroelectronics
- Keil.STM32L4xx_DFP.2.2.0
- http://www.keil.com/pack
+ Keil.STM32L4xx_DFP.2.5.0
+ http://www.keil.com/pack/
IRAM(0x20000000,0x0000C000) IRAM2(0x10000000,0x00004000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M4") FPU2 DSP CLOCK(12000000) ELITTLE
@@ -1941,6 +1799,7 @@
0
2
0
+ 0
1
0
8
@@ -2107,7 +1966,7 @@
0
0
0
- 0
+ 4
@@ -2604,92 +2463,20 @@
-
- ::CMSIS
-
-
- 0
- 0
- 0
- 0
- 0
- 0
- 2
- 2
- 2
- 2
- 11
-
-
- 1
-
-
-
- 2
- 0
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 0
- 2
- 2
- 2
- 2
- 2
- 0
- 0
- 2
- 2
- 2
- 2
- 2
-
-
-
-
-
-
-
-
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
-
-
-
-
-
-
-
-
-
-
strain2-1B0-cmsisos2
0x4
ARM-ADS
- 6140000::V6.14::ARMCLANG
+ 6160000::V6.16::ARMCLANG
1
STM32L433RCTx
STMicroelectronics
- Keil.STM32L4xx_DFP.2.2.0
- http://www.keil.com/pack
+ Keil.STM32L4xx_DFP.2.5.0
+ http://www.keil.com/pack/
IRAM(0x20000000,0x0000C000) IRAM2(0x10000000,0x00004000) IROM(0x08000000,0x00040000) CPUTYPE("Cortex-M4") FPU2 DSP CLOCK(12000000) ELITTLE
@@ -2857,6 +2644,7 @@
0
2
0
+ 0
1
0
8
@@ -3010,7 +2798,7 @@
-Wno-pragma-pack -Wno-deprecated-register
EMBOT_USE_rtos_cmsisos2 USE_STM32HAL STM32HAL_BOARD_STRAIN2 STM32HAL_DRIVER_V1B0 not_STRAIN2_APP_AT_64K
- ..\..\..\..\..\..\eBcode\arch-arm\embobj\core\exec\multitask-;..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core-;..\..\..\..\..\..\eBcode\arch-arm\libs\lowlevel\stm32hal\api;..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core;..\..\..\..\..\..\eBcode\arch-arm\embot\app;..\..\..\..\..\..\eBcode\arch-arm\embot\i2h;..\..\..\..\..\..\eBcode\arch-arm\embot\hw;..\..\..\..\..\..\eBcode\arch-arm\embot\os;..\..\..\..\..\..\eBcode\arch-arm\embot;..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core;..\..\..\..\embot\app\dsp;..\..\..\..\..\..\..\..\icub-firmware-shared\can\canProtocolLib;..\..\..\..\embot\app\skeleton;..\..\..\..\embot\prot\can;..\..\..\..\libs\highlevel\abslayer\cmsisos2\api
+ ..\..\..\..\..\..\eBcode\arch-arm\embobj\core\exec\multitask-;..\..\..\..\..\..\..\..\icub-firmware-shared\eth\embobj\core\core-;..\..\..\..\..\..\eBcode\arch-arm\libs\lowlevel\stm32hal\api;..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core;..\..\..\..\..\..\eBcode\arch-arm\embot\app;..\..\..\..\..\..\eBcode\arch-arm\embot\i2h;..\..\..\..\..\..\eBcode\arch-arm\embot\hw;..\..\..\..\..\..\eBcode\arch-arm\embot\os;..\..\..\..\..\..\eBcode\arch-arm\embot;..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core;..\..\..\..\..\..\..\..\icub-firmware-shared\can\canProtocolLib;..\..\..\..\embot\app\skeleton;..\..\..\..\embot\prot\can;..\..\..\..\libs\highlevel\abslayer\cmsisos2\api;..\src;..\..\bsp;..\..\..\..\embot\app\dsp
@@ -3023,7 +2811,7 @@
0
0
0
- 0
+ 4
@@ -3571,95 +3359,13 @@
-
- ::CMSIS
-
-
- 0
- 0
- 0
- 0
- 0
- 0
- 2
- 2
- 2
- 2
- 11
-
-
- 1
-
-
-
- 2
- 0
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 0
- 2
- 2
- 2
- 2
- 2
- 0
- 0
- 2
- 2
- 2
- 2
- 2
-
-
-
-
-
-
-
-
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
- 2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/emBODY/eBcode/arch-arm/embot/os/embot_os_Thread.cpp b/emBODY/eBcode/arch-arm/embot/os/embot_os_Thread.cpp
index 17a11a1198..5dc28c799b 100644
--- a/emBODY/eBcode/arch-arm/embot/os/embot_os_Thread.cpp
+++ b/emBODY/eBcode/arch-arm/embot/os/embot_os_Thread.cpp
@@ -718,12 +718,26 @@ void embot::os::ValueThread::run()
// - pimpl: private implementation (see scott meyers: item 22 of effective modern c++, item 31 of effective c++
// --------------------------------------------------------------------------------------------------------------------
+// by defining macro CALLBACKTHREAD_IMPL_USE_RTOSCALLBACKQUEUE we implement
+// embot::os::CallbackThread with a single embot::os::rtos::callbackqueue_t object
+// which contains an entire embot::core::Callback (8 bytes).
+// the benefit is that we use an RTOS atomic operation when we manage the callback
+// if we dont define it, we use two embot::os::rtos::messagequeue_t,
+// one for embot::core::Callback::call and one for embot::core::Callback::arg
+// this latter mode has worked for long time, but the former is better
+
+#define CALLBACKTHREAD_IMPL_USE_RTOSCALLBACKQUEUE
+
struct embot::os::CallbackThread::Impl
{
CallbackThread * parentThread {nullptr};
- embot::os::rtos::thread_t *rtosthread {nullptr};
+ embot::os::rtos::thread_t *rtosthread {nullptr};
+#if defined(CALLBACKTHREAD_IMPL_USE_RTOSCALLBACKQUEUE)
+ embot::os::rtos::callbackqueue_t *oscallbackqueue {nullptr};
+#else
embot::os::rtos::messagequeue_t *osfunctionqueue {nullptr};
- embot::os::rtos::messagequeue_t *osargumentqueue {nullptr};
+ embot::os::rtos::messagequeue_t *osargumentqueue {nullptr};
+#endif
Config config {64, Priority::minimum, nullptr, nullptr, embot::core::reltimeWaitForever, 2, dummyAfter, "cbkThread"};
embot::os::rtos::thread_props_t rtosthreadproperties {};
@@ -731,8 +745,12 @@ struct embot::os::CallbackThread::Impl
{
parentThread = parent;
rtosthread = nullptr;
+#if defined(CALLBACKTHREAD_IMPL_USE_RTOSCALLBACKQUEUE)
+ oscallbackqueue = nullptr;
+#else
osfunctionqueue = nullptr;
- osargumentqueue = nullptr;
+ osargumentqueue = nullptr;
+#endif
}
~Impl()
@@ -743,7 +761,14 @@ struct embot::os::CallbackThread::Impl
embot::os::rtos::thread_delete(rtosthread);
rtosthread = nullptr;
}
-
+
+#if defined(CALLBACKTHREAD_IMPL_USE_RTOSCALLBACKQUEUE)
+ if(nullptr != oscallbackqueue)
+ {
+ embot::os::rtos::callbackqueue_delete(oscallbackqueue);
+ oscallbackqueue = nullptr;
+ }
+#else
if(nullptr != osfunctionqueue)
{
embot::os::rtos::messagequeue_delete(osfunctionqueue);
@@ -754,11 +779,52 @@ struct embot::os::CallbackThread::Impl
{
embot::os::rtos::messagequeue_delete(osargumentqueue);
osargumentqueue = nullptr;
- }
+ }
+#endif
+
}
static void dummyAfter(Thread *t, core::Callback &m, void *p) {}
-
+
+#if defined(CALLBACKTHREAD_IMPL_USE_RTOSCALLBACKQUEUE)
+
+ static embot::core::Callback os_get_callback(embot::os::rtos::callbackqueue_t *cq, embot::core::relTime tout)
+ {
+ return embot::os::rtos::callbackqueue_get(cq, tout);
+ }
+
+ static void os_callbackdriven_loop(void *p)
+ {
+ CallbackThread *t = reinterpret_cast(p);
+ const embot::core::relTime tout = t->pImpl->config.timeout;
+ const Thread::fpStartup startup = t->pImpl->config.startup;
+ const Thread::fpAfterCallback after = (nullptr != t->pImpl->config.aftercallback) ? (t->pImpl->config.aftercallback) : (dummyAfter);
+ void * param = t->pImpl->config.param;
+ embot::os::rtos::callbackqueue_t *Q = t->pImpl->oscallbackqueue;
+
+ embot::core::Callback cbk {};
+
+
+ // exec the startup
+ if(nullptr != startup)
+ {
+ startup(t, param);
+ }
+
+ // start the forever loop
+ for(;;)
+ {
+ // the order is important in here.... dont exchange the following two lines .....
+ cbk = os_get_callback(Q, tout);
+ // it executes only if it is valid
+ cbk.execute();
+ after(t, cbk, param);
+ }
+
+ }
+
+#else
+
// embot::os::rtos::messagequeue_get() returns a osal_message_t which is a uint32_t* which may hold a simple integer or a pointer to larger data
// in case of os_get_caller() the content is a pointer to function
static embot::core::fpCaller os_get_caller(embot::os::rtos::messagequeue_t *mq, embot::core::relTime tout)
@@ -800,8 +866,57 @@ struct embot::os::CallbackThread::Impl
// it executes only if it is valid
cbk.execute();
after(t, cbk, param);
- }
+ }
+ }
+
+#endif
+ bool _start(const Config &cfg, embot::core::fpCaller eviewername)
+ {
+ if(false == cfg.isvalid())
+ {
+ return false;
+ }
+
+ config = cfg;
+
+ config.stacksize = (config.stacksize+7)/8;
+ config.stacksize *= 8;
+
+#if defined(CALLBACKTHREAD_IMPL_USE_RTOSCALLBACKQUEUE)
+ oscallbackqueue = embot::os::rtos::callbackqueue_new(config.queuesize);
+#else
+ osargumentqueue = embot::os::rtos::messagequeue_new(config.queuesize);
+ osfunctionqueue = embot::os::rtos::messagequeue_new(config.queuesize);
+#endif
+
+ rtosthreadproperties.prepare( (nullptr != eviewername) ? eviewername : os_callbackdriven_loop,
+ parentThread,
+ embot::core::tointegral(config.priority),
+ config.stacksize);
+
+ rtosthread = embot::os::rtos::thread_new(rtosthreadproperties);
+ embot::os::rtos::scheduler_associate(rtosthread, parentThread);
+
+ return true;
+ }
+
+ bool _setcallback(const embot::core::Callback &callback, core::relTime timeout)
+ {
+ if(false == callback.isvalid())
+ {
+ return false;
+ }
+
+#if defined(CALLBACKTHREAD_IMPL_USE_RTOSCALLBACKQUEUE)
+ return embot::os::rtos::callbackqueue_put(oscallbackqueue, callback, timeout);
+#else
+ if(true == embot::os::rtos::messagequeue_put(osargumentqueue, reinterpret_cast(callback.arg), timeout))
+ {
+ return embot::os::rtos::messagequeue_put(osfunctionqueue, reinterpret_cast(callback.call), timeout);
+ }
+ return false;
+#endif
}
};
@@ -837,7 +952,6 @@ embot::os::Priority embot::os::CallbackThread::getPriority() const
return pImpl->config.priority;
}
-
bool embot::os::CallbackThread::setPriority(embot::os::Priority priority)
{
pImpl->config.priority = priority;
@@ -869,43 +983,38 @@ bool embot::os::CallbackThread::setValue(embot::os::Value value, core::relTime t
bool embot::os::CallbackThread::setCallback(const embot::core::Callback &callback, core::relTime timeout)
{
- if(false == callback.isvalid())
- {
- return false;
- }
-
- if(true == embot::os::rtos::messagequeue_put(pImpl->osargumentqueue, reinterpret_cast(callback.arg), timeout))
- {
- return embot::os::rtos::messagequeue_put(pImpl->osfunctionqueue, reinterpret_cast(callback.call), timeout);
- }
-
- return false;
+ return pImpl->_setcallback(callback, timeout);
}
bool embot::os::CallbackThread::start(const Config &cfg, embot::core::fpCaller eviewername)
-{
- if(false == cfg.isvalid())
- {
- return false;
- }
-
- pImpl->config = cfg;
-
- pImpl->config.stacksize = (pImpl->config.stacksize+7)/8;
- pImpl->config.stacksize *= 8;
-
- pImpl->osargumentqueue = embot::os::rtos::messagequeue_new(pImpl->config.queuesize);
- pImpl->osfunctionqueue = embot::os::rtos::messagequeue_new(pImpl->config.queuesize);
-
- pImpl->rtosthreadproperties.prepare((nullptr != eviewername) ? eviewername : pImpl->os_callbackdriven_loop,
- this,
- embot::core::tointegral(pImpl->config.priority),
- pImpl->config.stacksize);
-
- pImpl->rtosthread = embot::os::rtos::thread_new(pImpl->rtosthreadproperties);
- embot::os::rtos::scheduler_associate(pImpl->rtosthread, this);
-
- return true;
+{
+ return pImpl->_start(cfg, eviewername);
+// if(false == cfg.isvalid())
+// {
+// return false;
+// }
+//
+// pImpl->config = cfg;
+//
+// pImpl->config.stacksize = (pImpl->config.stacksize+7)/8;
+// pImpl->config.stacksize *= 8;
+
+//#if defined(CALLBACKTHREAD_IMPL_USE_RTOSCALLBACKQUEUE)
+// pImpl->oscallbackqueue = embot::os::rtos::callbackqueue_new(pImpl->config.queuesize);
+//#else
+// pImpl->osargumentqueue = embot::os::rtos::messagequeue_new(pImpl->config.queuesize);
+// pImpl->osfunctionqueue = embot::os::rtos::messagequeue_new(pImpl->config.queuesize);
+//#endif
+//
+// pImpl->rtosthreadproperties.prepare((nullptr != eviewername) ? eviewername : pImpl->os_callbackdriven_loop,
+// this,
+// embot::core::tointegral(pImpl->config.priority),
+// pImpl->config.stacksize);
+//
+// pImpl->rtosthread = embot::os::rtos::thread_new(pImpl->rtosthreadproperties);
+// embot::os::rtos::scheduler_associate(pImpl->rtosthread, this);
+//
+// return true;
}
diff --git a/emBODY/eBcode/arch-arm/embot/os/embot_os_common.h b/emBODY/eBcode/arch-arm/embot/os/embot_os_common.h
index cfefd0b850..a64bc9eee1 100644
--- a/emBODY/eBcode/arch-arm/embot/os/embot_os_common.h
+++ b/emBODY/eBcode/arch-arm/embot/os/embot_os_common.h
@@ -71,7 +71,7 @@ namespace embot { namespace os { namespace priority {
constexpr bool isvalid(uint8_t v)
{
- if((embot::core::tointegral(Priority::schedIdle) == v) || (embot::core::tointegral(Priority::schedIdle) == v))
+ if((embot::core::tointegral(Priority::schedIdle) == v) || (embot::core::tointegral(Priority::schedInit) == v))
{
return true;
}
diff --git a/emBODY/eBcode/arch-arm/embot/os/embot_os_rtos.cpp b/emBODY/eBcode/arch-arm/embot/os/embot_os_rtos.cpp
index 2ad60594fb..3e835a0f59 100644
--- a/emBODY/eBcode/arch-arm/embot/os/embot_os_rtos.cpp
+++ b/emBODY/eBcode/arch-arm/embot/os/embot_os_rtos.cpp
@@ -131,6 +131,17 @@ namespace embot { namespace os { namespace rtos {
{
_internals.attr->priority = static_cast(priority);
}
+
+ uint8_t getprio() const
+ {
+ return _internals.attr->priority;
+ }
+
+ void * getstack(uint16_t &size) const
+ {
+ size = _internals.attr->stack_size;
+ return _internals.attr->stack_mem;
+ }
};
#elif defined(EMBOT_USE_rtos_osal)
@@ -166,6 +177,18 @@ namespace embot { namespace os { namespace rtos {
{
_internals.props.priority = priority;
}
+
+ uint8_t getprio() const
+ {
+ return _internals.props.priority;
+ }
+
+ //#warning TODO: solve it
+ void * getstack(uint16_t &size) const
+ {
+ size = _internals.props.stacksize;
+ return nullptr;
+ }
bool isvalid() const
{
@@ -199,6 +222,16 @@ namespace embot { namespace os { namespace rtos {
{
pImpl->setprio(priority);
}
+
+ uint8_t thread_props_t::getprio() const
+ {
+ return pImpl->getprio();
+ }
+
+ void * thread_props_t::getstack (uint16_t &size) const
+ {
+ return pImpl->getstack(size);
+ }
void * thread_props_t::getInternals()
{
@@ -363,7 +396,10 @@ namespace embot { namespace os { namespace rtos {
osMessageQueueMemory _thr_timer_mq_mem {};
Impl(scheduler_props_t *o) { owner = o; }
- ~Impl() {}
+ ~Impl() {
+ //#warning solve this. we must not call the destructor
+ for(;;);
+ }
void clear()
{
@@ -386,8 +422,8 @@ namespace embot { namespace os { namespace rtos {
_internals.cfg->timer_mq_mcnt = 0; // tbc
}
-
- void prepare(embot::core::Time ticktime, uint16_t initstacksize, uint16_t idlestacksize,
+
+ void prepare(embot::core::Time ticktime, uint16_t initstacksize, uint16_t idlestacksize, uint16_t timerstacksize,
embot::core::fpWorker onidle, embot::core::fpWorker oninit, fpOnOSerror onerror)
{
@@ -406,7 +442,7 @@ namespace embot { namespace os { namespace rtos {
_internals.cfg->idle_thread_attr = i_id->attr;
// timer thread: prepare memory and assign it to cfg (aka osRtxConfig)
- constexpr uint16_t timerstacksize = 1024;
+// constexpr uint16_t timerstacksize = 2*1024;
_thr_timer_props.prepare([](void*p){}, nullptr, osPriorityRealtime7, timerstacksize);
thread_props_Internals* i_tm = reinterpret_cast(_thr_timer_props.getInternals());
_internals.cfg->timer_thread_attr = i_tm->attr;
@@ -458,6 +494,16 @@ namespace embot { namespace os { namespace rtos {
return _internals.initted;
}
+ void * getinitstack(uint16_t &size) const
+ {
+ return _internals.init_props.getstack(size);
+ }
+
+ void * getidlestack(uint16_t &size) const
+ {
+ return _thr_idle_props.getstack(size);
+ }
+
bool releaseinit()
{
_internals.init_props.release();
@@ -507,7 +553,7 @@ namespace embot { namespace os { namespace rtos {
_internals.cfg.extfn.usr_on_idle = nullptr;
}
- void prepare(embot::core::Time ticktime, uint16_t initstacksize, uint16_t idlestacksize,
+ void prepare(embot::core::Time ticktime, uint16_t initstacksize, uint16_t idlestacksize, uint16_t timerstacksize,
embot::core::fpWorker onidle, embot::core::fpWorker oninit, fpOnOSerror onerror)
{
@@ -519,6 +565,7 @@ namespace embot { namespace os { namespace rtos {
_internals.cfg.extfn.usr_on_fatal_error = reinterpret_cast(onerror);
_internals.cfg.extfn.usr_on_idle = onidle;
_internals.oninit = oninit;
+ //timerstacksize is not used by osal
}
bool isvalid() const
@@ -526,6 +573,20 @@ namespace embot { namespace os { namespace rtos {
return true;
}
+ //#warning TODO: solve it
+ void * getinitstack(uint16_t &stacksize) const
+ {
+ stacksize = _internals.cfg.launcherstacksize;
+ return nullptr; //_internals.init_props.getstack();
+ }
+
+ //#warning TODO: solve it
+ void * getidlestack(uint16_t &stacksize) const
+ {
+ stacksize = _internals.cfg.idlestacksize;
+ return nullptr; //_thr_idle_props.getstack();
+ }
+
bool releaseinit()
{
return true;
@@ -546,10 +607,10 @@ namespace embot { namespace os { namespace rtos {
}
- void scheduler_props_t::prepare(embot::core::Time ticktime, uint16_t initstacksize, uint16_t idlestacksize,
+ void scheduler_props_t::prepare(embot::core::Time ticktime, uint16_t initstacksize, uint16_t idlestacksize, uint16_t timerstacksize,
embot::core::fpWorker onidle, embot::core::fpWorker oninit, fpOnOSerror onerror)
{
- pImpl->prepare(ticktime, initstacksize, idlestacksize, onidle, oninit, onerror);
+ pImpl->prepare(ticktime, initstacksize, idlestacksize, timerstacksize, onidle, oninit, onerror);
}
void * scheduler_props_t::getInternals()
@@ -562,6 +623,16 @@ namespace embot { namespace os { namespace rtos {
return true;
}
+ void * scheduler_props_t::getidlestack(uint16_t &size) const
+ {
+ return pImpl->getidlestack(size);
+ }
+
+ void * scheduler_props_t::getinitstack(uint16_t &size) const
+ {
+ return pImpl->getinitstack(size);
+ }
+
bool scheduler_props_t::release(Resource res)
{
return pImpl->releaseinit();
@@ -856,7 +927,16 @@ namespace embot { namespace os { namespace rtos {
return (osal_res_OK == r) ? (true) : (false);
#endif
}
-
+
+#define USE_LAMBDA_PERIOD_CBK
+#if defined(USE_LAMBDA_PERIOD_CBK)
+#else
+ // useful for debugging w/ breakpoint
+ void period_cbk(void *p)
+ {
+ event_set(p, 0x1);
+ }
+#endif
void thread_period_set(thread_t *osthread, embot::core::relTime period)
{
#if defined(EMBOT_USE_rtos_cmsisos2)
@@ -866,8 +946,11 @@ namespace embot { namespace os { namespace rtos {
if(0 != period)
{
timer_t *tmr = timer_new();
+#if defined(USE_LAMBDA_PERIOD_CBK)
timer_start(tmr, timerMode::forever, period, [](void *p){ event_set(p, 0x1); }, osthread);
-
+#else
+ timer_start(tmr, timerMode::forever, period, period_cbk, osthread);
+#endif
mapoftimers.insert(std::pair(osthread, tmr));
}
else
@@ -895,7 +978,7 @@ namespace embot { namespace os { namespace rtos {
void thread_period_wait(thread_t *osthread, embot::core::relTime period)
{
#if defined(EMBOT_USE_rtos_cmsisos2)
- event_get(cmsisos_reltimeforever);
+ event_get(embot::core::reltimeWaitForever);
#elif defined(EMBOT_USE_rtos_osal)
osal_task_period_wait();
#endif
@@ -1006,6 +1089,122 @@ namespace embot { namespace os { namespace rtos {
#endif
}
+ uint8_t messagequeue_available(messagequeue_t *mq)
+ {
+#if defined(EMBOT_USE_rtos_cmsisos2)
+ return osMessageQueueGetSpace(mq);
+#elif defined(EMBOT_USE_rtos_osal)
+ return osal_messagequeue_available(reinterpret_cast(mq), osal_callerAUTOdetect);
+#endif
+ }
+
+
+ // -- callbackqueue section
+
+#if defined(EMBOT_USE_rtos_osal)
+ struct cq_t
+ {
+ osal_messagequeue_t *call {nullptr};
+ osal_messagequeue_t *arg {nullptr};
+ osal_mutex_t *mtx {nullptr};
+ };
+
+#endif
+ callbackqueue_t * callbackqueue_new(uint8_t length)
+ {
+#if defined(EMBOT_USE_rtos_cmsisos2)
+ constexpr uint32_t sizeofcbk = sizeof(embot::core::Callback);
+
+ if(0 == length)
+ {
+ return nullptr;
+ }
+ osMessageQueueMemory *mem = new osMessageQueueMemory;
+ mem->prepare(length, sizeofcbk);
+ return osMessageQueueNew(length, sizeofcbk, mem->attribute());
+
+#elif defined(EMBOT_USE_rtos_osal)
+ cq_t *cqo = new cq_t;
+ cqo->mtx = osal_mutex_new();
+ cqo->call = osal_messagequeue_new(length);
+ cqo->arg = osal_messagequeue_new(length);
+ return cqo;
+#endif
+ }
+
+ void callbackqueue_delete(callbackqueue_t *cq)
+ {
+#if defined(EMBOT_USE_rtos_cmsisos2)
+ osMessageQueueMemory *mem = reinterpret_cast(cq);
+ osMessageQueueDelete(cq);
+ delete mem;
+#elif defined(EMBOT_USE_rtos_osal)
+ cq_t *cqo = reinterpret_cast(cq);
+ osal_mutex_take(cqo->mtx, OSAL_reltimeINFINITE);
+ osal_messagequeue_delete(cqo->call);
+ osal_messagequeue_delete(cqo->arg);
+ osal_mutex_release(cqo->mtx);
+ osal_mutex_delete(cqo->mtx);
+ delete cqo;
+#endif
+ }
+
+ bool callbackqueue_put(callbackqueue_t *cq, const embot::core::Callback &callback, embot::core::relTime timeout)
+ {
+#if defined(EMBOT_USE_rtos_cmsisos2)
+ osStatus_t r = osMessageQueuePut(cq, &callback, 0, cmsisos2_sys_reltime2tick(timeout));
+ return (osOK == r) ? (true) : (false);
+#elif defined(EMBOT_USE_rtos_osal)
+ cq_t *cqo = reinterpret_cast(cq);
+// osal_mutex_take(cqo->mtx, timeout);
+ osal_result_t r = osal_messagequeue_put(cqo->call, reinterpret_cast(callback.call), static_cast(timeout), osal_callerAUTOdetect);
+ r = osal_messagequeue_put(cqo->arg, reinterpret_cast(callback.arg), static_cast(timeout), osal_callerAUTOdetect);
+// osal_mutex_release(cqo->mtx);
+ return (osal_res_OK == r) ? (true) : (false);
+#endif
+ }
+
+ embot::core::Callback callbackqueue_get(callbackqueue_t *cq, embot::core::relTime timeout)
+ {
+#if defined(EMBOT_USE_rtos_cmsisos2)
+ embot::core::Callback cbk {};
+ osStatus_t r = osMessageQueueGet(cq, &cbk, nullptr, cmsisos2_sys_reltime2tick(timeout));
+ if(osErrorTimeout == r)
+ {
+ return cbk;
+ }
+ return cbk;
+#elif defined(EMBOT_USE_rtos_osal)
+ cq_t *cqo = reinterpret_cast(cq);
+ embot::core::Callback cbk {};
+// osal_mutex_take(cqo->mtx, timeout);
+ cbk.call = reinterpret_cast(osal_messagequeue_getquick(cqo->call, static_cast(timeout), osal_callerAUTOdetect));
+ cbk.arg = reinterpret_cast(osal_messagequeue_getquick(cqo->arg, static_cast(timeout), osal_callerAUTOdetect));
+// osal_mutex_release(cqo->mtx);
+ return cbk;
+#endif
+ }
+
+ uint8_t callbackqueue_size(callbackqueue_t *cq)
+ {
+#if defined(EMBOT_USE_rtos_cmsisos2)
+ return osMessageQueueGetCount(cq);
+#elif defined(EMBOT_USE_rtos_osal)
+ cq_t *cqo = reinterpret_cast(cq);
+ return osal_messagequeue_size(cqo->call, osal_callerAUTOdetect);
+#endif
+ }
+
+ uint8_t callbackqueue_available(callbackqueue_t *cq)
+ {
+#if defined(EMBOT_USE_rtos_cmsisos2)
+ return osMessageQueueGetSpace(cq);
+#elif defined(EMBOT_USE_rtos_osal)
+ cq_t *cqo = reinterpret_cast(cq);
+ return osal_messagequeue_available(cqo->call, osal_callerAUTOdetect);
+#endif
+ }
+
// -- timer section
@@ -1034,6 +1233,19 @@ namespace embot { namespace os { namespace rtos {
#endif
}
+ bool timer_running(timer_t *t)
+ {
+#if defined(EMBOT_USE_rtos_cmsisos2)
+
+ return (1 == osTimerIsRunning(t)) ? true : false;
+
+#elif defined(EMBOT_USE_rtos_osal)
+
+ osal_result_t r = osal_timer_isactive(reinterpret_cast(t), osal_callerAUTOdetect);
+ return (osal_res_OK == r) ? true : false;
+
+#endif
+ }
bool timer_start(timer_t *t, timerMode mode, embot::core::relTime countdown, fpOnTimerExpiry onexpiry, void* param)
{
@@ -1162,8 +1374,7 @@ namespace embot { namespace os { namespace rtos {
#elif defined(EMBOT_USE_rtos_osal)
osal_semaphore_delete(reinterpret_cast(s));
#endif
- }
-
+ }
void * memory_new(size_t size)
{
#if defined(EMBOT_USE_rtos_cmsisos2)
@@ -1176,8 +1387,7 @@ namespace embot { namespace os { namespace rtos {
void * memory_realloc(void *mem, size_t size)
{
#if defined(EMBOT_USE_rtos_cmsisos2)
-// return cmsisos2_memory_realloc(mem, size);
- return realloc(mem, size);
+ return cmsisos2_memory_realloc(mem, size);
#elif defined(EMBOT_USE_rtos_osal)
return osal_base_memory_realloc(mem, size);
#endif
@@ -1186,8 +1396,7 @@ namespace embot { namespace os { namespace rtos {
void memory_delete(void *mem)
{
#if defined(EMBOT_USE_rtos_cmsisos2)
- // cmsisos2_memory_delete(mem);
- free(mem);
+ cmsisos2_memory_delete(mem);
#elif defined(EMBOT_USE_rtos_osal)
osal_base_memory_del(mem);
#endif
@@ -1298,7 +1507,7 @@ uint32_t osRtxErrorNotify (uint32_t code, void *object_id)
// #define EMBOT_HEAP_redefine_heapoperators
#define EMBOT_HEAP_PROTECTION_use_OSsupport
- //#define EMBOT_HEAP_PROTECTION_use_armCmultithreadsupport
+ #define EMBOT_HEAP_PROTECTION_use_armCmultithreadsupport
#if defined(EMBOT_HEAP_PROTECTION_use_OSsupport) & !defined(EMBOT_HEAP_redefine_heapoperators)
#define EMBOT_HEAP_redefine_heapoperators
@@ -1314,7 +1523,7 @@ uint32_t osRtxErrorNotify (uint32_t code, void *object_id)
// with the same mechanisms as osal.
// the same mechanism of osal ( ... ) does not work on all applications.
- // for this reason we swithc using only the EMBOT_HEAP_PROTECTION_use_armCmultithreadsupport
+ // for this reason we switch using only the EMBOT_HEAP_PROTECTION_use_armCmultithreadsupport
// i have experienced problems with EMBOT_HEAP_PROTECTION_use_OSsupport
// when running the application of a strain2 (but on the stm32g4eval it is ok).
@@ -1323,9 +1532,9 @@ uint32_t osRtxErrorNotify (uint32_t code, void *object_id)
// this latter is also the only mode which RTX V5 use
- //#define EMBOT_HEAP_redefine_heapoperators
+ #define EMBOT_HEAP_redefine_heapoperators
- //#define EMBOT_HEAP_PROTECTION_use_OSsupport
+ #define EMBOT_HEAP_PROTECTION_use_OSsupport
#define EMBOT_HEAP_PROTECTION_use_armCmultithreadsupport
@@ -1464,33 +1673,46 @@ void operator delete (void* ptr) noexcept
#elif defined(EMBOT_USE_rtos_cmsisos2)
-
+
+
// it is implemented in here.
// we get it from rtx_lib.c of cmsis os2
+
+// also inside cmsis_armclang.h
+#ifndef __USED
+ #define __USED __attribute__((used))
+#endif
+
+// C/C++ Standard Library Multithreading Interface
+// ===============================================
- // static mutext allocator
- void * mutex_new_static()
- {
- constexpr uint8_t nsysmtx = 4;
- static embot::os::rtos::osMutexMemory sysmtx[nsysmtx];
- static uint8_t syscnt = 0;
-
- if(syscnt >= nsysmtx)
+#if ( !defined(RTX_NO_MULTITHREAD_CLIB) && \
+ ( defined(__CC_ARM) || \
+ (defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050))) && \
+ !defined(__MICROLIB))
+
+ // static mutex allocator: made by icubtech
+ void * mutex_new_static()
{
- return nullptr;
- }
- embot::os::rtos::osMutexMemory *mem = &sysmtx[syscnt++];
- mem->prepare();
- return osMutexNew(mem->attribute());
- }
+ constexpr uint8_t nsysmtx = 4;
+ static embot::os::rtos::osMutexMemory sysmtx[nsysmtx];
+ static uint8_t syscnt = 0;
+
+ if(syscnt >= nsysmtx)
+ {
+ return nullptr;
+ }
+ embot::os::rtos::osMutexMemory *mem = &sysmtx[syscnt++];
+ mem->prepare();
+ // marco.accame: cmsisos2_osMutexNew() calls the standard osMutexNew() but ...
+ // if the OS is not started yet it just inits the memory (which MUST be non NULL)
+ // without calling the SVC, so we can safely use it also in here which is code that
+ // is called before main() when WE DO NOT want that the OS is started yet.
+ // for this reason i removed osKernelInitialize() from inside
+ // _platform_post_stackheap_init(). see file rtx_lib.c inside cmsisos2.uvprojx
+ return cmsisos2_osMutexNew(mem->attribute());
+ }
- extern "C" {
-
- #if ( !defined(RTX_NO_MULTITHREAD_CLIB) && \
- ( defined(__CC_ARM) || \
- (defined(__ARMCC_VERSION) && (__ARMCC_VERSION >= 6010050))) && \
- !defined(__MICROLIB))
-
#define OS_THREAD_LIBSPACE_NUM 4
#define LIBSPACE_SIZE 96
@@ -1511,9 +1733,9 @@ void operator delete (void* ptr) noexcept
}
return (uint32_t)os_kernel_active;
}
-
+ // EXTERN C
+ extern "C" {
// Provide libspace for current thread
- __attribute__((used))
void *__user_perthread_libspace (void);
void *__user_perthread_libspace (void) {
osThreadId_t id;
@@ -1530,7 +1752,7 @@ void operator delete (void* ptr) noexcept
}
}
if (n == (uint32_t)OS_THREAD_LIBSPACE_NUM) {
- (void)osRtxErrorNotify(osRtxErrorClibSpace, id);
+ (void)osRtxKernelErrorNotify(osRtxErrorClibSpace, id);
}
} else {
n = OS_THREAD_LIBSPACE_NUM;
@@ -1547,26 +1769,29 @@ void operator delete (void* ptr) noexcept
//lint -e970 "Use of 'int' outside of a typedef"
//lint -e818 "Pointer 'm' could be declared as pointing to const"
-
// Initialize mutex
- __attribute__((used))
+ __USED
int _mutex_initialize(mutex *m);
int _mutex_initialize(mutex *m) {
- volatile int result = 0;
-
- // *m = osMutexNew(NULL);
- *m = mutex_new_static();
+ int result;
+
+ // marco.accame: removed osMutexNew() from original code of rtx_lib.c
+ // because we dont want to use an rtos function when it is not started yet
+ // the cmsis os starts the os before main() but we cannot do that if we jump
+ // from the bootloader.
+ // *m = osMutexNew(NULL);
+ *m = mutex_new_static();
if (*m != NULL) {
result = 1;
} else {
result = 0;
- (void)osRtxErrorNotify(osRtxErrorClibMutex, m);
+ (void)osRtxKernelErrorNotify(osRtxErrorClibMutex, m);
}
return result;
}
-
+
// Acquire mutex
- __attribute__((used))
+ __USED
void _mutex_acquire(mutex *m);
void _mutex_acquire(mutex *m) {
if (os_kernel_is_active() != 0U) {
@@ -1575,7 +1800,7 @@ void operator delete (void* ptr) noexcept
}
// Release mutex
- __attribute__((used))
+ __USED
void _mutex_release(mutex *m);
void _mutex_release(mutex *m) {
if (os_kernel_is_active() != 0U) {
@@ -1584,14 +1809,17 @@ void operator delete (void* ptr) noexcept
}
// Free mutex
- __attribute__((used))
+ __USED
void _mutex_free(mutex *m);
void _mutex_free(mutex *m) {
(void)osMutexDelete(*m);
}
-
- #endif // #if ( !defined(RTX_NO_MULTITHREAD_CLIB) ...
- } //extern "C"
+
+ // EXTERN C
+ } //extern "C"
+
+#endif // #if ( !defined(RTX_NO_MULTITHREAD_CLIB) ...
+
#endif // #elif defined(EMBOT_USE_rtos_cmsisos2)
diff --git a/emBODY/eBcode/arch-arm/embot/os/embot_os_rtos.h b/emBODY/eBcode/arch-arm/embot/os/embot_os_rtos.h
index 59f6422715..c4df99b3a2 100644
--- a/emBODY/eBcode/arch-arm/embot/os/embot_os_rtos.h
+++ b/emBODY/eBcode/arch-arm/embot/os/embot_os_rtos.h
@@ -25,6 +25,7 @@ namespace embot { namespace os { namespace rtos {
using timer_t = void;
using mutex_t = void;
using semaphore_t = void;
+ using callbackqueue_t = void;
// -- scheduler section
@@ -36,11 +37,14 @@ namespace embot { namespace os { namespace rtos {
~scheduler_props_t();
void prepare(embot::core::Time ticktime,
- uint16_t initstacksize, uint16_t idlestacksize,
+ uint16_t initstacksize, uint16_t idlestacksize, uint16_t timerstacksize,
embot::core::fpWorker onidle, embot::core::fpWorker oninit, fpOnOSerror onerror);
bool isvalid() const;
+ void * getinitstack(uint16_t &size) const;
+ void * getidlestack(uint16_t &size) const;
+
enum class Resource { InitMemory = 0 };
bool release(Resource res = Resource::InitMemory);
@@ -91,7 +95,10 @@ namespace embot { namespace os { namespace rtos {
void prepare(embot::core::fpCaller function, void* param, uint8_t priority, uint16_t stacksize);
bool isvalid() const;
- void setprio(uint8_t priority);
+ void setprio(uint8_t priority);
+ uint8_t getprio() const;
+
+ void * getstack(uint16_t &size) const;
bool release();
@@ -136,6 +143,23 @@ namespace embot { namespace os { namespace rtos {
bool messagequeue_put(messagequeue_t *mq, embot::os::Message message, embot::core::relTime timeout);
uint8_t messagequeue_size(messagequeue_t *mq);
+
+ uint8_t messagequeue_available(messagequeue_t *mq);
+
+
+ // -- callbackqueue section
+
+ callbackqueue_t * callbackqueue_new(uint8_t length);
+
+ void callbackqueue_delete(callbackqueue_t *cq);
+
+ embot::core::Callback callbackqueue_get(callbackqueue_t *cq, embot::core::relTime timeout);
+
+ bool callbackqueue_put(callbackqueue_t *cq, const embot::core::Callback &callback, embot::core::relTime timeout);
+
+ uint8_t callbackqueue_size(callbackqueue_t *cq);
+
+ uint8_t callbackqueue_available(callbackqueue_t *cq);
// -- timer section
@@ -150,6 +174,8 @@ namespace embot { namespace os { namespace rtos {
using fpOnTimerExpiry = embot::core::fpCaller;
#endif
+ bool timer_running(timer_t *t);
+
bool timer_start(timer_t *t, timerMode mode, embot::core::relTime countdown, fpOnTimerExpiry onexpiry, void* param);
void timer_stop(timer_t *t);
diff --git a/emBODY/eBcode/arch-arm/embot/os/embot_os_theScheduler.cpp b/emBODY/eBcode/arch-arm/embot/os/embot_os_theScheduler.cpp
index 45023326fc..b3857b62ac 100644
--- a/emBODY/eBcode/arch-arm/embot/os/embot_os_theScheduler.cpp
+++ b/emBODY/eBcode/arch-arm/embot/os/embot_os_theScheduler.cpp
@@ -133,9 +133,10 @@ struct embot::os::theScheduler::Impl
// init part
config = cfg;
-
+ // timerstacksize can be now configured. it is used by cmsisos2 only.
+ constexpr uint16_t timerstacksize {2*1024};
props.prepare(config.timing.ticktime,
- config.behaviour.initconfig.stacksize, config.behaviour.idleconfig.stacksize,
+ config.behaviour.initconfig.stacksize, config.behaviour.idleconfig.stacksize, timerstacksize,
osIdleThread, launcher, osOnError);
embot::os::rtos::scheduler_init(props);
diff --git a/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/cmsisos2/api/cmsisos2.h b/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/cmsisos2/api/cmsisos2.h
index aab3f91885..2b6c7be721 100644
--- a/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/cmsisos2/api/cmsisos2.h
+++ b/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/cmsisos2/api/cmsisos2.h
@@ -46,7 +46,10 @@ extern "C"
void * cmsisos2_memory_realloc(void *p, size_t size);
void cmsisos2_memory_delete(void *p);
+ // it calls standard osMutexNew() but ...
+ // if the OS is not started yet it just inits the memory (which MUST be non NULL)
+ osMutexId_t cmsisos2_osMutexNew (const osMutexAttr_t *attr);
#ifdef __cplusplus
}
diff --git a/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/cmsisos2/cmsisos2.uvoptx b/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/cmsisos2/cmsisos2.uvoptx
index 9331f3999b..235c001c94 100644
--- a/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/cmsisos2/cmsisos2.uvoptx
+++ b/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/cmsisos2/cmsisos2.uvoptx
@@ -1547,7 +1547,7 @@
Core
- 0
+ 1
0
0
0
@@ -1711,7 +1711,7 @@
Handlers
- 0
+ 1
0
0
0
diff --git a/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/cmsisos2/lib/cmsisos2.lib b/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/cmsisos2/lib/cmsisos2.lib
index a8f3b44ecf..42545b63ab 100644
Binary files a/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/cmsisos2/lib/cmsisos2.lib and b/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/cmsisos2/lib/cmsisos2.lib differ
diff --git a/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/cmsisos2/src/cmsis5/cmsis/RTOS2/RTX/Source/rtx_lib.c b/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/cmsisos2/src/cmsis5/cmsis/RTOS2/RTX/Source/rtx_lib.c
index 6840caf694..1a32fcd467 100644
--- a/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/cmsisos2/src/cmsis5/cmsis/RTOS2/RTX/Source/rtx_lib.c
+++ b/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/cmsisos2/src/cmsis5/cmsis/RTOS2/RTX/Source/rtx_lib.c
@@ -4,6 +4,7 @@
#define CMSISOS2_ICUB_CHANGES_remove_static_system_configuration
// #warning CMSISOS2_ICUB_CHANGES: defined macro RTX_NO_MULTITHREAD_CLIB
#define RTX_NO_MULTITHREAD_CLIB
+ #define CMSISOS2_ICUB_CHANGES_remove_others
#endif
/*
@@ -550,6 +551,9 @@ extern const uint8_t * const irqRtxLibRef;
extern void * const osRtxUserSVC[];
__WEAK void * const osRtxUserSVC[1] = { (void *)0 };
+#if defined(CMSISOS2_ICUB_CHANGES_remove_others)
+
+#else
// OS Sections
// ===========
@@ -620,6 +624,7 @@ __attribute__((section(".rodata"))) =
&__os_msgqueue_cb_end__
};
+#endif // CMSISOS2_ICUB_CHANGES_remove_others
// OS Initialization
// =================
@@ -632,7 +637,13 @@ __attribute__((section(".rodata"))) =
//lint -esym(765,_platform_post_stackheap_init) "Global scope"
extern void _platform_post_stackheap_init (void);
__WEAK void _platform_post_stackheap_init (void) {
+#if defined(CMSISOS2_ICUB_CHANGES_remove_others)
+ // marco.accame: i have removed osKernelInitialize() from here because ...
+ // the OS must start inside the main() after we have filled osRtxConfig w/ all
+ // the proper values we want
+#else
(void)osKernelInitialize();
+#endif
}
#endif
diff --git a/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/cmsisos2/src/cmsis5/cmsis/RTOS2/RTX/Source/rtx_mutex.c b/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/cmsisos2/src/cmsis5/cmsis/RTOS2/RTX/Source/rtx_mutex.c
index fb889b45d9..ec96fa11ae 100644
--- a/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/cmsisos2/src/cmsis5/cmsis/RTOS2/RTX/Source/rtx_mutex.c
+++ b/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/cmsisos2/src/cmsis5/cmsis/RTOS2/RTX/Source/rtx_mutex.c
@@ -25,6 +25,28 @@
#include "rtx_lib.h"
+#if defined(CMSISOS2_ICUB_CHANGES)
+#include "cmsisos2.h"
+static osMutexId_t svcRtxMutexNew (const osMutexAttr_t *attr);
+// marco.accame: it calls standard osMutexNew() but ... if the OS is not started yet we
+// just inits the memory (which MUST be non NULL)
+extern osMutexId_t cmsisos2_osMutexNew (const osMutexAttr_t *attr)
+{
+ osMutexId_t r = NULL;
+ if(osRtxKernelRunning == osRtxInfo.kernel.state)
+ {
+ r = osMutexNew(attr);
+ }
+ else if(NULL != attr)
+ {
+ EvrRtxMutexNew(attr);
+ r = svcRtxMutexNew(attr);
+ }
+
+ return r;
+}
+#endif
+
// OS Runtime Object Memory Usage
#ifdef RTX_OBJ_MEM_USAGE
diff --git a/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/osal/osal-cmsisos2.uvoptx b/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/osal/osal-cmsisos2.uvoptx
new file mode 100644
index 0000000000..7c399d0596
--- /dev/null
+++ b/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/osal/osal-cmsisos2.uvoptx
@@ -0,0 +1,470 @@
+
+
+
+ 1.0
+
+ ### uVision Project, (C) Keil Software
+
+
+ *.c
+ *.s*; *.src; *.a*
+ *.obj; *.o
+ *.lib
+ *.txt; *.h; *.inc; *.md
+ *.plm
+ *.cpp; *.cc; *.cxx
+ 0
+
+
+
+ 0
+ 0
+
+
+
+ osal.cmsisos2
+ 0x4
+ ARM-ADS
+
+ 12000000
+
+ 1
+ 1
+ 0
+ 1
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\Lst\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 0
+ 1
+
+ 7
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+ BIN\UL2CM3.DLL
+
+
+
+ 0
+ UL2CM3
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000)
+
+
+
+
+ 0
+ 0
+ 1283
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\..\..\..\embot\os\embot_os_rtos.cpp
+
+
+
+
+ 1
+ 0
+ 58
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\..\..\..\embot\os\embot_os_rtos.cpp
+
+
+
+
+ 2
+ 0
+ 59
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\..\..\..\embot\os\embot_os_rtos.cpp
+
+
+
+
+ 3
+ 0
+ 1285
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ ..\..\..\..\embot\os\embot_os_rtos.cpp
+
+
+
+
+
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ osal.cm4.dbg
+ 0x4
+ ARM-ADS
+
+ 12000000
+
+ 0
+ 1
+ 1
+ 0
+ 0
+
+
+ 1
+ 65535
+ 0
+ 0
+ 0
+
+
+ 79
+ 66
+ 8
+ .\Lst\
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+
+ 7
+
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 1
+ 0
+ 0
+ -1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+
+
+
+ 0
+ 0
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+ osal
+ 0
+ 0
+ 0
+ 0
+
+ 1
+ 1
+ 8
+ 0
+ 0
+ 0
+ .\src\osal-cmsisos2.c
+ osal-cmsisos2.c
+ 0
+ 0
+
+
+
+
+ cmsisos2
+ 0
+ 0
+ 0
+ 0
+
+ 2
+ 2
+ 4
+ 0
+ 0
+ 0
+ ..\cmsisos2\lib\cmsisos2.lib
+ cmsisos2.lib
+ 0
+ 0
+
+
+
+
+ embot::rtos
+ 0
+ 0
+ 0
+ 0
+
+ 3
+ 3
+ 8
+ 0
+ 0
+ 0
+ ..\..\..\..\embot\os\embot_os_rtos.cpp
+ embot_os_rtos.cpp
+ 0
+ 0
+
+
+
+
+ embot::core
+ 0
+ 0
+ 0
+ 0
+
+ 4
+ 4
+ 8
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core_binary.cpp
+ embot_core_binary.cpp
+ 0
+ 0
+
+
+ 4
+ 5
+ 8
+ 0
+ 0
+ 0
+ ..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core.cpp
+ embot_core.cpp
+ 0
+ 0
+
+
+
+
diff --git a/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/osal/osal-cmsisos2.uvprojx b/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/osal/osal-cmsisos2.uvprojx
new file mode 100644
index 0000000000..7a7fa6f6d1
--- /dev/null
+++ b/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/osal/osal-cmsisos2.uvprojx
@@ -0,0 +1,971 @@
+
+
+
+ 2.1
+
+ ### uVision Project, (C) Keil Software
+
+
+
+ osal.cmsisos2
+ 0x4
+ ARM-ADS
+ 6160000::V6.16::ARMCLANG
+ 1
+
+
+ ARMCM4_FP
+ ARM
+ ARM.CMSIS.5.8.0
+ http://www.keil.com/pack/
+ IRAM(0x20000000,0x00020000) IROM(0x00000000,0x00040000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ESEL ELITTLE
+
+
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000)
+ 0
+ $$Device:ARMCM4_FP$Device\ARM\ARMCM4\Include\ARMCM4_FP.h
+
+
+
+
+
+
+
+
+
+ $$Device:ARMCM4_FP$Device\ARM\SVD\ARMCM4.svd
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+
+ .\Obj\
+ osal_cmsisos2
+ 0
+ 1
+ 0
+ 1
+ 1
+ .\Lst\
+ 1
+ 0
+ 0
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 0
+ cmd.exe /C copy .\Obj\osal_cmsisos2.lib .\lib\osal.cmsisos2.lib
+
+ 0
+ 0
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 3
+
+
+ 1
+
+
+ SARMCM3.DLL
+ -MPU
+ DCM.DLL
+ -pCM4
+ SARMCM3.DLL
+ -MPU
+ TCM.DLL
+ -pCM4
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 16
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+ 1
+ 4096
+
+ 1
+ BIN\UL2CM3.DLL
+
+
+
+
+
+ 0
+
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ "Cortex-M4"
+
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ 0
+ 2
+ 0
+ 0
+ 0
+ 0
+ 8
+ 0
+ 1
+ 0
+ 0
+ 3
+ 3
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x20000
+
+
+ 1
+ 0x0
+ 0x40000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x80000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x20000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+
+
+
+ 1
+ 1
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 3
+ 8
+ 1
+ 1
+ 0
+ 0
+ 0
+
+ -DOSAL_USE_rtos_cmsisos2 -DOSAL_CPUFAM_CM4 -DEMBOT_USE_rtos_cmsisos2
+
+
+ .\api;..\cmsisos2\api;..\..\..\..\embot\os;..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 4
+
+ --no_hide_all
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ osal
+
+
+ osal-cmsisos2.c
+ 8
+ .\src\osal-cmsisos2.c
+
+
+
+
+ cmsisos2
+
+
+ cmsisos2.lib
+ 4
+ ..\cmsisos2\lib\cmsisos2.lib
+
+
+
+
+ embot::rtos
+
+
+ embot_os_rtos.cpp
+ 8
+ ..\..\..\..\embot\os\embot_os_rtos.cpp
+
+
+
+
+ embot::core
+
+
+ embot_core_binary.cpp
+ 8
+ ..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core_binary.cpp
+
+
+ 2
+ 0
+ 0
+ 0
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 11
+
+
+ 1
+
+
+
+ 2
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+
+
+
+
+
+
+
+
+
+
+
+ embot_core.cpp
+ 8
+ ..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core.cpp
+
+
+ 2
+ 0
+ 0
+ 0
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 11
+
+
+ 1
+
+
+
+ 2
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+ 0
+ 0
+ 2
+ 2
+ 2
+ 2
+ 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ osal.cm4.dbg
+ 0x4
+ ARM-ADS
+ 5060960::V5.06 update 7 (build 960)::.\ARMCC
+ 0
+
+
+ ARMCM4_FP
+ ARM
+ ARM.CMSIS.5.8.0
+ http://www.keil.com/pack/
+ IRAM(0x20000000,0x00020000) IROM(0x00000000,0x00040000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ESEL ELITTLE
+
+
+ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000)
+ 0
+ $$Device:ARMCM4_FP$Device\ARM\ARMCM4\Include\ARMCM4_FP.h
+
+
+
+
+
+
+
+
+
+ $$Device:ARMCM4_FP$Device\ARM\SVD\ARMCM4.svd
+ 0
+ 0
+
+
+
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 1
+
+ .\Obj\
+ osal_cm4_dbg
+ 0
+ 1
+ 0
+ 0
+ 1
+ .\Lst\
+ 1
+ 0
+ 0
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 0
+ 0
+
+
+ 0
+ 0
+ 0
+ 0
+
+
+ 1
+ 0
+ cmd.exe /C copy .\Obj\osal_cm4_dbg.lib .\lib\osal.cm4.dbg.lib
+
+ 0
+ 0
+ 0
+ 0
+
+ 0
+
+
+
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 3
+
+
+ 1
+
+
+ SARMCM3.DLL
+ -MPU
+ DCM.DLL
+ -pCM4
+ SARMCM3.DLL
+ -MPU
+ TCM.DLL
+ -pCM4
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 16
+
+
+
+
+ 1
+ 0
+ 0
+ 1
+ 1
+ 4096
+
+ 0
+ BIN\UL2CM3.DLL
+
+
+
+
+
+ 0
+
+
+
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ "Cortex-M4"
+
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ 0
+ 2
+ 0
+ 0
+ 0
+ 0
+ 8
+ 0
+ 1
+ 0
+ 0
+ 3
+ 3
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x20000
+
+
+ 1
+ 0x0
+ 0x40000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 1
+ 0x0
+ 0x80000
+
+
+ 1
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x0
+ 0x0
+
+
+ 0
+ 0x20000000
+ 0x20000
+
+
+ 0
+ 0x0
+ 0x0
+
+
+
+
+
+ 1
+ 4
+ 1
+ 0
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 1
+ 0
+ 0
+ 1
+ 1
+ 1
+ 1
+ 0
+ 0
+ 0
+
+ --diag_suppress 3731
+ OOSIIT_USE_EXTERNAL_TREADSAFETY OSAL_CPUFAM_CM4 __CORTEX_M4F __FPU_PRESENT=1 OOSIIT_DBG_ENABLE OOSIIT_USE_TIMEGET_UNDER_SVC
+
+ .\api;..\..\..\midware\oosiit\api;..\..\..\midware\oosiit\src\cmsis-rtx-modified\cm;..\..\..\midware\oosiit\src\others;..\..\..\midware\eventviewer;..\..\..\lowlevel\hl-core\cmsis\api
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 0
+ 0
+ 0
+ 1
+ 0
+ 4
+
+
+
+
+
+
+
+
+ 1
+ 0
+ 0
+ 0
+ 1
+ 0
+ 0x08000000
+ 0x20000000
+
+
+
+
+
+
+
+
+
+
+
+
+ osal
+
+
+ osal-cmsisos2.c
+ 8
+ .\src\osal-cmsisos2.c
+
+
+
+
+ cmsisos2
+
+
+ cmsisos2.lib
+ 4
+ ..\cmsisos2\lib\cmsisos2.lib
+
+
+
+
+ embot::rtos
+
+
+ embot_os_rtos.cpp
+ 8
+ ..\..\..\..\embot\os\embot_os_rtos.cpp
+
+
+
+
+ embot::core
+
+
+ embot_core_binary.cpp
+ 8
+ ..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core_binary.cpp
+
+
+ embot_core.cpp
+ 8
+ ..\..\..\..\..\..\..\..\icub-firmware-shared\embot\core\embot_core.cpp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <Project Info>
+ 0
+ 1
+
+
+
+
+
diff --git a/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/osal/src/osal-cmsisos2.c b/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/osal/src/osal-cmsisos2.c
new file mode 100644
index 0000000000..1e5233bf7e
--- /dev/null
+++ b/emBODY/eBcode/arch-arm/libs/highlevel/abslayer/osal/src/osal-cmsisos2.c
@@ -0,0 +1,1766 @@
+/*
+ * Copyright (C) 2021 iCub Tech - Istituto Italiano di Tecnologia
+ * Author: Marco Accame
+ * email: marco.accame@iit.it
+*/
+
+#warning: in here i attempt to use the embot::os::rtos instead of osiit. read the note
+// embot::os::rtos is the wrapper to cmsisos2 which works fine in the embot::os applications
+// it may have reduced features but that is because cmsisos2 dont have all these features
+// so, here we are.
+// i already know that teh periodic threads have different APIs...
+
+#if !defined(OSAL_USE_rtos_cmsisos2)
+#error this file implements osal over cmsisos2: pls define OSAL_USE_rtos_cmsisos2
+#endif
+
+
+// --------------------------------------------------------------------------------------------------------------------
+// - external dependencies
+// --------------------------------------------------------------------------------------------------------------------
+
+#include "stdlib.h"
+#include "string.h"
+
+#include "embot_os_rtos.h"
+#include "cmsisos2.h"
+
+
+#include "stdio.h"
+
+// --------------------------------------------------------------------------------------------------------------------
+// - declaration of extern public interface
+// --------------------------------------------------------------------------------------------------------------------
+
+#include "osal.h"
+
+
+// --------------------------------------------------------------------------------------------------------------------
+// - declaration of extern hidden interface
+// --------------------------------------------------------------------------------------------------------------------
+
+// marco.accame on 04nov2021: see later if i can remove it
+extern void osal_hid_reset_static_ram(void);
+
+// i keep it extern to allow its name in microvision
+void osal_launcher(void* p);
+
+
+
+// --------------------------------------------------------------------------------------------------------------------
+// - #define with internal scope
+// --------------------------------------------------------------------------------------------------------------------
+
+
+
+// --------------------------------------------------------------------------------------------------------------------
+// - definition (and initialisation) of extern variables, but better using _get(), _set()
+// --------------------------------------------------------------------------------------------------------------------
+
+
+extern const osal_reltime_t osal_reltimeZERO = OSAL_reltimeZERO;
+extern const osal_reltime_t osal_reltime1ms = OSAL_reltime1ms;
+extern const osal_reltime_t osal_reltime1sec = OSAL_reltime1sec;
+extern const osal_reltime_t osal_reltimeMAX = OSAL_reltimeMAX;
+extern const osal_reltime_t osal_reltimeINFINITE = OSAL_reltimeINFINITE;
+
+extern const osal_abstime_t osal_abstimeNONE = OSAL_abstimeNONE;
+
+
+// --------------------------------------------------------------------------------------------------------------------
+// - typedef with internal scope
+// --------------------------------------------------------------------------------------------------------------------
+
+
+//enum {osal_task_signature = 0x33};
+struct osal_task_opaque_t
+{ // 4+1+1+2+4+4 = 16 bytes
+ embot::os::rtos::thread_t* rtostsk;
+ embot::os::rtos::thread_props_t* props;
+ void *ext;
+ osal_task_id_t id;
+ uint8_t prio;
+ uint8_t dummy[2];
+
+ bool isvalid() const
+ {
+ return (nullptr != rtostsk) && (nullptr != props);
+ }
+};
+
+#warning TODO add a embot::os::rtos::thread_props_t*
+
+//enum {osal_timer_signature = 0x01234544};
+struct osal_timer_opaque_t
+{ // 16 bytes
+ embot::os::rtos::timer_t* rtostimer;
+ uint32_t dummy;
+ osal_timer_onexpiry_t onexpiry;
+};
+
+//enum {osal_messagequeue_signature = 0x01234555};
+struct osal_messagequeue_opaque_t
+{ // 4 bytes
+ uint32_t dummy;
+};
+
+
+
+//enum {osal_mutex_signature = 0x01234566};
+struct osal_mutex_opaque_t
+{ // 4 bytes
+ uint32_t dummy;
+};
+
+//enum {osal_semaphore_signature = 0x01234577};
+struct osal_semaphore_opaque_t
+{ // 4 bytes
+ uint32_t dummy;
+};
+
+
+
+// --------------------------------------------------------------------------------------------------------------------
+// - declaration of static functions
+// --------------------------------------------------------------------------------------------------------------------
+
+
+static void s_osal_on_idle(void *p);
+static void s_osal_error(osal_fatalerror_t err_code, const char *err_msg);
+static void s_osal_on_fatalerror(osal_task_t *task, osal_fatalerror_t errorcode, const char * errormsg);
+
+
+
+// --------------------------------------------------------------------------------------------------------------------
+// - definition (and initialisation) of static variables
+// --------------------------------------------------------------------------------------------------------------------
+
+static const osal_cpufamily_t s_osal_cpufam =
+#if defined(OSAL_CPUFAM_CM3)
+ osal_cpufam_armcm3;
+#elif defined(OSAL_CPUFAM_CM4)
+ osal_cpufam_armcm4;
+#else
+ 255;
+ #error -> must define an OSAL_CPUFAM_xxx
+#endif
+
+// mutex used to guarantee atomic access at user space in the osal layer
+static osal_mutex_t *s_osal_mutex_api_protection = NULL;
+
+#if defined(OSAL_USE_rtos_cmsisos2)
+#warning fill it
+#else
+// configuration of osiit. the default is w/ oosiit_memmode_dynamic
+static oosiit_cfg_t s_osal_oosiit_cfg =
+{
+ .memorymode = oosiit_memmode_dynamic
+};
+#endif
+
+// configuration of osal. the default is w/ osal_memmode_dynamic and osal_rtostype_oosiit
+static osal_cfg_t s_osal_osal_cfg =
+{
+ .rtostype = osal_rtostype_oosiit,
+ .memorymodel = osal_memmode_dynamic
+};
+
+// stack for launcher task
+//static uint64_t *s_osal_stacklauncher_data = NULL;
+//static uint16_t s_osal_stacklauncher_size = 0;
+
+// stack for idle task
+//static uint64_t *s_osal_stackidle_data = NULL;
+//static uint16_t s_osal_stackidle_size = 0;
+
+
+// memory used to store osal_task data.
+//static osal_task_t *s_osal_task_data = NULL; // its size is number of tasks+2 (idle, launcher, tasks)
+//static uint8_t s_osal_task_maxnum = 0;
+//static uint8_t s_osal_task_next = 0;
+
+// special system tasks ...
+static osal_task_t s_osal_task_launcher = {};
+static osal_task_t s_osal_task_idle = {};
+
+// indicates how many usec in a tick. used for time conversion
+static uint32_t s_osal_usec_in_tick = 0;
+
+// pointer to the launcher function
+static void (*s_osal_launcher_fn)(void) = NULL;
+
+// status of the system
+static osal_info_status_t s_osal_info_status = osal_info_status_zero;
+
+// tables of resources
+static uint16_t s_resources_free[osal_info_entity_numberof] = {0, 0, 0, 0, 0, 0, 0};
+static uint16_t s_resources_used[osal_info_entity_numberof] = {0, 0, 0, 0, 0, 0, 0};
+
+// number of mutexes required by the armcc99.
+//static uint8_t s_osal_arch_arm_armc99_sysmutex_number = 0;
+
+static osal_task_id_t s_id_counter = 2; // 0 is idle, 1 is init
+constexpr osal_task_id_t s_id_task_idle = 0;
+constexpr osal_task_id_t s_id_task_launcher = 1;
+
+// --------------------------------------------------------------------------------------------------------------------
+// - definition of extern public functions
+// --------------------------------------------------------------------------------------------------------------------
+
+//extern void osal_debug_enter(uint8_t par)
+//{
+// embot::os::rtos::enter(par);
+//}
+
+
+extern void osal_set_errorhandler( void(*on_fatal_error)(void* task, osal_fatalerror_t errorcode, const char * errormsg))
+{
+ s_osal_osal_cfg.extfn.usr_on_fatal_error = on_fatal_error;
+}
+
+
+extern uint32_t osal_base_memory_getsize(const osal_cfg_t *cfg, uint32_t *size08aligned)
+{
+ if(osal_memmode_static == cfg->memorymodel)
+ {
+ s_osal_error(osal_error_incorrectparameter, "osal_base_memory_getsize(): invalid osal_memmode_static");
+ }
+
+ // we need zero memory from external sources
+ return 0;
+}
+
+
+extern void* osal_base_memory_new(uint32_t size)
+{
+ return embot::os::rtos::memory_new(size);
+}
+
+
+extern void* osal_base_memory_realloc(void* mem, uint32_t size)
+{
+ return embot::os::rtos::memory_realloc(mem, size);
+}
+
+extern void osal_base_memory_del(void* mem)
+{
+ embot::os::rtos::memory_delete(mem);
+}
+
+
+extern osal_result_t osal_base_initialise(const osal_cfg_t *cfg, uint64_t *data08aligned)
+{
+ uint16_t size08 = 0;
+ uint16_t size04 = 0;
+
+ if(NULL == cfg)
+ {
+ s_osal_error(osal_error_missingconfiguration, "osal: NULL cfg in osal_initialise()");
+ return(osal_res_NOK_nullpointer);
+ }
+
+ if(osal_memmode_static == cfg->memorymodel)
+ {
+ s_osal_error(osal_error_incorrectparameter, "osal_initialise(): invalid osal_memmode_static");
+ // return(osal_res_NOK_generic);
+ }
+
+#if defined(OSAL_USE_rtos_cmsisos2)
+ #warning ... we may add a osal_rtostype_cmsisos2
+ if(osal_rtostype_oosiit != cfg->rtostype)
+ {
+ s_osal_error(osal_error_unsupportedbehaviour, "osal: unsupported rtos");
+ return(osal_res_NOK_generic);
+ }
+#endif
+
+ if(s_osal_cpufam != cfg->cpufam)
+ {
+ s_osal_error(osal_error_unsupportedbehaviour, "osal: cfg has a wrong cpu family");
+ return(osal_res_NOK_generic);
+ }
+
+ if((osal_info_status_running == s_osal_info_status) || (osal_info_status_suspended == s_osal_info_status))
+ {
+ s_osal_error(osal_error_generic, "osal: called osal_initialise() after osal_start()");
+ return(osal_res_NOK_generic);
+ }
+
+ if((NULL != cfg->extfn.hal_sys_irqn_priority_set) && (cfg->prio > 15))
+ {
+ s_osal_error(osal_error_generic, "osal: if used, prio must be between 0 and 15");
+ return(osal_res_NOK_generic);
+ }
+
+ memcpy(&s_osal_osal_cfg, cfg, sizeof(osal_cfg_t));
+
+ s_osal_usec_in_tick = cfg->tick;
+
+ s_osal_info_status = osal_info_status_initialised;
+
+ return(osal_res_OK);
+}
+
+
+extern osal_info_status_t osal_info_get_status(void)
+{
+ return(s_osal_info_status);
+}
+
+
+extern osal_reltime_t osal_info_get_tick(void)
+{
+ return(s_osal_usec_in_tick);
+}
+
+
+extern const osal_cfg_t* osal_info_get_config(void)
+{
+ if(osal_info_status_zero == s_osal_info_status)
+ {
+ return(NULL);
+ }
+ else
+ {
+ return(&s_osal_osal_cfg);
+ }
+}
+
+
+static void s_osIdleThread(void)
+{
+ s_osal_on_idle(NULL);
+}
+
+//#define MODE1
+
+static void s_launcher(void)
+{
+#if defined(MODE1)
+ // IN HERE we start a further THREAD WITH PRIO MAX-1 which executes osal_launcher().
+ // THEN we quit quit it.
+ embot::os::rtos::thread_props_t props {};
+ props.prepare(osal_launcher, NULL, 53, s_osal_osal_cfg.launcherstacksize);
+ embot::os::rtos::thread_t *t = embot::os::rtos::thread_new(props);
+
+ embot::os::rtos::thread_t *r = embot::os::rtos::scheduler_thread_running();
+
+// embot::os::rtos::scheduler_deassociate(s_osal_task_launcher.rtostsk, reinterpret_cast(&s_osal_task_launcher));
+ // delete the thread styrted by the scheduler.
+ embot::os::rtos::thread_setpriority(r, embot::os::Priority::low08);
+ embot::os::rtos::thread_delete(r); // in here it is the scheduler which starts all
+#else
+ osal_launcher(NULL);
+#endif
+}
+
+
+static void s_osOnError(embot::os::rtos::thread_t* thread, int errorcode, const char * errormsg)
+{
+ if(nullptr != thread)
+ {
+ embot::os::Thread *t = embot::os::rtos::scheduler_getassociated(thread);
+ const char *tname = ((nullptr == t) || (nullptr == t->getName())) ? "none" : t->getName();
+ embot::core::print(std::string("from os::Thread ") + tname + " -> " + errormsg);
+ }
+ std::string err = std::string("from rtos: error #") + std::to_string(errorcode) + " -> " + errormsg;
+ s_osal_error(osal_error_unknownfromrtos, err.c_str());
+}
+
+//extern "C" {
+//extern uint32_t ITM_SendChar (uint32_t ch);
+//}
+
+//static int s_puts(const char* str)
+//{
+// if(nullptr == str)
+// {
+// return(0);
+// }
+
+// std::uint32_t ch;
+// int num = 0;
+// while('\0' != (ch = *str))
+// {
+// ITM_SendChar(ch);
+// str++;
+// num++;
+// }
+//
+// ITM_SendChar('\n');
+// return(++num);
+//}
+//
+
+extern "C" {
+ extern int hal_trace_puts(const char * str);
+}
+
+static int s_traceprint(const std::string &str)
+{
+ return hal_trace_puts(str.c_str());
+}
+
+embot::os::rtos::scheduler_props_t sch_props {};
+
+extern void osal_system_start(void (*launcher_fn)(void))
+{
+
+#if defined(OSAL_USE_rtos_cmsisos2)
+
+ #warning osal_system_start(): verify code for the case of OSAL_USE_rtos_cmsisos2
+
+
+ constexpr uint16_t timerstacksize {2*1024};
+
+ sch_props.prepare( s_osal_osal_cfg.tick, // or also: s_osal_usec_in_tick, //config.timing.ticktime,
+ #if defined(MODE1)
+ 2048,
+ #else
+ s_osal_osal_cfg.launcherstacksize, //behaviour.initconfig.stacksize,
+ #endif
+ s_osal_osal_cfg.idlestacksize, //.behaviour.idleconfig.stacksize,
+ timerstacksize,
+ s_osIdleThread,
+ s_launcher,
+ s_osOnError);
+
+ embot::os::rtos::scheduler_init(sch_props);
+
+ s_osal_info_status = osal_info_status_running;
+
+ s_osal_launcher_fn = launcher_fn;
+
+ if(NULL == s_osal_launcher_fn)
+ {
+ s_osal_error(osal_error_incorrectparameter, "osal: incorrect param in osal_start()");
+ for(;;);
+ }
+
+ constexpr embot::core::PrintConfig pc {s_traceprint};
+ embot::core::init({{}, pc});
+
+ // prepare idle and init threads
+
+ s_osal_task_idle.rtostsk = NULL;
+ s_osal_task_idle.id = s_id_task_idle;
+// s_osal_task_idle.prio = embot::core::tointegral(embot::os::Priority::schedIdle);
+// s_osal_task_idle.stksize = s_osal_osal_cfg.idlestacksize;
+// s_osal_task_idle.stkdata = reinterpret_cast(props.getidlestack());
+ s_osal_task_idle.ext = NULL;
+
+ s_osal_task_launcher.rtostsk = NULL;
+ s_osal_task_launcher.id = s_id_task_launcher;
+// s_osal_task_launcher.prio = embot::core::tointegral(embot::os::Priority::schedInit);
+// s_osal_task_launcher.stksize = s_osal_osal_cfg.launcherstacksize;
+// s_osal_task_launcher.stkdata = reinterpret_cast(props.getinitstack());
+ s_osal_task_launcher.ext = NULL;
+
+
+ #warning THINK of s_osal_task_idle external data and s_osal_task_launcher
+#if 0
+ s_osal_task_idle = s_osal_taskobj_new();
+ s_osal_task_launcher = s_osal_taskobj_new();
+ and now... fill the internals as in the following code
+ // as we dont call an explicit oosiit_tsk_create() which gives a oosiit_tskptr_t,
+ // the task idle itself inside s_osal_on_idle() must call: s_osal_task_idle->rtostsk = oosiit_tsk_self()
+ s_osal_task_idle->rtostsk = NULL;
+ s_osal_task_idle->signtsk = osal_task_signature;
+ s_osal_task_idle->prio = osal_prio_systsk_idle;
+ s_osal_task_idle->stksize = s_osal_stackidle_size;
+ s_osal_task_idle->stkdata = s_osal_stackidle_data;
+ s_osal_task_idle->ext = NULL;
+
+ tskpidle.function = s_osal_on_idle;
+ tskpidle.param = NULL;
+ tskpidle.priority = osal_prio_systsk_idle;
+ tskpidle.stacksize = s_osal_stackidle_size;
+ tskpidle.stackdata = s_osal_stackidle_data;
+ tskpidle.extdata = s_osal_task_idle;
+
+
+ // as we dont call an explicit oosiit_tsk_create() which gives a oosiit_tskptr_t,
+ // the task launcher itself inside osal_launcher() must call: s_osal_task_launcher->rtostsk = oosiit_tsk_self()
+ s_osal_task_launcher->rtostsk = NULL;
+ s_osal_task_launcher->signtsk = osal_task_signature;
+ s_osal_task_launcher->prio = osal_prio_systsk_launcher;
+ s_osal_task_launcher->stksize = s_osal_stacklauncher_size;
+ s_osal_task_launcher->stkdata = &s_osal_stacklauncher_data[0];
+ s_osal_task_launcher->ext = NULL;
+
+ tskpinit.function = osal_launcher;
+ tskpinit.param = NULL;
+ tskpinit.priority = osal_prio_systsk_launcher;
+ tskpinit.stacksize = s_osal_stacklauncher_size;
+ tskpinit.stackdata = &s_osal_stacklauncher_data[0];
+ tskpinit.extdata = s_osal_task_launcher;
+#endif
+
+ embot::os::rtos::scheduler_start2();
+
+ s_osal_error(osal_error_unknownfromrtos, "scheduler cannot start");
+ for(;;);
+
+#else
+// oosiit_task_properties_t tskpinit;
+// oosiit_task_properties_t tskpidle;
+
+// if(s_osal_info_status != osal_info_status_initialised)
+// {
+// if(s_osal_info_status == osal_info_status_zero)
+// {
+// s_osal_error(osal_error_generic, "osal: called osal_start() w/out prior osal_initialise()");
+// }
+// else
+// {
+// s_osal_error(osal_error_generic, "osal: called osal_start() again");
+// }
+//
+// }
+
+// s_osal_info_status = osal_info_status_running;
+
+// s_osal_launcher_fn = launcher_fn;
+//
+// if(NULL == s_osal_launcher_fn)
+// {
+// s_osal_error(osal_error_incorrectparameter, "osal: incorrect param in osal_start()");
+// }
+//
+// // as we dont call an explicit oosiit_tsk_create() which gives a oosiit_tskptr_t,
+// // the task idle itself inside s_osal_on_idle() must call: s_osal_task_idle->rtostsk = oosiit_tsk_self()
+// s_osal_task_idle->rtostsk = NULL;
+// s_osal_task_idle->signtsk = osal_task_signature;
+// s_osal_task_idle->prio = osal_prio_systsk_idle;
+// s_osal_task_idle->stksize = s_osal_stackidle_size;
+// s_osal_task_idle->stkdata = s_osal_stackidle_data;
+// s_osal_task_idle->ext = NULL;
+//
+// tskpidle.function = s_osal_on_idle;
+// tskpidle.param = NULL;
+// tskpidle.priority = osal_prio_systsk_idle;
+// tskpidle.stacksize = s_osal_stackidle_size;
+// tskpidle.stackdata = s_osal_stackidle_data;
+// tskpidle.extdata = s_osal_task_idle;
+//
+
+// // as we dont call an explicit oosiit_tsk_create() which gives a oosiit_tskptr_t,
+// // the task launcher itself inside osal_launcher() must call: s_osal_task_launcher->rtostsk = oosiit_tsk_self()
+// s_osal_task_launcher->rtostsk = NULL;
+// s_osal_task_launcher->signtsk = osal_task_signature;
+// s_osal_task_launcher->prio = osal_prio_systsk_launcher;
+// s_osal_task_launcher->stksize = s_osal_stacklauncher_size;
+// s_osal_task_launcher->stkdata = &s_osal_stacklauncher_data[0];
+// s_osal_task_launcher->ext = NULL;
+//
+// tskpinit.function = osal_launcher;
+// tskpinit.param = NULL;
+// tskpinit.priority = osal_prio_systsk_launcher;
+// tskpinit.stacksize = s_osal_stacklauncher_size;
+// tskpinit.stackdata = &s_osal_stacklauncher_data[0];
+// tskpinit.extdata = s_osal_task_launcher;
+
+
+
+//
+// // start the system
+// oosiit_sys_start(&tskpinit, &tskpidle);
+#endif
+}
+
+
+#warning REVIEW: osal_info_entities_get_stats()
+extern void osal_info_entities_get_stats(const uint16_t **used, const uint16_t **free)
+{
+ if((s_osal_info_status == osal_info_status_zero) || (s_osal_info_status == osal_info_status_initialised))
+ {
+ *used = NULL;
+ *free = NULL;
+ return;
+ }
+
+ osal_mutex_take(s_osal_mutex_api_protection, OSAL_reltimeINFINITE);
+
+ s_resources_free[osal_info_entity_globalstack] = s_osal_osal_cfg.globalstacksize - s_resources_used[osal_info_entity_globalstack];
+ s_resources_free[osal_info_entity_task] = s_osal_osal_cfg.tasknum - s_resources_used[osal_info_entity_task];
+ s_resources_free[osal_info_entity_timer] = s_osal_osal_cfg.timernum - s_resources_used[osal_info_entity_timer];
+ s_resources_free[osal_info_entity_mutex] = s_osal_osal_cfg.mutexnum - s_resources_used[osal_info_entity_mutex];
+ s_resources_free[osal_info_entity_semaphore] = s_osal_osal_cfg.semaphorenum - s_resources_used[osal_info_entity_semaphore];
+ s_resources_free[osal_info_entity_messagequeue] = s_osal_osal_cfg.mqueuenum - s_resources_used[osal_info_entity_messagequeue];
+ s_resources_free[osal_info_entity_message] = s_osal_osal_cfg.mqueueelemnum - s_resources_used[osal_info_entity_message];
+
+ *used = s_resources_used;
+ *free = s_resources_free;
+
+ osal_mutex_release(s_osal_mutex_api_protection);
+}
+
+#warning REVIEW: osal_info_idletime_get()
+extern osal_abstime_t osal_info_idletime_get(void)
+{
+ return(0);
+}
+
+
+#warning TODO: osal_system_ticks_abstime_set()
+extern void osal_system_ticks_abstime_set(osal_abstime_t tot)
+{
+ //oosiit_time_set(s_osal_abstime2tick(tot));
+}
+
+
+extern osal_abstime_t osal_system_ticks_abstime_get(void)
+{
+ return cmsisos2_sys_abstime_milliresolution();
+// return embot::os::rtos::scheduler_timeget();
+ // return((uint64_t)s_osal_usec_in_tick * oosiit_time_get());
+}
+
+
+extern osal_abstime_t osal_system_abstime_get(void)
+{
+ return embot::os::rtos::scheduler_timeget();
+// return(oosiit_microtime_get());
+}
+
+
+//#warning NOTE: suboptimal implemenattion
+extern osal_nanotime_t osal_system_nanotime_get(void)
+{
+ return 1000*embot::os::rtos::scheduler_timeget();
+// return(oosiit_nanotime_get());
+}
+
+
+extern void osal_system_scheduling_suspend(void)
+{
+ if(osal_info_status_running == s_osal_info_status)
+ { // order is important in here
+ embot::os::rtos::scheduler_lock();
+ //oosiit_sys_suspend(NULL);
+ s_osal_info_status = osal_info_status_suspended;
+ }
+}
+
+
+extern void osal_system_scheduling_restart(void)
+{
+ if(osal_info_status_suspended == s_osal_info_status)
+ { // order is important in here
+ s_osal_info_status = osal_info_status_running;
+ embot::os::rtos::scheduler_unlock();
+ //oosiit_sys_resume(0);
+ }
+}
+
+#warning NOT IMPLEMENTED: osal_system_timeofnextevent()
+extern osal_reltime_t osal_system_timeofnextevent(void)
+{
+ osal_reltime_t nextevent = 0;
+ if(osal_info_status_running == s_osal_info_status)
+ {
+ nextevent = 0;
+ //nextevent = s_osal_usec_in_tick*oosiit_sys_timeofnextevent();
+ }
+
+ return(nextevent);
+}
+
+
+#warning NOTE: different behaviour. it returns 0
+extern osal_reltime_t osal_system_suspend(void)
+{
+ osal_system_scheduling_suspend();
+ return 0;
+// osal_reltime_t nextevent = 0;
+// if(osal_info_status_running == s_osal_info_status)
+// { // order is important in here
+//#if defined(OSAL_USE_rtos_cmsisos2)
+// #warning add code for OSAL_USE_rtos_cmsisos2
+//#else
+// oosiit_sys_suspend(&nextevent);
+//#endif
+// s_osal_info_status = osal_info_status_suspended;
+// }
+//
+// return(s_osal_usec_in_tick*nextevent);
+}
+
+
+#warning NOTE: different behaviour.
+extern void osal_system_resume(osal_reltime_t timeslept)
+{
+ osal_system_scheduling_restart();
+// if(osal_info_status_suspended == s_osal_info_status)
+// { // order is important in here
+// s_osal_info_status = osal_info_status_running;
+//#if defined(OSAL_USE_rtos_cmsisos2)
+// #warning add code for OSAL_USE_rtos_cmsisos2
+//#else
+// oosiit_sys_resume(timeslept/s_osal_usec_in_tick);
+//#endif
+// }
+}
+
+
+extern osal_task_t * osal_task_new1(osal_task_properties_t *tskprop)
+{
+ if(NULL == tskprop)
+ {
+ return(NULL);
+ }
+ return(osal_task_new(tskprop->function, tskprop->param, tskprop->priority, tskprop->stacksize));
+}
+
+//#include