Hi All.
Continuing with the example I sent a few days ago I thought I might try
out the new (sort of at least) inline functionality. Unfortunately I'm
having some problems. TinyOS and code generator nescc produces code that
use inline extensively, but as far as i can tell it throws SDCC way off.

The following relatively simple function results in a very cryptic error
(at least if I can match the errors to respective lines):

inline static error_t PlatformP__GPIOInit__init(void ){
  unsigned char result;
  result = Hplcip51IOC__Init__init();
  return result;
}

Produces:
-:0: error 20: Undefined identifier '__00010052'
build/c8051F340TB/app.c:1323: error 20: Undefined identifier 'result'

I've attached the program and the entire error report.

-- 
Regards Martin Leopold.
#define MANGLED_NESC_APP_C
#define nx_struct struct
#define nx_union union
#define dbg(mode, format, ...) ((void)0)
#define dbg_clear(mode, format, ...) ((void)0)
#define dbg_active(mode) 0
typedef int ptrdiff_t;
typedef unsigned int size_t;
typedef int wchar_t;
/*struct __nesc_attr_nonnull {
}  ;*/
/*struct __nesc_attr_bnd {
  void *lo, *hi;
}  ;*/
/*struct __nesc_attr_bnd_nok {
  void *lo, *hi;
}  ;*/
/*struct __nesc_attr_count {
  int n;
}  ;*/
/*struct __nesc_attr_count_nok {
  int n;
}  ;*/
/*struct __nesc_attr_one {
}  ;*/
/*struct __nesc_attr_one_nok {
}  ;*/
/*struct __nesc_attr_dmemset {
  int a1, a2, a3;
}  ;*/
/*struct __nesc_attr_dmemcpy {
  int a1, a2, a3;
}  ;*/
/*struct __nesc_attr_nts {
}  ;*/
typedef signed char int8_t;
typedef short int16_t;



typedef long int32_t;


/*typedef long long int int64_t;*/








typedef unsigned char uint8_t;
typedef unsigned short uint16_t;



typedef unsigned long uint32_t;


/*typedef unsigned long long int uint64_t;*/
typedef signed char int_least8_t;
typedef short int int_least16_t;
typedef long int_least32_t;









typedef unsigned char uint_least8_t;
typedef unsigned short uint_least16_t;
typedef unsigned long uint_least32_t;
typedef signed char int_fast8_t;





typedef int int_fast16_t;
typedef int int_fast32_t;





typedef unsigned char uint_fast8_t;





typedef unsigned int uint_fast16_t;
typedef unsigned int uint_fast32_t;
typedef int intptr_t;


typedef unsigned int uintptr_t;








/*__extension__*/ 
typedef
         float* intmax_t;
      
/*__extension__*/ 
typedef 
         float* uintmax_t;
      
typedef int __gwchar_t;
typedef struct __nesc_unnamed4242 {


         float* quot;
      

         float* rem;
      
} imaxdiv_t;
typedef struct { unsigned char _data[1]; } /*__attribute__((packed))*/ nx_int8_t;typedef int8_t __nesc_nxbase_nx_int8_t  ;
typedef struct { unsigned char _data[2]; } /*__attribute__((packed))*/ nx_int16_t;typedef int16_t __nesc_nxbase_nx_int16_t  ;
typedef struct { unsigned char _data[4]; } /*__attribute__((packed))*/ nx_int32_t;typedef int32_t __nesc_nxbase_nx_int32_t  ;
typedef struct { unsigned char _data[8]; } /*__attribute__((packed))*/ nx_int64_t;/*typedef int64_t __nesc_nxbase_nx_int64_t  ;*/
typedef struct { unsigned char _data[1]; } /*__attribute__((packed))*/ nx_uint8_t;typedef uint8_t __nesc_nxbase_nx_uint8_t  ;
typedef struct { unsigned char _data[2]; } /*__attribute__((packed))*/ nx_uint16_t;typedef uint16_t __nesc_nxbase_nx_uint16_t  ;
typedef struct { unsigned char _data[4]; } /*__attribute__((packed))*/ nx_uint32_t;typedef uint32_t __nesc_nxbase_nx_uint32_t  ;
typedef struct { unsigned char _data[8]; } /*__attribute__((packed))*/ nx_uint64_t;/*typedef uint64_t __nesc_nxbase_nx_uint64_t  ;*/


typedef struct { unsigned char _data[1]; } /*__attribute__((packed))*/ nxle_int8_t;typedef int8_t __nesc_nxbase_nxle_int8_t  ;
typedef struct { unsigned char _data[2]; } /*__attribute__((packed))*/ nxle_int16_t;typedef int16_t __nesc_nxbase_nxle_int16_t  ;
typedef struct { unsigned char _data[4]; } /*__attribute__((packed))*/ nxle_int32_t;typedef int32_t __nesc_nxbase_nxle_int32_t  ;
typedef struct { unsigned char _data[8]; } /*__attribute__((packed))*/ nxle_int64_t;/*typedef int64_t __nesc_nxbase_nxle_int64_t  ;*/
typedef struct { unsigned char _data[1]; } /*__attribute__((packed))*/ nxle_uint8_t;typedef uint8_t __nesc_nxbase_nxle_uint8_t  ;
typedef struct { unsigned char _data[2]; } /*__attribute__((packed))*/ nxle_uint16_t;typedef uint16_t __nesc_nxbase_nxle_uint16_t  ;
typedef struct { unsigned char _data[4]; } /*__attribute__((packed))*/ nxle_uint32_t;typedef uint32_t __nesc_nxbase_nxle_uint32_t  ;
typedef struct { unsigned char _data[8]; } /*__attribute__((packed))*/ nxle_uint64_t;/*typedef uint64_t __nesc_nxbase_nxle_uint64_t  ;*/
extern void *memset(void *s, char val, int n);
typedef struct __nesc_unnamed4243 {

  int quot;
  int rem;
} div_t;







typedef struct __nesc_unnamed4244 {

  long int quot;
  long int rem;
} ldiv_t;
/*__extension__*/ 
/*__extension__*/ 




/*__extension__*/ 








/*__extension__*/ 




/*__extension__*/ 
struct random__data {

