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 + +//static const std::map map_prio_osal_to_embotos = { +// {osal_prio_systsk_idle, embot::os::Priority::schedIdle}, // IDLE 000->001 +// {10, embot::os::Priority::low10} // ETHMON 010->010 +//}; + +//const std::map map_prio_osal_to_embotos = { +// {osal_prio_systsk_idle, 1}, // IDLE 000->001 +// {10, 7} // ETHMON 010->010 +//}; + +//#warning TODO: priority mapping from osal to cmsisos2 and back +// + +//#include +//constexpr std::array s_map_prio_osal2embotos = +//{ +// embot::os::Priority::schedIdle, // IDLE 000->001 osal_prio_systsk_idle +// embot::os::Priority::none, // xxxx 001->000 osal_prio_systsk_usrwhencreated +// embot::os::Priority::none, // xxxx 002->zzz osal_prio_usrtsk_min +// +// +// +// +// embot::os::Priority::low10, // ETHMON 010-> +// +// embot::os::Priority::none, // xxxx 251->zzz osal_prio_usrtsk_max + +// embot::os::Priority::schedInit // LAUNCHER 254->055 osal_prio_systsk_launcher +// embot::os::Priority::schedInit // LAUNCHER 255->055 osal_prio_systsk_scheduler +//}; + +static uint8_t s_priority_osal_to_cmsisos2(uint8_t p) +{ + // there is not a 1 to 1 relation .... + return p; + +// auto a = map_prio_osal_to_embotos.find(p); +// if(a == map_prio_osal_to_embotos.end()) +// { +// return 0; +// } +// return embot::core::tointegral(a->second); +} + + +static uint8_t s_priority_cmsisos2_to_osal(uint8_t p) +{ + // there is not a 1 to 1 relation .... + return p; +} + +static uint8_t s_priority_transform(uint8_t prio) +{ + uint8_t r = prio; + switch(prio) + { + case 10: r = 12; break; + case 11: r = 13; break; + case 39: r = 27; break; + case 40: r = 28; break; + case 41: r = 29; break; + case 50: r = 30; break; + case 202: r = 36; break; + case 219: r = 37; break; + case 220: r = 38; break; + case 240: r = 39; break; + case 247: r = 44; break; + case 248: r = 45; break; + case 249: r = 46; break; + + default: break; + } + return r; +} + + +extern osal_task_t * osal_task_new(void (*run_fn)(void*), void *run_arg, uint8_t prio, uint16_t stksize) +{ + osal_task_t* retval = NULL; + + if((0 == stksize) || (NULL == run_fn)) + { + s_osal_error(osal_error_incorrectparameter, "osal: incorr param in osal_task_new()"); + } + + prio = s_priority_transform(prio); + constexpr uint8_t initialprio {2}; + + if(false == embot::os::priority::isvalid(prio)) + { + s_osal_error(osal_error_incorrectparameter, "osal: incompatible embot::os::Priority in osal_task_new()"); + } + + // protect vs concurrent call + osal_mutex_take(s_osal_mutex_api_protection, OSAL_reltimeINFINITE); + + retval = reinterpret_cast(osal_base_memory_new(sizeof(osal_task_t))); + if(NULL == retval) + { + s_osal_error(osal_error_missingmemory, "osal: missing mem for osal_task_t in osal_task_new()"); + osal_mutex_release(s_osal_mutex_api_protection); + return(NULL); + } + + uint32_t tmp = (stksize+7)/8; + stksize = 8*tmp; +// uint8_t cmsisos2prio = s_priority_osal_to_cmsisos2(prio); + retval->props = new embot::os::rtos::thread_props_t; + retval->props->prepare(run_fn, run_arg, initialprio, stksize); + retval->rtostsk = embot::os::rtos::thread_new(*retval->props); + + + // reinterpret_cast(props->getstack()) + + if(NULL == retval->rtostsk) + { + // cannot get a task + s_osal_error(osal_error_missingmemory, "osal: missing mem for rtos task in osal_task_new()"); + osal_mutex_release(s_osal_mutex_api_protection); + return(NULL); + } + + // ok. i can increment the tasks. +// s_resources_used[osal_info_entity_task] ++; + + + // init the returning osal task + retval->id = s_id_counter++; +// retval->signtsk = osal_task_signature; + #warning TODO: decide if we want cmsisos2prio or prio in here + retval->prio = prio; + retval->ext = NULL; + + // associate the retval to the rtos thread. we need that because ... + // we can have the pointer of osal_task_t w/ calls to osal_task_get() + embot::os::rtos::scheduler_associate(retval->rtostsk, reinterpret_cast(retval)); + + // can release now + osal_mutex_release(s_osal_mutex_api_protection); + + + // the destiny of the task is now given to the scheduler. it can start now if prio is higher than the priority of the caller + retval->props->setprio(prio); + embot::os::rtos::thread_setpriority(retval->rtostsk, embot::os::priority::convert(prio)); + + return(retval); +} + + +extern osal_result_t osal_task_wait(osal_reltime_t time) +{ + constexpr embot::os::rtos::thread_t * running = nullptr; + // nullptr is fine in here because thread_sleep does not use this argument + embot::os::rtos::thread_sleep(running, time); + return(osal_res_OK); +} + + +extern osal_result_t osal_task_pass(void) +{ + osThreadYield(); + return(osal_res_OK); +} + + +extern osal_result_t osal_task_period_set(osal_reltime_t period) +{ + embot::os::rtos::thread_t *t = embot::os::rtos::scheduler_thread_running(); + embot::os::rtos::thread_period_set(t, period); + return(osal_res_OK); +} + + +extern osal_result_t osal_task_period_wait(void) +{ + constexpr embot::core::relTime period = 0; // it is ok like that. thread_period_wait() does not use the value + embot::os::rtos::thread_t *t = embot::os::rtos::scheduler_thread_running(); + embot::os::rtos::thread_period_wait(t, period); + return(osal_res_OK); +} + + +extern osal_result_t osal_task_delete(osal_task_t *tsk) +{ + if(NULL == tsk) + { + return(osal_res_NOK_nullpointer); + } + + if(false == tsk->isvalid()) + { + return(osal_res_NOK_generic); + } + + // some tasks could call it at the same time ... better to protect + osal_mutex_take(s_osal_mutex_api_protection, OSAL_reltimeINFINITE); + + embot::os::rtos::thread_t* rtostsk = tsk->rtostsk; + embot::os::rtos::thread_props_t* props = tsk->props; + + embot::os::rtos::scheduler_deassociate(rtostsk, reinterpret_cast(tsk)); + + + // reset the data pointed by tsk so that another task calling osal_tsk_* functions with the same tsk + // exits gracefully ... until the same memory is used for something else.... + tsk->rtostsk = NULL; + tsk->id = 0; +// tsk->signtsk = 0; + tsk->prio = 0; + tsk->ext = NULL; + + osal_base_memory_del(tsk); + + osal_mutex_release(s_osal_mutex_api_protection); + + embot::os::rtos::thread_delete(rtostsk); + delete props; + + return(osal_res_OK); +} + + +extern osal_result_t osal_task_priority_get(osal_task_t *tsk, uint8_t *prio) +{ + if((NULL == tsk) || (NULL == prio)) + { + return(osal_res_NOK_nullpointer); + } + + if(false == tsk->isvalid()) + { + return(osal_res_NOK_generic); + } + + *prio = tsk->props->getprio(); + + return(osal_res_OK); +} + + +extern osal_result_t osal_task_priority_set(osal_task_t *tsk, uint8_t prio) +{ + if(NULL == tsk) + { + return(osal_res_NOK_nullpointer); + } + + if(false == tsk->isvalid()) + { + return(osal_res_NOK_generic); + } + +// if((prioosal_prio_usrtsk_max)) +// { +// return(osal_res_NOK_generic); +// } + + prio = s_priority_transform(prio); + + if(false == embot::os::priority::isvalid(prio)) + { + return(osal_res_NOK_generic); + } + + // some tasks could call it at the same time ... better to protect + osal_mutex_take(s_osal_mutex_api_protection, OSAL_reltimeINFINITE); + +// uint8_t cmsisos2prio = s_priority_osal_to_cmsisos2(prio); + tsk->props->setprio(prio); + embot::os::rtos::thread_setpriority(tsk->rtostsk, embot::os::priority::convert(prio)); + + osal_mutex_release(s_osal_mutex_api_protection); + + return(osal_res_OK); +} + + +extern osal_result_t osal_task_id_get(osal_task_t *tsk, osal_task_id_t *id) +{ + if((NULL == tsk) || (NULL == id)) + { + return(osal_res_NOK_nullpointer); + } + + if(false == tsk->isvalid()) + { + return(osal_res_NOK_generic); + } + + *id = tsk->id; + + return(osal_res_OK); +} + + +extern osal_result_t osal_task_extdata_set(osal_task_t *tsk, void *ext) +{ + if(NULL == tsk) + { + return(osal_res_NOK_nullpointer); + } + + if(false == tsk->isvalid()) + { + return(osal_res_NOK_nullpointer); + } + + // some tasks could call it at the same time ... better to protect + osal_mutex_take(s_osal_mutex_api_protection, OSAL_reltimeINFINITE); + + tsk->ext = ext; + + osal_mutex_release(s_osal_mutex_api_protection); + + return(osal_res_OK); +} + + +extern void* osal_task_extdata_get(osal_task_t *tsk) +{ + if(NULL == tsk) + { + return(NULL); + } + + if(false == tsk->isvalid()) + { + return(NULL); + } + + return(tsk->ext); +} + + +extern osal_task_t * osal_task_get(osal_caller_t caller) +{ + embot::os::rtos::thread_t *rt = embot::os::rtos::scheduler_thread_running(); + embot::os::Thread* t = embot::os::rtos::scheduler_getassociated(rt); + return reinterpret_cast(t); +} + + +extern void * osal_task_stack_get1(osal_task_t *tsk, uint16_t *size) +{ + if(NULL == tsk) + { + return(NULL); + } + + if(false == tsk->isvalid()) + { + return(NULL); + } + + uint16_t s = 0; + void * ret = tsk->props->getstack(s); + if(nullptr != size) + { + *size = s; + } + return ret; +} + +// messagequeue + +extern osal_messagequeue_t * osal_messagequeue_new(uint16_t maxmsg) +{ + if(maxmsg == 0) + { + s_osal_error(osal_error_incorrectparameter, "osal: incorr param in osal_messagequeue_new()"); + return(NULL); + } + + embot::os::rtos::messagequeue_t * mq = embot::os::rtos::messagequeue_new(maxmsg); + + if(NULL == mq) + { + s_osal_error(osal_error_missingmemory, "osal: missing mem for osal_messagequeue_t in osal_messagequeue_new()"); + return(NULL); + } + + + // protect here because the osiit_* calls are already protected as they are executes by svc + osal_mutex_take(s_osal_mutex_api_protection, OSAL_reltimeINFINITE); + + s_resources_used[osal_info_entity_messagequeue] ++; + s_resources_used[osal_info_entity_message] += maxmsg; + + osal_mutex_release(s_osal_mutex_api_protection); + + return reinterpret_cast(mq); +} + +#warning see osal_messagequeue_get() + +extern osal_result_t osal_messagequeue_get(osal_messagequeue_t *mq, osal_message_t *pmsg, osal_reltime_t tout, osal_caller_t caller) +{ + osal_result_t res = osal_res_OK; + + if((NULL == mq) || (NULL == pmsg)) + { + return(osal_res_NOK_nullpointer); + } + + embot::os::Message msg = embot::os::rtos::messagequeue_get(reinterpret_cast(mq), tout); + + *pmsg = (osal_message_t)msg; + + return(res); +} + + +extern osal_message_t osal_messagequeue_getquick(osal_messagequeue_t *mq, osal_reltime_t tout, osal_caller_t caller) +{ + void *p = NULL; + + if(NULL == mq) + { + return((osal_message_t)0); + } + + embot::os::Message msg = embot::os::rtos::messagequeue_get(reinterpret_cast(mq), tout); + + return((osal_message_t)msg); +} + +extern uint16_t osal_messagequeue_available(osal_messagequeue_t *mq, osal_caller_t caller) +{ + if(NULL == mq) + { + return(0); + } + + return embot::os::rtos::messagequeue_available(reinterpret_cast(mq)); +} + + +extern uint16_t osal_messagequeue_size(osal_messagequeue_t *mq, osal_caller_t caller) +{ + if(NULL == mq) + { + return(0); + } + + return embot::os::rtos::messagequeue_size(reinterpret_cast(mq)); + +} + + +extern osal_result_t osal_messagequeue_put(osal_messagequeue_t *mq, osal_message_t msg, osal_reltime_t tout, osal_caller_t caller) +{ + if(NULL == mq) + { + return(osal_res_NOK_nullpointer); + } + + bool rr = embot::os::rtos::messagequeue_put(reinterpret_cast(mq), msg, tout); + + return (rr) ? osal_res_OK : osal_res_NOK_timeout; + +} + +extern osal_result_t osal_messagequeue_delete(osal_messagequeue_t *mq) +{ + if(NULL == mq) + { + return(osal_res_NOK_nullpointer); + } + + embot::os::rtos::messagequeue_delete(reinterpret_cast(mq)); + + osal_mutex_take(s_osal_mutex_api_protection, OSAL_reltimeINFINITE); + s_resources_used[osal_info_entity_messagequeue] --; + osal_mutex_release(s_osal_mutex_api_protection); + + return(osal_res_OK); +} + + +extern osal_result_t osal_eventflag_set(osal_eventflag_t flag, osal_task_t * totask, osal_caller_t caller) +{ + if(NULL == totask) + { + return(osal_res_NOK_nullpointer); + } + + bool rr = embot::os::rtos::event_set(totask->rtostsk, flag); + + return(osal_res_OK); +} + + +extern osal_result_t osal_eventflag_get(osal_eventflag_t waitmsk, osal_eventflag_waitmode_t waitmode, osal_eventflag_t *rxmsk, osal_reltime_t tout) +{ + osal_result_t res = osal_res_NOK_timeout; + + if(NULL == rxmsk) + { + return(osal_res_NOK_nullpointer); + } + + *rxmsk = 0; + + // osal_waitANYflag or osal_waitALLflags + uint32_t options = (osal_waitANYflag == waitmode) ? osFlagsWaitAny : osFlagsWaitAll; + uint32_t flags = (osal_waitANYflag == waitmode) ? 0x7fffffff : waitmsk; + + uint32_t r = osThreadFlagsWait(flags, options, cmsisos2_sys_reltime2tick(tout)); + if(osFlagsErrorTimeout == r) + { + return osal_res_NOK_timeout; + } + + *rxmsk = r; + return osal_res_OK; + +} + + +extern osal_eventflag_t osal_eventflag_getany(osal_reltime_t tout) +{ + return embot::os::rtos::event_get(tout); +} + + +extern osal_mutex_t * osal_mutex_new(void) +{ + embot::os::rtos::mutex_t* m = embot::os::rtos::mutex_new(); + return reinterpret_cast(m); +} + + +extern osal_result_t osal_mutex_take(osal_mutex_t *mutex, osal_reltime_t tout) +{ + if(NULL == mutex) + { + return(osal_res_NOK_nullpointer); + } + bool v = embot::os::rtos::mutex_take(reinterpret_cast(mutex), tout); + return (v) ? osal_res_OK : osal_res_NOK_timeout; +} + + +extern osal_result_t osal_mutex_release(osal_mutex_t *mutex) +{ + if(NULL == mutex) + { + return(osal_res_NOK_nullpointer); + } + + embot::os::rtos::mutex_release(reinterpret_cast(mutex)); + return osal_res_OK; +} + + +extern osal_result_t osal_mutex_delete(osal_mutex_t *mutex) +{ + if(NULL == mutex) + { + return(osal_res_NOK_nullpointer); + } + + embot::os::rtos::mutex_delete(reinterpret_cast(mutex)); + return(osal_res_OK); +} + + +extern osal_semaphore_t * osal_semaphore_new(uint8_t maxtokens, uint8_t tokens) +{ + if((0 == maxtokens) || (tokens > maxtokens)) + { + s_osal_error(osal_error_incorrectparameter, "osal: value of maxtokens or tokens are incorrect in osal_semaphore_new()"); + return(NULL); + } + + embot::os::rtos::semaphore_t* s = embot::os::rtos::semaphore_new(maxtokens, tokens); + return reinterpret_cast(s); +} + + +extern osal_result_t osal_semaphore_set(osal_semaphore_t *sem, uint8_t tokens) +{ + if(NULL == sem) + { + return(osal_res_NOK_nullpointer); + } + + osRtxSemaphore_t *ss = (osRtxSemaphore_t*)sem; + + if(tokens > ss->max_tokens) + { + return(osal_res_NOK_generic); + } + + if(tokens == ss->tokens) + { + return(osal_res_OK); + } + + if(NULL == ss->thread_list) + { + ss->tokens = tokens; + return(osal_res_OK); + } + + // problems: we have a thread waiting ... for now i invalidate that + + s_osal_error(osal_error_incorrectparameter, "osal: osal_semaphore_set() cannot set because a thread is waiting"); + return(osal_res_NOK_generic); +} + + +extern osal_result_t osal_semaphore_decrement(osal_semaphore_t *sem, osal_reltime_t tout) +{ + if(NULL == sem) + { + return(osal_res_NOK_nullpointer); + } + + bool v = embot::os::rtos::semaphore_acquire(reinterpret_cast(sem), tout); + return (v) ? osal_res_OK : osal_res_NOK_timeout; +} + + +extern osal_result_t osal_semaphore_increment(osal_semaphore_t *sem, osal_caller_t caller) +{ + if(NULL == sem) + { + return(osal_res_NOK_nullpointer); + } + embot::os::rtos::semaphore_release(reinterpret_cast(sem)); + return osal_res_OK; +} + + +extern osal_result_t osal_semaphore_delete(osal_semaphore_t *sem) +{ + if(NULL == sem) + { + return(osal_res_NOK_nullpointer); + } + + embot::os::rtos::semaphore_delete(reinterpret_cast(sem)); + return(osal_res_OK); +} + + +extern osal_timer_t * osal_timer_new(void) +{ + osal_timer_t * retval = reinterpret_cast(osal_base_memory_new(sizeof(osal_timer_t))); + if(NULL == retval) + { + s_osal_error(osal_error_missingmemory, "osal: missing mem for osal_timer_t in osal_timer_new()"); +// osal_mutex_release(s_osal_mutex_api_protection); + return(NULL); + } + + retval->rtostimer = embot::os::rtos::timer_new(); + retval->dummy = 0; + retval->onexpiry.cbk = nullptr; + retval->onexpiry.par = nullptr; + +// osal_mutex_take(s_osal_mutex_api_protection, OSAL_reltimeINFINITE); +// s_resources_used[osal_info_entity_timer] ++; +// osal_mutex_release(s_osal_mutex_api_protection); + + return(retval); +} + + +void s_timer_adapter_onexpiry(void *p) +{ + osal_timer_t *t = reinterpret_cast(p); + if(nullptr != t->onexpiry.cbk) + { + t->onexpiry.cbk(t, t->onexpiry.par); + } +} + +extern osal_result_t osal_timer_start(osal_timer_t *timer, osal_timer_timing_t *timing, osal_timer_onexpiry_t *onexpiry, osal_caller_t caller) +{ + if((NULL == timer) || (NULL == timer->rtostimer) || (NULL == timing) || (NULL == onexpiry)) + { + return(osal_res_NOK_nullpointer); + } + + if(true == embot::os::rtos::timer_running(timer->rtostimer)) + { + embot::os::rtos::timer_stop(timer->rtostimer); + } + + // note: in cmsisos2 timing->startat is not supported + embot::os::rtos::timerMode mode = (osal_tmrmodeONESHOT == timing->mode) ? embot::os::rtos::timerMode::oneshot : embot::os::rtos::timerMode::forever; + embot::core::relTime countdown = timing->count; + embot::os::rtos::fpOnTimerExpiry cmsisos2onexpiry = s_timer_adapter_onexpiry; + timer->onexpiry.cbk = onexpiry->cbk; + timer->onexpiry.par = onexpiry->par; + + bool r = embot::os::rtos::timer_start(timer->rtostimer, mode, countdown, cmsisos2onexpiry, timer); + + return (true == r) ? osal_res_OK : osal_res_NOK_generic; +} + + +extern osal_result_t osal_timer_stop(osal_timer_t *timer, osal_caller_t caller) +{ + if((NULL == timer) || (NULL == timer->rtostimer)) + { + return(osal_res_NOK_nullpointer); + } + + embot::os::rtos::timer_stop(timer->rtostimer); + + return osal_res_OK; +} + + +extern osal_result_t osal_timer_isactive(osal_timer_t *timer, osal_caller_t caller) +{ + if((NULL == timer) || (NULL == timer->rtostimer)) + { + return(osal_res_NOK_nullpointer); + } + + bool r = embot::os::rtos::timer_running(timer->rtostimer); + + return (true == r) ? osal_res_OK : osal_res_NOK_generic; +} + +extern osal_result_t osal_timer_delete(osal_timer_t *timer) +{ + if((NULL == timer) || (NULL == timer->rtostimer)) + { + return(osal_res_NOK_nullpointer); + } + + if(true == embot::os::rtos::timer_running(timer->rtostimer)) + { + embot::os::rtos::timer_stop(timer->rtostimer); + } + + embot::os::rtos::timer_delete(timer->rtostimer); + + timer->rtostimer = nullptr; + + osal_base_memory_del(timer); + +// osal_mutex_take(s_osal_mutex_api_protection, OSAL_reltimeINFINITE); +// s_resources_used[osal_info_entity_timer] --; +// osal_mutex_release(s_osal_mutex_api_protection); + + return(osal_res_OK); +} + +#warning NOTE: what about osal_ext_calloc(), osal_ext_realloc(), osal_ext_free() ??? + + +// -------------------------------------------------------------------------------------------------------------------- +// - definition of extern hidden functions +// -------------------------------------------------------------------------------------------------------------------- + + +extern void osal_hid_reset_static_ram(void) +{ + // init static ram. it is necessary to do that only if we use a shalib. + memset(&s_osal_osal_cfg, 0, sizeof(osal_cfg_t)); + + s_osal_mutex_api_protection = NULL; + + s_osal_info_status = osal_info_status_zero; + + s_osal_usec_in_tick = 0; + s_osal_launcher_fn = NULL; + + memset(s_resources_free, 0, osal_info_entity_numberof); + memset(s_resources_used, 0, osal_info_entity_numberof); + + s_osal_launcher_fn = NULL; + + memset(&s_osal_task_launcher, 0, sizeof(s_osal_task_launcher)); + memset(&s_osal_task_idle, 0, sizeof(s_osal_task_idle)); + + s_id_counter = 0; +} + +// -------------------------------------------------------------------------------------------------------------------- +// - definition of static functions +// -------------------------------------------------------------------------------------------------------------------- + + +static void s_osal_on_fatalerror(osal_task_t *task, osal_fatalerror_t errorcode, const char * errormsg) +{ + if(NULL != s_osal_osal_cfg.extfn.usr_on_fatal_error) + { + s_osal_osal_cfg.extfn.usr_on_fatal_error(task, errorcode, errormsg); + for(;;); + } + else + { + for(;;) + { + errorcode = errorcode; + } + } +} + + +static void s_osal_on_idle(void* p) +{ + p = p; + s_osal_task_idle.rtostsk = embot::os::rtos::scheduler_thread_running(); + embot::os::rtos::scheduler_associate(s_osal_task_idle.rtostsk, reinterpret_cast(&s_osal_task_idle)); + + if(NULL != s_osal_osal_cfg.extfn.usr_on_idle) + { + s_osal_osal_cfg.extfn.usr_on_idle(); + for(;;); + } + else + { + for(;;); + } +} + + +static void s_osal_error(osal_fatalerror_t err_code, const char *err_msg) +{ + osal_task_t *task = NULL; + + osal_system_scheduling_suspend(); + + if((osal_info_status_running == s_osal_info_status) || (osal_info_status_suspended == s_osal_info_status)) + { + task = osal_task_get(osal_callerAUTOdetect); + } + else + { + task = NULL; + } + + if(NULL == err_msg) + { // use default message + s_osal_on_fatalerror(task, err_code, "unspecified message"); + } + else + { // use specific error + s_osal_on_fatalerror(task, err_code, err_msg); + } +} + + +void osal_launcher(void* p) +{ +#if defined(OSAL_USE_rtos_cmsisos2) + #warning osal_launcher(): verify code for OSAL_USE_rtos_cmsisos2 + + const int32_t s_SVCall_IRQn = -5; + //const int32_t s_PendSV_IRQn = -2; + //const int32_t s_SysTick_IRQn = -1; + + p = p; + +// s_osal_mutex_api_protection = osal_mutex_new(); +// if(NULL == s_osal_mutex_api_protection) +// { +// s_osal_error(osal_error_missingmemory, "osal: cannot create the s_osal_mutex_api_protection"); +// } + + // must retrieve the rtostsk in here because we did not call a oosiit_tsk_create(). the system did +// s_osal_task_launcher->rtostsk = oosiit_tsk_self(); + + // change the priority of the svc only. the pendsv and systick have fixed value. + // the default in osiit for svc, pendsv and systick is 14, 15, 15. + if(NULL != s_osal_osal_cfg.extfn.hal_sys_irqn_priority_set) + { + s_osal_osal_cfg.extfn.hal_sys_irqn_priority_set(s_SVCall_IRQn, s_osal_osal_cfg.prio); + // the others must stay at priority 15.... + //s_osal_osal_cfg.extfn.hal_sys_irqn_priority_set(s_PendSV_IRQn, s_osal_osal_cfg.prio); + //s_osal_osal_cfg.extfn.hal_sys_irqn_priority_set(s_SysTick_IRQn, s_osal_osal_cfg.prio); + } + + + s_osal_task_launcher.rtostsk = embot::os::rtos::scheduler_thread_running(); + embot::os::rtos::scheduler_associate(s_osal_task_launcher.rtostsk, reinterpret_cast(&s_osal_task_launcher)); + + // execute the user-defined function. it may never return ... + if(NULL != s_osal_launcher_fn) + { + s_osal_launcher_fn(); + } + + embot::os::rtos::scheduler_deassociate(s_osal_task_launcher.rtostsk, reinterpret_cast(&s_osal_task_launcher)); + + // delete the launcher task + embot::os::rtos::thread_delete(embot::os::rtos::scheduler_thread_running()); + +#else + + const int32_t s_SVCall_IRQn = -5; + //const int32_t s_PendSV_IRQn = -2; + //const int32_t s_SysTick_IRQn = -1; + + p = p; + + s_osal_mutex_api_protection = osal_mutex_new(); + + if(NULL == s_osal_mutex_api_protection) + { + s_osal_error(osal_error_missingmemory, "osal: cannot create the s_osal_mutex_api_protection"); + } + + // must retrieve the rtostsk in here because we did not call a oosiit_tsk_create(). the system did + s_osal_task_launcher->rtostsk = oosiit_tsk_self(); + + // change the priority of the svc only. the pendsv and systick have fixed value. + // the default in osiit for svc, pendsv and systick is 14, 15, 15. + if(NULL != s_osal_osal_cfg.extfn.hal_sys_irqn_priority_set) + { + s_osal_osal_cfg.extfn.hal_sys_irqn_priority_set(s_SVCall_IRQn, s_osal_osal_cfg.prio); + // the others must stay at priority 15.... + //s_osal_osal_cfg.extfn.hal_sys_irqn_priority_set(s_PendSV_IRQn, s_osal_osal_cfg.prio); + //s_osal_osal_cfg.extfn.hal_sys_irqn_priority_set(s_SysTick_IRQn, s_osal_osal_cfg.prio); + } + + + // execute the user-defined function. it may never return ... + s_osal_launcher_fn(); + + // but if we are in here it means that the user wants to terminate the launcher task ... + // thus i mark its stack as available by resetting its signature. + //s_osal_stacklauncher_data[0] = (uint64_t)0; + + + // delete the task ... + + // delete the launcher task + oosiit_tsk_delete(oosiit_tsk_self()); +#endif +} + +#if 0 +extern void *__libspace_start; +extern uint32_t (*std_libspace)[96/4]; + +// as in http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0475c/Chdicbfj.html +// you must call that inside void *__user_perthread_libspace (void) +// { static uint8_t firstcall = 1; void * ret; ret = osal_threadsafe_stdlib_mutex_initialize(firstcall); +// if(1 == firstcall) { firstcall = 0;} +// return(ret); +// } +extern void * osal_arch_arm_armc99stdlib_getlibspace(uint8_t firstcall) +{ + // provide a separate libspace for each task +// osThreadId_t tp = NULL; + + if(1 == firstcall) + { + osal_hid_reset_static_ram(); + } + + + if(s_osal_info_status < osal_info_status_running) + { + // osal not running yet + return(&__libspace_start); + } + + // we have osal running, thus also cmsisos2. we get the task id and we give it its memory +// tp = osThreadGetId(); + osal_task_id_t tid = 0; + osal_task_id_get(osal_task_get(osal_callerAUTOdetect), &tid); + + static uint64_t s_d[20][96/8] = {0}; + return &s_d[tid][0]; + //return(oosiit_tsk_get_perthread_libspace(tp)); + +} + +extern void rt_mut_init(void* mutex); + +// as in http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0475c/Chdfjddj.html ... +// one should use it inside a void _mutex_acquire(void *m) function +extern int osal_arch_arm_armc99stdlib_mutex_initialize(void *m) +{ + // this function accepts a pointer to a 32-bit word and initializes it as a valid mutex + + #define OSAL_SYSMUTEXCNT_HIDDEN 8 + + static OOSIIT_MUT s_osal_sysmutexes_hidden[OSAL_SYSMUTEXCNT_HIDDEN]; + void *mutex = NULL; + + + if(s_osal_arch_arm_armc99_sysmutex_number >= OSAL_SYSMUTEXCNT_HIDDEN) + { + // if in here, you need to increase OSIIT_SYSMUTEXCNT_HIDDEN + s_osal_error(osal_error_internal3, "armc99stdlib: not enough sys mutex"); + } + + // i get a pointer to a mutex + mutex = (void*) &s_osal_sysmutexes_hidden[s_osal_arch_arm_armc99_sysmutex_number++]; + // i initialise the ram pointed by the mutex. i use rt_mut_init because it does not use the svc handler + rt_mut_init(mutex); + + // now i write into *mutex the address of the initted mutex + *((uint32_t*)m) = (uint32_t)mutex; + + + // must return a nonzero value on success so that, at runtime, + // the library knows that it is being used in a multithreaded environment + return(1); +} + + +// as in http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0475c/Chdfjddj.html ... +// one should use it inside a void _mutex_acquire(mutex *m) function +extern void osal_arch_arm_armc99stdlib_mutex_acquire(void *m) +{ + // acquire a system mutex to lock stdlib resources only if osal is running + if(s_osal_info_status >= osal_info_status_running) + { + // the 32 bit pointed by m are a valid osal mutex + oosiit_objptr_t *mutex = (oosiit_objptr_t*)m; + // OOSIIT running, acquire a mutex + oosiit_mut_wait(*mutex, OOSIIT_NOTIMEOUT); + } +} + +// as in http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0475c/Chdfjddj.html ... +// one should use it inside a void _mutex_release(mutex *m) function +extern void osal_arch_arm_armc99stdlib_mutex_release(void *m) +{ + // release a system mutex to unlock stdlib resources + if(s_osal_info_status >= osal_info_status_running) + { + // the 32 bit pointerd by m are a valid osal mutex only if osal is running + oosiit_objptr_t *mutex = (oosiit_objptr_t*)m; + // OOSIIT runnning, release a mutex. + oosiit_mut_release(*mutex); + } +} + +#endif + +// -------------------------------------------------------------------------------------------------------------------- +// - end-of-file (leave a blank line after) +// -------------------------------------------------------------------------------------------------------------------- + + + + diff --git a/emBODY/eBcode/arch-arm/libs/lowlevel/stm32hal/proj/stm32hal.h7.uvoptx b/emBODY/eBcode/arch-arm/libs/lowlevel/stm32hal/proj/stm32hal.h7.uvoptx index 5cd7b356b1..22d24556c8 100644 --- a/emBODY/eBcode/arch-arm/libs/lowlevel/stm32hal/proj/stm32hal.h7.uvoptx +++ b/emBODY/eBcode/arch-arm/libs/lowlevel/stm32hal/proj/stm32hal.h7.uvoptx @@ -4381,7 +4381,7 @@ board-amc-v1A0 - 1 + 0 0 0 0