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