  int32_t *fptr;
  int32_t *rptr;
  int32_t *state;
  int rand_type;
  int rand_deg;
  int rand_sep;
  int32_t *end_ptr;
};
struct drand48__data {

  unsigned short int __x[3];
  unsigned short int __old_x[3];
  unsigned short int __c;
  unsigned short int __init;
  
         float* __a;
      
};
typedef int (*__compar_fn_t)(const void *arg_0x402dfbc0, const void *arg_0x402dfd58);
typedef uint8_t bool  ;
enum __nesc_unnamed4245 {
  FALSE = 0, TRUE = 1
};









typedef nx_int8_t nx_bool;






/*struct __nesc_attr_atmostonce {
};*/
/*struct __nesc_attr_atleastonce {
};*/
/*struct __nesc_attr_exactlyonce {
};*/
enum __nesc_unnamed4246 {
  SUCCESS = 0, 
  FAIL = 1, 
  ESIZE = 2, 
  ECANCEL = 3, 
  EOFF = 4, 
  EBUSY = 5, 
  EINVAL = 6, 
  ERETRY = 7, 
  ERESERVE = 8, 
  EALREADY = 9, 
  ENOMEM = 10, 
  ENOACK = 11, 
  ELAST = 11
};

typedef uint8_t error_t  ;
enum __nesc_unnamed4247 {
  cip51_SCON_S0MODE = 0x7, 
  cip51_SCON_MCE0 = 0x5, 
  cip51_SCON_REN0 = 0x4, 
  cip51_SCON_TB80 = 0x3, 
  cip51_SCON_RB80 = 0x2, 
  cip51_SCON_TI0 = 0x1, 
  cip51_SCON_RI0 = 0x0
};





enum __nesc_unnamed4248 {
  CIP51_SPI0CFG_SPIBSY = 0x7, 
  CIP51_SPI0CFG_MSTEN = 0x6, 
  CIP51_SPI0CFG_CKPHA = 0x5, 
  CIP51_SPI0CFG_CKPOL = 0x4, 
  CIP51_SPI0CFG_SLVSEL = 0x3, 
  CIP51_SPI0CFG_NSSIN = 0x2, 
  CIP51_SPI0CFG_SRMT = 0x1, 
  CIP51_SPI0CFG_RXBMT = 0x0
};





enum __nesc_unnamed4249 {
  CIP51_CLKMUL_MULEN = 0x7, 
  CIP51_CLKMUL_MULINT = 0x6, 
  CIP51_CLKMUL_MULRDY = 0x5
};





enum __nesc_unnamed4250 {
  CIP51_IT01CF_IN1PL = 0x7, 
  CIP51_IT01CF_IN0PL = 0x3, 
  CIP51_IT01CF_IN0SL_MASK = 0x7, 
  CIP51_IT01CF_IN1SL_MASK = 0x70
};
__sfr __at (0x98) SCON0;
__sfr __at (0x99) SBUF0;
__sfr __at (0xA6) P2MDOUT;


__sfr __at (0xA9) CLKSEL;







__sfr __at (0xB2) OSCICN;



__sfr __at (0xB6) FLSCL;

__sfr __at (0xB8) IP;
__sfr __at (0xB9) CLKMUL;
__sfr __at (0xD4) P0SKIP;
__sfr __at (0xD5) P1SKIP;
__sfr __at (0xD6) P2SKIP;


__sfr __at (0xD9) PCA0MD;



__sfr __at (0xE1) XBR0;
__sfr __at (0xE2) XBR1;
__sfr __at (0xE3) XBR2;
__sbit __at (0xAC) ES0;
__sbit __at (0xAB) ET1;
__sfr __at (0x89) TMOD;

__sfr __at (0x8B) TL1;

__sfr __at (0x8D) TH1;
__sfr __at (0x8E) CKCON;



__sfr __at (0x98) SCON;
__sbit __at (0x8F) TF1;
__sbit __at (0x8E) TR1;
__sbit __at (0x8D) TF0;
__sbit __at (0xAF) EA;
__sbit __at (0xA2) P2_2;
__sbit __at (0xA3) P2_3;
typedef uint8_t __nesc_atomic_t;

static  inline  void __nesc_disable_interrupt();
static  inline  void __nesc_enable_interrupt();

 inline  __nesc_atomic_t __nesc_atomic_start(void )  ;





 inline  void __nesc_atomic_end(__nesc_atomic_t oldSreg)  ;
enum __nesc_unnamed4251 {
  LEDS_LED0 = 1 << 0, 
  LEDS_LED1 = 1 << 1, 
  LEDS_LED2 = 1 << 2, 
  LEDS_LED3 = 1 << 3, 
  LEDS_LED4 = 1 << 4, 
  LEDS_LED5 = 1 << 5, 
  LEDS_LED6 = 1 << 6, 
  LEDS_LED7 = 1 << 7
};
typedef enum __nesc_unnamed4252 {
  B75 = 1u, 
  B150 = 2U, 
  B300 = 4U, 
  B600 = 8U, 
  B1200 = 16U, 
  B1800 = 24U, 
  B2400 = 32U, 
  B4800 = 64U, 
  B9600 = 128U, 
  B19200 = 256U, 
  B38400 = 512U, 
  B57600 = 768U, 
  B76800 = 1024U, 
  B115200 = 1536U, 
  B230400 = 3072U, 
  B460800 = 6144U, 
  B576000 = 7680U, 
  B921600 = 12288U, 
  B1152000 = 15360U, 
  B3000000 = 40000U
} ser_rate_t;




typedef enum __nesc_unnamed4253 {
  par_none = 0
} 
ser_parity_t;






typedef enum __nesc_unnamed4254 {



  CS8 = 8
} ser__data_bits_t;




typedef enum __nesc_unnamed4255 {
  stop_bit_1 = 1
} 
ser_stop_bits_t;
typedef enum __nesc_unnamed4256 {
  MCS51_TIMER_MODE_13BIT = 0, 
  MCS51_TIMER_MODE_16BIT = 1, 
  MCS51_TIMER_MODE_8BIT_RELOAD = 2, 
  MCS51_TIMER_MODE_DOUBLE_8BIT = 3
} mcs51_timer_mode_t;




