Changeset 32


Ignore:
Timestamp:
03/19/2007 06:46:38 AM (5 years ago)
Author:
npereira
Message:

Moved the DECLARE_NRK_PIN stuff into a platform specific file (nrk_pin_define.h)

Location:
nano-RK
Files:
2 added
4 edited

Legend:

Unmodified
Added
Removed
  • nano-RK/projects/basic_tasks/main.c

    r21 r32  
    3232main () 
    3333{ 
    34   uint16_t div; 
    3534  nrk_setup_ports(); 
    3635  nrk_setup_uart(UART_BAUDRATE_115K2); 
     
    5655{ 
    5756uint16_t cnt; 
    58 nrk_time_t my_time; 
    5957 
    6058printf( "My node's address is %d\r\n",NODE_ADDR ); 
     
    8482{ 
    8583uint16_t cnt; 
    86 nrk_time_t my_time; 
    8784 
    8885  printf( "Task3 PID=%d\r\n",nrk_get_pid()); 
     
    9895{ 
    9996uint16_t cnt; 
    100 nrk_time_t my_time; 
    10197 
    10298  printf( "Task4 PID=%d\r\n",nrk_get_pid()); 
  • nano-RK/src/kernel/source/nrk_events.lst

    r28 r32  
    88   8                            .global __do_copy_data 
    99   9                            .global __do_clear_bss 
    10   12                            .text 
    11   13                    .Ltext0: 
    12  125                    .global nrk_create_semph 
    13  127                    nrk_create_semph: 
    14  128                            .stabd  46,0,0 
    15    1:../../../src/kernel/source/nrk_events.c **** /***************************************************************************** 
    16    2:../../../src/kernel/source/nrk_events.c ****  * Copyright (c) 2007, Real-Time and Multimedia Lab, Carnegie Mellon University 
    17    3:../../../src/kernel/source/nrk_events.c ****  * All rights reserved. 
    18    4:../../../src/kernel/source/nrk_events.c ****  * 
    19    5:../../../src/kernel/source/nrk_events.c ****  * Redistribution and use in source and binary forms, with or without 
    20    6:../../../src/kernel/source/nrk_events.c ****  * modification, are permitted provided that the following conditions are met: 
    21    7:../../../src/kernel/source/nrk_events.c ****  *     * Redistributions of source code must retain the above copyright 
    22    8:../../../src/kernel/source/nrk_events.c ****  *       notice, this list of conditions and the following disclaimer. 
    23    9:../../../src/kernel/source/nrk_events.c ****  *     * Redistributions in binary form must reproduce the above copyright 
    24   10:../../../src/kernel/source/nrk_events.c ****  *       notice, this list of conditions and the following disclaimer in the 
    25   11:../../../src/kernel/source/nrk_events.c ****  *       documentation and/or other materials provided with the distribution. 
    26   12:../../../src/kernel/source/nrk_events.c ****  *     * Neither the name of Carnegie Mellon University nor the 
    27   13:../../../src/kernel/source/nrk_events.c ****  *       names of its contributors may be used to endorse or promote products 
    28   14:../../../src/kernel/source/nrk_events.c ****  *       derived from this software without specific prior written permission. 
    29   15:../../../src/kernel/source/nrk_events.c ****  * 
    30   16:../../../src/kernel/source/nrk_events.c ****  * THIS SOFTWARE IS PROVIDED BY CARNEGIE MELLON UNIVERSITY ``AS IS'' AND ANY 
    31   17:../../../src/kernel/source/nrk_events.c ****  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 
    32   18:../../../src/kernel/source/nrk_events.c ****  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 
    33   19:../../../src/kernel/source/nrk_events.c ****  * DISCLAIMED. IN NO EVENT SHALL CARNEGIE MELLON UNIVERSITY BE LIABLE FOR ANY 
    34   20:../../../src/kernel/source/nrk_events.c ****  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 
    35   21:../../../src/kernel/source/nrk_events.c ****  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
    36   22:../../../src/kernel/source/nrk_events.c ****  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 
    37   23:../../../src/kernel/source/nrk_events.c ****  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
    38   24:../../../src/kernel/source/nrk_events.c ****  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
    39   25:../../../src/kernel/source/nrk_events.c ****  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
    40   26:../../../src/kernel/source/nrk_events.c ****  * 
    41   27:../../../src/kernel/source/nrk_events.c ****  * Contributing Authors: 
    42   28:../../../src/kernel/source/nrk_events.c ****  * Zane Starr 
    43   29:../../../src/kernel/source/nrk_events.c ****  * Anthony Rowe 
    44   30:../../../src/kernel/source/nrk_events.c ****  *******************************************************************************/ 
    45   31:../../../src/kernel/source/nrk_events.c ****  
    46   32:../../../src/kernel/source/nrk_events.c ****  
    47   33:../../../src/kernel/source/nrk_events.c **** #include <nrk.h> 
    48   34:../../../src/kernel/source/nrk_events.c **** #include <nrk_events.h> 
    49   35:../../../src/kernel/source/nrk_events.c **** #include <nrk_task.h> 
    50   36:../../../src/kernel/source/nrk_events.c **** #include <nrk_error.h> 
    51   37:../../../src/kernel/source/nrk_events.c **** #include <nrk_scheduler.h> 
    52   38:../../../src/kernel/source/nrk_events.c **** #include <include.h> 
    53   39:../../../src/kernel/source/nrk_events.c **** #include <ulib.h> 
    54   40:../../../src/kernel/source/nrk_events.c **** #include <nrk_timer.h> 
    55   41:../../../src/kernel/source/nrk_events.c **** #include <nrk_time.h> 
    56   42:../../../src/kernel/source/nrk_events.c **** #include <nrk_cfg.h> 
    57   43:../../../src/kernel/source/nrk_events.c **** #include <nrk_cpu.h> 
    58   44:../../../src/kernel/source/nrk_events.c **** #include <nrk_defs.h> 
    59   45:../../../src/kernel/source/nrk_events.c ****  
    60   46:../../../src/kernel/source/nrk_events.c ****  
    61   47:../../../src/kernel/source/nrk_events.c **** uint32_t _nrk_wait_for_event(uint32_t event_num) 
    62   48:../../../src/kernel/source/nrk_events.c **** { 
    63   49:../../../src/kernel/source/nrk_events.c ****       nrk_int_disable(); 
    64   50:../../../src/kernel/source/nrk_events.c ****       if(event_num&SIG(TASK_TIMEOUT_EVENT)) //handles nw or event 
    65   51:../../../src/kernel/source/nrk_events.c ****       { 
    66   52:../../../src/kernel/source/nrk_events.c ****               nrk_cur_task_TCB->nw_flag=1; 
    67   53:../../../src/kernel/source/nrk_events.c ****       } 
    68   54:../../../src/kernel/source/nrk_events.c ****       nrk_cur_task_TCB->event_signal_ID=event_num;     
    69   55:../../../src/kernel/source/nrk_events.c ****       // nrk_cur_task_TCB->event_suspend=1;  //  moving to higher level  
    70   56:../../../src/kernel/source/nrk_events.c ****  
    71   57:../../../src/kernel/source/nrk_events.c ****       nrk_int_enable(); 
    72   58:../../../src/kernel/source/nrk_events.c ****       nrk_wait_until_ticks(0); 
    73   59:../../../src/kernel/source/nrk_events.c ****       //unmask the signal when its return so it has logical value like 1 to or whatever was user defined 
    74   60:../../../src/kernel/source/nrk_events.c ****       return ( (nrk_cur_task_TCB->event_signal_ID)); 
    75   61:../../../src/kernel/source/nrk_events.c **** } 
    76   62:../../../src/kernel/source/nrk_events.c ****  
    77   63:../../../src/kernel/source/nrk_events.c **** int8_t nrk_semph_pend(uint8_t *rsrc ) 
    78   64:../../../src/kernel/source/nrk_events.c **** { 
    79   65:../../../src/kernel/source/nrk_events.c ****       uint8_t id; 
    80   66:../../../src/kernel/source/nrk_events.c ****       id=nrk_get_resource_id(rsrc); 
    81   67:../../../src/kernel/source/nrk_events.c ****       if(id==NRK_MAX_RESOURCE_ID) 
    82   68:../../../src/kernel/source/nrk_events.c ****               return -1; 
    83   69:../../../src/kernel/source/nrk_events.c ****       else if(*rsrc==0) 
    84   70:../../../src/kernel/source/nrk_events.c ****       { 
    85   71:../../../src/kernel/source/nrk_events.c ****               nrk_cur_task_TCB->event_suspend=RSRC_EVENT_SUSPENDED; 
    86   72:../../../src/kernel/source/nrk_events.c ****               return _nrk_wait_for_event(id); 
    87   73:../../../src/kernel/source/nrk_events.c ****       } 
    88   74:../../../src/kernel/source/nrk_events.c ****       else     
    89   75:../../../src/kernel/source/nrk_events.c ****       { 
    90   76:../../../src/kernel/source/nrk_events.c ****               *rsrc=*rsrc-1;   
    91   77:../../../src/kernel/source/nrk_events.c ****               nrk_cur_task_TCB->task_prio_ceil=nrk_resource_prio_list[id]; 
    92   78:../../../src/kernel/source/nrk_events.c ****               nrk_cur_task_TCB->elevated_prio_flag=1; 
    93   79:../../../src/kernel/source/nrk_events.c ****       } 
    94   80:../../../src/kernel/source/nrk_events.c ****  
    95   81:../../../src/kernel/source/nrk_events.c ****       return 1; 
    96   82:../../../src/kernel/source/nrk_events.c **** } 
    97   83:../../../src/kernel/source/nrk_events.c **** //supports 31signals 
    98   84:../../../src/kernel/source/nrk_events.c **** uint32_t nrk_event_signal(uint32_t event_num) 
    99   85:../../../src/kernel/source/nrk_events.c **** { 
    100   86:../../../src/kernel/source/nrk_events.c ****  
    101   87:../../../src/kernel/source/nrk_events.c ****       return _nrk_signal_event(event_num); 
    102   88:../../../src/kernel/source/nrk_events.c **** } 
    103   89:../../../src/kernel/source/nrk_events.c ****  
    104   90:../../../src/kernel/source/nrk_events.c **** uint32_t nrk_event_wait(uint32_t event_num) 
    105   91:../../../src/kernel/source/nrk_events.c **** {                
    106   92:../../../src/kernel/source/nrk_events.c ****       nrk_cur_task_TCB->event_suspend=SIG_EVENT_SUSPENDED;  
    107   93:../../../src/kernel/source/nrk_events.c ****       return _nrk_wait_for_event(event_num);  
    108   94:../../../src/kernel/source/nrk_events.c **** } 
    109   95:../../../src/kernel/source/nrk_events.c ****  
    110   96:../../../src/kernel/source/nrk_events.c **** uint32_t _nrk_signal_event(uint32_t event_num) 
    111   97:../../../src/kernel/source/nrk_events.c **** { 
    112   98:../../../src/kernel/source/nrk_events.c ****  
    113   99:../../../src/kernel/source/nrk_events.c ****       uint8_t task_ID; 
    114  100:../../../src/kernel/source/nrk_events.c ****       uint8_t event_occured=0; 
    115  101:../../../src/kernel/source/nrk_events.c ****       //needs to be atomic otherwise run the risk of multiple tasks being scheduled late and not in orde 
    116  102:../../../src/kernel/source/nrk_events.c ****       nrk_int_disable(); 
    117  103:../../../src/kernel/source/nrk_events.c ****       for (task_ID=0; task_ID < (NRK_MAX_TASKS + NRK_N_SYS_TASKS) ;task_ID++){ 
    118  104:../../../src/kernel/source/nrk_events.c ****  
    119  105:../../../src/kernel/source/nrk_events.c ****  
    120  106:../../../src/kernel/source/nrk_events.c ****               if (nrk_task_TCB[task_ID].task_state == EVENT_SUSPENDED)    
    121  107:../../../src/kernel/source/nrk_events.c ****               { 
    122  108:../../../src/kernel/source/nrk_events.c ****                       if(nrk_task_TCB[task_ID].event_suspend==SIG_EVENT_SUSPENDED) 
    123  109:../../../src/kernel/source/nrk_events.c ****                               if((nrk_task_TCB[task_ID].event_signal_ID & event_num)) 
    124  110:../../../src/kernel/source/nrk_events.c ****                               { 
    125  111:../../../src/kernel/source/nrk_events.c ****                                       nrk_task_TCB[task_ID].task_state=SUSPENDED; 
    126  112:../../../src/kernel/source/nrk_events.c ****                                       nrk_task_TCB[task_ID].next_wakeup=0; 
    127  113:../../../src/kernel/source/nrk_events.c ****                                       nrk_task_TCB[task_ID].event_suspend=0; 
    128  114:../../../src/kernel/source/nrk_events.c ****                                       // Add the event trigger here so it is returned 
    129  115:../../../src/kernel/source/nrk_events.c ****                                       // from nrk_event_wait() 
    130  116:../../../src/kernel/source/nrk_events.c ****                                       nrk_task_TCB[task_ID].event_signal_ID=event_num; 
    131  117:../../../src/kernel/source/nrk_events.c ****                                       event_occured=1; 
    132  118:../../../src/kernel/source/nrk_events.c ****                               } 
    133  119:../../../src/kernel/source/nrk_events.c ****  
    134  120:../../../src/kernel/source/nrk_events.c ****                       if(nrk_task_TCB[task_ID].event_suspend==RSRC_EVENT_SUSPENDED) 
    135  121:../../../src/kernel/source/nrk_events.c ****                               if((nrk_task_TCB[task_ID].event_signal_ID == event_num)) 
    136  122:../../../src/kernel/source/nrk_events.c ****                               { 
    137  123:../../../src/kernel/source/nrk_events.c ****                                       nrk_task_TCB[task_ID].task_state=SUSPENDED; 
    138  124:../../../src/kernel/source/nrk_events.c ****                                       nrk_task_TCB[task_ID].next_wakeup=0; 
    139  125:../../../src/kernel/source/nrk_events.c ****                                       nrk_task_TCB[task_ID].event_suspend=0; 
    140  126:../../../src/kernel/source/nrk_events.c ****                                       // Add the event trigger here so it is returned 
    141  127:../../../src/kernel/source/nrk_events.c ****                                       // from nrk_event_wait() 
    142  128:../../../src/kernel/source/nrk_events.c ****                                       nrk_task_TCB[task_ID].event_signal_ID=event_num; 
    143  129:../../../src/kernel/source/nrk_events.c ****                                       event_occured=1; 
    144  130:../../../src/kernel/source/nrk_events.c ****                               }    
    145  131:../../../src/kernel/source/nrk_events.c ****  
    146  132:../../../src/kernel/source/nrk_events.c ****               } 
    147  133:../../../src/kernel/source/nrk_events.c ****       } 
    148  134:../../../src/kernel/source/nrk_events.c ****       nrk_int_enable(); 
    149  135:../../../src/kernel/source/nrk_events.c ****       if(event_occured) 
    150  136:../../../src/kernel/source/nrk_events.c ****       { 
    151  137:../../../src/kernel/source/nrk_events.c ****               return 1; 
    152  138:../../../src/kernel/source/nrk_events.c ****       } 
    153  139:../../../src/kernel/source/nrk_events.c ****       return 2; 
    154  140:../../../src/kernel/source/nrk_events.c **** } 
    155  141:../../../src/kernel/source/nrk_events.c ****  
    156  142:../../../src/kernel/source/nrk_events.c **** int8_t nrk_semph_post(uint8_t* rsrc) 
    157  143:../../../src/kernel/source/nrk_events.c **** { 
    158  144:../../../src/kernel/source/nrk_events.c ****       uint8_t id=nrk_get_resource_id(rsrc);            
    159  145:../../../src/kernel/source/nrk_events.c ****       if(id==NRK_MAX_RESOURCE_ID) 
    160  146:../../../src/kernel/source/nrk_events.c ****               return -1; 
    161  147:../../../src/kernel/source/nrk_events.c ****       else  if(*rsrc++<nrk_resource_list_rsv_cnt[id]) 
    162  148:../../../src/kernel/source/nrk_events.c ****       { 
    163  149:../../../src/kernel/source/nrk_events.c ****               *rsrc++; 
    164  150:../../../src/kernel/source/nrk_events.c ****               nrk_cur_task_TCB->elevated_prio_flag=0; 
    165  151:../../../src/kernel/source/nrk_events.c ****               return _nrk_signal_event(id); 
    166  152:../../../src/kernel/source/nrk_events.c ****       } 
    167  153:../../../src/kernel/source/nrk_events.c ****       else 
    168  154:../../../src/kernel/source/nrk_events.c ****               return -1; 
    169  155:../../../src/kernel/source/nrk_events.c ****  
    170  156:../../../src/kernel/source/nrk_events.c **** } 
    171  157:../../../src/kernel/source/nrk_events.c **** uint8_t * nrk_create_semph(uint8_t count,uint8_t task_hi_prio,uint8_t init_state) 
    172  158:../../../src/kernel/source/nrk_events.c **** { 
    173  130                    .LM0: 
    174  131                    /* prologue: frame size=0 */ 
    175  132                    /* prologue end (size=0) */ 
    176  133 0000 282F                  mov r18,r24 
    177  159:../../../src/kernel/source/nrk_events.c ****       if(_nrk_resource_cnt==0) 
    178  135                    .LM1: 
    179  136 0002 E091 0000             lds r30,_nrk_resource_cnt 
    180  137 0006 EE23                  tst r30 
    181  138 0008 01F4                  brne .L2 
    182  140                    .LM2: 
    183  141 000a 80E0                  ldi r24,lo8(0) 
    184  142 000c 90E0                  ldi r25,hi8(0) 
    185  143 000e 0895                  ret 
    186  144                    .L2: 
    187  160:../../../src/kernel/source/nrk_events.c ****               return NULL;                                                 
    188  161:../../../src/kernel/source/nrk_events.c ****       _nrk_resource_cnt--; 
    189  146                    .LM3: 
    190  147 0010 E150                  subi r30,lo8(-(-1)) 
    191  148 0012 E093 0000             sts _nrk_resource_cnt,r30 
    192  162:../../../src/kernel/source/nrk_events.c ****       nrk_resource_list[_nrk_resource_cnt]=init_state; 
    193  150                    .LM4: 
    194  151 0016 FF27                  clr r31 
    195  152 0018 CF01                  movw r24,r30 
    196  153 001a 8050                  subi r24,lo8(-(nrk_resource_list)) 
    197  154 001c 9040                  sbci r25,hi8(-(nrk_resource_list)) 
    198  155 001e DC01                  movw r26,r24 
    199  156 0020 4C93                  st X,r20 
    200  163:../../../src/kernel/source/nrk_events.c ****       nrk_resource_list_rsv_cnt[_nrk_resource_cnt]=count; 
    201  158                    .LM5: 
    202  159 0022 DF01                  movw r26,r30 
    203  160 0024 A050                  subi r26,lo8(-(nrk_resource_list_rsv_cnt)) 
    204  161 0026 B040                  sbci r27,hi8(-(nrk_resource_list_rsv_cnt)) 
    205  162 0028 2C93                  st X,r18 
    206  164:../../../src/kernel/source/nrk_events.c ****       nrk_resource_prio_list[_nrk_resource_cnt]=task_hi_prio; 
    207  164                    .LM6: 
    208  165 002a E050                  subi r30,lo8(-(nrk_resource_prio_list)) 
    209  166 002c F040                  sbci r31,hi8(-(nrk_resource_prio_list)) 
    210  167 002e 6083                  st Z,r22 
    211  165:../../../src/kernel/source/nrk_events.c ****       return  &nrk_resource_list[_nrk_resource_cnt]; 
    212  166:../../../src/kernel/source/nrk_events.c ****  
    213  167:../../../src/kernel/source/nrk_events.c **** } 
    214  169                    .LM7: 
    215  170 0030 0895                  ret 
    216  171                    /* epilogue: frame size=0 */ 
    217  172                    /* epilogue: noreturn */ 
    218  173                    /* epilogue end (size=0) */ 
    219  174                    /* function nrk_create_semph size 25 (25) */ 
    220  176                    .Lscope0: 
    221  178                            .stabd  78,0,0 
    222  181                    .global nrk_get_resource_id 
    223  183                    nrk_get_resource_id: 
    224  184                            .stabd  46,0,0 
    225  168:../../../src/kernel/source/nrk_events.c **** uint8_t nrk_get_resource_id(uint8_t *resrc) 
    226  169:../../../src/kernel/source/nrk_events.c **** { 
    227  186                    .LM8: 
    228  187                    /* prologue: frame size=0 */ 
    229  188                    /* prologue end (size=0) */ 
    230  189 0032 FC01                  movw r30,r24 
    231  170:../../../src/kernel/source/nrk_events.c ****       uint8_t id; 
    232  171:../../../src/kernel/source/nrk_events.c ****       if(*resrc!=255) 
    233  191                    .LM9: 
    234  192 0034 8081                  ld r24,Z 
    235  193 0036 8F3F                  cpi r24,lo8(-1) 
    236  194 0038 01F0                  breq .L7 
    237  172:../../../src/kernel/source/nrk_events.c ****               for(id=0;id<NRK_MAX_RESOURCE_CNT;id++) 
    238  173:../../../src/kernel/source/nrk_events.c ****                       if(&nrk_resource_list[id]==resrc) 
    239  196                    .LM10: 
    240  197 003a E050                  subi r30,lo8(nrk_resource_list) 
    241  198 003c F040                  sbci r31,hi8(nrk_resource_list) 
    242  199 003e 01F4                  brne .L7 
    243  200 0040 80E0                  ldi r24,lo8(0) 
    244  201 0042 90E0                  ldi r25,hi8(0) 
    245  202 0044 0895                  ret 
    246  203                    .L7: 
    247  204 0046 8FEF                  ldi r24,lo8(255) 
    248  205 0048 90E0                  ldi r25,hi8(255) 
    249  174:../../../src/kernel/source/nrk_events.c ****                               return id; 
    250  175:../../../src/kernel/source/nrk_events.c ****       return 255; 
    251  176:../../../src/kernel/source/nrk_events.c **** } 
    252  207                    .LM11: 
    253  208 004a 0895                  ret 
    254  209                    /* epilogue: frame size=0 */ 
    255  210                    /* epilogue: noreturn */ 
    256  211                    /* epilogue end (size=0) */ 
    257  212                    /* function nrk_get_resource_id size 14 (14) */ 
    258  214                    .Lscope1: 
    259  216                            .stabd  78,0,0 
    260  219                    .global nrk_set_task_timeout 
    261  221                    nrk_set_task_timeout: 
    262  222                            .stabd  46,0,0 
    263  177:../../../src/kernel/source/nrk_events.c ****  
    264  178:../../../src/kernel/source/nrk_events.c ****  
    265  179:../../../src/kernel/source/nrk_events.c **** int8_t nrk_set_task_timeout(nrk_time_t t) 
    266  180:../../../src/kernel/source/nrk_events.c **** { 
    267  224                    .LM12: 
    268  225                    /* prologue: frame size=8 */ 
    269  226 004c FF92                  push r15 
    270  227 004e 0F93                  push r16 
    271  228 0050 1F93                  push r17 
    272  229 0052 CF93                  push r28 
    273  230 0054 DF93                  push r29 
    274  231 0056 CDB7                  in r28,__SP_L__ 
    275  232 0058 DEB7                  in r29,__SP_H__ 
    276  233 005a 2897                  sbiw r28,8 
    277  234 005c 0FB6                  in __tmp_reg__,__SREG__ 
    278  235 005e F894                  cli 
    279  236 0060 DEBF                  out __SP_H__,r29 
    280  237 0062 0FBE                  out __SREG__,__tmp_reg__ 
    281  238 0064 CDBF                  out __SP_L__,r28 
    282  239                    /* prologue end (size=13) */ 
    283  240 0066 2983                  std Y+1,r18 
    284  241 0068 3A83                  std Y+2,r19 
    285  242 006a 4B83                  std Y+3,r20 
    286  243 006c 5C83                  std Y+4,r21 
    287  244 006e 6D83                  std Y+5,r22 
    288  245 0070 7E83                  std Y+6,r23 
    289  246 0072 8F83                  std Y+7,r24 
    290  247 0074 9887                  std Y+8,r25 
    291  181:../../../src/kernel/source/nrk_events.c ****       uint8_t timer; 
    292  182:../../../src/kernel/source/nrk_events.c ****       uint16_t nw; 
    293  183:../../../src/kernel/source/nrk_events.c ****       nrk_int_disable(); 
    294  249                    .LM13: 
    295  250 0076 0E94 0000             call nrk_int_disable 
    296  184:../../../src/kernel/source/nrk_events.c ****       timer=_nrk_get_raw_timer(); 
    297  252                    .LM14: 
    298  253 007a 0E94 0000             call _nrk_get_raw_timer 
    299  254 007e F82E                  mov r15,r24 
    300  185:../../../src/kernel/source/nrk_events.c ****       nw=_nrk_time_to_ticks(t); 
    301  256                    .LM15: 
    302  257 0080 2981                  ldd r18,Y+1 
    303  258 0082 3A81                  ldd r19,Y+2 
    304  259 0084 4B81                  ldd r20,Y+3 
    305  260 0086 5C81                  ldd r21,Y+4 
    306  261 0088 6D81                  ldd r22,Y+5 
    307  262 008a 7E81                  ldd r23,Y+6 
    308  263 008c 8F81                  ldd r24,Y+7 
    309  264 008e 9885                  ldd r25,Y+8 
    310  265 0090 0E94 0000             call _nrk_time_to_ticks 
    311  186:../../../src/kernel/source/nrk_events.c ****       nrk_cur_task_TCB->next_wakeup=nw+timer; 
    312  267                    .LM16: 
    313  268 0094 E091 0000             lds r30,nrk_cur_task_TCB 
    314  269 0098 F091 0000             lds r31,(nrk_cur_task_TCB)+1 
    315  270 009c 0F2D                  mov r16,r15 
    316  271 009e 1127                  clr r17 
    317  272 00a0 800F                  add r24,r16 
    318  273 00a2 911F                  adc r25,r17 
    319  274 00a4 928B                  std Z+18,r25 
    320  275 00a6 818B                  std Z+17,r24 
    321  187:../../../src/kernel/source/nrk_events.c ****       if(timer<(254-TIME_PAD)) 
    322  277                    .LM17: 
    323  278 00a8 8BEF                  ldi r24,lo8(-5) 
    324  279 00aa 8F15                  cp r24,r15 
    325  280 00ac 00F0                  brlo .L13 
    326  188:../../../src/kernel/source/nrk_events.c ****               if((timer+TIME_PAD)<=_nrk_get_next_wakeup()) 
    327  282                    .LM18: 
    328  283 00ae 0E94 0000             call _nrk_get_next_wakeup 
    329  284 00b2 0E5F                  subi r16,lo8(-(2)) 
    330  285 00b4 1F4F                  sbci r17,hi8(-(2)) 
    331  286 00b6 9927                  clr r25 
    332  287 00b8 8017                  cp r24,r16 
    333  288 00ba 9107                  cpc r25,r17 
    334  289 00bc 04F0                  brlt .L13 
    335  189:../../../src/kernel/source/nrk_events.c ****               { 
    336  190:../../../src/kernel/source/nrk_events.c ****                       timer+=TIME_PAD; 
    337  291                    .LM19: 
    338  292 00be 8F2D                  mov r24,r15 
    339  293 00c0 8E5F                  subi r24,lo8(-(2)) 
    340  191:../../../src/kernel/source/nrk_events.c ****                       _nrk_prev_timer_val=timer; 
    341  295                    .LM20: 
    342  296 00c2 8093 0000             sts _nrk_prev_timer_val,r24 
    343  192:../../../src/kernel/source/nrk_events.c ****                       _nrk_set_next_wakeup(timer); 
    344  298                    .LM21: 
    345  299 00c6 0E94 0000             call _nrk_set_next_wakeup 
    346  300                    .L13: 
    347  193:../../../src/kernel/source/nrk_events.c ****               } 
    348  194:../../../src/kernel/source/nrk_events.c ****       nrk_cur_task_TCB->nw_flag=1; 
    349  302                    .LM22: 
    350  303 00ca E091 0000             lds r30,nrk_cur_task_TCB 
    351  304 00ce F091 0000             lds r31,(nrk_cur_task_TCB)+1 
    352  305 00d2 81E0                  ldi r24,lo8(1) 
    353  306 00d4 8683                  std Z+6,r24 
    354  195:../../../src/kernel/source/nrk_events.c ****       nrk_int_enable (); 
    355  308                    .LM23: 
    356  309 00d6 0E94 0000             call nrk_int_enable 
    357  196:../../../src/kernel/source/nrk_events.c ****  
    358  197:../../../src/kernel/source/nrk_events.c ****       return NRK_OK; 
    359  198:../../../src/kernel/source/nrk_events.c **** } 
    360  311                    .LM24: 
    361  312 00da 81E0                  ldi r24,lo8(1) 
    362  313 00dc 90E0                  ldi r25,hi8(1) 
    363  314                    /* epilogue: frame size=8 */ 
    364  315 00de 2896                  adiw r28,8 
    365  316 00e0 0FB6                  in __tmp_reg__,__SREG__ 
    366  317 00e2 F894                  cli 
    367  318 00e4 DEBF                  out __SP_H__,r29 
    368  319 00e6 0FBE                  out __SREG__,__tmp_reg__ 
    369  320 00e8 CDBF                  out __SP_L__,r28 
    370  321 00ea DF91                  pop r29 
    371  322 00ec CF91                  pop r28 
    372  323 00ee 1F91                  pop r17 
    373  324 00f0 0F91                  pop r16 
    374  325 00f2 FF90                  pop r15 
    375  326 00f4 0895                  ret 
    376  327                    /* epilogue end (size=12) */ 
    377  328                    /* function nrk_set_task_timeout size 85 (60) */ 
    378  333                    .Lscope2: 
    379  335                            .stabd  78,0,0 
    380  338                    .global _nrk_signal_event 
    381  340                    _nrk_signal_event: 
    382  341                            .stabd  46,0,0 
    383  343                    .LM25: 
    384  344                    /* prologue: frame size=0 */ 
    385  345 00f6 DF92                  push r13 
    386  346 00f8 EF92                  push r14 
    387  347 00fa FF92                  push r15 
    388  348 00fc 0F93                  push r16 
    389  349 00fe 1F93                  push r17 
    390  350                    /* prologue end (size=5) */ 
    391  351 0100 7B01                  movw r14,r22 
    392  352 0102 8C01                  movw r16,r24 
    393  354                    .LM26: 
    394  355 0104 0E94 0000             call nrk_int_disable 
    395  356 0108 E0E0                  ldi r30,lo8(nrk_task_TCB) 
    396  357 010a F0E0                  ldi r31,hi8(nrk_task_TCB) 
    397  358 010c DD24                  clr r13 
    398  359 010e 23E0                  ldi r18,lo8(3) 
    399  360                    .L18: 
    400  362                    .LM27: 
    401  363 0110 8185                  ldd r24,Z+9 
    402  364 0112 8530                  cpi r24,lo8(5) 
    403  365 0114 01F4                  brne .L19 
    404  367                    .LM28: 
    405  368 0116 8781                  ldd r24,Z+7 
    406  369 0118 8130                  cpi r24,lo8(1) 
    407  370 011a 01F4                  brne .L21 
    408  372                    .LM29: 
    409  373 011c 8585                  ldd r24,Z+13 
    410  374 011e 9685                  ldd r25,Z+14 
    411  375 0120 A785                  ldd r26,Z+15 
    412  376 0122 B089                  ldd r27,Z+16 
    413  377 0124 8E21                  and r24,r14 
    414  378 0126 9F21                  and r25,r15 
    415  379 0128 A023                  and r26,r16 
    416  380 012a B123                  and r27,r17 
    417  381 012c 0097                  sbiw r24,0 
    418  382 012e A105                  cpc r26,__zero_reg__ 
    419  383 0130 B105                  cpc r27,__zero_reg__ 
    420  384 0132 01F0                  breq .L19 
    421  386                    .LM30: 
    422  387 0134 2187                  std Z+9,r18 
    423  389                    .LM31: 
    424  390 0136 128A                  std Z+18,__zero_reg__ 
    425  391 0138 118A                  std Z+17,__zero_reg__ 
    426  393                    .LM32: 
    427  394 013a 1782                  std Z+7,__zero_reg__ 
    428  396                    .LM33: 
    429  397 013c E586                  std Z+13,r14 
    430  398 013e F686                  std Z+14,r15 
    431  399 0140 0787                  std Z+15,r16 
    432  400 0142 108B                  std Z+16,r17 
    433  401 0144 91E0                  ldi r25,lo8(1) 
    434  402 0146 D92E                  mov r13,r25 
    435  403                    .L21: 
    436  405                    .LM34: 
    437  406 0148 8781                  ldd r24,Z+7 
    438  407 014a 8230                  cpi r24,lo8(2) 
    439  408 014c 01F4                  brne .L19 
    440  410                    .LM35: 
    441  411 014e 8585                  ldd r24,Z+13 
    442  412 0150 9685                  ldd r25,Z+14 
    443  413 0152 A785                  ldd r26,Z+15 
    444  414 0154 B089                  ldd r27,Z+16 
    445  415 0156 8E15                  cp r24,r14 
    446  416 0158 9F05                  cpc r25,r15 
    447  417 015a A007                  cpc r26,r16 
    448  418 015c B107                  cpc r27,r17 
    449  419 015e 01F4                  brne .L19 
    450  421                    .LM36: 
    451  422 0160 2187                  std Z+9,r18 
    452  424                    .LM37: 
    453  425 0162 128A                  std Z+18,__zero_reg__ 
    454  426 0164 118A                  std Z+17,__zero_reg__ 
    455  428                    .LM38: 
    456  429 0166 1782                  std Z+7,__zero_reg__ 
    457  431                    .LM39: 
    458  432 0168 E586                  std Z+13,r14 
    459  433 016a F686                  std Z+14,r15 
    460  434 016c 0787                  std Z+15,r16 
    461  435 016e 108B                  std Z+16,r17 
    462  436 0170 81E0                  ldi r24,lo8(1) 
    463  437 0172 D82E                  mov r13,r24 
    464  438                    .L19: 
    465  439 0174 7B96                  adiw r30,27 
    466  441                    .LM40: 
    467  442 0176 80E0                  ldi r24,hi8(nrk_task_TCB+108) 
    468  443 0178 E030                  cpi r30,lo8(nrk_task_TCB+108) 
    469  444 017a F807                  cpc r31,r24 
    470  445 017c 01F4                  brne .L18 
    471  447                    .LM41: 
    472  448 017e 0E94 0000             call nrk_int_enable 
    473  450                    .LM42: 
    474  451 0182 DD20                  tst r13 
    475  452 0184 01F0                  breq .L27 
    476  453 0186 61E0                  ldi r22,lo8(1) 
    477  454 0188 70E0                  ldi r23,hi8(1) 
    478  455 018a 80E0                  ldi r24,hlo8(1) 
    479  456 018c 90E0                  ldi r25,hhi8(1) 
    480  457 018e 00C0                  rjmp .L29 
    481  458                    .L27: 
    482  459 0190 62E0                  ldi r22,lo8(2) 
    483  460 0192 70E0                  ldi r23,hi8(2) 
    484  461 0194 80E0                  ldi r24,hlo8(2) 
    485  462 0196 90E0                  ldi r25,hhi8(2) 
    486  463                    .L29: 
    487  464                    /* epilogue: frame size=0 */ 
    488  465 0198 1F91                  pop r17 
    489  466 019a 0F91                  pop r16 
    490  467 019c FF90                  pop r15 
    491  468 019e EF90                  pop r14 
    492  469 01a0 DF90                  pop r13 
    493  470 01a2 0895                  ret 
    494  471                    /* epilogue end (size=6) */ 
    495  472                    /* function _nrk_signal_event size 87 (76) */ 
    496  477                    .Lscope3: 
    497  479                            .stabd  78,0,0 
    498  482                    .global nrk_semph_post 
    499  484                    nrk_semph_post: 
    500  485                            .stabd  46,0,0 
    501  487                    .LM43: 
    502  488                    /* prologue: frame size=0 */ 
    503  489 01a4 CF93                  push r28 
    504  490 01a6 DF93                  push r29 
    505  491                    /* prologue end (size=2) */ 
    506  492 01a8 EC01                  movw r28,r24 
    507  494                    .LM44: 
    508  495 01aa 0E94 0000             call nrk_get_resource_id 
    509  496 01ae 682F                  mov r22,r24 
    510  498                    .LM45: 
    511  499 01b0 8F3F                  cpi r24,lo8(-1) 
    512  500 01b2 01F0                  breq .L34 
    513  502                    .LM46: 
    514  503 01b4 E82F                  mov r30,r24 
    515  504 01b6 FF27                  clr r31 
    516  505 01b8 E050                  subi r30,lo8(-(nrk_resource_list_rsv_cnt)) 
    517  506 01ba F040                  sbci r31,hi8(-(nrk_resource_list_rsv_cnt)) 
    518  507 01bc 9881                  ld r25,Y 
    519  508 01be 8081                  ld r24,Z 
    520  509 01c0 9817                  cp r25,r24 
    521  510 01c2 00F4                  brsh .L34 
    522  512                    .LM47: 
    523  513 01c4 E091 0000             lds r30,nrk_cur_task_TCB 
    524  514 01c8 F091 0000             lds r31,(nrk_cur_task_TCB)+1 
    525  515 01cc 1482                  std Z+4,__zero_reg__ 
    526  517                    .LM48: 
    527  518 01ce 7727                  clr r23 
    528  519 01d0 8827                  clr r24 
    529  520 01d2 9927                  clr r25 
    530  521 01d4 0E94 0000             call _nrk_signal_event 
    531  522 01d8 862F                  mov r24,r22 
    532  523 01da 9927                  clr r25 
    533  524 01dc 87FD                  sbrc r24,7 
    534  525 01de 9095                  com r25 
    535  526 01e0 00C0                  rjmp .L37 
    536  527                    .L34: 
    537  528 01e2 8FEF                  ldi r24,lo8(-1) 
    538  529 01e4 9FEF                  ldi r25,hi8(-1) 
    539  530                    .L37: 
    540  531                    /* epilogue: frame size=0 */ 
    541  532 01e6 DF91                  pop r29 
    542  533 01e8 CF91                  pop r28 
    543  534 01ea 0895                  ret 
    544  535                    /* epilogue end (size=3) */ 
    545  536                    /* function nrk_semph_post size 36 (31) */ 
    546  541                    .Lscope4: 
    547  543                            .stabd  78,0,0 
    548  546                    .global nrk_event_signal 
    549  548                    nrk_event_signal: 
    550  549                            .stabd  46,0,0 
    551  551                    .LM49: 
    552  552                    /* prologue: frame size=0 */ 
    553  553                    /* prologue end (size=0) */ 
    554  555                    .LM50: 
    555  556 01ec 0E94 0000             call _nrk_signal_event 
    556  557                    /* epilogue: frame size=0 */ 
    557  558 01f0 0895                  ret 
    558  559                    /* epilogue end (size=1) */ 
    559  560                    /* function nrk_event_signal size 3 (2) */ 
    560  562                    .Lscope5: 
    561  564                            .stabd  78,0,0 
    562  567                    .global _nrk_wait_for_event 
    563  569                    _nrk_wait_for_event: 
    564  570                            .stabd  46,0,0 
    565  572                    .LM51: 
    566  573                    /* prologue: frame size=0 */ 
    567  574 01f2 EF92                  push r14 
    568  575 01f4 FF92                  push r15 
    569  576 01f6 0F93                  push r16 
    570  577 01f8 1F93                  push r17 
    571  578                    /* prologue end (size=4) */ 
    572  579 01fa 7B01                  movw r14,r22 
    573  580 01fc 8C01                  movw r16,r24 
    574  582                    .LM52: 
    575  583 01fe 0E94 0000             call nrk_int_disable 
    576  585                    .LM53: 
    577  586 0202 17FF                  sbrs r17,7 
    578  587 0204 00C0                  rjmp .L42 
    579  589                    .LM54: 
    580  590 0206 E091 0000             lds r30,nrk_cur_task_TCB 
    581  591 020a F091 0000             lds r31,(nrk_cur_task_TCB)+1 
    582  592 020e 81E0                  ldi r24,lo8(1) 
    583  593 0210 8683                  std Z+6,r24 
    584  594                    .L42: 
    585  596                    .LM55: 
    586  597 0212 E091 0000             lds r30,nrk_cur_task_TCB 
    587  598 0216 F091 0000             lds r31,(nrk_cur_task_TCB)+1 
    588  599 021a E586                  std Z+13,r14 
    589  600 021c F686                  std Z+14,r15 
    590  601 021e 0787                  std Z+15,r16 
    591  602 0220 108B                  std Z+16,r17 
    592  604                    .LM56: 
    593  605 0222 0E94 0000             call nrk_int_enable 
    594  607                    .LM57: 
    595  608 0226 80E0                  ldi r24,lo8(0) 
    596  609 0228 90E0                  ldi r25,hi8(0) 
    597  610 022a 0E94 0000             call nrk_wait_until_ticks 
    598  611 022e E091 0000             lds r30,nrk_cur_task_TCB 
    599  612 0232 F091 0000             lds r31,(nrk_cur_task_TCB)+1 
    600  613 0236 6585                  ldd r22,Z+13 
    601  614 0238 7685                  ldd r23,Z+14 
    602  615 023a 8785                  ldd r24,Z+15 
    603  616 023c 9089                  ldd r25,Z+16 
    604  617                    /* epilogue: frame size=0 */ 
    605  618 023e 1F91                  pop r17 
    606  619 0240 0F91                  pop r16 
    607  620 0242 FF90                  pop r15 
    608  621 0244 EF90                  pop r14 
    609  622 0246 0895                  ret 
    610  623                    /* epilogue end (size=5) */ 
    611  624                    /* function _nrk_wait_for_event size 43 (34) */ 
    612  626                    .Lscope6: 
    613  628                            .stabd  78,0,0 
    614  631                    .global nrk_event_wait 
    615  633                    nrk_event_wait: 
    616  634                            .stabd  46,0,0 
    617  636                    .LM58: 
    618  637                    /* prologue: frame size=0 */ 
    619  638                    /* prologue end (size=0) */ 
    620  640                    .LM59: 
    621  641 0248 E091 0000             lds r30,nrk_cur_task_TCB 
    622  642 024c F091 0000             lds r31,(nrk_cur_task_TCB)+1 
    623  643 0250 21E0                  ldi r18,lo8(1) 
    624  644 0252 2783                  std Z+7,r18 
    625  646                    .LM60: 
    626  647 0254 0E94 0000             call _nrk_wait_for_event 
    627  648                    /* epilogue: frame size=0 */ 
    628  649 0258 0895                  ret 
    629  650                    /* epilogue end (size=1) */ 
    630  651                    /* function nrk_event_wait size 9 (8) */ 
    631  653                    .Lscope7: 
    632  655                            .stabd  78,0,0 
    633  658                    .global nrk_semph_pend 
    634  660                    nrk_semph_pend: 
    635  661                            .stabd  46,0,0 
    636  663                    .LM61: 
    637  664                    /* prologue: frame size=0 */ 
    638  665 025a CF93                  push r28 
    639  666 025c DF93                  push r29 
    640  667                    /* prologue end (size=2) */ 
    641  668 025e EC01                  movw r28,r24 
    642  670                    .LM62: 
    643  671 0260 0E94 0000             call nrk_get_resource_id 
    644  672 0264 682F                  mov r22,r24 
    645  674                    .LM63: 
    646  675 0266 8F3F                  cpi r24,lo8(-1) 
    647  676 0268 01F4                  brne .L48 
    648  678                    .LM64: 
    649  679 026a 8FEF                  ldi r24,lo8(-1) 
    650  680 026c 9FEF                  ldi r25,hi8(-1) 
    651  681 026e 00C0                  rjmp .L50 
    652  682                    .L48: 
    653  684                    .LM65: 
    654  685 0270 8881                  ld r24,Y 
    655  686 0272 8823                  tst r24 
    656  687 0274 01F4                  brne .L51 
    657  689                    .LM66: 
    658  690 0276 E091 0000             lds r30,nrk_cur_task_TCB 
    659  691 027a F091 0000             lds r31,(nrk_cur_task_TCB)+1 
    660  692 027e 82E0                  ldi r24,lo8(2) 
    661  693 0280 8783                  std Z+7,r24 
    662  695                    .LM67: 
    663  696 0282 7727                  clr r23 
    664  697 0284 8827                  clr r24 
    665  698 0286 9927                  clr r25 
    666  699 0288 0E94 0000             call _nrk_wait_for_event 
    667  700 028c 862F                  mov r24,r22 
    668  701 028e 9927                  clr r25 
    669  702 0290 87FD                  sbrc r24,7 
    670  703 0292 9095                  com r25 
    671  704 0294 00C0                  rjmp .L50 
    672  705                    .L51: 
    673  707                    .LM68: 
    674  708 0296 8150                  subi r24,lo8(-(-1)) 
    675  709 0298 8883                  st Y,r24 
    676  711                    .LM69: 
    677  712 029a A091 0000             lds r26,nrk_cur_task_TCB 
    678  713 029e B091 0000             lds r27,(nrk_cur_task_TCB)+1 
    679  714 02a2 E62F                  mov r30,r22 
    680  715 02a4 FF27                  clr r31 
    681  716 02a6 E050                  subi r30,lo8(-(nrk_resource_prio_list)) 
    682  717 02a8 F040                  sbci r31,hi8(-(nrk_resource_prio_list)) 
    683  718 02aa 8081                  ld r24,Z 
    684  719 02ac FD01                  movw r30,r26 
    685  720 02ae 8387                  std Z+11,r24 
    686  722                    .LM70: 
    687  723 02b0 E091 0000             lds r30,nrk_cur_task_TCB 
    688  724 02b4 F091 0000             lds r31,(nrk_cur_task_TCB)+1 
    689  725 02b8 81E0                  ldi r24,lo8(1) 
    690  726 02ba 8483                  std Z+4,r24 
    691  727 02bc 81E0                  ldi r24,lo8(1) 
    692  728 02be 90E0                  ldi r25,hi8(1) 
    693  729                    .L50: 
    694  730                    /* epilogue: frame size=0 */ 
    695  731 02c0 DF91                  pop r29 
    696  732 02c2 CF91                  pop r28 
    697  733 02c4 0895                  ret 
    698  734                    /* epilogue end (size=3) */ 
    699  735                    /* function nrk_semph_pend size 54 (49) */ 
    700  740                    .Lscope8: 
    701  742                            .stabd  78,0,0 
    702  743                            .comm nrk_idle_task_stk,512,1 
    703  744                            .comm nrk_kernel_stk_ptr,2,1 
    704  745                            .comm nrk_task_TCB,108,1 
    705  746                            .comm _nrk_readyQ,20,1 
    706  747                            .comm _free_node,2,1 
    707  748                            .comm _head_node,2,1 
    708  749                            .comm nrk_cur_task_prio,1,1 
    709  750                            .comm nrk_cur_task_TCB,2,1 
    710  751                            .comm nrk_high_ready_prio,1,1 
    711  752                            .comm nrk_high_ready_TCB,2,1 
    712  753                            .comm _nrk_resource_cnt,1,1 
    713  754                            .comm nrk_resource_list,1,1 
    714  755                            .comm nrk_resource_prio_list,1,1 
    715  756                            .comm nrk_system_time,8,1 
    716  757                            .comm error_task,1,1 
    717  758                            .comm error_num,1,1 
    718  759                            .comm next_next_wakeup,2,1 
    719  760                            .comm _nrk_prev_timer_val,1,1 
    720  761                            .comm _nrk_time_trigger,1,1 
    721  762                            .comm nrk_resource_list_rsv_cnt,1,1 
    722  784                    .Letext0: 
    723  785                    /* File "../../../src/kernel/source/nrk_events.c": code  356 = 0x0164 ( 299), prologues  26, epilog 
     10  17                    .Ltext0: 
     11  18                    .global nrk_create_semph 
     12  20                    nrk_create_semph: 
     13  21                    .LFB8: 
     14  22                    .LM1: 
     15  23                    /* prologue: frame size=0 */ 
     16  24                    /* prologue end (size=0) */ 
     17  25                    .LVL0: 
     18  26 0000 282F                  mov r18,r24 
     19  27                    .LM2: 
     20  28 0002 E091 0000             lds r30,_nrk_resource_cnt 
     21  29 0006 EE23                  tst r30 
     22  30 0008 01F4                  brne .L2 
     23  31                    .LVL1: 
     24  32                    .LM3: 
     25  33 000a 80E0                  ldi r24,lo8(0) 
     26  34 000c 90E0                  ldi r25,hi8(0) 
     27  35 000e 0895                  ret 
     28  36                    .LVL2: 
     29  37                    .L2: 
     30  38                    .LM4: 
     31  39 0010 E150                  subi r30,lo8(-(-1)) 
     32  40 0012 E093 0000             sts _nrk_resource_cnt,r30 
     33  41                    .LM5: 
     34  42 0016 FF27                  clr r31 
     35  43 0018 CF01                  movw r24,r30 
     36  44 001a 8050                  subi r24,lo8(-(nrk_resource_list)) 
     37  45 001c 9040                  sbci r25,hi8(-(nrk_resource_list)) 
     38  46 001e DC01                  movw r26,r24 
     39  47 0020 4C93                  st X,r20 
     40  48                    .LM6: 
     41  49 0022 DF01                  movw r26,r30 
     42  50 0024 A050                  subi r26,lo8(-(nrk_resource_list_rsv_cnt)) 
     43  51 0026 B040                  sbci r27,hi8(-(nrk_resource_list_rsv_cnt)) 
     44  52 0028 2C93                  st X,r18 
     45  53                    .LM7: 
     46  54 002a E050                  subi r30,lo8(-(nrk_resource_prio_list)) 
     47  55 002c F040                  sbci r31,hi8(-(nrk_resource_prio_list)) 
     48  56 002e 6083                  st Z,r22 
     49  57                    .LM8: 
     50  58 0030 0895                  ret 
     51  59                    /* epilogue: frame size=0 */ 
     52  60                    /* epilogue: noreturn */ 
     53  61                    /* epilogue end (size=0) */ 
     54  62                    /* function nrk_create_semph size 25 (25) */ 
     55  63                    .LFE8: 
     56  65                    .global nrk_get_resource_id 
     57  67                    nrk_get_resource_id: 
     58  68                    .LFB9: 
     59  69                    .LM9: 
     60  70                    /* prologue: frame size=0 */ 
     61  71                    /* prologue end (size=0) */ 
     62  72                    .LVL3: 
     63  73 0032 FC01                  movw r30,r24 
     64  74                    .LM10: 
     65  75 0034 8081                  ld r24,Z 
     66  76                    .LVL4: 
     67  77 0036 8F3F                  cpi r24,lo8(-1) 
     68  78 0038 01F0                  breq .L7 
     69  79                    .LM11: 
     70  80 003a E050                  subi r30,lo8(nrk_resource_list) 
     71  81 003c F040                  sbci r31,hi8(nrk_resource_list) 
     72  82 003e 01F4                  brne .L7 
     73  83 0040 80E0                  ldi r24,lo8(0) 
     74  84 0042 90E0                  ldi r25,hi8(0) 
     75  85 0044 0895                  ret 
     76  86                    .L7: 
     77  87 0046 8FEF                  ldi r24,lo8(255) 
     78  88 0048 90E0                  ldi r25,hi8(255) 
     79  89                    .LM12: 
     80  90 004a 0895                  ret 
     81  91                    /* epilogue: frame size=0 */ 
     82  92                    /* epilogue: noreturn */ 
     83  93                    /* epilogue end (size=0) */ 
     84  94                    /* function nrk_get_resource_id size 14 (14) */ 
     85  95                    .LFE9: 
     86  97                    .global nrk_set_task_timeout 
     87  99                    nrk_set_task_timeout: 
     88 100                    .LFB10: 
     89 101                    .LM13: 
     90 102                    /* prologue: frame size=8 */ 
     91 103 004c FF92                  push r15 
     92 104 004e 0F93                  push r16 
     93 105 0050 1F93                  push r17 
     94 106 0052 CF93                  push r28 
     95 107 0054 DF93                  push r29 
     96 108 0056 CDB7                  in r28,__SP_L__ 
     97 109 0058 DEB7                  in r29,__SP_H__ 
     98 110 005a 2897                  sbiw r28,8 
     99 111 005c 0FB6                  in __tmp_reg__,__SREG__ 
     100 112 005e F894                  cli 
     101 113 0060 DEBF                  out __SP_H__,r29 
     102 114 0062 0FBE                  out __SREG__,__tmp_reg__ 
     103 115 0064 CDBF                  out __SP_L__,r28 
     104 116                    /* prologue end (size=13) */ 
     105 117 0066 2983                  std Y+1,r18 
     106 118 0068 3A83                  std Y+2,r19 
     107 119 006a 4B83                  std Y+3,r20 
     108 120 006c 5C83                  std Y+4,r21 
     109 121 006e 6D83                  std Y+5,r22 
     110 122 0070 7E83                  std Y+6,r23 
     111 123 0072 8F83                  std Y+7,r24 
     112 124 0074 9887                  std Y+8,r25 
     113 125                    .LM14: 
     114 126 0076 0E94 0000             call nrk_int_disable 
     115 127                    .LM15: 
     116 128 007a 0E94 0000             call _nrk_get_raw_timer 
     117 129 007e F82E                  mov r15,r24 
     118 130                    .LVL5: 
     119 131                    .LM16: 
     120 132 0080 2981                  ldd r18,Y+1 
     121 133 0082 3A81                  ldd r19,Y+2 
     122 134 0084 4B81                  ldd r20,Y+3 
     123 135 0086 5C81                  ldd r21,Y+4 
     124 136 0088 6D81                  ldd r22,Y+5 
     125 137 008a 7E81                  ldd r23,Y+6 
     126 138 008c 8F81                  ldd r24,Y+7 
     127 139 008e 9885                  ldd r25,Y+8 
     128 140 0090 0E94 0000             call _nrk_time_to_ticks 
     129 141                    .LM17: 
     130 142 0094 E091 0000             lds r30,nrk_cur_task_TCB 
     131 143 0098 F091 0000             lds r31,(nrk_cur_task_TCB)+1 
     132 144 009c 0F2D                  mov r16,r15 
     133 145 009e 1127                  clr r17 
     134 146 00a0 800F                  add r24,r16 
     135 147 00a2 911F                  adc r25,r17 
     136 148 00a4 928B                  std Z+18,r25 
     137 149 00a6 818B                  std Z+17,r24 
     138 150                    .LM18: 
     139 151 00a8 8BEF                  ldi r24,lo8(-5) 
     140 152 00aa 8F15                  cp r24,r15 
     141 153 00ac 00F0                  brlo .L13 
     142 154                    .LM19: 
     143 155 00ae 0E94 0000             call _nrk_get_next_wakeup 
     144 156 00b2 0E5F                  subi r16,lo8(-(2)) 
     145 157 00b4 1F4F                  sbci r17,hi8(-(2)) 
     146 158 00b6 9927                  clr r25 
     147 159 00b8 8017                  cp r24,r16 
     148 160 00ba 9107                  cpc r25,r17 
     149 161 00bc 04F0                  brlt .L13 
     150 162                    .LVL6: 
     151 163                    .LM20: 
     152 164 00be 8F2D                  mov r24,r15 
     153 165                    .LVL7: 
     154 166 00c0 8E5F                  subi r24,lo8(-(2)) 
     155 167                    .LM21: 
     156 168 00c2 8093 0000             sts _nrk_prev_timer_val,r24 
     157 169                    .LM22: 
     158 170 00c6 0E94 0000             call _nrk_set_next_wakeup 
     159 171                    .LVL8: 
     160 172                    .L13: 
     161 173                    .LM23: 
     162 174 00ca E091 0000             lds r30,nrk_cur_task_TCB 
     163 175 00ce F091 0000             lds r31,(nrk_cur_task_TCB)+1 
     164 176 00d2 81E0                  ldi r24,lo8(1) 
     165 177 00d4 8683                  std Z+6,r24 
     166 178                    .LM24: 
     167 179 00d6 0E94 0000             call nrk_int_enable 
     168 180                    .LM25: 
     169 181 00da 81E0                  ldi r24,lo8(1) 
     170 182 00dc 90E0                  ldi r25,hi8(1) 
     171 183                    /* epilogue: frame size=8 */ 
     172 184 00de 2896                  adiw r28,8 
     173 185 00e0 0FB6                  in __tmp_reg__,__SREG__ 
     174 186 00e2 F894                  cli 
     175 187 00e4 DEBF                  out __SP_H__,r29 
     176 188 00e6 0FBE                  out __SREG__,__tmp_reg__ 
     177 189 00e8 CDBF                  out __SP_L__,r28 
     178 190 00ea DF91                  pop r29 
     179 191 00ec CF91                  pop r28 
     180 192 00ee 1F91                  pop r17 
     181 193 00f0 0F91                  pop r16 
     182 194 00f2 FF90                  pop r15 
     183 195 00f4 0895                  ret 
     184 196                    /* epilogue end (size=12) */ 
     185 197                    /* function nrk_set_task_timeout size 85 (60) */ 
     186 198                    .LFE10: 
     187 200                    .global _nrk_signal_event 
     188 202                    _nrk_signal_event: 
     189 203                    .LFB6: 
     190 204                    .LM26: 
     191 205                    /* prologue: frame size=0 */ 
     192 206 00f6 DF92                  push r13 
     193 207 00f8 EF92                  push r14 
     194 208 00fa FF92                  push r15 
     195 209 00fc 0F93                  push r16 
     196 210 00fe 1F93                  push r17 
     197 211                    /* prologue end (size=5) */ 
     198 212                    .LVL9: 
     199 213 0100 7B01                  movw r14,r22 
     200 214 0102 8C01                  movw r16,r24 
     201 215                    .LM27: 
     202 216 0104 0E94 0000             call nrk_int_disable 
     203 217                    .LVL10: 
     204 218 0108 E0E0                  ldi r30,lo8(nrk_task_TCB) 
     205 219 010a F0E0                  ldi r31,hi8(nrk_task_TCB) 
     206 220 010c DD24                  clr r13 
     207 221                    .LVL11: 
     208 222 010e 23E0                  ldi r18,lo8(3) 
     209 223                    .L18: 
     210 224                    .LM28: 
     211 225 0110 8185                  ldd r24,Z+9 
     212 226 0112 8530                  cpi r24,lo8(5) 
     213 227 0114 01F4                  brne .L19 
     214 228                    .LM29: 
     215 229 0116 8781                  ldd r24,Z+7 
     216 230 0118 8130                  cpi r24,lo8(1) 
     217 231 011a 01F4                  brne .L21 
     218 232                    .LM30: 
     219 233 011c 8585                  ldd r24,Z+13 
     220 234 011e 9685                  ldd r25,Z+14 
     221 235 0120 A785                  ldd r26,Z+15 
     222 236 0122 B089                  ldd r27,Z+16 
     223 237 0124 8E21                  and r24,r14 
     224 238 0126 9F21                  and r25,r15 
     225 239 0128 A023                  and r26,r16 
     226 240 012a B123                  and r27,r17 
     227 241 012c 0097                  sbiw r24,0 
     228 242 012e A105                  cpc r26,__zero_reg__ 
     229 243 0130 B105                  cpc r27,__zero_reg__ 
     230 244 0132 01F0                  breq .L19 
     231 245                    .LM31: 
     232 246 0134 2187                  std Z+9,r18 
     233 247                    .LM32: 
     234 248 0136 128A                  std Z+18,__zero_reg__ 
     235 249 0138 118A                  std Z+17,__zero_reg__ 
     236 250                    .LM33: 
     237 251 013a 1782                  std Z+7,__zero_reg__ 
     238 252                    .LM34: 
     239 253 013c E586                  std Z+13,r14 
     240 254 013e F686                  std Z+14,r15 
     241 255 0140 0787                  std Z+15,r16 
     242 256 0142 108B                  std Z+16,r17 
     243 257 0144 91E0                  ldi r25,lo8(1) 
     244 258 0146 D92E                  mov r13,r25 
     245 259                    .L21: 
     246 260                    .LM35: 
     247 261 0148 8781                  ldd r24,Z+7 
     248 262 014a 8230                  cpi r24,lo8(2) 
     249 263 014c 01F4                  brne .L19 
     250 264                    .LM36: 
     251 265 014e 8585                  ldd r24,Z+13 
     252 266 0150 9685                  ldd r25,Z+14 
     253 267 0152 A785                  ldd r26,Z+15 
     254 268 0154 B089                  ldd r27,Z+16 
     255 269 0156 8E15                  cp r24,r14 
     256 270 0158 9F05                  cpc r25,r15 
     257 271 015a A007                  cpc r26,r16 
     258 272 015c B107                  cpc r27,r17 
     259 273 015e 01F4                  brne .L19 
     260 274                    .LM37: 
     261 275 0160 2187                  std Z+9,r18 
     262 276                    .LM38: 
     263 277 0162 128A                  std Z+18,__zero_reg__ 
     264 278 0164 118A                  std Z+17,__zero_reg__ 
     265 279                    .LM39: 
     266 280 0166 1782                  std Z+7,__zero_reg__ 
     267 281                    .LM40: 
     268 282 0168 E586                  std Z+13,r14 
     269 283 016a F686                  std Z+14,r15 
     270 284 016c 0787                  std Z+15,r16 
     271 285 016e 108B                  std Z+16,r17 
     272 286 0170 81E0                  ldi r24,lo8(1) 
     273 287 0172 D82E                  mov r13,r24 
     274 288                    .L19: 
     275 289 0174 7B96                  adiw r30,27 
     276 290                    .LM41: 
     277 291 0176 80E0                  ldi r24,hi8(nrk_task_TCB+135) 
     278 292 0178 E030                  cpi r30,lo8(nrk_task_TCB+135) 
     279 293 017a F807                  cpc r31,r24 
     280 294 017c 01F4                  brne .L18 
     281 295                    .LM42: 
     282 296 017e 0E94 0000             call nrk_int_enable 
     283 297                    .LM43: 
     284 298 0182 DD20                  tst r13 
     285 299 0184 01F0                  breq .L27 
     286 300 0186 61E0                  ldi r22,lo8(1) 
     287 301 0188 70E0                  ldi r23,hi8(1) 
     288 302 018a 80E0                  ldi r24,hlo8(1) 
     289 303 018c 90E0                  ldi r25,hhi8(1) 
     290 304 018e 00C0                  rjmp .L29 
     291 305                    .L27: 
     292 306 0190 62E0                  ldi r22,lo8(2) 
     293 307 0192 70E0                  ldi r23,hi8(2) 
     294 308 0194 80E0                  ldi r24,hlo8(2) 
     295 309 0196 90E0                  ldi r25,hhi8(2) 
     296 310                    .L29: 
     297 311                    /* epilogue: frame size=0 */ 
     298 312 0198 1F91                  pop r17 
     299 313 019a 0F91                  pop r16 
     300 314 019c FF90                  pop r15 
     301 315 019e EF90                  pop r14 
     302 316 01a0 DF90                  pop r13 
     303 317 01a2 0895                  ret 
     304 318                    /* epilogue end (size=6) */ 
     305 319                    /* function _nrk_signal_event size 87 (76) */ 
     306 320                    .LFE6: 
     307 322                    .global nrk_semph_post 
     308 324                    nrk_semph_post: 
     309 325                    .LFB7: 
     310 326                    .LM44: 
     311 327                    /* prologue: frame size=0 */ 
     312 328 01a4 CF93                  push r28 
     313 329 01a6 DF93                  push r29 
     314 330                    /* prologue end (size=2) */ 
     315 331                    .LVL12: 
     316 332 01a8 EC01                  movw r28,r24 
     317 333                    .LM45: 
     318 334 01aa 0E94 0000             call nrk_get_resource_id 
     319 335                    .LVL13: 
     320 336 01ae 682F                  mov r22,r24 
     321 337                    .LVL14: 
     322 338                    .LM46: 
     323 339 01b0 8F3F                  cpi r24,lo8(-1) 
     324 340 01b2 01F0                  breq .L34 
     325 341                    .LVL15: 
     326 342                    .LM47: 
     327 343 01b4 E82F                  mov r30,r24 
     328 344 01b6 FF27                  clr r31 
     329 345 01b8 E050                  subi r30,lo8(-(nrk_resource_list_rsv_cnt)) 
     330 346 01ba F040                  sbci r31,hi8(-(nrk_resource_list_rsv_cnt)) 
     331 347 01bc 9881                  ld r25,Y 
     332 348 01be 8081                  ld r24,Z 
     333 349                    .LVL16: 
     334 350 01c0 9817                  cp r25,r24 
     335 351 01c2 00F4                  brsh .L34 
     336 352                    .LM48: 
     337 353 01c4 E091 0000             lds r30,nrk_cur_task_TCB 
     338 354 01c8 F091 0000             lds r31,(nrk_cur_task_TCB)+1 
     339 355                    .LVL17: 
     340 356 01cc 1482                  std Z+4,__zero_reg__ 
     341 357                    .LM49: 
     342 358 01ce 7727                  clr r23 
     343 359 01d0 8827                  clr r24 
     344 360 01d2 9927                  clr r25 
     345 361 01d4 0E94 0000             call _nrk_signal_event 
     346 362                    .LVL18: 
     347 363 01d8 862F                  mov r24,r22 
     348 364 01da 9927                  clr r25 
     349 365 01dc 87FD                  sbrc r24,7 
     350 366 01de 9095                  com r25 
     351 367 01e0 00C0                  rjmp .L37 
     352 368                    .LVL19: 
     353 369                    .L34: 
     354 370 01e2 8FEF                  ldi r24,lo8(-1) 
     355 371 01e4 9FEF                  ldi r25,hi8(-1) 
     356 372                    .L37: 
     357 373                    /* epilogue: frame size=0 */ 
     358 374 01e6 DF91                  pop r29 
     359 375 01e8 CF91                  pop r28 
     360 376 01ea 0895                  ret 
     361 377                    /* epilogue end (size=3) */ 
     362 378                    /* function nrk_semph_post size 36 (31) */ 
     363 379                    .LFE7: 
     364 381                    .global nrk_event_signal 
     365 383                    nrk_event_signal: 
     366 384                    .LFB4: 
     367 385                    .LM50: 
     368 386                    /* prologue: frame size=0 */ 
     369 387                    /* prologue end (size=0) */ 
     370 388                    .LVL20: 
     371 389                    .LM51: 
     372 390 01ec 0E94 0000             call _nrk_signal_event 
     373 391                    .LVL21: 
     374 392                    /* epilogue: frame size=0 */ 
     375 393 01f0 0895                  ret 
     376 394                    /* epilogue end (size=1) */ 
     377 395                    /* function nrk_event_signal size 3 (2) */ 
     378 396                    .LFE4: 
     379 398                    .global _nrk_wait_for_event 
     380 400                    _nrk_wait_for_event: 
     381 401                    .LFB2: 
     382 402                    .LM52: 
     383 403                    /* prologue: frame size=0 */ 
     384 404 01f2 EF92                  push r14 
     385 405 01f4 FF92                  push r15 
     386 406 01f6 0F93                  push r16 
     387 407 01f8 1F93                  push r17 
     388 408                    /* prologue end (size=4) */ 
     389 409                    .LVL22: 
     390 410 01fa 7B01                  movw r14,r22 
     391 411 01fc 8C01                  movw r16,r24 
     392 412                    .LM53: 
     393 413 01fe 0E94 0000             call nrk_int_disable 
     394 414                    .LVL23: 
     395 415                    .LM54: 
     396 416 0202 17FF                  sbrs r17,7 
     397 417 0204 00C0                  rjmp .L42 
     398 418                    .LM55: 
     399 419 0206 E091 0000             lds r30,nrk_cur_task_TCB 
     400 420 020a F091 0000             lds r31,(nrk_cur_task_TCB)+1 
     401 421 020e 81E0                  ldi r24,lo8(1) 
     402 422 0210 8683                  std Z+6,r24 
     403 423                    .L42: 
     404 424                    .LM56: 
     405 425 0212 E091 0000             lds r30,nrk_cur_task_TCB 
     406 426 0216 F091 0000             lds r31,(nrk_cur_task_TCB)+1 
     407 427 021a E586                  std Z+13,r14 
     408 428 021c F686                  std Z+14,r15 
     409 429 021e 0787                  std Z+15,r16 
     410 430 0220 108B                  std Z+16,r17 
     411 431                    .LM57: 
     412 432 0222 0E94 0000             call nrk_int_enable 
     413 433                    .LM58: 
     414 434 0226 80E0                  ldi r24,lo8(0) 
     415 435 0228 90E0                  ldi r25,hi8(0) 
     416 436 022a 0E94 0000             call nrk_wait_until_ticks 
     417 437 022e E091 0000             lds r30,nrk_cur_task_TCB 
     418 438 0232 F091 0000             lds r31,(nrk_cur_task_TCB)+1 
     419 439 0236 6585                  ldd r22,Z+13 
     420 440 0238 7685                  ldd r23,Z+14 
     421 441 023a 8785                  ldd r24,Z+15 
     422 442 023c 9089                  ldd r25,Z+16 
     423 443                    /* epilogue: frame size=0 */ 
     424 444 023e 1F91                  pop r17 
     425 445 0240 0F91                  pop r16 
     426 446 0242 FF90                  pop r15 
     427 447 0244 EF90                  pop r14 
     428 448 0246 0895                  ret 
     429 449                    /* epilogue end (size=5) */ 
     430 450                    /* function _nrk_wait_for_event size 43 (34) */ 
     431 451                    .LFE2: 
     432 453                    .global nrk_event_wait 
     433 455                    nrk_event_wait: 
     434 456                    .LFB5: 
     435 457                    .LM59: 
     436 458                    /* prologue: frame size=0 */ 
     437 459                    /* prologue end (size=0) */ 
     438 460                    .LVL24: 
     439 461                    .LM60: 
     440 462 0248 E091 0000             lds r30,nrk_cur_task_TCB 
     441 463 024c F091 0000             lds r31,(nrk_cur_task_TCB)+1 
     442 464 0250 21E0                  ldi r18,lo8(1) 
     443 465 0252 2783                  std Z+7,r18 
     444 466                    .LM61: 
     445 467 0254 0E94 0000             call _nrk_wait_for_event 
     446 468                    .LVL25: 
     447 469                    /* epilogue: frame size=0 */ 
     448 470 0258 0895                  ret 
     449 471                    /* epilogue end (size=1) */ 
     450 472                    /* function nrk_event_wait size 9 (8) */ 
     451 473                    .LFE5: 
     452 475                    .global nrk_semph_pend 
     453 477                    nrk_semph_pend: 
     454 478                    .LFB3: 
     455 479                    .LM62: 
     456 480                    /* prologue: frame size=0 */ 
     457 481 025a CF93                  push r28 
     458 482 025c DF93                  push r29 
     459 483                    /* prologue end (size=2) */ 
     460 484                    .LVL26: 
     461 485 025e EC01                  movw r28,r24 
     462 486                    .LM63: 
     463 487 0260 0E94 0000             call nrk_get_resource_id 
     464 488                    .LVL27: 
     465 489 0264 682F                  mov r22,r24 
     466 490                    .LVL28: 
     467 491                    .LM64: 
     468 492 0266 8F3F                  cpi r24,lo8(-1) 
     469 493 0268 01F4                  brne .L48 
     470 494                    .LVL29: 
     471 495                    .LM65: 
     472 496 026a 8FEF                  ldi r24,lo8(-1) 
     473 497 026c 9FEF                  ldi r25,hi8(-1) 
     474 498                    .LVL30: 
     475 499 026e 00C0                  rjmp .L50 
     476 500                    .LVL31: 
     477 501                    .L48: 
     478 502                    .LM66: 
     479 503 0270 8881                  ld r24,Y 
     480 504                    .LVL32: 
     481 505 0272 8823                  tst r24 
     482 506 0274 01F4                  brne .L51 
     483 507                    .LM67: 
     484 508 0276 E091 0000             lds r30,nrk_cur_task_TCB 
     485 509 027a F091 0000             lds r31,(nrk_cur_task_TCB)+1 
     486 510 027e 82E0                  ldi r24,lo8(2) 
     487 511 0280 8783                  std Z+7,r24 
     488 512                    .LM68: 
     489 513 0282 7727                  clr r23 
     490 514 0284 8827                  clr r24 
     491 515 0286 9927                  clr r25 
     492 516 0288 0E94 0000             call _nrk_wait_for_event 
     493 517                    .LVL33: 
     494 518 028c 862F                  mov r24,r22 
     495 519 028e 9927                  clr r25 
     496 520 0290 87FD                  sbrc r24,7 
     497 521 0292 9095                  com r25 
     498 522 0294 00C0                  rjmp .L50 
     499 523                    .LVL34: 
     500 524                    .L51: 
     501 525                    .LM69: 
     502 526 0296 8150                  subi r24,lo8(-(-1)) 
     503 527 0298 8883                  st Y,r24 
     504 528                    .LM70: 
     505 529 029a A091 0000             lds r26,nrk_cur_task_TCB 
     506 530 029e B091 0000             lds r27,(nrk_cur_task_TCB)+1 
     507 531 02a2 E62F                  mov r30,r22 
     508 532 02a4 FF27                  clr r31 
     509 533 02a6 E050                  subi r30,lo8(-(nrk_resource_prio_list)) 
     510 534 02a8 F040                  sbci r31,hi8(-(nrk_resource_prio_list)) 
     511 535 02aa 8081                  ld r24,Z 
     512 536 02ac FD01                  movw r30,r26 
     513 537 02ae 8387                  std Z+11,r24 
     514 538                    .LM71: 
     515 539 02b0 E091 0000             lds r30,nrk_cur_task_TCB 
     516 540 02b4 F091 0000             lds r31,(nrk_cur_task_TCB)+1 
     517 541 02b8 81E0                  ldi r24,lo8(1) 
     518 542 02ba 8483                  std Z+4,r24 
     519 543 02bc 81E0                  ldi r24,lo8(1) 
     520 544 02be 90E0                  ldi r25,hi8(1) 
     521 545                    .L50: 
     522 546                    /* epilogue: frame size=0 */ 
     523 547 02c0 DF91                  pop r29 
     524 548 02c2 CF91                  pop r28 
     525 549 02c4 0895                  ret 
     526 550                    /* epilogue end (size=3) */ 
     527 551                    /* function nrk_semph_pend size 54 (49) */ 
     528 552                    .LFE3: 
     529 554                            .comm nrk_idle_task_stk,128,1 
     530 555                            .comm nrk_kernel_stk_ptr,2,1 
     531 556                            .comm nrk_task_TCB,135,1 
     532 557                            .comm _nrk_readyQ,25,1 
     533 558                            .comm _free_node,2,1 
     534 559                            .comm _head_node,2,1 
     535 560                            .comm nrk_cur_task_prio,1,1 
     536 561                            .comm nrk_cur_task_TCB,2,1 
     537 562                            .comm nrk_high_ready_prio,1,1 
     538 563                            .comm nrk_high_ready_TCB,2,1 
     539 564                            .comm _nrk_resource_cnt,1,1 
     540 565                            .comm nrk_resource_list,1,1 
     541 566                            .comm nrk_resource_prio_list,1,1 
     542 567                            .comm nrk_system_time,8,1 
     543 568                            .comm error_task,1,1 
     544 569                            .comm error_num,1,1 
     545 570                            .comm next_next_wakeup,2,1 
     546 571                            .comm _nrk_prev_timer_val,1,1 
     547 572                            .comm _nrk_time_trigger,1,1 
     548 573                            .comm nrk_resource_list_rsv_cnt,1,1 
     549 652                    .Letext0: 
    724550DEFINED SYMBOLS 
    725551                            *ABS*:00000000 nrk_events.c 
    726      /tmp/ccXBYk2V.s:3      *ABS*:0000003f __SREG__ 
    727      /tmp/ccXBYk2V.s:4      *ABS*:0000003e __SP_H__ 
    728      /tmp/ccXBYk2V.s:5      *ABS*:0000003d __SP_L__ 
    729      /tmp/ccXBYk2V.s:6      *ABS*:00000000 __tmp_reg__ 
    730      /tmp/ccXBYk2V.s:7      *ABS*:00000001 __zero_reg__ 
    731      /tmp/ccXBYk2V.s:127    .text:00000000 nrk_create_semph 
     552c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:3      *ABS*:0000003f __SREG__ 
     553c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:4      *ABS*:0000003e __SP_H__ 
     554c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:5      *ABS*:0000003d __SP_L__ 
     555c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:6      *ABS*:00000000 __tmp_reg__ 
     556c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:7      *ABS*:00000001 __zero_reg__ 
     557c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:20     .text:00000000 nrk_create_semph 
    732558                            *COM*:00000001 _nrk_resource_cnt 
    733559                            *COM*:00000001 nrk_resource_list 
    734560                            *COM*:00000001 nrk_resource_list_rsv_cnt 
    735561                            *COM*:00000001 nrk_resource_prio_list 
    736      /tmp/ccXBYk2V.s:183    .text:00000032 nrk_get_resource_id 
    737      /tmp/ccXBYk2V.s:221    .text:0000004c nrk_set_task_timeout 
     562c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:67     .text:00000032 nrk_get_resource_id 
     563c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:99     .text:0000004c nrk_set_task_timeout 
    738564                            *COM*:00000002 nrk_cur_task_TCB 
    739565                            *COM*:00000001 _nrk_prev_timer_val 
    740      /tmp/ccXBYk2V.s:340    .text:000000f6 _nrk_signal_event 
    741                             *COM*:0000006c nrk_task_TCB 
    742      /tmp/ccXBYk2V.s:484    .text:000001a4 nrk_semph_post 
    743      /tmp/ccXBYk2V.s:548    .text:000001ec nrk_event_signal 
    744      /tmp/ccXBYk2V.s:569    .text:000001f2 _nrk_wait_for_event 
    745      /tmp/ccXBYk2V.s:633    .text:00000248 nrk_event_wait 
    746      /tmp/ccXBYk2V.s:660    .text:0000025a nrk_semph_pend 
    747                             *COM*:00000200 nrk_idle_task_stk 
     566c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:202    .text:000000f6 _nrk_signal_event 
     567                            *COM*:00000087 nrk_task_TCB 
     568c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:324    .text:000001a4 nrk_semph_post 
     569c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:383    .text:000001ec nrk_event_signal 
     570c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:400    .text:000001f2 _nrk_wait_for_event 
     571c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:455    .text:00000248 nrk_event_wait 
     572c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:477    .text:0000025a nrk_semph_pend 
     573                            *COM*:00000080 nrk_idle_task_stk 
    748574                            *COM*:00000002 nrk_kernel_stk_ptr 
    749                             *COM*:00000014 _nrk_readyQ 
     575                            *COM*:00000019 _nrk_readyQ 
    750576                            *COM*:00000002 _free_node 
    751577                            *COM*:00000002 _head_node 
  • nano-RK/src/platform/firefly2/source/ulib.c

    r30 r32  
    22#include <ulib.h> 
    33#include <stdio.h> 
     4#include <hal.h> 
    45#include <hal_firefly2.h> 
    56#include <avr/interrupt.h> 
  • nano-RK/src/platform/include/ulib.h

    r30 r32  
    22#define ULIB_H 
    33 
     4#include <nrk_pin_define.h> 
     5  
    46//#define MAX_STR  10    
    57 
     
    5961#define NRK_PIN_OUTPUT 1 
    6062 
    61 // macros to define a pin as used by higher level programs. 
    62 // higher level programs refer to pin as NRK_<pin name> 
    63 // these functions declare these NRK_<pin name> pins and provide 
    64 // the mappings to the hardware 
    65 #define DECLARE_NRK_PIN( _pin_name ) extern const uint8_t NRK_ ## _pin_name; 
    66 #define NRK_PIN( _pin_name, _pin , _port ) const uint8_t NRK_ ## _pin_name = (_pin << 3) + (_port & 0x07); 
    67 #define NRK_INVALID_PIN( _pin_name ) const uint8_t NRK_ ## _pin_name = NRK_INVALID_PIN_VAL; 
    68  
    69 // declare pins as used by higher level programs 
    70 // mapping to the hardware is done by ulib.c 
    71  
    72 DECLARE_NRK_PIN( VREG_EN )                      // declare pin named NRK_VREG_EN 
    73 DECLARE_NRK_PIN( RESET_N )                      // declare pin named NRK_RESET_N 
    74 DECLARE_NRK_PIN( DEBUG_0 )                      // declare pin named NRK_DEBUG_0 
    75 DECLARE_NRK_PIN( DEBUG_1 )                      // declare pin named NRK_DEBUG_1 
    76 DECLARE_NRK_PIN( BUTTON )                       // declare pin named NRK_BUTTON 
    77  
    78 DECLARE_NRK_PIN( SPI_SS )                       // declare pin named NRK_SPI_SS 
    79 DECLARE_NRK_PIN( SCK )                          // declare pin named NRK_SCK 
    80 DECLARE_NRK_PIN( MOSI )                         // declare pin named NRK_MOSI 
    81 DECLARE_NRK_PIN( MISO )                         // declare pin named NRK_MISO 
    82  
    83 DECLARE_NRK_PIN( GPIO28 )                       // declare pin named NRK_GPIO28 
    84 DECLARE_NRK_PIN( GPIO26 )                       // declare pin named NRK_GPIO26 
    85  
    86 DECLARE_NRK_PIN( CSN )                          // declare pin named NRK_CSN 
    87 DECLARE_NRK_PIN( FIFO )                         // declare pin named NRK_FIFO 
    88  
    89 DECLARE_NRK_PIN( UART1_RXD )                    // declare pin named NRK_UART1_RXD 
    90 DECLARE_NRK_PIN( UART1_TXD )                    // declare pin named NRK_UART1_TXD 
    91 DECLARE_NRK_PIN( SFD )                          // declare pin named NRK_SFD 
    92 DECLARE_NRK_PIN( UART1_RTS )                    // declare pin named NRK_UART1_RTS 
    93 DECLARE_NRK_PIN( CCA )                          // declare pin named NRK_CCA 
    94 DECLARE_NRK_PIN( UART1_CTS )                    // declare pin named NRK_UART1_CTS 
    95  
    96 DECLARE_NRK_PIN( UART0_RXD )                    // declare pin named NRK_UART0_RXD 
    97 DECLARE_NRK_PIN( UART0_TXD )                    // declare pin named NRK_UART0_TXD 
    98 DECLARE_NRK_PIN( FIFOP )                        // declare pin named NRK_FIFOP 
    99 DECLARE_NRK_PIN( YLED )                         // declare pin named NRK_YLED 
    100 DECLARE_NRK_PIN( GLED )                         // declare pin named NRK_GLED 
    101 DECLARE_NRK_PIN( RLED )                         // declare pin named NRK_RLED 
    102 DECLARE_NRK_PIN( BLED )                         // declare pin named NRK_BLED 
    103  
    104 DECLARE_NRK_PIN( GPIO34 )                       // declare pin named NRK_GPIO34 
    105  
    106 DECLARE_NRK_PIN( JOYSTICK_LEFT )                // declare pin named NRK_JOYSTICK_LEFT 
    107 DECLARE_NRK_PIN( JOYSTICK_DOWN )                // declare pin named NRK_JOYSTICK_DOWN 
    108 DECLARE_NRK_PIN( ADC_INPUT_0_POT_METER )        // declare pin named NRK_ADC_INPUT_0_POT_METER 
    109 DECLARE_NRK_PIN( ADC_INPUT_1 )                  // declare pin named NRK_ADC_INPUT_1 
    110 DECLARE_NRK_PIN( ADC_INPUT_2 )                  // declare pin named NRK_ADC_INPUT_2 
    111 DECLARE_NRK_PIN( ADC_INPUT_3_TEMP_SENSOR )      // declare pin named NRK_ADC_INPUT_3_TEMP_SENSOR 
    112  
    113 DECLARE_NRK_PIN( ADC_INPUT_6 )                  // declare pin named NRK_ADC_INPUT_6 
    114 DECLARE_NRK_PIN( ADC_INPUT_7 )                  // declare pin named NRK_ADC_INPUT_7 
    115  
    11663#endif 
Note: See TracChangeset for help on using the changeset viewer.