⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rtx_config.txt

📁 使用STR710的SPI接口访问外部EEPROM的例子程序.使用KEIL UV3编译.使用了MDK3.05操作系统.
💻 TXT
📖 第 1 页 / 共 3 页
字号:
000230  6800              LDR      r0,[r0,#0]
000232  4934              LDR      r1,|L1.772|
000234  4288              CMP      r0,r1
000236  d001              BEQ      |L1.572|
;;;474             os_stk_overflow ();
                  |L1.568|
000238  f7ff fffe         BL       os_stk_overflow
;;;475          }
;;;476       }
;;;477    #endif
;;;478       os_runtask->full_ctx = __FALSE;
                  |L1.572|
00023c  2100              MOVS     r1,#0
00023e  4821              LDR      r0,|L1.708|
000240  6800              LDR      r0,[r0,#0]  ; os_runtask
000242  3020              ADDS     r0,r0,#0x20
000244  7041              STRB     r1,[r0,#1]
;;;479       os_runtask = p_new;
000246  481f              LDR      r0,|L1.708|
000248  6004              STR      r4,[r0,#0]  ; os_runtask
;;;480       p_new->state = RUNNING;
00024a  2002              MOVS     r0,#2
00024c  7060              STRB     r0,[r4,#1]
;;;481    #if (OS_ROBIN == 1)
;;;482       if (p_new->full_ctx == __TRUE) {
00024e  2021              MOVS     r0,#0x21
000250  5d00              LDRB     r0,[r0,r4]
000252  2801              CMP      r0,#1
000254  d102              BNE      |L1.604|
;;;483          os_tsk_robin = p_new;
000256  481c              LDR      r0,|L1.712|
000258  3008              ADDS     r0,r0,#8
00025a  6004              STR      r4,[r0,#0]  ; os_tsk_robin
;;;484       }
;;;485    #endif
;;;486       /* Tsk_Unlock */
;;;487       OS_UNLOCK();
                  |L1.604|
00025c  481d              LDR      r0,|L1.724|
00025e  3840              SUBS     r0,r0,#0x40
000260  6800              LDR      r0,[r0,#0]
000262  2101              MOVS     r1,#1
000264  4308              ORRS     r0,r0,r1
000266  491b              LDR      r1,|L1.724|
000268  3940              SUBS     r1,r1,#0x40
00026a  6008              STR      r0,[r1,#0]
;;;488    } /* end of os_switch_tasks */
00026c  bc10              POP      {r4}
00026e  bc08              POP      {r3}
000270  4718              BX       r3
                          ENDP

                  os_chk_robin PROC
;;;492    
;;;493    void os_chk_robin (void) {
000272  b510              PUSH     {r4,lr}
;;;494       /* Check if Round Robin timeout expired and switch to the next ready task.*/
;;;495       /* This function is called from the "os_clock_demon()" task scheduler.    */
;;;496    #if (OS_ROBIN == 1)
;;;497       P_TCB p_new;
;;;498    
;;;499       if (os_rdy.p_lnk != os_tsk_robin) {
000274  4824              LDR      r0,|L1.776|
000276  6840              LDR      r0,[r0,#4]  ; os_rdy
000278  4913              LDR      r1,|L1.712|
00027a  3108              ADDS     r1,r1,#8
00027c  6809              LDR      r1,[r1,#0]  ; os_tsk_robin
00027e  4288              CMP      r0,r1
000280  d008              BEQ      |L1.660|
;;;500          os_robin_time = os_time + OS_ROBINTOUT;
000282  4822              LDR      r0,|L1.780|
000284  8800              LDRH     r0,[r0,#0]  ; os_time
000286  1d40              ADDS     r0,r0,#5
000288  490f              LDR      r1,|L1.712|
00028a  1d09              ADDS     r1,r1,#4
00028c  8008              STRH     r0,[r1,#0]  ; os_robin_time
;;;501          return;
;;;502          }
;;;503       if (os_robin_time == os_time) {
;;;504          /* Round Robin timeout has expired. */
;;;505          os_robin_time += OS_ROBINTOUT;
;;;506          p_new = os_get_first (&os_rdy);
;;;507          os_put_prio ((P_XCB)&os_rdy, p_new);
;;;508          }
;;;509    #endif
;;;510    } /* end of os_chk_robin */
                  |L1.654|
00028e  bc10              POP      {r4}
000290  bc08              POP      {r3}
000292  4718              BX       r3
                  |L1.660|
000294  480c              LDR      r0,|L1.712|           ;503
000296  1d00              ADDS     r0,r0,#4              ;503
000298  8800              LDRH     r0,[r0,#0]            ;503  ; os_robin_time
00029a  491c              LDR      r1,|L1.780|           ;503
00029c  8809              LDRH     r1,[r1,#0]            ;503  ; os_time
00029e  4288              CMP      r0,r1                 ;503
0002a0  d10e              BNE      |L1.704|              ;503
0002a2  4809              LDR      r0,|L1.712|           ;505
0002a4  1d00              ADDS     r0,r0,#4              ;505
0002a6  8800              LDRH     r0,[r0,#0]            ;505  ; os_robin_time
0002a8  1d40              ADDS     r0,r0,#5              ;505
0002aa  4907              LDR      r1,|L1.712|           ;505
0002ac  1d09              ADDS     r1,r1,#4              ;505
0002ae  8008              STRH     r0,[r1,#0]            ;505  ; os_robin_time
0002b0  4815              LDR      r0,|L1.776|           ;506
0002b2  f7ff fffe         BL       os_get_first          ;506
0002b6  0004              MOVS     r4,r0                 ;506
0002b8  0021              MOVS     r1,r4                 ;507
0002ba  4813              LDR      r0,|L1.776|           ;507
0002bc  f7ff fffe         BL       os_put_prio           ;507
                  |L1.704|
0002c0  e7e5              B        |L1.654|
0002c2  0000              DCW      0000
                  |L1.708|
0002c4  00000000          DCD      os_runtask
                  |L1.712|
0002c8  00000000          DCD      ||.data||
                  |L1.716|
0002cc  e0009000          DCD      0xe0009000
                  |L1.720|
0002d0  0000f7ff          DCD      0x0000f7ff
                  |L1.724|
0002d4  fffff840          DCD      0xfffff840
                  |L1.728|
0002d8  00000000          DCD      os_clock_TCB
                  |L1.732|
0002dc  000004ab          DCD      0x000004ab
                  |L1.736|
0002e0  00000863          DCD      0x00000863
                  |L1.740|
0002e4  00008010          DCD      0x00008010
                  |L1.744|
0002e8  00000000          DCD      os_clock_interrupt
                  |L1.748|
0002ec  00000000          DCD      os_active_TCB
                  |L1.752|
0002f0  00000000          DCD      ||.bss.5||
                  |L1.756|
0002f4  800012c0          DCD      0x800012c0
                  |L1.760|
0002f8  00009610          DCD      0x00009610
                  |L1.764|
0002fc  00000130          DCD      ||.bss.5|| + 304
                  |L1.768|
000300  40000010          DCD      0x40000010
                  |L1.772|
000304  e25a2ea5          DCD      0xe25a2ea5
                  |L1.776|
000308  00000000          DCD      os_rdy
                  |L1.780|
00030c  00000000          DCD      os_time
                          ENDP



                          AREA ||.text.201||, CODE, READONLY, ALIGN=2

                          ARM
                  os_def_interrupt PROC
;;;264       OS_IACK();
;;;265    }
000000  e25ef004          SUBS     pc,lr,#4
                          ENDP



                          AREA ||.text.210||, CODE, READONLY, ALIGN=2

                          THUMB
                  os_tmr_force_irq PROC
;;;288       /* Force a timer interrupt.                                               */
;;;289       OS_TFIRQ();
000000  4803              LDR      r0,|L3.16|
000002  8b00              LDRH     r0,[r0,#0x18]
000004  2101              MOVS     r1,#1
000006  0349              LSLS     r1,r1,#13
000008  4308              ORRS     r0,r0,r1
00000a  4901              LDR      r1,|L3.16|
00000c  8308              STRH     r0,[r1,#0x18]
;;;290    } /* end of os_tmr_force_irq */
00000e  4770              BX       lr
                  |L3.16|
000010  e0009000          DCD      0xe0009000
                          ENDP



                          AREA ||.text.219||, CODE, READONLY, ALIGN=2

                  os_tmr_inspect_ovf PROC
;;;302       /* Inspect current state of timer overflow flag.                          */
;;;303       return (OS_TOVF);
000000  4802              LDR      r0,|L4.12|
000002  8b80              LDRH     r0,[r0,#0x1c]
000004  2101              MOVS     r1,#1
000006  02c9              LSLS     r1,r1,#11
000008  4008              ANDS     r0,r0,r1
;;;304    } /* end of os_tmr_inspect_ovf */
00000a  4770              BX       lr
                  |L4.12|
00000c  e0009000          DCD      0xe0009000
                          ENDP



                          AREA ||.text.228||, CODE, READONLY, ALIGN=1

                  os_alloc_TMR PROC
;;;375    #else
;;;376       return (NULL);
000000  2000              MOVS     r0,#0
;;;377    #endif
;;;378    } /* end of os_alloc_TMR */
000002  4770              BX       lr
                          ENDP



                          AREA ||.data||, DATA, ALIGN=2

                  ||task_id@os_stk_overflow_0||
                          DCD      0x00000000
                  os_robin_time
                          DCB      0x00,0x00
                          DCB      0x00,0x00
                  os_tsk_robin
                          DCD      0x00000000
                  os_del_flag
                          DCB      0x00


                          AREA ||.constdata.1||, DATA, READONLY, ALIGN=2

                  os_maxtaskrun
                          DCW      0x0006
                          DCB      0x00,0x00
                  os_stackinfo
                          DCD      0x010012c0
                  os_clockrate
                          DCD      0x00002710
                  os_timernum
                          DCD      0x00000000
                  os_rrobin
                          DCD      0x00010005


                          AREA ||.bss.5||, NOINIT, ALIGN=3

                  m_tcb
                          % 304
                  m_stk
                          % 38416
                  os_active_TCB
                          % 24

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -