20.24 Description Examples
The following describes an example for coding the system configuration file.

Note The RI600PX provides sample source files for the system configuration file.

 // System Definition
 system{
     stack_size  = 1024;
     priority    = 10;
     system_IPL  = 14;
     message_pri = 1;
     tic_deno    = 1;
     tic_nume    = 1;
     context     = FPSW,ACC; 
 };
 
 // System Clock Definition ----------------------------------------
 clock{
     timer       = CMT0;
     template    = rx630.tpl;
     timer_clock = 25MHz;
     IPL         = 13;
 };
 
 // Number of object ----------------------------------------
     max_task    = 10;
     max_sem     = 1;
 //  max_flag    = ;
     max_dtq     = 1;
 //  max_mbx     = ;
 //  max_mtx     = ;
 //  max_mbf     = ;
 //  max_mpf     = ;
     max_mpl     = 1;
 //  max_cyh     = ;
 //  max_alh     = ;
     max_domain  = 3;
 };
 
 // Trusted domain
 domain[1] {
     trust   = YES;
 };
 
 // Memory Object Definition : Master domain data
 memory_object[1]{
     start_address = BU_MASTERDOM;
     end_address   = RU_MASTERDOM_2;
     acptn1        = 0x0001;
     acptn2        = 0x0001;
     acptn3        = 0;
 };
 // Memory Object Definition : App-domain A data
 memory_object[2]{
     start_address = BU_DOM_A;
     end_address   = RU_DOM_A_2;
     acptn1        = 0x0002;
     acptn2        = 0x0002;
     acptn3        = 0;
 };
 // Memory Object Definition : App-domain B data
 memory_object[3]{
     start_address = BU_DOM_B;
     end_address   = RU_DOM_B_2;
     acptn1        = 0x0004;
     acptn2        = 0x0004;
     acptn3        = 0;
 };
 
 // Memory Object Definition : Shared data
 memory_object[4]{
     start_address = BURI_HEAP;
     end_address   = RU_SH_2;
     acptn1        = TACP_SHARED;
     acptn2        = TACP_SHARED;
     acptn3        = 0;
 };
 
 // Memory Object Definition : Master domain code and const
 memory_object[5]{
     start_address = PU_MASTERDOM;
     acptn2        = 0;
 };
 
 // Memory Object Definition : App-domain A code and const
 memory_object[6]{
     start_address = PU_DOM_A;
     end_address   = DU_DOM_A_2;
     acptn1        = 0x0002;
     acptn2        = 0;
     acptn3        = 0x0002;
 };
 
 // Memory Object Definition : App-domain B code and const
 memory_object[7]{
     start_address = PU_DOM_B;
     end_address   = DU_DOM_B_2;
     acptn1        = 0x0004;
     acptn2        = 0;
     acptn3        = 0x0004;
 };
 
 // Memory Object Definition : Shared code and const
 memory_object[8]{
     start_address = PU_SH;
     end_address   = DU_SH_2;
     acptn1        = TACP_SHARED;
     acptn2        = 0;
     acptn3        = TACP_SHARED;
 };
 // Task Definition ----------------------------------------
 task[]{
     name            = ID_MASTERDOMTASK;
     entry_address   = MasterDom_Task();
     initial_start   = ON;
     stack_size      = 256;
     priority        = 1;
 //  stack_section   = SURI_STACK;
     exinf           = 1;
 //  texrtn          = ;
     domain_num      = 1;
 };
 
 // Semaphore Definition ----------------------------------------
 //  semaphore[]{
 //      name            = ID_SEM1;
 //      wait_queue      = TA_TFIFO;
 //      max_count       = 1;
 //      initial_count   = 1;
 //  };
 
 // Eventflag Definition ----------------------------------------
 //  flag[]{
 //      name            = ID_FLG1;
 //      initial_pattern = 0;
 //      wait_queue      = TA_TFIFO;
 //      wait_multi      = TA_WSGL;
 //      clear_attribute = NO;
 //  };
 
 // Data Queue Definition ----------------------------------------
 //  dataqueue[]{
 //      name            = ID_DTQ1;
 //      buffer_size     = 4;
 //      wait_queue      = TA_TFIFO;
 //  };
 
 // Mailbox Definition ----------------------------------------
 //  mailbox[]{
 //      name            = ID_MBX1;
 //      wait_queue      = TA_TFIFO;
 //      message_queue   = TA_MFIFO;
 //      max_pri         = 1;
 //  };
 
 // Mutex definition ----------------------------------------
 //  mutex[]{
 //      name            = ID_MTX1;
 //      ceilpri         = 1;
 //  };
 
 // Message Buffer Definition ----------------------------------------
 //  message_buffer[]{
 //      name            = ID_MBF1;
 //      mbf_size        = 128;
 //      mbf_section     = BRI_RAM;
 //      max_msgsz       = 16;
 //      wait_queue      = TA_TFIFO;
 //  };
 // Fixed-sized Memory Pool Definition ----------------------------------------
 //  memorypool[]{
 //      name            = ID_MPF1;
 //      section         = BURI_HEAP;
 //      num_block       = 1;
 //      siz_block       = 0x100;
 //      wait_queue      = TA_TFIFO;
 //  };
 // Variable-sized Memory Pool Definition ----------------------------------------
 //  variable_memorypool[]{
 //      name            = ID_MPL1;
 //      mpl_section     = BURI_HEAP;
 //      heap_size       = 1024;
 //      max_memsize     = 36;
 //  };
 
 // Cyclic Handler Definition ----------------------------------------
 cyclic_hand[] {
     name            = ID_CYC1;
     entry_address   = cyh1();
     interval_counter = 10;
     start           = ON;
     phsatr          = OFF;
     phs_counter     = 10;
     exinf           = 1;
 };
 
 // Alarm Handler Definition ----------------------------------------
 alarm_hand[] {
     name            = ID_ALM1;
     entry_address   = alh1();
     exinf           = 1;
 };
 
 // Relocatable Vector Definition ----------------------------------------
 //  interrupt_vector[64]{
 //      os_int          = YES;
 //      entry_address   = inh64();
 //      pragma_switch   = E;
 //  };
 
 // Fixed Vector Definition ----------------------------------------
 //  interrupt_fvector[0]{	// MDES register (address : 0xFFFFFF80)
 //      entry_address   = AUTO_ENDIAN;
 //  };
 
 //  interrupt_fvector[1]{	// Reserved (address : 0xFFFFFF84)
 //      entry_address   = 0xFFFFFFFF;
 //  };
 
 //  interrupt_fvector[2]{	// OFS1 register (address : 0xFFFFFF88)
 //      entry_address   = 0xFFFFFFFF;
 //  };
 
 //  interrupt_fvector[3]{	// OFS0 register (address : 0xFFFFFF8C)
 //      entry_address   = 0xFFFFFFFF;
 //  };
 
 //  interrupt_fvector[4]{	// Reserved (address : 0xFFFFFF90)
 //      entry_address   = 0xFFFFFFFF;
 //  };
 //  interrupt_fvector[5]{	// Reserved (address : 0xFFFFFF96)
 //      entry_address   = 0xFFFFFFFF;
 //  };
 
 //  interrupt_fvector[6]{	// Reserved (address : 0xFFFFFF98)
 //      entry_address   = 0xFFFFFFFF;
 //  };
 
 //  interrupt_fvector[7]{	// ROM code protect (address : 0xFFFFFF9C)
 //      entry_address   = 0xFFFFFFFF;
 //  };
 
 //  interrupt_fvector[8]{	// ID coce protect (address : 0xFFFFFFA0)
 //      entry_address   = 0xFFFFFFFF;
 //  };
 
 //  interrupt_fvector[9]{	// ID coce protect (address : 0xFFFFFFA4)
 //      entry_address   = 0xFFFFFFFF;
 //  };
 
 //  interrupt_fvector[10]{	// ID coce protect (address : 0xFFFFFFA8)
 //      entry_address   = 0xFFFFFFFF;
 //  };
 
 //  interrupt_fvector[11]{	// ID coce protect (address : 0xFFFFFFAC)
 //      entry_address   = 0xFFFFFFFF;
 //  };
 
 //  interrupt_fvector[12]{	// Reserved (address : 0xFFFFFFA0)
 //      entry_address   = 0xFFFFFFFF;
 //  };
 
 //  interrupt_fvector[13]{	// Reserved (address : 0xFFFFFFA4)
 //      entry_address   = 0xFFFFFFFF;
 //  };
 
 //  interrupt_fvector[14]{	// Reserved (address : 0xFFFFFFA8)
 //      entry_address   = 0xFFFFFFFF;
 
 //  interrupt_fvector[15]{	// Reserved (address : 0xFFFFFFAC)
 //      entry_address   = 0xFFFFFFFF;
 //  };
 
 //  interrupt_fvector[30]{	// NMI (address : 0xFFFFFFF8)
 //      entry_address   = NMI_handler();
 //      pragma_switch   = ;
 //  };
 
 //  interrupt_fvector[31]{	// Reset (address : 0xFFFFFFFC)
 //      entry_address   = PowerON_Reset_PC();
 //  };