Changeset 260 for rtos_arduino/trunk/lib


Ignore:
Timestamp:
Oct 23, 2016, 8:29:46 PM (8 years ago)
Author:
ertl-honda
Message:

マクロ名を更新.
実行モデルを変更.

Location:
rtos_arduino/trunk/lib
Files:
5 moved

Legend:

Unmodified
Added
Removed
  • rtos_arduino/trunk/lib/Makefile.r2ca

    r224 r260  
    22#  Arduinoライブラリ用の定義
    33#
    4 ARDUINO_LIB_DIR = $(RCA_DIR)/arduino_lib
     4ARDUINO_LIB_DIR = $(R2CA_DIR)/arduino_lib
    55
    66#
     
    1515              syscalls.o \
    1616
    17 APPL_CXXOBJS += rca_lib.o \
     17APPL_CXXOBJS += r2ca_lib.o \
    1818                variant.o \
    1919                SERCOM.o Uart.o RingBuffer.o Print.o  \
     
    3030#   Ethenet2ライブラリ
    3131#
    32 APPL_DIR     += $(RCA_DIR)/arduino_lib/libraries/Ethernet2/src/ $(RCA_DIR)/arduino_lib/libraries/Ethernet2/src/utility
     32APPL_DIR     += $(R2CA_DIR)/arduino_lib/libraries/Ethernet2/src/ $(R2CA_DIR)/arduino_lib/libraries/Ethernet2/src/utility
    3333APPL_CXXOBJS += Dhcp.o Dns.o Ethernet2.o EthernetClient.o EthernetServer.o EthernetUdp2.o Twitter.o socket.o w5500.o
    3434APPL_COBJS   +=
     
    4040#   NCESCANライブラリ
    4141#
    42 APPL_DIR     += $(RCA_DIR)/arduino_lib/libraries/NcesCan/
     42APPL_DIR     += $(R2CA_DIR)/arduino_lib/libraries/NcesCan/
    4343APPL_CXXOBJS += mcp_can.o
    4444APPL_COBJS   +=
     
    5050#   NAxesMotionライブラリ
    5151#
    52 APPL_DIR     += $(RCA_DIR)/arduino_lib/libraries/NAxesMotion $(RCA_DIR)/arduino_lib/libraries/NAxesMotion/utility
     52APPL_DIR     += $(R2CA_DIR)/arduino_lib/libraries/NAxesMotion $(R2CA_DIR)/arduino_lib/libraries/NAxesMotion/utility
    5353APPL_CXXOBJS += NAxisMotion.o
    5454APPL_COBJS   += BNO055.o
     
    6060#   SDライブラリ
    6161#
    62 APPL_DIR     += $(RCA_DIR)/arduino_lib/libraries/SD/src/ $(RCA_DIR)/arduino_lib/libraries/SD/src/utility
     62APPL_DIR     += $(R2CA_DIR)/arduino_lib/libraries/SD/src/ $(R2CA_DIR)/arduino_lib/libraries/SD/src/utility
    6363APPL_CXXOBJS += File.o SD.o Sd2Card.o SdFile.o SdVolume.o
    6464APPL_COBJS   +=
     
    6969#   TFTライブラリ
    7070#
    71 APPL_DIR     += $(RCA_DIR)/arduino_lib/libraries/TFT/src/ $(RCA_DIR)/arduino_lib/libraries/TFT/src/utility
     71APPL_DIR     += $(R2CA_DIR)/arduino_lib/libraries/TFT/src/ $(R2CA_DIR)/arduino_lib/libraries/TFT/src/utility
    7272APPL_CXXOBJS += TFT.o Adafruit_GFX.o Adafruit_ST7735.o
    7373APPL_COBJS   += glcdfont.o
     
    7878#   Wireライブラリ
    7979#
    80 APPL_DIR     += $(RCA_DIR)/arduino_lib/hardware/arduino/samd/libraries/Wire/
     80APPL_DIR     += $(R2CA_DIR)/arduino_lib/hardware/arduino/samd/libraries/Wire/
    8181APPL_CXXOBJS += Wire.o
    8282APPL_COBJS   +=
     
    8787#   SPIライブラリ
    8888#
    89 APPL_DIR     += $(RCA_DIR)/arduino_lib/hardware/arduino/samd/libraries/SPI/
     89APPL_DIR     += $(R2CA_DIR)/arduino_lib/hardware/arduino/samd/libraries/SPI/
    9090APPL_CXXOBJS += SPI.o
    9191APPL_COBJS   +=
     
    9696#   RTCライブラリ
    9797#
    98 APPL_DIR     += $(RCA_DIR)/arduino_lib/libraries/RTC/src/
     98APPL_DIR     += $(R2CA_DIR)/arduino_lib/libraries/RTC/src/
    9999APPL_CXXOBJS += RTCInt.o
    100100APPL_COBJS   +=
     
    102102
    103103
    104 APPL_DIR += $(RCA_DIR)/lib \
     104APPL_DIR += $(R2CA_DIR)/lib \
    105105            $(ARDUINO_LIB_DIR)/hardware/arduino/samd/cores/arduino/ \
    106106            $(ARDUINO_LIB_DIR)/hardware/arduino/samd/cores/arduino/avr \
     
    192192#  オブジェクトファイル名の定義
    193193#
    194 OBJNAME = rca
     194OBJNAME = r2ca
    195195ifdef OBJEXT
    196196  OBJFILE = $(OBJNAME).$(OBJEXT)
  • rtos_arduino/trunk/lib/r2ca.h

    r136 r260  
    1 #ifndef _RCA_H_
    2 #define _RCA_H_
     1#ifndef _R2CA_H_
     2#define _R2CA_H_
    33
    44#include <kernel.h>
     
    66#include <t_stdlib.h>
    77
    8 #include "rca_lib.h"
     8#include "r2ca_lib.h"
    99#undef true
    1010#undef false
     
    1616
    1717#include "kernel_cfg.h"
    18 #include "rca_app.h"
     18#include "r2ca_app.h"
    1919#endif /* _RCA_H_ */
  • rtos_arduino/trunk/lib/r2ca_lib.cfg

    r249 r260  
    1 #include "rca_lib.h"
     1#include "r2ca_lib.h"
    22
    3 ATT_INI({ TA_NULL, 0, rca_init });
    4 CRE_TSK(RCA_MAINTASK, { TA_ACT, 0, rca_maintask, RCA_MAINTASK_SETUP_PRI, RCA_MAINTASK_STACK_SIZE, NULL });
     3ATT_INI({ TA_NULL, 0, r2ca_init });
     4CRE_TSK(R2CA_MAINTASK, { TA_ACT, 0, r2ca_maintask, R2CA_MAINTASK_PRI, R2CA_MAINTASK_STACK_SIZE, NULL });
    55
    6 //For Setup
    7 CRE_SEM(SETUP_SEM, { TA_TPRI, 0, 1 });
     6#if R2CA_NUM_TASK > 0
     7CRE_TSK(R2CA_TASK1, { TA_ACT, 0, r2ca_task1, R2CA_TASK1_PRI, R2CA_TASK1_STACK_SIZE, NULL });
     8#endif /* R2CA_NUM_TASK > 0 */
    89
    9 #if RCA_NUM_TASK > 0
    10 CRE_TSK(RCA_TASK1, { TA_ACT, 0, rca_task1, RCA_TASK1_SETUP_PRI, RCA_TASK1_STACK_SIZE, NULL });
    11 #endif /* RCA_NUM_TASK > 0 */
     10#if R2CA_NUM_TASK > 1
     11CRE_TSK(R2CA_TASK2, { TA_ACT, 0, r2ca_task2, R2CA_TASK2_PRI, R2CA_TASK2_STACK_SIZE, NULL });
     12#endif /* R2CA_NUM_TASK > 1 */
    1213
    13 #if RCA_NUM_TASK > 1
    14 CRE_TSK(RCA_TASK2, { TA_ACT, 0, rca_task2, RCA_TASK2_SETUP_PRI, RCA_TASK2_STACK_SIZE, NULL });
    15 #endif /* RCA_NUM_TASK > 1 */
     14#if R2CA_NUM_TASK > 2
     15CRE_TSK(R2CA_TASK3, { TA_ACT, 0, r2ca_task3, R2CA_TASK3_PRI, R2CA_TASK3_STACK_SIZE, NULL });
     16#endif /* R2CA_NUM_TASK > 2 */
    1617
    17 #if RCA_NUM_TASK > 2
    18 CRE_TSK(RCA_TASK3, { TA_ACT, 0, rca_task3, RCA_TASK3_SETUP_PRI, RCA_TASK3_STACK_SIZE, NULL });
    19 #endif /* RCA_NUM_TASK > 2 */
     18#if R2CA_NUM_TASK > 3
     19CRE_TSK(R2CA_TASK4, { TA_ACT, 0, r2ca_task4, R2CA_TASK4_PRI, R2CA_TASK4_STACK_SIZE, NULL });
     20#endif /* R2CA_NUM_TASK > 3 */
    2021
    21 #if RCA_NUM_TASK > 3
    22 CRE_TSK(RCA_TASK4, { TA_ACT, 0, rca_task4, RCA_TASK4_SETUP_PRI, RCA_TASK4_STACK_SIZE, NULL });
    23 #endif /* RCA_NUM_TASK > 3 */
     22#if R2CA_NUM_TASK > 4
     23CRE_TSK(R2CA_TASK5, { TA_ACT, 0, r2ca_task5, R2CA_TASK5_PRI, R2CA_TASK5_STACK_SIZE, NULL });
     24#endif /* R2CA_NUM_TASK > 4 */
    2425
    25 #if RCA_NUM_TASK > 4
    26 CRE_TSK(RCA_TASK5, { TA_ACT, 0, rca_task5, RCA_TASK5_SETUP_PRI, RCA_TASK5_STACK_SIZE, NULL });
    27 #endif /* RCA_NUM_TASK > 4 */
    28 
    29 #ifdef RCA_ENABLE_PROFILING
    30 CRE_TSK(RCA_IDLE_TASK, { TA_ACT, 0, rca_idle_task, 15, 512, NULL });
    31 #endif /* RCA_ENABLE_PROFILING */
     26#ifdef R2CA_ENABLE_PROFILING
     27CRE_TSK(R2CA_IDLE_TASK, { TA_ACT, 0, r2ca_idle_task, 15, 512, NULL });
     28#endif /* R2CA_ENABLE_PROFILING */
    3229
    3330//For SysTick
    34 CRE_CYC(RCA_CYCHDR, { TA_STA, 0, rca_CycHandler, 1, 1});
     31CRE_CYC(R2CA_CYCHDR, { TA_STA, 0, r2ca_CycHandler, 1, 1});
    3532
    3633//For USB (ToDo)Naitiveに変更
    37 DEF_INH((16+7), { TA_NULL, rca_USB_Handler });
     34DEF_INH((16+7), { TA_NULL, r2ca_USB_Handler });
    3835CFG_INT((16+7), { TA_NULL, -1 });
    3936
    4037#ifdef TOPPERS_USE_ARDUINO_SERIAL
    4138//For SERCOM5
    42 DEF_INH((16+14), { TA_NULL, rca_SERCOM5_Handler });
     39DEF_INH((16+14), { TA_NULL, r2ca_SERCOM5_Handler });
    4340CFG_INT((16+14), { TA_NULL, -1 });
    4441#endif /* TOPPERS_USE_ARDUINO_SERIAL */
    4542
    4643//For SERCOM0(Serial5)
    47 DEF_INH((16+9), { TA_NULL, rca_SERCOM0_Handler });
     44DEF_INH((16+9), { TA_NULL, r2ca_SERCOM0_Handler });
    4845CFG_INT((16+9), { TA_NULL, -1 });
    4946
    50 #ifdef RCA_USE_SERIAL3
     47#ifdef R2CA_USE_SERIAL3
    5148//For SERCOM2(Serial3)
    52 DEF_INH((16+11), { TA_NULL, rca_SERCOM2_Handler });
     49DEF_INH((16+11), { TA_NULL, r2ca_SERCOM2_Handler });
    5350CFG_INT((16+11), { TA_NULL, -1 });
    54 #endif /* RCA_USE_SERIAL3 */
     51#endif /* R2CA_USE_SERIAL3 */
    5552
    5653//For SERCOM3(I2C)
    57 DEF_INH((16+12), { TA_NULL, rca_SERCOM3_Handler });
     54DEF_INH((16+12), { TA_NULL, r2ca_SERCOM3_Handler });
    5855CFG_INT((16+12), { TA_NULL, -1 });
    5956
    6057//For SERCOM4(SPI)
    61 DEF_INH((16+13), { TA_NULL, rca_SERCOM4_Handler });
     58DEF_INH((16+13), { TA_NULL, r2ca_SERCOM4_Handler });
    6259CFG_INT((16+13), { TA_NULL, -1 });
    6360
    6461//For EIC
    65 DEF_INH((16+4), { TA_NULL, rca_EIC_Handler });
     62DEF_INH((16+4), { TA_NULL, r2ca_EIC_Handler });
    6663CFG_INT((16+4), { TA_NULL, -1 });
    6764
    6865//For TC5
    69 DEF_INH((16+20), { TA_NULL, rca_TC5_Handler });
     66DEF_INH((16+20), { TA_NULL, r2ca_TC5_Handler });
    7067CFG_INT((16+20), { TA_NULL, -1 });
    7168
    7269//For RTC
    73 DEF_INH((16+3), { TA_NULL, rca_RTC_Handler });
     70DEF_INH((16+3), { TA_NULL, r2ca_RTC_Handler });
    7471CFG_INT((16+3), { TA_NULL, -1 });
    7572
  • rtos_arduino/trunk/lib/r2ca_lib.cpp

    r251 r260  
    1 #include "rca.h"
    2 #include "rca_lib.h"
     1#include "r2ca.h"
     2#include "r2ca_lib.h"
    33
    44extern "C" {
    55extern void yield(void);
    6 extern void rca_ena_int(uint_t intno);
    7 extern void rca_dis_int(uint_t intno);
    8 }
    9 
    10 #ifdef RCA_ENABLE_PROFILING
    11 volatile uint32_t rca_idle_result;
    12 volatile uint32_t rca_isr_result;
    13 volatile uint32_t rca_dispatch_result;
    14 volatile uint32_t rca_timer_isr_result;
    15 volatile uint32_t rca_usb_isr_result;
    16 volatile uint32_t rca_sercom0_isr_result;
    17 volatile uint32_t rca_sercom2_isr_result;
    18 volatile uint32_t rca_sercom3_isr_result;
    19 volatile uint32_t rca_sercom4_isr_result;
    20 volatile uint32_t rca_sercom5_isr_result;
    21 volatile uint32_t rca_eic_isr_result;
    22 volatile uint32_t rca_tc5_isr_result;
    23 volatile uint32_t rca_rtc_isr_result;
    24 
    25 static volatile uint32_t rca_idle_cnt;
    26 static volatile uint32_t rca_isr_cnt;
    27 static volatile uint32_t rca_dispatch_cnt;
    28 static volatile uint32_t rca_timer_isr_cnt;
    29 static volatile uint32_t rca_usb_isr_cnt;
    30 static volatile uint32_t rca_sercom0_isr_cnt;
    31 static volatile uint32_t rca_sercom2_isr_cnt;
    32 static volatile uint32_t rca_sercom3_isr_cnt;
    33 static volatile uint32_t rca_sercom4_isr_cnt;
    34 static volatile uint32_t rca_sercom5_isr_cnt;
    35 static volatile uint32_t rca_eic_isr_cnt;
    36 static volatile uint32_t rca_tc5_isr_cnt;
    37 static volatile uint32_t rca_rtc_isr_cnt;     
    38 static volatile uint32_t rca_profiling_cyccnt;
    39 #endif /* RCA_ENABLE_PROFILING */
     6extern void r2ca_ena_int(uint_t intno);
     7extern void r2ca_dis_int(uint_t intno);
     8}
     9
     10#ifdef R2CA_ENABLE_PROFILING
     11volatile uint32_t r2ca_idle_result;
     12volatile uint32_t r2ca_isr_result;
     13volatile uint32_t r2ca_dispatch_result;
     14volatile uint32_t r2ca_timer_isr_result;
     15volatile uint32_t r2ca_usb_isr_result;
     16volatile uint32_t r2ca_sercom0_isr_result;
     17volatile uint32_t r2ca_sercom2_isr_result;
     18volatile uint32_t r2ca_sercom3_isr_result;
     19volatile uint32_t r2ca_sercom4_isr_result;
     20volatile uint32_t r2ca_sercom5_isr_result;
     21volatile uint32_t r2ca_eic_isr_result;
     22volatile uint32_t r2ca_tc5_isr_result;
     23volatile uint32_t r2ca_rtc_isr_result;
     24
     25static volatile uint32_t r2ca_idle_cnt;
     26static volatile uint32_t r2ca_isr_cnt;
     27static volatile uint32_t r2ca_dispatch_cnt;
     28static volatile uint32_t r2ca_timer_isr_cnt;
     29static volatile uint32_t r2ca_usb_isr_cnt;
     30static volatile uint32_t r2ca_sercom0_isr_cnt;
     31static volatile uint32_t r2ca_sercom2_isr_cnt;
     32static volatile uint32_t r2ca_sercom3_isr_cnt;
     33static volatile uint32_t r2ca_sercom4_isr_cnt;
     34static volatile uint32_t r2ca_sercom5_isr_cnt;
     35static volatile uint32_t r2ca_eic_isr_cnt;
     36static volatile uint32_t r2ca_tc5_isr_cnt;
     37static volatile uint32_t r2ca_rtc_isr_cnt;     
     38static volatile uint32_t r2ca_profiling_cyccnt;
     39#endif /* R2CA_ENABLE_PROFILING */
    4040
    4141Inline void
    42 rca_di(void){
     42r2ca_di(void){
    4343        Asm("cpsid f":::"memory");
    4444}
     
    4848 */
    4949Inline void
    50 rca_ei(void){
     50r2ca_ei(void){
    5151        Asm("cpsie f":::"memory");
    5252}
    5353
    5454void
    55 rca_init(intptr_t exinf)
    56 {
    57     init(); //wiring.c
    58 }
    59 
    60 void
    61 rca_ena_int(uint_t intno) {
    62     if (ena_int(intno + 16) != E_OK) {
    63         while(1); //ToDo
    64     }
    65 
    66 }
    67 
    68 void
    69 rca_dis_int(uint_t intno) {
    70     if (dis_int(intno + 16) != E_OK) {
    71         while(1); //ToDo
    72     }
     55r2ca_init(intptr_t exinf)
     56{
     57        init(); //wiring.c
     58}
     59
     60void
     61r2ca_ena_int(uint_t intno) {
     62        if (ena_int(intno + 16) != E_OK) {
     63                while(1); //ToDo
     64        }
     65}
     66
     67void
     68r2ca_dis_int(uint_t intno) {
     69        if (dis_int(intno + 16) != E_OK) {
     70                while(1); //ToDo
     71        }
    7372}
    7473
    7574extern const DeviceVectors exception_table;
    7675
    77 #ifdef RCA_RR_SCHEDULE
    7876static uint32_t time_slice = 0;
    79 #endif /* RCA_RR_SCHEDULE */
    8077
    8178/*
     
    8380 */
    8481void
    85 rca_CycHandler(intptr_t exinf)
     82r2ca_CycHandler(intptr_t exinf)
    8683{   
    87 #ifdef RCA_RR_SCHEDULE
    88     int i;
    89     if (++time_slice == RCA_RR_SCHEDULE_CYCLE) {
    90         time_slice = 0;
    91         for(i = 1; i < 16; i++){
    92             if (RCA_RR_SCHEDULE & (1 << i)) {
    93                 irot_rdq(i);
    94             }
    95         }
    96     }
    97 #endif /* RCA_RR_SCHEDULE */
    98 #ifdef RCA_ENABLE_PROFILING   
    99     rca_di();
    100     rca_isr_cnt++;
    101     rca_timer_isr_cnt++;
    102     rca_profiling_cyccnt++;
    103     if(rca_profiling_cyccnt == RCA_PROFILING_CYC_MS){
    104         rca_idle_result=        rca_idle_cnt;
    105         rca_isr_result=         rca_isr_cnt;
    106         rca_dispatch_result=    rca_dispatch_cnt;
    107         rca_timer_isr_result=   rca_timer_isr_cnt;
    108         rca_usb_isr_result=     rca_usb_isr_cnt;
    109         rca_sercom0_isr_result= rca_sercom0_isr_cnt;
    110         rca_sercom2_isr_result= rca_sercom2_isr_cnt;       
    111         rca_sercom3_isr_result= rca_sercom3_isr_cnt;
    112         rca_sercom4_isr_result= rca_sercom4_isr_cnt;
    113         rca_sercom5_isr_result= rca_sercom5_isr_cnt;
    114         rca_eic_isr_result=     rca_eic_isr_cnt;
    115         rca_tc5_isr_result=     rca_tc5_isr_cnt;
    116         rca_rtc_isr_result=     rca_rtc_isr_cnt;             
    117         rca_idle_cnt = 0;
    118         rca_isr_cnt = 0;
    119         rca_dispatch_cnt = 0;
    120         rca_timer_isr_cnt = 0;
    121         rca_usb_isr_cnt = 0;
    122         rca_sercom0_isr_cnt = 0;
    123         rca_sercom2_isr_cnt = 0;       
    124         rca_sercom3_isr_cnt = 0;
    125         rca_sercom4_isr_cnt = 0;
    126         rca_sercom5_isr_cnt = 0;
    127         rca_eic_isr_cnt = 0;
    128         rca_tc5_isr_cnt = 0;
    129         rca_rtc_isr_cnt = 0;
    130         rca_profiling_cyccnt = 0;
    131     }
    132     rca_ei();
    133 #endif /* RCA_ENABLE_PROFILING */   
    134     ((void(*)(void))(exception_table.pfnSysTick_Handler))();       
     84        int i;
     85        if (++time_slice == R2CA_RR_SCHEDULE_CYCLE) {
     86                time_slice = 0;
     87                for(i = 1; i < 16; i++){
     88                        if (R2CA_RR_SCHEDULE_PRI & (1 << i)) {
     89                                irot_rdq(i);
     90                        }
     91                }
     92        }
     93#ifdef R2CA_ENABLE_PROFILING   
     94        r2ca_di();
     95        r2ca_isr_cnt++;
     96        r2ca_timer_isr_cnt++;
     97        r2ca_profiling_cyccnt++;
     98        if(r2ca_profiling_cyccnt == R2CA_PROFILING_CYC_MS){
     99                r2ca_idle_result=        r2ca_idle_cnt;
     100                r2ca_isr_result=         r2ca_isr_cnt;
     101                r2ca_dispatch_result=    r2ca_dispatch_cnt;
     102                r2ca_timer_isr_result=   r2ca_timer_isr_cnt;
     103                r2ca_usb_isr_result=     r2ca_usb_isr_cnt;
     104                r2ca_sercom0_isr_result= r2ca_sercom0_isr_cnt;
     105                r2ca_sercom2_isr_result= r2ca_sercom2_isr_cnt;       
     106                r2ca_sercom3_isr_result= r2ca_sercom3_isr_cnt;
     107                r2ca_sercom4_isr_result= r2ca_sercom4_isr_cnt;
     108                r2ca_sercom5_isr_result= r2ca_sercom5_isr_cnt;
     109                r2ca_eic_isr_result=     r2ca_eic_isr_cnt;
     110                r2ca_tc5_isr_result=     r2ca_tc5_isr_cnt;
     111                r2ca_rtc_isr_result=     r2ca_rtc_isr_cnt;             
     112                r2ca_idle_cnt = 0;
     113                r2ca_isr_cnt = 0;
     114                r2ca_dispatch_cnt = 0;
     115                r2ca_timer_isr_cnt = 0;
     116                r2ca_usb_isr_cnt = 0;
     117                r2ca_sercom0_isr_cnt = 0;
     118                r2ca_sercom2_isr_cnt = 0;       
     119                r2ca_sercom3_isr_cnt = 0;
     120                r2ca_sercom4_isr_cnt = 0;
     121                r2ca_sercom5_isr_cnt = 0;
     122                r2ca_eic_isr_cnt = 0;
     123                r2ca_tc5_isr_cnt = 0;
     124                r2ca_rtc_isr_cnt = 0;
     125                r2ca_profiling_cyccnt = 0;
     126        }
     127        r2ca_ei();
     128#endif /* R2CA_ENABLE_PROFILING */   
     129        ((void(*)(void))(exception_table.pfnSysTick_Handler))();       
    135130}
    136131
     
    139134 */
    140135void
    141 rca_USB_Handler(void)
    142 {
    143 #ifdef RCA_ENABLE_PROFILING
    144     rca_di();
    145     rca_usb_isr_cnt++;
    146     rca_isr_cnt++;
    147     rca_ei();
    148 #endif /* RCA_ENABLE_PROFILING */   
    149     ((void(*)(void))(exception_table.pfnUSB_Handler))();
    150 }
    151 
    152 void
    153 rca_SERCOM0_Handler(void)
    154 {
    155 #ifdef RCA_ENABLE_PROFILING
    156     rca_di();
    157     rca_sercom0_isr_cnt++;
    158     rca_isr_cnt++;
    159     rca_ei();
    160 #endif /* RCA_ENABLE_PROFILING */   
    161     ((void(*)(void))(exception_table.pfnSERCOM0_Handler))();
    162 }
    163 
    164 #ifdef RCA_USE_SERIAL3
     136r2ca_USB_Handler(void)
     137{
     138#ifdef R2CA_ENABLE_PROFILING
     139        r2ca_di();
     140        r2ca_usb_isr_cnt++;
     141        r2ca_isr_cnt++;
     142        r2ca_ei();
     143#endif /* R2CA_ENABLE_PROFILING */   
     144        ((void(*)(void))(exception_table.pfnUSB_Handler))();
     145}
     146
     147void
     148r2ca_SERCOM0_Handler(void)
     149{
     150#ifdef R2CA_ENABLE_PROFILING
     151        r2ca_di();
     152        r2ca_sercom0_isr_cnt++;
     153        r2ca_isr_cnt++;
     154        r2ca_ei();
     155#endif /* R2CA_ENABLE_PROFILING */   
     156        ((void(*)(void))(exception_table.pfnSERCOM0_Handler))();
     157}
     158
     159#ifdef R2CA_USE_SERIAL3
    165160#define PIN_SERIAL3_RX 49  /* D5 */
    166161#define PIN_SERIAL3_TX 48  /* D4 */
     
    169164
    170165void
    171 rca_SERCOM2_Handler(void)
    172 {
    173 #ifdef RCA_ENABLE_PROFILING
    174     rca_di();
    175     rca_sercom2_isr_cnt++;
    176     rca_isr_cnt++;
    177     rca_ei();
    178 #endif /* RCA_ENABLE_PROFILING */
    179     Serial3.IrqHandler();
    180 }
    181 #endif /* RCA_USE_SERIAL3 */
    182 
    183 void
    184 rca_SERCOM3_Handler(void)
    185 {
    186 #ifdef RCA_ENABLE_PROFILING
    187     rca_di();
    188     rca_sercom3_isr_cnt++;
    189     rca_isr_cnt++;
    190     rca_ei();
    191 #endif /* RCA_ENABLE_PROFILING */   
    192     ((void(*)(void))(exception_table.pfnSERCOM3_Handler))();
    193 }
    194 
    195 void
    196 rca_SERCOM4_Handler(void)
    197 {
    198 #ifdef RCA_ENABLE_PROFILING
    199     rca_di();
    200     rca_sercom4_isr_cnt++;
    201     rca_isr_cnt++;
    202     rca_ei();
    203 #endif /* RCA_ENABLE_PROFILING */   
    204     ((void(*)(void))(exception_table.pfnSERCOM4_Handler))();
     166r2ca_SERCOM2_Handler(void)
     167{
     168#ifdef R2CA_ENABLE_PROFILING
     169        r2ca_di();
     170        r2ca_sercom2_isr_cnt++;
     171        r2ca_isr_cnt++;
     172        r2ca_ei();
     173#endif /* R2CA_ENABLE_PROFILING */
     174        Serial3.IrqHandler();
     175}
     176#endif /* R2CA_USE_SERIAL3 */
     177
     178void
     179r2ca_SERCOM3_Handler(void)
     180{
     181#ifdef R2CA_ENABLE_PROFILING
     182        r2ca_di();
     183        r2ca_sercom3_isr_cnt++;
     184        r2ca_isr_cnt++;
     185        r2ca_ei();
     186#endif /* R2CA_ENABLE_PROFILING */   
     187        ((void(*)(void))(exception_table.pfnSERCOM3_Handler))();
     188}
     189
     190void
     191r2ca_SERCOM4_Handler(void)
     192{
     193#ifdef R2CA_ENABLE_PROFILING
     194        r2ca_di();
     195        r2ca_sercom4_isr_cnt++;
     196        r2ca_isr_cnt++;
     197        r2ca_ei();
     198#endif /* R2CA_ENABLE_PROFILING */   
     199        ((void(*)(void))(exception_table.pfnSERCOM4_Handler))();
    205200}
    206201
    207202#ifdef TOPPERS_USE_ARDUINO_SERIAL
    208203void
    209 rca_SERCOM5_Handler(void)
    210 {
    211 #ifdef RCA_ENABLE_PROFILING
    212     rca_di();
    213     rca_sercom5_isr_cnt++;
    214     rca_isr_cnt++;
    215     rca_ei();
    216 #endif /* RCA_ENABLE_PROFILING */   
    217     ((void(*)(void))(exception_table.pfnSERCOM5_Handler))();
     204r2ca_SERCOM5_Handler(void)
     205{
     206#ifdef R2CA_ENABLE_PROFILING
     207        r2ca_di();
     208        r2ca_sercom5_isr_cnt++;
     209        r2ca_isr_cnt++;
     210        r2ca_ei();
     211#endif /* R2CA_ENABLE_PROFILING */   
     212        ((void(*)(void))(exception_table.pfnSERCOM5_Handler))();
    218213}
    219214#endif /* TOPPERS_USE_ARDUINO_SERIAL */
    220215
    221216void
    222 rca_EIC_Handler(void)
    223 {
    224 #ifdef RCA_ENABLE_PROFILING
    225     rca_di();
    226     rca_eic_isr_cnt++;
    227     rca_isr_cnt++;
    228     rca_ei();
    229 #endif /* RCA_ENABLE_PROFILING */   
    230     ((void(*)(void))(exception_table.pfnEIC_Handler))();
    231 }
    232 
    233 void
    234 rca_TC5_Handler(void)
    235 {
    236 #ifdef RCA_ENABLE_PROFILING
    237     rca_di();
    238     rca_tc5_isr_cnt++;
    239     rca_isr_cnt++;
    240     rca_ei();
    241 #endif /* RCA_ENABLE_PROFILING */   
    242     ((void(*)(void))(exception_table.pfnTC5_Handler))();
    243 }
    244 
    245 void
    246 rca_RTC_Handler(void)
    247 {
    248 #ifdef RCA_ENABLE_PROFILING
    249     rca_di();
    250     rca_rtc_isr_cnt++;
    251     rca_isr_cnt++;
    252     rca_ei();
    253 #endif /* RCA_ENABLE_PROFILING */
    254     ((void(*)(void))(exception_table.pfnRTC_Handler))();
     217r2ca_EIC_Handler(void)
     218{
     219#ifdef R2CA_ENABLE_PROFILING
     220        r2ca_di();
     221        r2ca_eic_isr_cnt++;
     222        r2ca_isr_cnt++;
     223        r2ca_ei();
     224#endif /* R2CA_ENABLE_PROFILING */   
     225        ((void(*)(void))(exception_table.pfnEIC_Handler))();
     226}
     227
     228void
     229r2ca_TC5_Handler(void)
     230{
     231#ifdef R2CA_ENABLE_PROFILING
     232        r2ca_di();
     233        r2ca_tc5_isr_cnt++;
     234        r2ca_isr_cnt++;
     235        r2ca_ei();
     236#endif /* R2CA_ENABLE_PROFILING */   
     237        ((void(*)(void))(exception_table.pfnTC5_Handler))();
     238}
     239
     240void
     241r2ca_RTC_Handler(void)
     242{
     243#ifdef R2CA_ENABLE_PROFILING
     244        r2ca_di();
     245        r2ca_rtc_isr_cnt++;
     246        r2ca_isr_cnt++;
     247        r2ca_ei();
     248#endif /* R2CA_ENABLE_PROFILING */
     249        ((void(*)(void))(exception_table.pfnRTC_Handler))();
    255250}
    256251
     
    260255void
    261256yield(void){
    262 #ifdef RCA_RR_SCHEDULE   
    263     time_slice = 0;
    264 #endif /* RCA_RR_SCHEDULE */
    265 #ifdef RCA_ENABLE_PROFILING
    266     rca_di();
    267     rca_dispatch_cnt++;
    268     rca_ei();
    269 #endif /* RCA_ENABLE_PROFILING */   
    270     dly_tsk(0);
     257        time_slice = 0;
     258#ifdef R2CA_ENABLE_PROFILING
     259        r2ca_di();
     260        r2ca_dispatch_cnt++;
     261        r2ca_ei();
     262#endif /* R2CA_ENABLE_PROFILING */   
     263        dly_tsk(0);
    271264}
    272265
     
    274267extern void loop(void);
    275268
    276 void
    277 rca_maintask(intptr_t exinf)
    278 {
    279     syslog(LOG_NOTICE, "Arduino Main Task start!");
    280     dly_tsk(1);
     269
     270const ID task_id[] = {
     271#if R2CA_NUM_TASK > 0
     272        R2CA_TASK1,
     273#endif /* R2CA_NUM_TASK > 0 */
     274#if R2CA_NUM_TASK > 1
     275        R2CA_TASK2,
     276#endif /* R2CA_NUM_TASK > 1 */
     277#if R2CA_NUM_TASK > 2
     278        R2CA_TASK3,
     279#endif /* R2CA_NUM_TASK > 2 */
     280#if R2CA_NUM_TASK > 3
     281        R2CA_TASK4,
     282#endif /* R2CA_NUM_TASK > 3 */
     283#if R2CA_NUM_TASK > 4
     284        R2CA_TASK5,
     285#endif /* R2CA_NUM_TASK > 4 */
     286};
     287
     288void
     289r2ca_maintask(intptr_t exinf)
     290{
     291        int i;
     292
     293        syslog(LOG_NOTICE, "Arduino Main Task start!");
     294
    281295#ifdef USBCON
    282     USBDevice.init();
    283     USBDevice.attach();
     296        USBDevice.init();
     297        USBDevice.attach();
    284298#endif /* USBCON */
    285299   
    286     analogReference(AR_DEFAULT);
     300        analogReference(AR_DEFAULT);
    287301   
    288     setup();
     302        setup();
    289303   
    290     sig_sem(SETUP_SEM);
     304        for(i = 0; i < R2CA_NUM_TASK; i++) {
     305                act_tsk(task_id[i]);
     306        }
    291307   
    292     chg_pri(0, RCA_MAINTASK_LOOP_PRI);
    293    
    294     while(1){
    295         loop();
    296         if (serialEventRun) serialEventRun();
    297     }   
    298 }
    299 
    300 #define RCA_TASK_BODY(NUM) \
    301 extern void task##NUM##_setup(void); \
    302 extern void task##NUM##_loop(void); \
     308        while(1){
     309                loop();
     310                if (serialEventRun) serialEventRun();
     311        }   
     312}
     313
     314#define R2CA_TASK_BODY(NUM) \
     315extern void loop##NUM(void); \
    303316 \
    304317void \
    305 rca_task##NUM(intptr_t exinf) \
     318r2ca_task##NUM(intptr_t exinf) \
    306319{ \
    307     wai_sem(SETUP_SEM);\
    308     task##NUM##_setup(); \
    309     sig_sem(SETUP_SEM);\
    310     chg_pri(0, RCA_TASK##NUM##_LOOP_PRI); \
    311          \
    312320    while(1){ \
    313         task##NUM##_loop(); \
     321        loop##NUM(); \
    314322    }     \
    315323}
    316324
    317 #if RCA_NUM_TASK > 0
    318 RCA_TASK_BODY(1)
    319 #endif /* RCA_NUM_TASK > 0 */
    320 
    321 #if RCA_NUM_TASK > 1
    322 RCA_TASK_BODY(2)
    323 #endif /* RCA_NUM_TASK > 1 */
    324 
    325 #if RCA_NUM_TASK > 2
    326 RCA_TASK_BODY(3)
    327 #endif /* RCA_NUM_TASK > 2 */
    328 
    329 #if RCA_NUM_TASK > 3
    330 RCA_TASK_BODY(4)
    331 #endif /* RCA_NUM_TASK > 3 */
    332 
    333 #if RCA_NUM_TASK > 4
    334 RCA_TASK_BODY(5)
    335 #endif /* RCA_NUM_TASK > 4 */
    336 
    337 #ifdef RCA_ENABLE_PROFILING
    338 void
    339 rca_idle_task(intptr_t exinf) {
    340     while(1){
    341         rca_di();
    342         rca_idle_cnt++;
    343         rca_ei();
    344     }
    345 }
    346 #endif /* RCA_ENABLE_PROFILING */
     325#if R2CA_NUM_TASK > 0
     326R2CA_TASK_BODY(1)
     327#endif /* R2CA_NUM_TASK > 0 */
     328
     329#if R2CA_NUM_TASK > 1
     330R2CA_TASK_BODY(2)
     331#endif /* R2CA_NUM_TASK > 1 */
     332
     333#if R2CA_NUM_TASK > 2
     334R2CA_TASK_BODY(3)
     335#endif /* R2CA_NUM_TASK > 2 */
     336
     337#if R2CA_NUM_TASK > 3
     338R2CA_TASK_BODY(4)
     339#endif /* R2CA_NUM_TASK > 3 */
     340
     341#if R2CA_NUM_TASK > 4
     342R2CA_TASK_BODY(5)
     343#endif /* R2CA_NUM_TASK > 4 */
     344
     345#ifdef R2CA_ENABLE_PROFILING
     346void
     347r2ca_idle_task(intptr_t exinf) {
     348        while(1){
     349                r2ca_di();
     350                r2ca_idle_cnt++;
     351                r2ca_ei();
     352        }
     353}
     354#endif /* R2CA_ENABLE_PROFILING */
  • rtos_arduino/trunk/lib/r2ca_lib.h

    r238 r260  
    1 #include "rca_app.h"
     1#include "r2ca_app.h"
    22
    33/*
    44 *  Max number of task
    55 */
    6 #define RCA_NUM_TASK_MAX  5
     6#define R2CA_NUM_TASK_MAX  5
    77
    88/*
    99 *  Check number of task
    1010 */
    11 #if RCA_NUM_TASK > RCA_NUM_TASK_MAX
     11#if R2CA_NUM_TASK > R2CA_NUM_TASK_MAX
    1212#error The number of Task is over!
    13 #endif /* RCA_NUM_TASK > RCA_NUM_TASK_MAX */
     13#endif /* R2CA_NUM_TASK > R2CA_NUM_TASK_MAX */
    1414
    1515/*
     
    2525 *  Priotiry
    2626 */
    27 #ifndef RCA_MAINTASK_SETUP_PRI
    28 #define  RCA_MAINTASK_SETUP_PRI  5
    29 #endif /*  RCA_MAINTASK_SETUP_PRI */
     27#ifndef R2CA_MAINTASK_PRI
     28#define  R2CA_MAINTASK_PRI  5
     29#endif /*  R2CA_MAINTASK_SETUP_PRI */
    3030
    31 #ifndef RCA_MAINTASK_LOOP_PRI
    32 #define  RCA_MAINTASK_LOOP_PRI  5
    33 #endif /*  RCA_MAINTASK_SETUP_PRI */
     31#ifndef R2CA_TASK1_PRI
     32#define  R2CA_TASK1_PRI  5
     33#endif /*  R2CA_TASK1_SETUP_PRI */
    3434
    35 #ifndef RCA_TASK1_SETUP_PRI
    36 #define  RCA_TASK1_SETUP_PRI  5
    37 #endif /*  RCA_TASK1_SETUP_PRI */
     35#ifndef R2CA_TASK2_PRI
     36#define  R2CA_TASK2_PRI  5
     37#endif /*  R2CA_TASK2_SETUP_PRI */
    3838
    39 #ifndef RCA_TASK1_LOOP_PRI
    40 #define  RCA_TASK1_LOOP_PRI  5
    41 #endif /*  RCA_TASK1_SETUP_PRI */
     39#ifndef R2CA_TASK3_PRI
     40#define  R2CA_TASK3_PRI  5
     41#endif /*  R2CA_TASK3_SETUP_PRI */
    4242
    43 #ifndef RCA_TASK2_SETUP_PRI
    44 #define  RCA_TASK2_SETUP_PRI  5
    45 #endif /*  RCA_TASK2_SETUP_PRI */
     43#ifndef R2CA_TASK4_PRI
     44#define  R2CA_TASK4_PRI  5
     45#endif /*  R2CA_TASK4_SETUP_PRI */
    4646
    47 #ifndef RCA_TASK2_LOOP_PRI
    48 #define  RCA_TASK2_LOOP_PRI  5
    49 #endif /*  RCA_TASK2_SETUP_PRI */
    50 
    51 #ifndef RCA_TASK3_SETUP_PRI
    52 #define  RCA_TASK3_SETUP_PRI  5
    53 #endif /*  RCA_TASK3_SETUP_PRI */
    54 
    55 #ifndef RCA_TASK3_LOOP_PRI
    56 #define  RCA_TASK3_LOOP_PRI  5
    57 #endif /*  RCA_TASK3_SETUP_PRI */
    58 
    59 #ifndef RCA_TASK4_SETUP_PRI
    60 #define  RCA_TASK4_SETUP_PRI  5
    61 #endif /*  RCA_TASK4_SETUP_PRI */
    62 
    63 #ifndef RCA_TASK4_LOOP_PRI
    64 #define  RCA_TASK4_LOOP_PRI  5
    65 #endif /*  RCA_TASK4_SETUP_PRI */
    66 
    67 #ifndef RCA_TASK5_SETUP_PRI
    68 #define  RCA_TASK5_SETUP_PRI  5
    69 #endif /*  RCA_TASK5_SETUP_PRI */
    70 
    71 #ifndef RCA_TASK5_LOOP_PRI
    72 #define  RCA_TASK5_LOOP_PRI  5
    73 #endif /*  RCA_TASK3_SETUP_PRI */
     47#ifndef R2CA_TASK5_PRI
     48#define  R2CA_TASK5_PRI  5
     49#endif /*  R2CA_TASK3_SETUP_PRI */
    7450
    7551/*
    7652 *  Stack Size
    7753 */
    78 #ifndef RCA_MAINTASK_STACK_SIZE
    79 #define RCA_MAINTASK_STACK_SIZE 2048
    80 #endif  /* RCA_MAINTASK_STACK_SIZE */
     54#ifndef R2CA_MAINTASK_STACK_SIZE
     55#define R2CA_MAINTASK_STACK_SIZE 2048
     56#endif  /* R2CA_MAINTASK_STACK_SIZE */
    8157
    82 #ifndef RCA_TASK1_STACK_SIZE
    83 #define RCA_TASK1_STACK_SIZE 1024
    84 #endif  /* RCA_TASK1_STACK_SIZE */
     58#ifndef R2CA_TASK1_STACK_SIZE
     59#define R2CA_TASK1_STACK_SIZE 1024
     60#endif  /* R2CA_TASK1_STACK_SIZE */
    8561
    86 #ifndef RCA_TASK2_STACK_SIZE
    87 #define RCA_TASK2_STACK_SIZE 1024
    88 #endif  /* RCA_TASK2_STACK_SIZE */
     62#ifndef R2CA_TASK2_STACK_SIZE
     63#define R2CA_TASK2_STACK_SIZE 1024
     64#endif  /* R2CA_TASK2_STACK_SIZE */
    8965
    90 #ifndef RCA_TASK3_STACK_SIZE
    91 #define RCA_TASK3_STACK_SIZE 1024
    92 #endif  /* RCA_TASK3_STACK_SIZE */
     66#ifndef R2CA_TASK3_STACK_SIZE
     67#define R2CA_TASK3_STACK_SIZE 1024
     68#endif  /* R2CA_TASK3_STACK_SIZE */
    9369
    94 #ifndef RCA_TASK4_STACK_SIZE
    95 #define RCA_TASK4_STACK_SIZE 1024
    96 #endif  /* RCA_TASK4_STACK_SIZE */
     70#ifndef R2CA_TASK4_STACK_SIZE
     71#define R2CA_TASK4_STACK_SIZE 1024
     72#endif  /* R2CA_TASK4_STACK_SIZE */
    9773
    98 #ifndef RCA_TASK5_STACK_SIZE
    99 #define RCA_TASK5_STACK_SIZE 1024
    100 #endif  /* RCA_TASK5_STACK_SIZE */
     74#ifndef R2CA_TASK5_STACK_SIZE
     75#define R2CA_TASK5_STACK_SIZE 1024
     76#endif  /* R2CA_TASK5_STACK_SIZE */
    10177
    10278
     
    10480 *  Round Robin Scheduling cycle
    10581 */
    106 #ifndef RCA_RR_SCHEDULE_CYCLE
    107 #define RCA_RR_SCHEDULE_CYCLE 1
    108 #endif /* RCA_RR_SCHEDULE_CYCLE */
     82#ifndef R2CA_RR_SCHEDULE_CYCLE
     83#define R2CA_RR_SCHEDULE_CYCLE 1
     84#endif /* R2CA_RR_SCHEDULE_CYCLE */
     85
     86#ifndef R2CA_RR_SCHEDULE_PRI
     87#define R2CA_RR_SCHEDULE_PRI 0x0000
     88#endif  /* R2CA_RR_SCHEDULE_PRI */
    10989 
    11090#ifdef __cplusplus
     
    11292#endif
    11393
    114 extern void rca_init(intptr_t exinf);
    115 extern void rca_maintask(intptr_t exinf);
    116 extern void rca_task1(intptr_t exinf);
    117 extern void rca_task2(intptr_t exinf);
    118 extern void rca_task3(intptr_t exinf);
    119 extern void rca_task4(intptr_t exinf);
    120 extern void rca_task5(intptr_t exinf);
    121 extern void rca_CycHandler(intptr_t exinf);
     94extern void r2ca_init(intptr_t exinf);
     95extern void r2ca_maintask(intptr_t exinf);
     96extern void r2ca_task1(intptr_t exinf);
     97extern void r2ca_task2(intptr_t exinf);
     98extern void r2ca_task3(intptr_t exinf);
     99extern void r2ca_task4(intptr_t exinf);
     100extern void r2ca_task5(intptr_t exinf);
     101extern void r2ca_CycHandler(intptr_t exinf);
    122102
    123 extern void rca_USB_Handler(void);
    124 extern void rca_SERCOM0_Handler(void);
    125 extern void rca_SERCOM2_Handler(void);
    126 extern void rca_SERCOM3_Handler(void);
    127 extern void rca_SERCOM4_Handler(void);
    128 extern void rca_SERCOM5_Handler(void);
    129 extern void rca_EIC_Handler(void);
    130 extern void rca_TC5_Handler(void);
    131 extern void rca_RTC_Handler(void);
     103extern void r2ca_USB_Handler(void);
     104extern void r2ca_SERCOM0_Handler(void);
     105extern void r2ca_SERCOM2_Handler(void);
     106extern void r2ca_SERCOM3_Handler(void);
     107extern void r2ca_SERCOM4_Handler(void);
     108extern void r2ca_SERCOM5_Handler(void);
     109extern void r2ca_EIC_Handler(void);
     110extern void r2ca_TC5_Handler(void);
     111extern void r2ca_RTC_Handler(void);
    132112
    133 #ifdef RCA_ENABLE_PROFILING
    134 extern void rca_idle_task(intptr_t exinf);
    135 extern volatile uint32_t rca_idle_result;
    136 extern volatile uint32_t rca_isr_result;
    137 extern volatile uint32_t rca_dispatch_result;
    138 extern volatile uint32_t rca_timer_isr_result;
    139 extern volatile uint32_t rca_usb_isr_result;
    140 extern volatile uint32_t rca_sercom0_isr_result;
    141 extern volatile uint32_t rca_sercom4_isr_result;
    142 extern volatile uint32_t rca_sercom5_isr_result;
    143 extern volatile uint32_t rca_eic_isr_result;
    144 extern volatile uint32_t rca_tc5_isr_result;
    145 extern volatile uint32_t rca_rtc_isr_result;
     113#ifdef R2CA_ENABLE_PROFILING
     114extern void r2ca_idle_task(intptr_t exinf);
     115extern volatile uint32_t r2ca_idle_result;
     116extern volatile uint32_t r2ca_isr_result;
     117extern volatile uint32_t r2ca_dispatch_result;
     118extern volatile uint32_t r2ca_timer_isr_result;
     119extern volatile uint32_t r2ca_usb_isr_result;
     120extern volatile uint32_t r2ca_sercom0_isr_result;
     121extern volatile uint32_t r2ca_sercom4_isr_result;
     122extern volatile uint32_t r2ca_sercom5_isr_result;
     123extern volatile uint32_t r2ca_eic_isr_result;
     124extern volatile uint32_t r2ca_tc5_isr_result;
     125extern volatile uint32_t r2ca_rtc_isr_result;
    146126
    147 #ifdef RCA_USE_SERIAL3
    148 extern volatile uint32_t rca_sercom3_isr_result;
    149 #endif /* RCA_USE_SERIAL3 */
     127#ifdef R2CA_USE_SERIAL3
     128extern volatile uint32_t r2ca_sercom3_isr_result;
     129#endif /* R2CA_USE_SERIAL3 */
    150130 
    151 #endif /* RCA_ENABLE_PROFILING */
     131#endif /* R2CA_ENABLE_PROFILING */
    152132
    153133#define WIRE_ENTER_CRITICAL wai_sem(WIRE_SEM);
Note: See TracChangeset for help on using the changeset viewer.