Changeset 39
- Timestamp:
- 04/14/2007 06:07:49 PM (5 years ago)
- Location:
- nano-RK
- Files:
-
- 6 edited
-
projects/basic_slip/main.c (modified) (6 diffs)
-
projects/basic_slip/nrk_cfg.h (modified) (1 diff)
-
src/kernel/source/nrk_events.d (modified) (1 diff)
-
src/kernel/source/nrk_events.lst (modified) (1 diff)
-
src/net/slip/slip.c (modified) (5 diffs)
-
src/net/slip/slip.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
nano-RK/projects/basic_slip/main.c
r38 r39 34 34 { 35 35 nrk_setup_ports(); 36 nrk_setup_uart(UART_BAUDRATE_115K2); 36 PORTE |= 2; 37 nrk_setup_uart(UART_BAUDRATE_9K6); 37 38 38 39 printf( "Starting up...\r\n" ); … … 61 62 printf( "Task1 PID=%d\r\n",nrk_get_pid()); 62 63 cnt=0; 63 slip_init(std out,0,0);64 slip_init(stdin,stdout,0,0); 64 65 while(1) { 65 66 nrk_set_led(ORANGE_LED); 66 printf( "Task1 cnt=%d\r\n",cnt );67 67 sprintf( buf,"Task 1 cnt=%d",cnt ); 68 slip_tx(buf,strlen(buf) );68 slip_tx(buf,strlen(buf)+1); 69 69 nrk_wait_until_next_period(); 70 70 nrk_clr_led(ORANGE_LED); … … 132 132 TaskOne.SchType = PREEMPTIVE; 133 133 TaskOne.period.secs = 0; 134 TaskOne.period.nano_secs = 250*NANOS_PER_MS;134 TaskOne.period.nano_secs = 500*NANOS_PER_MS; 135 135 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; 137 137 TaskOne.offset.secs = 0; 138 138 TaskOne.offset.nano_secs= 0; … … 152 152 TaskTwo.offset.secs = 0; 153 153 TaskTwo.offset.nano_secs= 0; 154 nrk_activate_task (&TaskTwo);154 //nrk_activate_task (&TaskTwo); 155 155 156 156 … … 168 168 TaskThree.offset.secs = 0; 169 169 TaskThree.offset.nano_secs= 0; 170 nrk_activate_task (&TaskThree);170 //nrk_activate_task (&TaskThree); 171 171 172 172 … … 184 184 TaskFour.offset.secs = 0; 185 185 TaskFour.offset.nano_secs= 0; 186 nrk_activate_task (&TaskFour);186 //nrk_activate_task (&TaskFour); 187 187 188 188 -
nano-RK/projects/basic_slip/nrk_cfg.h
r38 r39 22 22 #define NRK_NO_POWER_DOWN 23 23 24 #define NRK_MAX_TASKS 4// Max number of tasks in your application24 #define NRK_MAX_TASKS 1 // Max number of tasks in your application 25 25 #define NRK_N_SYS_TASKS 1 // you need at least the idle task 26 26 #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 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_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 1 1 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 550 727 DEFINED SYMBOLS 551 728 *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_semph729 /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 558 735 *COM*:00000001 _nrk_resource_cnt 559 736 *COM*:00000001 nrk_resource_list 560 737 *COM*:00000001 nrk_resource_list_rsv_cnt 561 738 *COM*:00000001 nrk_resource_prio_list 562 c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:67.text:00000032 nrk_get_resource_id563 c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:99.text:0000004c nrk_set_task_timeout739 /tmp/cckFyaJU.s:183 .text:00000032 nrk_get_resource_id 740 /tmp/cckFyaJU.s:222 .text:0000004c nrk_set_task_timeout 564 741 *COM*:00000002 nrk_cur_task_TCB 565 742 *COM*:00000001 _nrk_prev_timer_val 566 c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:202 .text:000000f6 _nrk_signal_event567 *COM*:000000 87nrk_task_TCB568 c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:324 .text:000001a4nrk_semph_post569 c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:383 .text:000001ecnrk_event_signal570 c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:400 .text:000001f2_nrk_wait_for_event571 c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:455 .text:00000248nrk_event_wait572 c:\DOCUME~1\npereira\LOCALS~1\Temp/ccw9aaaa.s:477 .text:0000025anrk_semph_pend743 /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 573 750 *COM*:00000080 nrk_idle_task_stk 574 751 *COM*:00000002 nrk_kernel_stk_ptr 575 *COM*:000000 19_nrk_readyQ752 *COM*:0000000a _nrk_readyQ 576 753 *COM*:00000002 _free_node 577 754 *COM*:00000002 _head_node -
nano-RK/src/net/slip/slip.c
r38 r39 2 2 3 3 4 FILE *g_dv ;4 FILE *g_dv_in, *g_dv_out; 5 5 bool g_echo; 6 6 uint8_t g_delay; 7 7 8 uint8_t slip_init( FILE *device , bool echo, uint8_t delay )8 uint8_t slip_init( FILE *device_in, FILE *device_out, bool echo, uint8_t delay ) 9 9 { 10 g_dv=device; 10 g_dv_in=device_in; 11 g_dv_out=device_out; 11 12 g_echo=echo; 12 13 g_delay=delay; … … 18 19 { 19 20 if(g_delay>0 ) nrk_spin_wait_us(g_delay*1000); 20 fputc(c,g_dv );21 fputc(c,g_dv_out); 21 22 if(g_echo) 22 23 { … … 27 28 uint8_t get_byte(void) 28 29 { 29 return fgetc(g_dv );30 return fgetc(g_dv_in); 30 31 } 31 32 … … 35 36 36 37 // Send the start byte 37 put_byte(ESC);38 38 put_byte(END); 39 39 // Send payload and stuff bytes as needed … … 44 44 } 45 45 // Send the end byte 46 put_byte(ESC);47 46 put_byte(END); 48 47 -
nano-RK/src/net/slip/slip.h
r38 r39 11 11 12 12 13 uint8_t slip_init( FILE *device , bool echo, uint8_t delay );13 uint8_t slip_init( FILE *device_in, FILE *device_out, bool echo, uint8_t delay ); 14 14 uint8_t slip_tx(uint8_t *buf, uint8_t size); 15 15 uint8_t slip_rx(uint8_t *buf, uint8_t max_len);
Note: See TracChangeset
for help on using the changeset viewer.
