📄 stm8s_itc.ls
字号:
1 ; C Compiler for STM8 (COSMIC Software)
2 ; Generator V4.2.8 - 03 Dec 2008
3 ; Optimizer V4.2.8 - 03 Dec 2008
33 ; 62 u8 ITC_GetCPUCC(void)
33 ; 63 {
35 switch .text
36 0000 _ITC_GetCPUCC:
40 ; 64 _asm("push cc");
43 0000 8a push cc
45 ; 65 _asm("pop a");
48 0001 84 pop a
50 ; 66 return; /* Ignore compiler warning, the returned value is in A register */
53 0002 81 ret
76 ; 97 void ITC_DeInit(void)
76 ; 98 {
77 switch .text
78 0003 _ITC_DeInit:
82 ; 99 ITC->ISPR1 = ITC_SPRX_RESET_VALUE;
84 0003 35ff7f70 mov 32624,#255
85 ; 100 ITC->ISPR2 = ITC_SPRX_RESET_VALUE;
87 0007 35ff7f71 mov 32625,#255
88 ; 101 ITC->ISPR3 = ITC_SPRX_RESET_VALUE;
90 000b 35ff7f72 mov 32626,#255
91 ; 102 ITC->ISPR4 = ITC_SPRX_RESET_VALUE;
93 000f 35ff7f73 mov 32627,#255
94 ; 103 ITC->ISPR5 = ITC_SPRX_RESET_VALUE;
96 0013 35ff7f74 mov 32628,#255
97 ; 104 ITC->ISPR6 = ITC_SPRX_RESET_VALUE;
99 0017 35ff7f75 mov 32629,#255
100 ; 105 ITC->ISPR7 = ITC_SPRX_RESET_VALUE;
102 001b 35ff7f76 mov 32630,#255
103 ; 106 ITC->ISPR8 = ITC_SPRX_RESET_VALUE;
105 001f 35ff7f77 mov 32631,#255
106 ; 107 }
109 0023 81 ret
134 ; 124 u8 ITC_GetSoftIntStatus(void)
134 ; 125 {
135 switch .text
136 0024 _ITC_GetSoftIntStatus:
140 ; 126 return (u8)(ITC_GetCPUCC() & CPU_CC_I1I0);
142 0024 adda call _ITC_GetCPUCC
144 0026 a428 and a,#40
147 0028 81 ret
424 .const: section .text
425 0000 L42:
426 0000 004a dc.w L14
427 0002 004a dc.w L14
428 0004 004a dc.w L14
429 0006 004a dc.w L14
430 0008 004f dc.w L34
431 000a 004f dc.w L34
432 000c 004f dc.w L34
433 000e 004f dc.w L34
434 0010 0054 dc.w L54
435 0012 0054 dc.w L54
436 0014 0054 dc.w L54
437 0016 0054 dc.w L54
438 0018 0059 dc.w L74
439 001a 0059 dc.w L74
440 001c 0059 dc.w L74
441 001e 0059 dc.w L74
442 0020 005e dc.w L15
443 0022 005e dc.w L15
444 0024 005e dc.w L15
445 0026 005e dc.w L15
446 0028 0063 dc.w L35
447 002a 0063 dc.w L35
448 002c 0063 dc.w L35
449 002e 0063 dc.w L35
450 0030 0068 dc.w L55
451 ; 144 ITC_PriorityLevel_TypeDef ITC_GetSoftwarePriority(ITC_Irq_TypeDef IrqNum)
451 ; 145 {
452 switch .text
453 0029 _ITC_GetSoftwarePriority:
455 0029 88 push a
456 002a 89 pushw x
457 00000002 OFST: set 2
460 ; 147 u8 Value = 0;
462 002b 0f02 clr (OFST+0,sp)
463 ; 151 assert_param(IS_ITC_IRQ_OK((u8)IrqNum));
465 ; 154 Mask = (u8)(0x03U << (((u8)IrqNum % 4U) * 2U));
467 002d a403 and a,#3
468 002f 48 sll a
469 0030 5f clrw x
470 0031 97 ld xl,a
471 0032 a603 ld a,#3
472 0034 5d tnzw x
473 0035 2704 jreq L61
474 0037 L02:
475 0037 48 sll a
476 0038 5a decw x
477 0039 26fc jrne L02
478 003b L61:
479 003b 6b01 ld (OFST-1,sp),a
480 ; 156 switch (IrqNum)
482 003d 7b03 ld a,(OFST+1,sp)
484 ; 197 default:
484 ; 198 break;
485 003f a119 cp a,#25
486 0041 242e jruge L312
487 0043 5f clrw x
488 0044 97 ld xl,a
489 0045 58 sllw x
490 0046 de0000 ldw x,(L42,x)
491 0049 fc jp (x)
492 004a L14:
493 ; 158 case ITC_IRQ_TLI: /* TLI software priority can be read but has no meaning */
493 ; 159 case ITC_IRQ_AWU:
493 ; 160 case ITC_IRQ_CLK:
493 ; 161 case ITC_IRQ_PORTA:
493 ; 162 Value = (u8)(ITC->ISPR1 & Mask); /* Read software priority */
495 004a c67f70 ld a,32624
496 ; 163 break;
498 004d 201c jp LC001
499 004f L34:
500 ; 164 case ITC_IRQ_PORTB:
500 ; 165 case ITC_IRQ_PORTC:
500 ; 166 case ITC_IRQ_PORTD:
500 ; 167 case ITC_IRQ_PORTE:
500 ; 168 Value = (u8)(ITC->ISPR2 & Mask); /* Read software priority */
502 004f c67f71 ld a,32625
503 ; 169 break;
505 0052 2017 jp LC001
506 0054 L54:
507 ; 170 case ITC_IRQ_CAN_RX:
507 ; 171 case ITC_IRQ_CAN_TX:
507 ; 172 case ITC_IRQ_SPI:
507 ; 173 case ITC_IRQ_TIM1_OVF:
507 ; 174 Value = (u8)(ITC->ISPR3 & Mask); /* Read software priority */
509 0054 c67f72 ld a,32626
510 ; 175 break;
512 0057 2012 jp LC001
513 0059 L74:
514 ; 176 case ITC_IRQ_TIM1_CAPCOM:
514 ; 177 case ITC_IRQ_TIM2_OVF:
514 ; 178 case ITC_IRQ_TIM2_CAPCOM:
514 ; 179 case ITC_IRQ_TIM3_OVF:
514 ; 180 Value = (u8)(ITC->ISPR4 & Mask); /* Read software priority */
516 0059 c67f73 ld a,32627
517 ; 181 break;
519 005c 200d jp LC001
520 005e L15:
521 ; 182 case ITC_IRQ_TIM3_CAPCOM:
521 ; 183 case ITC_IRQ_USART_TX:
521 ; 184 case ITC_IRQ_USART_RX:
521 ; 185 case ITC_IRQ_I2C:
521 ; 186 Value = (u8)(ITC->ISPR5 & Mask); /* Read software priority */
523 005e c67f74 ld a,32628
524 ; 187 break;
526 0061 2008 jp LC001
527 0063 L35:
528 ; 188 case ITC_IRQ_LINUART_TX:
528 ; 189 case ITC_IRQ_LINUART_RX:
528 ; 190 case ITC_IRQ_ADC:
528 ; 191 case ITC_IRQ_TIM4_OVF:
528 ; 192 Value = (u8)(ITC->ISPR6 & Mask); /* Read software priority */
530 0063 c67f75 ld a,32629
531 ; 193 break;
533 0066 2003 jp LC001
534 0068 L55:
535 ; 194 case ITC_IRQ_EEPROM_EEC:
535 ; 195 Value = (u8)(ITC->ISPR7 & Mask); /* Read software priority */
537 0068 c67f76 ld a,32630
538 006b LC001:
539 006b 1401 and a,(OFST-1,sp)
540 006d 6b02 ld (OFST+0,sp),a
541 ; 196 break;
543 ; 197 default:
543 ; 198 break;
545 006f 7b03 ld a,(OFST+1,sp)
546 0071 L312:
547 ; 201 Value >>= (u8)(((u8)IrqNum % 4u) * 2u);
549 0071 a403 and a,#3
550 0073 48 sll a
551 0074 5f clrw x
552 0075 97 ld xl,a
553 0076 7b02 ld a,(OFST+0,sp)
554 0078 5d tnzw x
555 0079 2704 jreq L62
556 007b L03:
557 007b 44 srl a
558 007c 5a decw x
559 007d 26fc jrne L03
560 007f L62:
561 ; 203 return((ITC_PriorityLevel_TypeDef)Value);
565 007f 5b03 addw sp,#3
566 0081 81 ret
630 switch .const
631 0032 L64:
632 0032 00b8 dc.w L512
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -