📄 stm8s_itc.ls
字号:
633 0034 00b8 dc.w L512
634 0036 00b8 dc.w L512
635 0038 00b8 dc.w L512
636 003a 00ca dc.w L712
637 003c 00ca dc.w L712
638 003e 00ca dc.w L712
639 0040 00ca dc.w L712
640 0042 00dc dc.w L122
641 0044 00dc dc.w L122
642 0046 00dc dc.w L122
643 0048 00dc dc.w L122
644 004a 00ee dc.w L322
645 004c 00ee dc.w L322
646 004e 00ee dc.w L322
647 0050 00ee dc.w L322
648 0052 0100 dc.w L522
649 0054 0100 dc.w L522
650 0056 0100 dc.w L522
651 0058 0100 dc.w L522
652 005a 0112 dc.w L722
653 005c 0112 dc.w L722
654 005e 0112 dc.w L722
655 0060 0112 dc.w L722
656 0062 0124 dc.w L132
657 ; 223 void ITC_SetSoftwarePriority(ITC_Irq_TypeDef IrqNum, ITC_PriorityLevel_TypeDef PriorityValue)
657 ; 224 {
658 switch .text
659 0082 _ITC_SetSoftwarePriority:
661 0082 89 pushw x
662 0083 89 pushw x
663 00000002 OFST: set 2
666 ; 230 assert_param(IS_ITC_IRQ_OK((u8)IrqNum));
668 ; 231 assert_param(IS_ITC_PRIORITY_OK(PriorityValue));
670 ; 234 assert_param(IS_ITC_INTERRUPTS_DISABLED);
672 ; 238 Mask = (u8)(~(u8)(0x03U << (((u8)IrqNum % 4U) * 2U)));
674 0084 9e ld a,xh
675 0085 a403 and a,#3
676 0087 48 sll a
677 0088 5f clrw x
678 0089 97 ld xl,a
679 008a a603 ld a,#3
680 008c 5d tnzw x
681 008d 2704 jreq L43
682 008f L63:
683 008f 48 sll a
684 0090 5a decw x
685 0091 26fc jrne L63
686 0093 L43:
687 0093 43 cpl a
688 0094 6b01 ld (OFST-1,sp),a
689 ; 241 NewPriority = (u8)((u8)(PriorityValue) << (((u8)IrqNum % 4U) * 2U));
691 0096 7b03 ld a,(OFST+1,sp)
692 0098 a403 and a,#3
693 009a 48 sll a
694 009b 5f clrw x
695 009c 97 ld xl,a
696 009d 7b04 ld a,(OFST+2,sp)
697 009f 5d tnzw x
698 00a0 2704 jreq L04
699 00a2 L24:
700 00a2 48 sll a
701 00a3 5a decw x
702 00a4 26fc jrne L24
703 00a6 L04:
704 00a6 6b02 ld (OFST+0,sp),a
705 ; 243 switch (IrqNum)
707 00a8 7b03 ld a,(OFST+1,sp)
709 ; 299 default:
709 ; 300 break;
710 00aa a119 cp a,#25
711 00ac 2503cc0134 jruge L172
712 00b1 5f clrw x
713 00b2 97 ld xl,a
714 00b3 58 sllw x
715 00b4 de0032 ldw x,(L64,x)
716 00b7 fc jp (x)
717 00b8 L512:
718 ; 246 case ITC_IRQ_TLI: /* TLI software priority can be written but has no meaning */
718 ; 247 case ITC_IRQ_AWU:
718 ; 248 case ITC_IRQ_CLK:
718 ; 249 case ITC_IRQ_PORTA:
718 ; 250 ITC->ISPR1 &= Mask;
720 00b8 c67f70 ld a,32624
721 00bb 1401 and a,(OFST-1,sp)
722 00bd c77f70 ld 32624,a
723 ; 251 ITC->ISPR1 |= NewPriority;
725 00c0 c67f70 ld a,32624
726 00c3 1a02 or a,(OFST+0,sp)
727 00c5 c77f70 ld 32624,a
728 ; 252 break;
730 00c8 206a jra L172
731 00ca L712:
732 ; 254 case ITC_IRQ_PORTB:
732 ; 255 case ITC_IRQ_PORTC:
732 ; 256 case ITC_IRQ_PORTD:
732 ; 257 case ITC_IRQ_PORTE:
732 ; 258 ITC->ISPR2 &= Mask;
734 00ca c67f71 ld a,32625
735 00cd 1401 and a,(OFST-1,sp)
736 00cf c77f71 ld 32625,a
737 ; 259 ITC->ISPR2 |= NewPriority;
739 00d2 c67f71 ld a,32625
740 00d5 1a02 or a,(OFST+0,sp)
741 00d7 c77f71 ld 32625,a
742 ; 260 break;
744 00da 2058 jra L172
745 00dc L122:
746 ; 262 case ITC_IRQ_CAN_RX:
746 ; 263 case ITC_IRQ_CAN_TX:
746 ; 264 case ITC_IRQ_SPI:
746 ; 265 case ITC_IRQ_TIM1_OVF:
746 ; 266 ITC->ISPR3 &= Mask;
748 00dc c67f72 ld a,32626
749 00df 1401 and a,(OFST-1,sp)
750 00e1 c77f72 ld 32626,a
751 ; 267 ITC->ISPR3 |= NewPriority;
753 00e4 c67f72 ld a,32626
754 00e7 1a02 or a,(OFST+0,sp)
755 00e9 c77f72 ld 32626,a
756 ; 268 break;
758 00ec 2046 jra L172
759 00ee L322:
760 ; 270 case ITC_IRQ_TIM1_CAPCOM:
760 ; 271 case ITC_IRQ_TIM2_OVF:
760 ; 272 case ITC_IRQ_TIM2_CAPCOM:
760 ; 273 case ITC_IRQ_TIM3_OVF:
760 ; 274 ITC->ISPR4 &= Mask;
762 00ee c67f73 ld a,32627
763 00f1 1401 and a,(OFST-1,sp)
764 00f3 c77f73 ld 32627,a
765 ; 275 ITC->ISPR4 |= NewPriority;
767 00f6 c67f73 ld a,32627
768 00f9 1a02 or a,(OFST+0,sp)
769 00fb c77f73 ld 32627,a
770 ; 276 break;
772 00fe 2034 jra L172
773 0100 L522:
774 ; 278 case ITC_IRQ_TIM3_CAPCOM:
774 ; 279 case ITC_IRQ_USART_TX:
774 ; 280 case ITC_IRQ_USART_RX:
774 ; 281 case ITC_IRQ_I2C:
774 ; 282 ITC->ISPR5 &= Mask;
776 0100 c67f74 ld a,32628
777 0103 1401 and a,(OFST-1,sp)
778 0105 c77f74 ld 32628,a
779 ; 283 ITC->ISPR5 |= NewPriority;
781 0108 c67f74 ld a,32628
782 010b 1a02 or a,(OFST+0,sp)
783 010d c77f74 ld 32628,a
784 ; 284 break;
786 0110 2022 jra L172
787 0112 L722:
788 ; 286 case ITC_IRQ_LINUART_TX:
788 ; 287 case ITC_IRQ_LINUART_RX:
788 ; 288 case ITC_IRQ_ADC:
788 ; 289 case ITC_IRQ_TIM4_OVF:
788 ; 290 ITC->ISPR6 &= Mask;
790 0112 c67f75 ld a,32629
791 0115 1401 and a,(OFST-1,sp)
792 0117 c77f75 ld 32629,a
793 ; 291 ITC->ISPR6 |= NewPriority;
795 011a c67f75 ld a,32629
796 011d 1a02 or a,(OFST+0,sp)
797 011f c77f75 ld 32629,a
798 ; 292 break;
800 0122 2010 jra L172
801 0124 L132:
802 ; 294 case ITC_IRQ_EEPROM_EEC:
802 ; 295 ITC->ISPR7 &= Mask;
804 0124 c67f76 ld a,32630
805 0127 1401 and a,(OFST-1,sp)
806 0129 c77f76 ld 32630,a
807 ; 296 ITC->ISPR7 |= NewPriority;
809 012c c67f76 ld a,32630
810 012f 1a02 or a,(OFST+0,sp)
811 0131 c77f76 ld 32630,a
812 ; 297 break;
814 ; 299 default:
814 ; 300 break;
816 0134 L172:
817 ; 304 }
820 0134 5b04 addw sp,#4
821 0136 81 ret
834 xdef _ITC_GetSoftwarePriority
835 xdef _ITC_SetSoftwarePriority
836 xdef _ITC_GetSoftIntStatus
837 xdef _ITC_DeInit
838 xdef _ITC_GetCPUCC
857 end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -