Changeset 39


Ignore:
Timestamp:
04/14/2007 06:07:49 PM (5 years ago)
Author:
agr
Message:

slip bug fixes

Location:
nano-RK
Files:
6 edited

Legend:

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

    r38 r39  
    3434{ 
    3535  nrk_setup_ports(); 
    36   nrk_setup_uart(UART_BAUDRATE_115K2); 
     36  PORTE |= 2; 
     37  nrk_setup_uart(UART_BAUDRATE_9K6); 
    3738 
    3839  printf( "Starting up...\r\n" ); 
     
    6162  printf( "Task1 PID=%d\r\n",nrk_get_pid()); 
    6263  cnt=0; 
    63   slip_init(stdout,0,0); 
     64  slip_init(stdin,stdout,0,0); 
    6465  while(1) { 
    6566        nrk_set_led(ORANGE_LED); 
    66         printf( "Task1 cnt=%d\r\n",cnt ); 
    6767        sprintf( buf,"Task 1 cnt=%d",cnt ); 
    68         slip_tx(buf,strlen(buf));        
     68        slip_tx(buf,strlen(buf)+1);      
    6969        nrk_wait_until_next_period(); 
    7070        nrk_clr_led(ORANGE_LED); 
     
    132132  TaskOne.SchType = PREEMPTIVE; 
    133133  TaskOne.period.secs = 0; 
    134   TaskOne.period.nano_secs = 250*NANOS_PER_MS; 
     134  TaskOne.period.nano_secs = 500*NANOS_PER_MS; 
    135135  TaskOne.cpu_reserve.secs = 0; 
    136   TaskOne.cpu_reserve.nano_secs =  50*NANOS_PER_MS; 
     136  TaskOne.cpu_reserve.nano_secs =  500*NANOS_PER_MS; 
    137137  TaskOne.offset.secs = 0; 
    138138  TaskOne.offset.nano_secs= 0; 
     
    152152  TaskTwo.offset.secs = 0; 
    153153  TaskTwo.offset.nano_secs= 0; 
    154   nrk_activate_task (&TaskTwo); 
     154  //nrk_activate_task (&TaskTwo); 
    155155 
    156156 
     
    168168  TaskThree.offset.secs = 0; 
    169169  TaskThree.offset.nano_secs= 0; 
    170   nrk_activate_task (&TaskThree); 
     170  //nrk_activate_task (&TaskThree); 
    171171 
    172172 
     
    184184  TaskFour.offset.secs = 0; 
    185185  TaskFour.offset.nano_secs= 0; 
    186   nrk_activate_task (&TaskFour); 
     186  //nrk_activate_task (&TaskFour); 
    187187 
    188188 
  • nano-RK/projects/basic_slip/nrk_cfg.h

    r38 r39  
    2222#define NRK_NO_POWER_DOWN 
    2323 
    24 #define NRK_MAX_TASKS                   4    // Max number of tasks in your application 
     24#define NRK_MAX_TASKS                   1    // Max number of tasks in your application 
    2525#define NRK_N_SYS_TASKS                 1    // you need at least the idle task 
    2626#define NRK_N_RES                       1        
  • nano-RK/src/kernel/source/nrk_events.d

    r28 r39  
    1 nrk_events.o nrk_events.d : ../../../src/kernel/source/nrk_events.c \ 
    2   ../../../src/kernel/include/nrk.h ../../../src/kernel/include/nrk_cpu.h \ 
    3   nrk_cfg.h ../../../src/kernel/include/nrk_time.h \ 
    4   ../../../src/platform/firefly2/include/include.h \ 
    5   ../../../src/platform/firefly2/include/hal.h \ 
    6   ../../../src/platform/firefly2/include/hal_firefly2.h \ 
    7   ../../../src/radio/cc2420/include/hal_cc2420.h \ 
    8   ../../../src/radio/cc2420/include/basic_rf.h \ 
    9   ../../../src/platform/include/ulib.h \ 
    10   ../../../src/platform/firefly2/include/nrk_platform_time.h \ 
    11   ../../../src/kernel/include/nrk_task.h \ 
    12   ../../../src/kernel/include/nrk_events.h \ 
    13   ../../../src/kernel/include/nrk_error.h \ 
    14   ../../../src/kernel/include/nrk_scheduler.h \ 
    15   ../../../src/kernel/hal/include/nrk_timer.h \ 
    16   ../../../src/kernel/include/nrk_defs.h 
     1nrk_events.o nrk_events.d : ../../src/kernel/source/nrk_events.c \ 
     2  ../../src/kernel/include/nrk.h ../../src/kernel/include/nrk_cpu.h \ 
     3  nrk_cfg.h ../../src/kernel/include/nrk_time.h \ 
     4  ../../src/platform/firefly2/include/include.h \ 
     5  ../../src/platform/firefly2/include/hal.h \ 
     6  ../../src/platform/firefly2/include/hal_firefly2.h \ 
     7  ../../src/radio/cc2420/include/hal_cc2420.h \ 
     8  ../../src/radio/cc2420/include/basic_rf.h \ 
     9  ../../src/platform/include/ulib.h \ 
     10  ../../src/platform/firefly2/include/nrk_pin_define.h \ 
     11  ../../src/platform/firefly2/include/nrk_platform_time.h \ 
     12  ../../src/kernel/include/nrk_task.h \ 
     13  ../../src/kernel/include/nrk_events.h \ 
     14  ../../src/kernel/include/nrk_error.h \ 
     15  ../../src/kernel/include/nrk_scheduler.h \ 
     16  ../../src/kernel/hal/include/nrk_timer.h \ 
     17  ../../src/kernel/include/nrk_defs.h 
  • nano-RK/src/kernel/source/nrk_events.lst

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

    r38 r39  
    22 
    33 
    4 FILE *g_dv; 
     4FILE *g_dv_in, *g_dv_out; 
    55bool g_echo; 
    66uint8_t g_delay; 
    77 
    8 uint8_t slip_init( FILE *device, bool echo, uint8_t delay ) 
     8uint8_t slip_init( FILE *device_in, FILE *device_out, bool echo, uint8_t delay ) 
    99{ 
    10 g_dv=device; 
     10g_dv_in=device_in; 
     11g_dv_out=device_out; 
    1112g_echo=echo; 
    1213g_delay=delay; 
     
    1819{ 
    1920   if(g_delay>0 ) nrk_spin_wait_us(g_delay*1000); 
    20    fputc(c,g_dv); 
     21   fputc(c,g_dv_out); 
    2122   if(g_echo) 
    2223        { 
     
    2728uint8_t get_byte(void) 
    2829{ 
    29   return fgetc(g_dv); 
     30  return fgetc(g_dv_in); 
    3031} 
    3132 
     
    3536 
    3637// Send the start byte 
    37 put_byte(ESC); 
    3838put_byte(END); 
    3939// Send payload and stuff bytes as needed 
     
    4444   } 
    4545 // Send the end byte 
    46 put_byte(ESC); 
    4746put_byte(END); 
    4847 
  • nano-RK/src/net/slip/slip.h

    r38 r39  
    1111 
    1212 
    13 uint8_t slip_init( FILE *device, bool echo, uint8_t delay ); 
     13uint8_t slip_init( FILE *device_in, FILE *device_out, bool echo, uint8_t delay ); 
    1414uint8_t slip_tx(uint8_t *buf, uint8_t size);  
    1515uint8_t slip_rx(uint8_t *buf, uint8_t max_len);  
Note: See TracChangeset for help on using the changeset viewer.