typedef enum __nesc_unnamed4257 {
  MCS51_TIMER_SRC_SYSCLK = 0, 
  MCS51_TIMER_SRC_EXT = 1
} mcs51_timer_src_t;

enum __nesc_unnamed4258 {
  MCS51_TCON_TF1 = 7, 
  MCS51_TCON_TR1 = 6, 
  MCS51_TCON_TF0 = 5, 
  MCS51_TCON_TR0 = 4, 
  MCS51_TCON_IE1 = 3, 
  MCS51_TCON_IT1 = 2, 
  MCS51_TCON_IE0 = 1, 
  MCS51_TCON_IT0 = 0
};

enum __nesc_unnamed4259 {
  MCS51_TMOD_T0MODE_MASK = 0x03, 
  MCS51_TMOD_T1MODE_MASK = 0x30, 
  MCS51_TMOD_GATE1 = 7, 
  MCS51_TMOD_CT1 = 6, 
  MCS51_TMOD_M1M1 = 5, 
  MCS51_TMOD_T1M0 = 4, 
  MCS51_TMOD_GATE0 = 3, 
  MCS51_TMOD_CT0 = 2, 
  MCS51_TMOD_M0M1 = 1, 
  MCS51_TMOD_T0M0 = 0
};
static error_t PlatformP__Init__init(void );
static void Hplcip51IOC__P22__toggle(void );









static void Hplcip51IOC__P22__makePushPull(void );
static void Hplcip51IOC__P22__set(void );
static void Hplcip51IOC__P22__clr(void );
static error_t Hplcip51IOC__Init__init(void );
static void Hplcip51IOC__P23__toggle(void );









static void Hplcip51IOC__P23__makePushPull(void );
static void Hplcip51IOC__P23__clr(void );
static error_t SchedulerBasicP__TaskBasic__postTask(
uint8_t arg_0x40347860);
static void SchedulerBasicP__TaskBasic__default__runTask(
uint8_t arg_0x40347860);
static void SchedulerBasicP__Scheduler__init(void );
static void SchedulerBasicP__Scheduler__taskLoop(void );
static bool SchedulerBasicP__Scheduler__runNextTask(void );
static void McuSleepC__McuSleep__sleep(void );
static void EchoP__Boot__booted(void );
static void EchoP__print__runTask(void );
static void EchoP__uart0__get(uint8_t _data);





static void EchoP__uart0__putDone(void );
static error_t LedsP__Init__init(void );
static void LedsP__Leds__led0Toggle(void );
static void LedsP__Leds__led1Toggle(void );
static void LedsP__Leds__led2Toggle(void );
static void LedsP__Leds__led0On(void );
static void /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__out__toggle(void );



static void /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__out__makeOutput(void );
static void /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__out__set(void );
static void /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__out__clr(void );
static void /*Hplcip51GeneralIOC.P23_w*/Hplcip51GeneralIOP__19__out__toggle(void );



static void /*Hplcip51GeneralIOC.P23_w*/Hplcip51GeneralIOP__19__out__makeOutput(void );
static void /*Hplcip51GeneralIOC.P23_w*/Hplcip51GeneralIOP__19__out__clr(void );
static void /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__Out__toggle(void );



static void /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__Out__makeOutput(void );
static void /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__Out__set(void );
static void /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__Out__clr(void );
static void /*PlatformLedsC.Led1_rev*/ReverseGPIOP__1__Out__toggle(void );



static void /*PlatformLedsC.Led1_rev*/ReverseGPIOP__1__Out__makeOutput(void );
static void /*PlatformLedsC.Led1_rev*/ReverseGPIOP__1__Out__set(void );

static void /*PlatformLedsC.Led2_rev*/ReverseGPIOP__2__Out__toggle(void );



static void /*PlatformLedsC.Led2_rev*/ReverseGPIOP__2__Out__makeOutput(void );
static void /*PlatformLedsC.Led2_rev*/ReverseGPIOP__2__Out__set(void );

static void /*PlatformLedsC.NoPinC*/NoPinC__0__GeneralIO__toggle(void );



static void /*PlatformLedsC.NoPinC*/NoPinC__0__GeneralIO__makeOutput(void );
static void /*PlatformLedsC.NoPinC*/NoPinC__0__GeneralIO__clr(void );
static error_t Halcip51SimpleUart0P__SerialByteComm__put(uint8_t _data);
static error_t Halcip51SimpleUart0P__SerialControl__setRate(ser_rate_t b);
static error_t Halcip51SimpleUart0P__Init__init(void );
static void Halcip51SimpleUart0P__RateCounter__overflow(void );
static error_t Halcip51SimpleUart0P__StdControl__start(void );
static void HplMcs51TimerP__Counter1__setInterruptEnable(bool i);
static void HplMcs51TimerP__Counter1__setMode(mcs51_timer_mode_t mode);
static void HplMcs51TimerP__Counter1__start(void );


static void HplMcs51TimerP__Counter1__set(uint8_t hi, uint8_t lo);









static void HplMcs51TimerP__Counter0__default__overflow(void );
static error_t PlatformP__GPIOInit__init(void );
static error_t PlatformP__LedsInit__init(void );
static inline error_t PlatformP__Init__init(void );
static  inline  void Hplcip51IOC__P22__set(void );
static  inline  void Hplcip51IOC__P22__clr(void );
static inline void Hplcip51IOC__P22__toggle(void );
static  inline  void Hplcip51IOC__P22__makePushPull(void );
static  inline  void Hplcip51IOC__P23__clr(void );
static inline void Hplcip51IOC__P23__toggle(void );
static  inline  void Hplcip51IOC__P23__makePushPull(void );
static inline error_t Hplcip51IOC__Init__init(void );
static error_t RealMainP__SoftwareInit__init(void );
static void RealMainP__Boot__booted(void );
static error_t RealMainP__PlatformInit__init(void );
static void RealMainP__Scheduler__init(void );
static void RealMainP__Scheduler__taskLoop(void );
static bool RealMainP__Scheduler__runNextTask(void );
int main(void )   ;
static void SchedulerBasicP__TaskBasic__runTask(
uint8_t arg_0x40347860);
static void SchedulerBasicP__McuSleep__sleep(void );
enum SchedulerBasicP____nesc_unnamed4260 {

