OIL_VERSION = "2.5";

IMPLEMENTATION trampoline {

    /* This fix the default STACKSIZE of tasks */
    TASK {
        UINT32 STACKSIZE = 300 ;
        UINT32 PRIORITY = 1;
    } ;

    /* This fix the default STACKSIZE of ISRs */
    ISR {
        UINT32 STACKSIZE = 200 ;
    } ;
};

CPU blink {
  OS config {
    STATUS = EXTENDED;
    ERRORHOOK = FALSE;
    PRETASKHOOK = FALSE;
    POSTTASKHOOK = FALSE;
    
    BUILD = TRUE {
      TRAMPOLINE_BASE_PATH = "../../../..";
      APP_SRC = "blink.c";
      APP_NAME = "blink_exe";
      CFLAGS  = "-g -O3 -Wall -pedantic -Wformat -std=c99 -mcpu=arm7tdmi-s -Wmissing-field-initializers -mfloat-abi=soft";
      CFLAGS = "-I../../../machines/arm/olimex_lpc_l2294/drivers"; 
      ASFLAGS = "-g -Wall -mcpu=cortex-m4 -mthumb --fatal-warnings -mfloat-abi=soft -mfpu=fpv4-sp-d16";
      LDFLAGS = "--fatal-warnings --warn-common --no-undefined -L/Users/DavidGarriou/Tools/gcc/gcc-arm-none-eabi/arm-none-eabi/lib/thumb -lc -L/Users/DavidGarriou/Tools/gcc/gcc-arm-none-eabi/lib/gcc/arm-none-eabi/4.9.3/thumb -lgcc -Map=blink.map";
      COMPILER = "arm-none-eabi-gcc";
      ASSEMBLER = "arm-none-eabi-as";
      LINKER = "arm-none-eabi-ld";
      COPIER = "arm-none-eabi-objcopy";
      SYSTEM = PYTHON;
    };
    SYSTEM_CALL = TRUE;
    MEMMAP = TRUE {
      COMPILER = gcc;
      LINKER = gnu_ld { SCRIPT = "script.ld"; };
      ASSEMBLER = gnu_as;
      MEMORY_PROTECTION = FALSE;
    };
  };
  
  APPMODE std {};
  
  TASK blink {
    PRIORITY = 1;
    AUTOSTART = FALSE;
    ACTIVATION = 1;
    SCHEDULE = FULL;
  };
  
  ALARM blink_blink {
    COUNTER = SystemCounter;
    ACTION = ACTIVATETASK {
      TASK = blink;
    };
    AUTOSTART = TRUE {
      APPMODE = std;
      ALARMTIME = 250;
      CYCLETIME = 250;
    };
  };
};