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

📄 rtx_config.txt

📁 使用STR710的SPI接口访问外部EEPROM的例子程序.使用KEIL UV3编译.使用了MDK3.05操作系统.
💻 TXT
📖 第 1 页 / 共 3 页
字号:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.0 [Build 951] for uVision
; commandline ArmCC [--thumb --debug -c --asm --interleave -o.\output\rtx_config.o --feedback=.\output\Testat45db161.fed --device=DARMST --apcs=interwork -O0 -Id:\Keil\ARM\INC\ST\71x src\configuration\RTX_Config.c]

                          THUMB

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

                  os_idle_demon PROC
;;;210    
;;;211       for (;;) {
000000  46c0              MOV      r8,r8
                  |L1.2|
000002  e7fe              B        |L1.2|
;;;212       /* HERE: include here optional user code to be executed when no task runs.*/
;;;213       }
;;;214    } /* end of os_idle_demon */
                          ENDP

                  os_tmr_call PROC
;;;222       /* HERE: include here optional user code to be executed on timeout.       */
;;;223       info = info;
000004  46c0              MOV      r8,r8
;;;224    } /* end of os_tmr_call */
000006  4770              BX       lr
                          ENDP

                  os_stk_overflow PROC
;;;228    #if (OS_STKCHECK == 1)
;;;229    static void os_stk_overflow (void) {
000008  b510              PUSH     {r4,lr}
;;;230       /* This function is called when a stack overflow is detected.             */
;;;231       /*  'os_runtask' points to a TCB of a task which has a stack overflow     */
;;;232       /*  'task_id'    holds a task id for this task                            */
;;;233       /* HERE: include here optional code to be executed on stack overflow.     */
;;;234       static volatile OS_TID task_id;
;;;235    
;;;236       /* Get a task identification for a task with stack problem to 'task_id'.*/
;;;237       task_id = os_get_TID (os_runtask);
00000a  48ae              LDR      r0,|L1.708|
00000c  6800              LDR      r0,[r0,#0]  ; os_runtask
00000e  f7ff fffe         BL       os_get_TID
000012  49ad              LDR      r1,|L1.712|
000014  6008              STR      r0,[r1,#0]  ; task_id@os_stk_overflow_0
;;;238       /* Use a uVision 'RTX Kernel' debug dialog page 'Active Tasks' to      */
;;;239       /* check which task has got a stack overflow and needs a bigger stack. */
;;;240       for (;;);
000016  46c0              MOV      r8,r8
                  |L1.24|
000018  e7fe              B        |L1.24|
;;;241    }
                          ENDP

                  os_clock_interrupt0 PROC
;;;245    
;;;246    U32 os_clock_interrupt0 (U32 stack) {
00001a  b510              PUSH     {r4,lr}
00001c  0004              MOVS     r4,r0
;;;247       /* Do task switch to clock demon: entered upon a clock interrupt. Saving */
;;;248       /* and restoring context is written in assembly (module: Irq_RTX.s)      */
;;;249       OS_TIACK();
00001e  48ab              LDR      r0,|L1.716|
000020  8b00              LDRH     r0,[r0,#0x18]
000022  2101              MOVS     r1,#1
000024  0349              LSLS     r1,r1,#13
000026  4388              BICS     r0,r0,r1
000028  49a8              LDR      r1,|L1.716|
00002a  8308              STRH     r0,[r1,#0x18]
00002c  48a8              LDR      r0,|L1.720|
00002e  8388              STRH     r0,[r1,#0x1c]
000030  2001              MOVS     r0,#1
000032  49a8              LDR      r1,|L1.724|
000034  6008              STR      r0,[r1,#0]
;;;250       OS_LOCK();
000036  48a7              LDR      r0,|L1.724|
000038  3840              SUBS     r0,r0,#0x40
00003a  6800              LDR      r0,[r0,#0]
00003c  0840              LSRS     r0,r0,#1
00003e  0040              LSLS     r0,r0,#1
000040  49a4              LDR      r1,|L1.724|
000042  3940              SUBS     r1,r1,#0x40
000044  6008              STR      r0,[r1,#0]
;;;251       os_runtask->tsk_stack = stack;
000046  489f              LDR      r0,|L1.708|
000048  6800              LDR      r0,[r0,#0]  ; os_runtask
00004a  6244              STR      r4,[r0,#0x24]
;;;252       os_runtask->full_ctx = __TRUE;
00004c  2101              MOVS     r1,#1
00004e  489d              LDR      r0,|L1.708|
000050  6800              LDR      r0,[r0,#0]  ; os_runtask
000052  3020              ADDS     r0,r0,#0x20
000054  7041              STRB     r1,[r0,#1]
;;;253       os_runtask->state  = READY;
000056  2001              MOVS     r0,#1
000058  499a              LDR      r1,|L1.708|
00005a  6809              LDR      r1,[r1,#0]  ; os_runtask
00005c  7048              STRB     r0,[r1,#1]
;;;254       os_put_rdy_first (os_runtask);
00005e  4899              LDR      r0,|L1.708|
000060  6800              LDR      r0,[r0,#0]  ; os_runtask
000062  f7ff fffe         BL       os_put_rdy_first
;;;255       os_runtask = &os_clock_TCB;
000066  489c              LDR      r0,|L1.728|
000068  4996              LDR      r1,|L1.708|
00006a  6008              STR      r0,[r1,#0]  ; os_runtask
;;;256       os_clock_TCB.state = RUNNING;
00006c  2002              MOVS     r0,#2
00006e  499a              LDR      r1,|L1.728|
000070  7048              STRB     r0,[r1,#1]  ; os_clock_TCB
;;;257       return (os_runtask->tsk_stack);
000072  4894              LDR      r0,|L1.708|
000074  6800              LDR      r0,[r0,#0]  ; os_runtask
000076  6a40              LDR      r0,[r0,#0x24]
;;;258    } /* end of os_clock_interrupt0 */
000078  bc10              POP      {r4}
00007a  bc08              POP      {r3}
00007c  4718              BX       r3
                          ENDP

                  os_tmr_init PROC
;;;271       /* called at the system startup.                                        */
;;;272       OS_TINIT();
00007e  4897              LDR      r0,|L1.732|
000080  4992              LDR      r1,|L1.716|
000082  8188              STRH     r0,[r1,#0xc]
000084  4896              LDR      r0,|L1.736|
000086  8308              STRH     r0,[r1,#0x18]
000088  4896              LDR      r0,|L1.740|
00008a  8288              STRH     r0,[r1,#0x14]
00008c  4896              LDR      r0,|L1.744|
00008e  1489              ASRS     r1,r1,#18
000090  6188              STR      r0,[r1,#0x18]
000092  0400              LSLS     r0,r0,#16
000094  2101              MOVS     r1,#1
000096  4308              ORRS     r0,r0,r1
000098  498e              LDR      r1,|L1.724|
00009a  6208              STR      r0,[r1,#0x20]
00009c  488d              LDR      r0,|L1.724|
00009e  3840              SUBS     r0,r0,#0x40
0000a0  6a00              LDR      r0,[r0,#0x20]
0000a2  2101              MOVS     r1,#1
0000a4  4308              ORRS     r0,r0,r1
0000a6  498b              LDR      r1,|L1.724|
0000a8  3940              SUBS     r1,r1,#0x40
0000aa  6208              STR      r0,[r1,#0x20]
;;;273    #if (OS_ROBIN == 1)
;;;274       os_robin_time = OS_ROBINTOUT;
0000ac  2005              MOVS     r0,#5
0000ae  4986              LDR      r1,|L1.712|
0000b0  1d09              ADDS     r1,r1,#4
0000b2  8008              STRH     r0,[r1,#0]  ; os_robin_time
;;;275    #endif
;;;276    } /* end of os_tmr_init */
0000b4  4770              BX       lr
                          ENDP

                  os_tmr_reload PROC
;;;282       OS_TREL();
;;;283    } /* end of os_tmr_reload */
0000b6  4770              BX       lr
                          ENDP

                  os_tmr_inspect_cnt PROC
;;;295       /* Inspect current value of rtx timer.                                    */
;;;296       return (OS_TVAL);
0000b8  4884              LDR      r0,|L1.716|
0000ba  8a00              LDRH     r0,[r0,#0x10]
0000bc  1d00              ADDS     r0,r0,#4
0000be  0400              LSLS     r0,r0,#16
0000c0  0c00              LSRS     r0,r0,#16
;;;297    } /* end of os_tmr_inspect_cnt */
0000c2  4770              BX       lr
                          ENDP

                  __SWI_7 PROC
;;;312       /* pheripheral may run with a slower clock than CPU.                    */
;;;313       OS_LOCK();
0000c4  4883              LDR      r0,|L1.724|
0000c6  3840              SUBS     r0,r0,#0x40
0000c8  6800              LDR      r0,[r0,#0]
0000ca  0840              LSRS     r0,r0,#1
0000cc  0040              LSLS     r0,r0,#1
0000ce  4981              LDR      r1,|L1.724|
0000d0  3940              SUBS     r1,r1,#0x40
0000d2  6008              STR      r0,[r1,#0]
;;;314       /* Wait for 'OS_LOCK' to become active. */
;;;315       __nop();
0000d4  46c0              MOV      r8,r8
;;;316       __nop();
0000d6  46c0              MOV      r8,r8
;;;317       __nop();
0000d8  46c0              MOV      r8,r8
;;;318    }
0000da  4770              BX       lr
                          ENDP

                  tsk_lock PROC
;;;321    
;;;322    void tsk_lock (void) {
0000dc  b510              PUSH     {r4,lr}
;;;323       /* Lock out tasks: prevents task switching by locking out scheduler       */
;;;324       /* activation on interrupt.                                            .  */
;;;325       os_lock ();
0000de  df07              SVC      0x7  ; formerly SWI
;;;326    } /* end of tsk_lock */
0000e0  bc10              POP      {r4}
0000e2  bc08              POP      {r3}
0000e4  4718              BX       r3
                          ENDP

                  tsk_unlock PROC
;;;331       /* Enable AR System Tick Timer Interrupts.                                */
;;;332       OS_UNLOCK();
0000e6  487b              LDR      r0,|L1.724|
0000e8  3840              SUBS     r0,r0,#0x40
0000ea  6800              LDR      r0,[r0,#0]
0000ec  2101              MOVS     r1,#1
0000ee  4308              ORRS     r0,r0,r1
0000f0  4978              LDR      r1,|L1.724|
0000f2  3940              SUBS     r1,r1,#0x40
0000f4  6008              STR      r0,[r1,#0]
;;;333    } /* end of tsk_unlock */
0000f6  4770              BX       lr
                          ENDP

                  os_init_mem PROC
;;;336    
;;;337    void os_init_mem (void) {
0000f8  b510              PUSH     {r4,lr}
;;;338       U32 i;
;;;339    
;;;340       for (i = 0; i < OS_TASKCNT; i++) {
0000fa  2400              MOVS     r4,#0
0000fc  e004              B        |L1.264|
;;;341          os_active_TCB[i] = NULL;
                  |L1.254|
0000fe  2000              MOVS     r0,#0
000100  00a1              LSLS     r1,r4,#2
000102  4a7a              LDR      r2,|L1.748|
000104  5050              STR      r0,[r2,r1]
000106  1c64              ADDS     r4,r4,#1              ;340
                  |L1.264|
000108  2c06              CMP      r4,#6                 ;340
00010a  d3f8              BCC      |L1.254|              ;340
;;;342       }
;;;343       _init_box (&m_tcb, sizeof(m_tcb), sizeof(struct OS_TCB));
00010c  2230              MOVS     r2,#0x30
00010e  21ff              MOVS     r1,#0xff
000110  312d              ADDS     r1,r1,#0x2d
000112  4877              LDR      r0,|L1.752|
000114  f7ff fffe         BL       _init_box
;;;344       _init_box8 (&m_stk, sizeof(m_stk), OS_STKSIZE*4);
000118  4a76              LDR      r2,|L1.756|
00011a  4977              LDR      r1,|L1.760|
00011c  4877              LDR      r0,|L1.764|
00011e  f7ff fffe         BL       _init_box
;;;345    #if (OS_TIMERCNT != 0)
;;;346       _init_box (&m_tmr, sizeof(m_tmr), sizeof(struct OS_TMR));

⌨️ 快捷键说明

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