  SchedulerBasicP__NUM_TASKS = 1U, 
  SchedulerBasicP__NO_TASK = 255
};

uint8_t SchedulerBasicP__m_head;
uint8_t SchedulerBasicP__m_tail;
uint8_t SchedulerBasicP__m_next[SchedulerBasicP__NUM_TASKS];








static  inline  uint8_t SchedulerBasicP__popTask(void );
static inline bool SchedulerBasicP__isWaiting(uint8_t id);




static inline bool SchedulerBasicP__pushTask(uint8_t id);
static inline void SchedulerBasicP__Scheduler__init(void );









static bool SchedulerBasicP__Scheduler__runNextTask(void );
static inline void SchedulerBasicP__Scheduler__taskLoop(void );
static inline error_t SchedulerBasicP__TaskBasic__postTask(uint8_t id);




static inline void SchedulerBasicP__TaskBasic__default__runTask(uint8_t id);
static inline void McuSleepC__McuSleep__sleep(void );
static void EchoP__Leds__led0Toggle(void );
static void EchoP__Leds__led1Toggle(void );
static void EchoP__Leds__led2Toggle(void );
static void EchoP__Leds__led0On(void );
static error_t EchoP__print__postTask(void );
static error_t EchoP__uart0__put(uint8_t _data);
enum EchoP____nesc_unnamed4261 {
  EchoP__print = 0U
};
typedef int EchoP____nesc_sillytask_print[EchoP__print];
char EchoP__buf = 'A';





static inline void EchoP__Boot__booted(void );




static inline void EchoP__uart0__putDone(void );


static inline void EchoP__print__runTask(void );



static inline void EchoP__uart0__get(uint8_t _data);
static void LedsP__Led0__toggle(void );



static void LedsP__Led0__makeOutput(void );
static void LedsP__Led0__set(void );
static void LedsP__Led0__clr(void );
static void LedsP__Led1__toggle(void );



static void LedsP__Led1__makeOutput(void );
static void LedsP__Led1__set(void );

static void LedsP__Led2__toggle(void );



static void LedsP__Led2__makeOutput(void );
static void LedsP__Led2__set(void );
static inline error_t LedsP__Init__init(void );
static inline void LedsP__Leds__led0On(void );









static inline void LedsP__Leds__led0Toggle(void );
static inline void LedsP__Leds__led1Toggle(void );
static inline void LedsP__Leds__led2Toggle(void );
static void /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__in__toggle(void );









static void /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__in__makePushPull(void );
static void /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__in__set(void );
static void /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__in__clr(void );
static  inline  void /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__out__set(void );
static  inline  void /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__out__clr(void );
static inline void /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__out__toggle(void );










static  inline  void /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__out__makeOutput(void );
static void /*Hplcip51GeneralIOC.P23_w*/Hplcip51GeneralIOP__19__in__toggle(void );









static void /*Hplcip51GeneralIOC.P23_w*/Hplcip51GeneralIOP__19__in__makePushPull(void );
static void /*Hplcip51GeneralIOC.P23_w*/Hplcip51GeneralIOP__19__in__clr(void );
static  inline  void /*Hplcip51GeneralIOC.P23_w*/Hplcip51GeneralIOP__19__out__clr(void );
static inline void /*Hplcip51GeneralIOC.P23_w*/Hplcip51GeneralIOP__19__out__toggle(void );










static  inline  void /*Hplcip51GeneralIOC.P23_w*/Hplcip51GeneralIOP__19__out__makeOutput(void );
static void /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__In__toggle(void );



static void /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__In__makeOutput(void );
static void /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__In__set(void );
static void /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__In__clr(void );
static  inline  void /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__Out__set(void );
static  inline  void /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__Out__clr(void );
static inline void /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__Out__toggle(void );
static  inline  void /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__Out__makeOutput(void );
static void /*PlatformLedsC.Led1_rev*/ReverseGPIOP__1__In__toggle(void );



static void /*PlatformLedsC.Led1_rev*/ReverseGPIOP__1__In__makeOutput(void );
static void /*PlatformLedsC.Led1_rev*/ReverseGPIOP__1__In__clr(void );
static  inline  void /*PlatformLedsC.Led1_rev*/ReverseGPIOP__1__Out__set(void );
static inline void /*PlatformLedsC.Led1_rev*/ReverseGPIOP__1__Out__toggle(void );
static  inline  void /*PlatformLedsC.Led1_rev*/ReverseGPIOP__1__Out__makeOutput(void );
static void /*PlatformLedsC.Led2_rev*/ReverseGPIOP__2__In__toggle(void );



static void /*PlatformLedsC.Led2_rev*/ReverseGPIOP__2__In__makeOutput(void );
static void /*PlatformLedsC.Led2_rev*/ReverseGPIOP__2__In__clr(void );
static  inline  void /*PlatformLedsC.Led2_rev*/ReverseGPIOP__2__Out__set(void );
static inline void /*PlatformLedsC.Led2_rev*/ReverseGPIOP__2__Out__toggle(void );
static  inline  void /*PlatformLedsC.Led2_rev*/ReverseGPIOP__2__Out__makeOutput(void );
static inline void /*PlatformLedsC.NoPinC*/NoPinC__0__GeneralIO__clr(void );
static inline void /*PlatformLedsC.NoPinC*/NoPinC__0__GeneralIO__toggle(void );

static inline void /*PlatformLedsC.NoPinC*/NoPinC__0__GeneralIO__makeOutput(void );
static void Halcip51SimpleUart0P__SerialByteComm__get(uint8_t _data);





static void Halcip51SimpleUart0P__SerialByteComm__putDone(void );
static void Halcip51SimpleUart0P__RateCounter__setInterruptEnable(bool i);
static void Halcip51SimpleUart0P__RateCounter__setMode(mcs51_timer_mode_t mode);
static void Halcip51SimpleUart0P__RateCounter__start(void );


static void Halcip51SimpleUart0P__RateCounter__set(uint8_t hi, uint8_t lo);
static inline error_t Halcip51SimpleUart0P__StdControl__start(void );
static inline error_t Halcip51SimpleUart0P__SerialControl__setRate(ser_rate_t b);
static inline error_t Halcip51SimpleUart0P__Init__init(void );
static inline error_t Halcip51SimpleUart0P__SerialByteComm__put(uint8_t _data);








/*void __vector_4(void )   __attribute((interrupt)) ;*/
static inline void Halcip51SimpleUart0P__RateCounter__overflow(void );
static void HplMcs51TimerP__Counter1__overflow(void );
static void HplMcs51TimerP__Counter0__overflow(void );
static inline void HplMcs51TimerP__Counter0__default__overflow(void );





static inline void HplMcs51TimerP__Counter1__setInterruptEnable(bool i);
static inline void HplMcs51TimerP__Counter1__start(void );

static inline void HplMcs51TimerP__Counter1__set(uint8_t hi, uint8_t lo);

static inline void HplMcs51TimerP__Counter1__setMode(mcs51_timer_mode_t mode);
/*void __vector_1(void )   __attribute((interrupt)) ;*/




/*void __vector_3(void )   __attribute((interrupt)) ;*/
 inline   __nesc_atomic_t __nesc_atomic_start(void )
{
  __nesc_atomic_t tmp = EA;

  EA = 0;
  return tmp;
}

 inline   void __nesc_atomic_end(__nesc_atomic_t oldSreg)
{
  EA = oldSreg;
}

static inline void SchedulerBasicP__Scheduler__init(void )
{
  /* atomic removed: atomic calls only */
  {
    memset((void *)SchedulerBasicP__m_next, SchedulerBasicP__NO_TASK, sizeof SchedulerBasicP__m_next);
    SchedulerBasicP__m_head = SchedulerBasicP__NO_TASK;
    SchedulerBasicP__m_tail = SchedulerBasicP__NO_TASK;
  }
}

inline static void RealMainP__Scheduler__init(void ){
  SchedulerBasicP__Scheduler__init();
}
static inline void /*PlatformLedsC.NoPinC*/NoPinC__0__GeneralIO__clr(void )
{
}

inline static void /*PlatformLedsC.Led2_rev*/ReverseGPIOP__2__In__clr(void ){
  /*PlatformLedsC.NoPinC*/NoPinC__0__GeneralIO__clr();
}
static  inline  void /*PlatformLedsC.Led2_rev*/ReverseGPIOP__2__Out__set(void )
{
  /*PlatformLedsC.Led2_rev*/ReverseGPIOP__2__In__clr();
}

inline static void LedsP__Led2__set(void ){
  /*PlatformLedsC.Led2_rev*/ReverseGPIOP__2__Out__set();
}
static  inline  void Hplcip51IOC__P23__clr(void )
{
  P2_3 = 0;
}

inline static void /*Hplcip51GeneralIOC.P23_w*/Hplcip51GeneralIOP__19__in__clr(void ){
  Hplcip51IOC__P23__clr();
}
static  inline  void /*Hplcip51GeneralIOC.P23_w*/Hplcip51GeneralIOP__19__out__clr(void )
{
  /*Hplcip51GeneralIOC.P23_w*/Hplcip51GeneralIOP__19__in__clr();
}

inline static void /*PlatformLedsC.Led1_rev*/ReverseGPIOP__1__In__clr(void ){
  /*Hplcip51GeneralIOC.P23_w*/Hplcip51GeneralIOP__19__out__clr();
}
static  inline  void /*PlatformLedsC.Led1_rev*/ReverseGPIOP__1__Out__set(void )
{
  /*PlatformLedsC.Led1_rev*/ReverseGPIOP__1__In__clr();
}

inline static void LedsP__Led1__set(void ){
  /*PlatformLedsC.Led1_rev*/ReverseGPIOP__1__Out__set();
}
static  inline  void Hplcip51IOC__P22__clr(void )
{
  P2_2 = 0;
}

inline static void /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__in__clr(void ){
  Hplcip51IOC__P22__clr();
}
static  inline  void /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__out__clr(void )
{
  /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__in__clr();
}

inline static void /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__In__clr(void ){
  /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__out__clr();
}
static  inline  void /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__Out__set(void )
{
  /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__In__clr();
}

inline static void LedsP__Led0__set(void ){
  /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__Out__set();
}
static inline void /*PlatformLedsC.NoPinC*/NoPinC__0__GeneralIO__makeOutput(void )
{
}

inline static void /*PlatformLedsC.Led2_rev*/ReverseGPIOP__2__In__makeOutput(void ){
  /*PlatformLedsC.NoPinC*/NoPinC__0__GeneralIO__makeOutput();
}
static  inline  void /*PlatformLedsC.Led2_rev*/ReverseGPIOP__2__Out__makeOutput(void )
{
  /*PlatformLedsC.Led2_rev*/ReverseGPIOP__2__In__makeOutput();
}

inline static void LedsP__Led2__makeOutput(void ){
  /*PlatformLedsC.Led2_rev*/ReverseGPIOP__2__Out__makeOutput();
}
static  inline  void Hplcip51IOC__P23__makePushPull(void )
{
  P2MDOUT |= 1 << 3;
}

inline static void /*Hplcip51GeneralIOC.P23_w*/Hplcip51GeneralIOP__19__in__makePushPull(void ){
  Hplcip51IOC__P23__makePushPull();
}
static  inline  void /*Hplcip51GeneralIOC.P23_w*/Hplcip51GeneralIOP__19__out__makeOutput(void )
{
  /*Hplcip51GeneralIOC.P23_w*/Hplcip51GeneralIOP__19__in__makePushPull();
}

inline static void /*PlatformLedsC.Led1_rev*/ReverseGPIOP__1__In__makeOutput(void ){
  /*Hplcip51GeneralIOC.P23_w*/Hplcip51GeneralIOP__19__out__makeOutput();
}
static  inline  void /*PlatformLedsC.Led1_rev*/ReverseGPIOP__1__Out__makeOutput(void )
{
  /*PlatformLedsC.Led1_rev*/ReverseGPIOP__1__In__makeOutput();
}

