I'm currently using a Tricore TC275 and ErikaOS on a project.
Needing shared variables, I used export files in the .oil file (according to http://erika.tuxfamily.org/wiki/index.p ... neon_Aurix) to access those variables on all cores:
excerpt of conf.oil file:
Code: Select all
CPU test_application {
OS EE {
REMOTENOTIFICATION = USE_RPC;
CFLAGS ="-I../../../3rdParty/iLLD_Build/src";
CFLAGS ="-I../../../3rdParty/iLLD_1_0_1_3_0/Src/BaseSw/Infra/Sfr/TC27D/_Reg";
CFLAGS ="-I../../../3rdParty/iLLD_1_0_1_3_0/Src/BaseSw/Infra/Platform";
CFLAGS ="-I../../../3rdParty/iLLD_1_0_1_3_0/Src/BaseSw/Service/CpuGeneric";
CFLAGS ="-I../../../3rdParty/iLLD_1_0_1_3_0/Src/BaseSw/iLLD/TC27D/Tricore";
CFLAGS ="-I../../../.";
CFLAGS ="-I../../.";
CFLAGS ="-fdata-sections -ffunction-sections";
CFLAGS ="-O2";
LDFLAGS ="-Wl,--gc-sections";
LDFLAGS ="-L../../../3rdParty/iLLD_Build/lib";
LIBS ="-liLLD";
EE_OPT = "EE_EXECUTE_FROM_RAM";
EE_OPT = "EE_SAVE_TEMP_FILES";
EE_OPT = "EE_ICACHE_ENABLED";
EE_OPT = "EE_DCACHE_ENABLED";
EE_OPT = "EE_TRIBOARD_TC2X5";
//EE_OPT = "GPIO_SHIELDBUDDY";
EE_OPT = "GPIO_TRIBOARD_TC275C";
EE_OPT = "__TC27XX__";
EE_OPT = "IFX_TC27x";
EE_OPT = "ERIKA_OS";
//EE_OPT = EE_BUILD_SINGLE_ELF;
EE_OPT = VERBOSE;
MASTER_CPU = "C0";
CPU_DATA = TRICORE {
ID = "C0";
CPU_CLOCK = 200.0;
APP_SRC = "master.c ./app_core_0.c ./app_event_table_core_0.c ./app_ccu_table_core_0.c ./app_db_core_0.c ./IO/GPIO/gpio.c ../ILM/src/ilm_core.c ../ILM/os/ilm_os_erika.c ../ILM/hw/ilm_hw_aurix.c ./ILM/cfg/ilm_hooks.c ";
MULTI_STACK = TRUE;
SYS_STACK_SIZE = 256;
COMPILER_TYPE = GNU {
EXPORT_FILE = "c0.exp";
};
};
...
My current suspicion is, that there might be something wrong with the cc_tricore_gnu_new.mk makefile, since that's the one handling the export files. But due to a lack of experience with makefiles, I wasn't able to track the problem even further.
I would really appreciate every help possible :)
regards
Alex