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