inline static void LedsP__Led1__makeOutput(void ){
  /*PlatformLedsC.Led1_rev*/ReverseGPIOP__1__Out__makeOutput();
}
static  inline  void Hplcip51IOC__P22__makePushPull(void )
{
  P2MDOUT |= 1 << 2;
}

inline static void /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__in__makePushPull(void ){
  Hplcip51IOC__P22__makePushPull();
}
static  inline  void /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__out__makeOutput(void )
{
  /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__in__makePushPull();
}

inline static void /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__In__makeOutput(void ){
  /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__out__makeOutput();
}
static  inline  void /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__Out__makeOutput(void )
{
  /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__In__makeOutput();
}

inline static void LedsP__Led0__makeOutput(void ){
  /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__Out__makeOutput();
}
static inline error_t LedsP__Init__init(void )
{
  /* atomic removed: atomic calls only */
  {
    ;
    LedsP__Led0__makeOutput();
    LedsP__Led1__makeOutput();
    LedsP__Led2__makeOutput();
    LedsP__Led0__set();
    LedsP__Led1__set();
    LedsP__Led2__set();
  }
  return SUCCESS;
}

inline static error_t PlatformP__LedsInit__init(void ){
  unsigned char result;

  result = LedsP__Init__init();

  return result;
}
static inline error_t Hplcip51IOC__Init__init(void )
{
  return SUCCESS;
}

inline static error_t PlatformP__GPIOInit__init(void ){
  unsigned char result;

  result = Hplcip51IOC__Init__init();

  return result;
}
static inline error_t PlatformP__Init__init(void )
{
  uint16_t i;


  PCA0MD &= ~0x40;




  OSCICN = 0x83;





  CLKMUL = 0;
  CLKMUL |= 1 << CIP51_CLKMUL_MULEN;
  i = 0;
  while (i < 500) {
      i++;
    }
  CLKMUL |= 1 << CIP51_CLKMUL_MULINT;
  i = 0;
  while (i < 500) {
      i++;
    }
  while (!(CLKMUL & (1 << CIP51_CLKMUL_MULRDY))) {
    }



  FLSCL |= 0x10;
  CLKSEL = 0x03;
  PlatformP__GPIOInit__init();
  PlatformP__LedsInit__init();

  P0SKIP = 0xC0;
  P1SKIP = 0x03;
  P2SKIP = 0x04;

  XBR0 = 0x07;
  XBR1 = 0x40;


  EA = 1;

  return SUCCESS;
}

inline static error_t RealMainP__PlatformInit__init(void ){
  unsigned char result;

  result = PlatformP__Init__init();

  return result;
}
inline static bool RealMainP__Scheduler__runNextTask(void ){
  unsigned char result;

  result = SchedulerBasicP__Scheduler__runNextTask();

  return result;
}
static inline void HplMcs51TimerP__Counter1__setInterruptEnable(bool i)
{
  ET1 = i;
}

inline static void Halcip51SimpleUart0P__RateCounter__setInterruptEnable(bool i){
  HplMcs51TimerP__Counter1__setInterruptEnable(i);
}
static inline void HplMcs51TimerP__Counter1__start(void )
{
  TR1 = 1;
}

inline static void Halcip51SimpleUart0P__RateCounter__start(void ){
  HplMcs51TimerP__Counter1__start();
}
static inline void HplMcs51TimerP__Counter1__setMode(mcs51_timer_mode_t mode)
{
  TMOD = (TMOD & ~MCS51_TMOD_T0MODE_MASK) | (mode << MCS51_TMOD_T1M0);
}

inline static void Halcip51SimpleUart0P__RateCounter__setMode(mcs51_timer_mode_t mode){
  HplMcs51TimerP__Counter1__setMode(mode);
}
static inline error_t Halcip51SimpleUart0P__StdControl__start(void )
{
  Halcip51SimpleUart0P__RateCounter__setMode(MCS51_TIMER_MODE_8BIT_RELOAD);
  Halcip51SimpleUart0P__RateCounter__start();
  Halcip51SimpleUart0P__RateCounter__setInterruptEnable(FALSE);

  ES0 = 1;

  return SUCCESS;
}

static inline void HplMcs51TimerP__Counter1__set(uint8_t hi, uint8_t lo)
{
  TL1 = lo;
  TH1 = hi;
}

inline static void Halcip51SimpleUart0P__RateCounter__set(uint8_t hi, uint8_t lo){
  HplMcs51TimerP__Counter1__set(hi, lo);
}
static inline error_t Halcip51SimpleUart0P__SerialControl__setRate(ser_rate_t b)
{
  uint32_t baud = b * 75ul;
  uint8_t count;






  if (48000000ul / baud / 2 / 256 < 1) {
      count = -(48000000ul / baud / 2);
      CKCON &= ~0x0B;
      CKCON |= 0x08;
    }
  else {
    if (48000000ul / baud / 2 / 256 < 4) {
        count = -(48000000ul / baud / 2 / 4);
        CKCON &= ~0x0B;
        CKCON |= 0x09;
      }
    else {
      if (48000000ul / baud / 2 / 256 < 12) {
          count = -(48000000ul / baud / 2 / 12);
          CKCON &= ~0x0B;
        }
      else 
        {
          count = -(48000000ul / baud / 2 / 48);
          CKCON &= ~0x0B;
          CKCON |= 0x02;
        }
      }
    }
  Halcip51SimpleUart0P__RateCounter__set(count, count);
  return SUCCESS;
}






static inline error_t Halcip51SimpleUart0P__Init__init(void )
{
  error_t r;

  XBR0 |= 0x01;
  XBR2 |= 0x01;
  XBR1 |= 0x40;



  r = Halcip51SimpleUart0P__SerialControl__setRate(B230400);

  SCON0 = 0x10;






  IP |= 0x10;

  r |= Halcip51SimpleUart0P__StdControl__start();

  return r;
}

inline static error_t RealMainP__SoftwareInit__init(void ){
  unsigned char result;

  result = Halcip51SimpleUart0P__Init__init();

  return result;
}
static inline error_t Halcip51SimpleUart0P__SerialByteComm__put(uint8_t _data)
{
  SBUF0 = _data;
  return SUCCESS;
}

inline static error_t EchoP__uart0__put(uint8_t _data){
  unsigned char result;

  result = Halcip51SimpleUart0P__SerialByteComm__put(_data);

  return result;
}
static  inline  void Hplcip51IOC__P22__set(void )
{
  P2_2 = 1;
}

inline static void /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__in__set(void ){
  Hplcip51IOC__P22__set();
}
static  inline  void /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__out__set(void )
{
  /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__in__set();
}

inline static void /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__In__set(void ){
  /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__out__set();
}
static  inline  void /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__Out__clr(void )
{
  /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__In__set();
}

inline static void LedsP__Led0__clr(void ){
  /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__Out__clr();
}
static inline void LedsP__Leds__led0On(void )
{
  LedsP__Led0__clr();
  ;
  ;
}

inline static void EchoP__Leds__led0On(void ){
  LedsP__Leds__led0On();
}
static inline void EchoP__Boot__booted(void )
{
  EchoP__Leds__led0On();
  EchoP__uart0__put(EchoP__buf);
}

inline static void RealMainP__Boot__booted(void ){
  EchoP__Boot__booted();
}
static inline void EchoP__print__runTask(void )
{
  EchoP__uart0__put(EchoP__buf);
}

static inline void SchedulerBasicP__TaskBasic__default__runTask(uint8_t id)
{
}

inline static void SchedulerBasicP__TaskBasic__runTask(uint8_t arg_0x40347860){
  switch (arg_0x40347860) {
    case EchoP__print:
      EchoP__print__runTask();
      break;
    default:
      SchedulerBasicP__TaskBasic__default__runTask(arg_0x40347860);
      break;
    }
}
static  inline  void __nesc_disable_interrupt()
{
  EA = 0;
}

static  inline  void __nesc_enable_interrupt()
{
  EA = 1;
}

static inline void McuSleepC__McuSleep__sleep(void )
{

  __nesc_enable_interrupt();
  {
    uint8_t q = 0;

    while (q < 10) {
        q++;
      }
  }


  __nesc_disable_interrupt();
}

inline static void SchedulerBasicP__McuSleep__sleep(void ){
  McuSleepC__McuSleep__sleep();
}
static  inline  uint8_t SchedulerBasicP__popTask(void )
{
  if (SchedulerBasicP__m_head != SchedulerBasicP__NO_TASK) 
    {
      uint8_t id = SchedulerBasicP__m_head;

      SchedulerBasicP__m_head = SchedulerBasicP__m_next[SchedulerBasicP__m_head];
      if (SchedulerBasicP__m_head == SchedulerBasicP__NO_TASK) 
        {
          SchedulerBasicP__m_tail = SchedulerBasicP__NO_TASK;
        }
      SchedulerBasicP__m_next[id] = SchedulerBasicP__NO_TASK;
      return id;
    }
  else 
    {
      return SchedulerBasicP__NO_TASK;
    }
}

static inline void SchedulerBasicP__Scheduler__taskLoop(void )
{
  for (; ; ) 
    {
      uint8_t nextTask;

      { __nesc_atomic_t __nesc_atomic = __nesc_atomic_start();
        {
          while ((nextTask = SchedulerBasicP__popTask()) == SchedulerBasicP__NO_TASK) 
            {
              SchedulerBasicP__McuSleep__sleep();
            }
        }
        __nesc_atomic_end(__nesc_atomic); }
      SchedulerBasicP__TaskBasic__runTask(nextTask);
    }
}

inline static void RealMainP__Scheduler__taskLoop(void ){
  SchedulerBasicP__Scheduler__taskLoop();
}
static inline void EchoP__uart0__putDone(void )
{
}

inline static void Halcip51SimpleUart0P__SerialByteComm__putDone(void ){
  EchoP__uart0__putDone();
}
static inline bool SchedulerBasicP__isWaiting(uint8_t id)
{
  return SchedulerBasicP__m_next[id] != SchedulerBasicP__NO_TASK || SchedulerBasicP__m_tail == id;
}

static inline bool SchedulerBasicP__pushTask(uint8_t id)
{
  if (!SchedulerBasicP__isWaiting(id)) 
    {
      if (SchedulerBasicP__m_head == SchedulerBasicP__NO_TASK) 
        {
          SchedulerBasicP__m_head = id;
          SchedulerBasicP__m_tail = id;
        }
      else 
        {
          SchedulerBasicP__m_next[SchedulerBasicP__m_tail] = id;
          SchedulerBasicP__m_tail = id;
        }
      return TRUE;
    }
  else 
    {
      return FALSE;
    }
}

static inline error_t SchedulerBasicP__TaskBasic__postTask(uint8_t id)
{
  { __nesc_atomic_t __nesc_atomic = __nesc_atomic_start();
    {
      {
        unsigned char __nesc_temp = 
        SchedulerBasicP__pushTask(id) ? SUCCESS : EBUSY;

        {
          __nesc_atomic_end(__nesc_atomic); 
          return __nesc_temp;
        }
      }
    }
    __nesc_atomic_end(__nesc_atomic); }
}

inline static error_t EchoP__print__postTask(void ){
  unsigned char result;

  result = SchedulerBasicP__TaskBasic__postTask(EchoP__print);

  return result;
}
static inline void /*PlatformLedsC.NoPinC*/NoPinC__0__GeneralIO__toggle(void )
{
}

inline static void /*PlatformLedsC.Led2_rev*/ReverseGPIOP__2__In__toggle(void ){
  /*PlatformLedsC.NoPinC*/NoPinC__0__GeneralIO__toggle();
}
static inline void /*PlatformLedsC.Led2_rev*/ReverseGPIOP__2__Out__toggle(void )
{
  { __nesc_atomic_t __nesc_atomic = __nesc_atomic_start();
    {
      /*PlatformLedsC.Led2_rev*/ReverseGPIOP__2__In__toggle();
    }
    __nesc_atomic_end(__nesc_atomic); }
}

inline static void LedsP__Led2__toggle(void ){
  /*PlatformLedsC.Led2_rev*/ReverseGPIOP__2__Out__toggle();
}
static inline void LedsP__Leds__led2Toggle(void )
{
  LedsP__Led2__toggle();
  ;
  ;
}

inline static void EchoP__Leds__led2Toggle(void ){
  LedsP__Leds__led2Toggle();
}
static inline void Hplcip51IOC__P23__toggle(void )
{
  /* atomic removed: atomic calls only */
  {
    P2_3 = ~P2_3;
  }
}

inline static void /*Hplcip51GeneralIOC.P23_w*/Hplcip51GeneralIOP__19__in__toggle(void ){
  Hplcip51IOC__P23__toggle();
}
static inline void /*Hplcip51GeneralIOC.P23_w*/Hplcip51GeneralIOP__19__out__toggle(void )
{
  /* atomic removed: atomic calls only */
  {
    /*Hplcip51GeneralIOC.P23_w*/Hplcip51GeneralIOP__19__in__toggle();
  }
}

inline static void /*PlatformLedsC.Led1_rev*/ReverseGPIOP__1__In__toggle(void ){
  /*Hplcip51GeneralIOC.P23_w*/Hplcip51GeneralIOP__19__out__toggle();
}
static inline void /*PlatformLedsC.Led1_rev*/ReverseGPIOP__1__Out__toggle(void )
{
  { __nesc_atomic_t __nesc_atomic = __nesc_atomic_start();
    {
      /*PlatformLedsC.Led1_rev*/ReverseGPIOP__1__In__toggle();
    }
    __nesc_atomic_end(__nesc_atomic); }
}

inline static void LedsP__Led1__toggle(void ){
  /*PlatformLedsC.Led1_rev*/ReverseGPIOP__1__Out__toggle();
}
static inline void LedsP__Leds__led1Toggle(void )
{
  LedsP__Led1__toggle();
  ;
  ;
}

inline static void EchoP__Leds__led1Toggle(void ){
  LedsP__Leds__led1Toggle();
}
static inline void Hplcip51IOC__P22__toggle(void )
{
  /* atomic removed: atomic calls only */
  {
    P2_2 = ~P2_2;
  }
}

inline static void /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__in__toggle(void ){
  Hplcip51IOC__P22__toggle();
}
static inline void /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__out__toggle(void )
{
  /* atomic removed: atomic calls only */
  {
    /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__in__toggle();
  }
}

inline static void /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__In__toggle(void ){
  /*Hplcip51GeneralIOC.P22_w*/Hplcip51GeneralIOP__18__out__toggle();
}
static inline void /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__Out__toggle(void )
{
  { __nesc_atomic_t __nesc_atomic = __nesc_atomic_start();
    {
      /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__In__toggle();
    }
    __nesc_atomic_end(__nesc_atomic); }
}

inline static void LedsP__Led0__toggle(void ){
  /*PlatformLedsC.Led0_rev*/ReverseGPIOP__0__Out__toggle();
}
static inline void LedsP__Leds__led0Toggle(void )
{
  LedsP__Led0__toggle();
  ;
  ;
}

inline static void EchoP__Leds__led0Toggle(void ){
  LedsP__Leds__led0Toggle();
}
static inline void EchoP__uart0__get(uint8_t _data)
{
  EchoP__buf = _data;
  EchoP__Leds__led0Toggle();
  EchoP__Leds__led1Toggle();
  EchoP__Leds__led2Toggle();
  EchoP__print__postTask();

  return;
}

inline static void Halcip51SimpleUart0P__SerialByteComm__get(uint8_t _data){
  EchoP__uart0__get(_data);
}
static inline void HplMcs51TimerP__Counter0__default__overflow(void )
{
}

inline static void HplMcs51TimerP__Counter0__overflow(void ){
  HplMcs51TimerP__Counter0__default__overflow();
}
static inline void Halcip51SimpleUart0P__RateCounter__overflow(void )
{
}

inline static void HplMcs51TimerP__Counter1__overflow(void ){
  Halcip51SimpleUart0P__RateCounter__overflow();
}
  int main(void )
{
  { __nesc_atomic_t __nesc_atomic = __nesc_atomic_start();
    {





      {
      }
      ;

      RealMainP__Scheduler__init();





      RealMainP__PlatformInit__init();
      while (RealMainP__Scheduler__runNextTask()) ;





      RealMainP__SoftwareInit__init();
      while (RealMainP__Scheduler__runNextTask()) ;
    }
    __nesc_atomic_end(__nesc_atomic); }


  __nesc_enable_interrupt();

  RealMainP__Boot__booted();


  RealMainP__Scheduler__taskLoop();




  return -1;
}

static bool SchedulerBasicP__Scheduler__runNextTask(void )
{
  uint8_t nextTask;

  /* atomic removed: atomic calls only */
  {
    nextTask = SchedulerBasicP__popTask();
    if (nextTask == SchedulerBasicP__NO_TASK) 
      {
        {
          unsigned char __nesc_temp = 
          FALSE;

          return __nesc_temp;
        }
      }
  }
  SchedulerBasicP__TaskBasic__runTask(nextTask);
  return TRUE;
}

void __vector_4(void) __interrupt (4)
{
  uint8_t rx = 0;
  uint8_t tx = 0;

  { __nesc_atomic_t __nesc_atomic = __nesc_atomic_start();
    {
      if (SCON & (1 << cip51_SCON_TI0)) {
          SCON &= ~(1 << cip51_SCON_TI0);
          tx = 1;
        }
      if (SCON & (1 << cip51_SCON_RI0)) {
          SCON &= ~(1 << cip51_SCON_RI0);
          rx = 1;
        }
    }
    __nesc_atomic_end(__nesc_atomic); }
  if (tx == 1) {
      Halcip51SimpleUart0P__SerialByteComm__putDone();
    }
  if (rx == 1) {
      Halcip51SimpleUart0P__SerialByteComm__get(SBUF0);
    }
}

void __vector_1(void) __interrupt (1)
{
  HplMcs51TimerP__Counter0__overflow();
  TF0 = 0;
}

void __vector_3(void) __interrupt (3)
{
  HplMcs51TimerP__Counter1__overflow();
  TF1 = 0;
}

------------------------------------------------------------------------------
This SF.net email is sponsored by:
SourcForge Community
SourceForge wants to tell your story.
http://p.sf.net/sfu/sf-spreadtheword
_______________________________________________
Sdcc-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to