?? app.txt
字號:
; generated by ARM/Thumb C/C++ Compiler with , RVCT3.0 [Build 951] for uVision
; commandline ArmCC [--debug -c --asm --interleave -o.\ULINK-RAM\Obj\app.o --device=DARMATS --apcs=interwork -I..\..\..\..\uCOS-II\Source -I..\..\..\..\uCOS-II\Ports\ARM\Generic\KEILRV -I.\APP -I.\BSP -IC:\DEVELOP\Keil\ARM\INC\Atmel\SAM7S APP\app.c]
ARM
AREA ||.text.7||, CODE, READONLY, ALIGN=2
freq PROC
;;;58 const unsigned int pin = AT91C_PA14_SPCK;
;;;59 AT91C_BASE_PIOA->PIO_PER = pin; // I/O 線或外設功能選擇
000000 e3a00901 MOV r0,#0x4000
000004 e3a01000 MOV r1,#0
000008 e5010c00 STR r0,[r1,#-0xc00]
;;;60 AT91C_BASE_PIOA->PIO_OER = pin; // 輸出控制
00000c e5010bf0 STR r0,[r1,#-0xbf0]
;;;61 AT91C_BASE_PIOA->PIO_IDR = pin; //輸入變化中斷
000010 e5010bbc STR r0,[r1,#-0xbbc]
;;;62
;;;63 while(1) {
;;;64 AT91C_BASE_PIOA->PIO_CODR = pin;
|L1.20|
000014 e5010bcc STR r0,[r1,#-0xbcc]
;;;65 __asm("nop");
000018 e1a00000 MOV r0,r0
;;;66 AT91C_BASE_PIOA->PIO_SODR = pin;
00001c e5010bd0 STR r0,[r1,#-0xbd0]
000020 eafffffb B |L1.20| ;63
;;;67 }
;;;68 }
ENDP
AppStartTask PROC
;;;112 static void AppStartTask (void *p_arg)
;;;113 {
|L1.36|
000024 e92d4070 PUSH {r4-r6,lr}
;;;114 INT8U i;
;;;115
;;;116
;;;117 (void)p_arg;
;;;118
;;;119 LED_Init(); /* Initialize the I/Os for the LEDs */
000028 ebfffffe BL LED_Init
;;;120 Tmr_TickInit(); /* Initialize uC/OS-II's Tick Rate */
00002c ebfffffe BL Tmr_TickInit
;;;121
;;;122 #if OS_TASK_STAT_EN > 0
;;;123 OSStatInit(); /* Determine CPU capacity */
000030 ebfffffe BL OSStatInit
;;;124 #endif
;;;125
;;;126 LED_Off(BSP_LED_ALL); /* Turn OFF all the LEDs */
000034 e3a00000 MOV r0,#0
000038 ebfffffe BL LED_Off
;;;127
;;;128 while (TRUE) { /* Task body, always written as an infinite loop. */
;;;129 for (i = 1; i <= 4; i++) {
|L1.60|
00003c e3a04001 MOV r4,#1
;;;130 LED_On(i);
|L1.64|
000040 e1a00004 MOV r0,r4
000044 ebfffffe BL LED_On
;;;131 OSTimeDlyHMSM(0, 0, 0, 50);
000048 e3a02000 MOV r2,#0
00004c e3a03032 MOV r3,#0x32
000050 e1a01002 MOV r1,r2
000054 e1a00002 MOV r0,r2
000058 ebfffffe BL OSTimeDlyHMSM
;;;132 LED_Off(i);
00005c e1a00004 MOV r0,r4
000060 ebfffffe BL LED_Off
000064 e2840001 ADD r0,r4,#1 ;129
000068 e20040ff AND r4,r0,#0xff ;129
00006c e3540004 CMP r4,#4 ;129
000070 9afffff2 BLS |L1.64| ;129
;;;133 }
;;;134 for (i = 1; i <= 4; i++) {
000074 e3a04001 MOV r4,#1
;;;135 LED_On(5 - i);
|L1.120|
000078 e2645005 RSB r5,r4,#5
00007c e20500ff AND r0,r5,#0xff
000080 ebfffffe BL LED_On
;;;136 OSTimeDlyHMSM(0, 0, 0, 50);
000084 e3a02000 MOV r2,#0
000088 e3a03032 MOV r3,#0x32
00008c e1a01002 MOV r1,r2
000090 e1a00002 MOV r0,r2
000094 ebfffffe BL OSTimeDlyHMSM
;;;137 LED_Off(5 - i);
000098 e20500ff AND r0,r5,#0xff
00009c ebfffffe BL LED_Off
0000a0 e2840001 ADD r0,r4,#1 ;134
0000a4 e20040ff AND r4,r0,#0xff ;134
0000a8 e3540004 CMP r4,#4 ;134
0000ac 9afffff1 BLS |L1.120| ;134
0000b0 eaffffe1 B |L1.60| ;134
;;;138 }
;;;139 }
;;;140 }
ENDP
main PROC
;;;70 int main (void)
;;;71 {
0000b4 e52de004 PUSH {lr}
0000b8 e24dd01c SUB sp,sp,#0x1c
;;;72 #if OS_TASK_NAME_SIZE > 11
;;;73 INT8U err;
;;;74 #endif
;;;75
;;;76 BSP_IntCtrlInit(); /* Initialize the Interrupt Controller */
0000bc ebfffffe BL BSP_IntCtrlInit
;;;77
;;;78 OSInit(); /* Initialize "uC/OS-II, The Real-Time Kernel" */
0000c0 ebfffffe BL OSInit
;;;79
;;;80
;;;81 OSTaskCreateExt(AppStartTask,
0000c4 e59f0048 LDR r0,|L1.276|
0000c8 e3a03003 MOV r3,#3
0000cc e3a02000 MOV r2,#0
0000d0 e3a01080 MOV r1,#0x80
0000d4 e98d000f STMIB sp,{r0-r3}
0000d8 e3a03005 MOV r3,#5
0000dc e2802f7f ADD r2,r0,#0x1fc
0000e0 e3a01000 MOV r1,#0
0000e4 e24f00c8 ADR r0,|L1.36|
0000e8 e58d3000 STR r3,[sp,#0]
0000ec ebfffffe BL OSTaskCreateExt
;;;82 (void *)0,
;;;83 (OS_STK *)&AppStartTaskStk[TASK_STK_SIZE-1],
;;;84 TASK_START_PRIO,
;;;85 TASK_START_PRIO,
;;;86 (OS_STK *)&AppStartTaskStk[0],
;;;87 TASK_STK_SIZE,
;;;88 (void *)0,
;;;89 OS_TASK_OPT_STK_CHK | OS_TASK_OPT_STK_CLR);
;;;90
;;;91 #if OS_TASK_NAME_SIZE > 11
;;;92 OSTaskNameSet(TASK_START_PRIO, "Start Task", &err);
0000f0 e28d2018 ADD r2,sp,#0x18
0000f4 e28f101c ADR r1,|L1.280|
0000f8 e3a00005 MOV r0,#5
0000fc ebfffffe BL OSTaskNameSet
;;;93 #endif
;;;94
;;;95 OSStart(); /* Start multitasking (i.e. give control to uC/OS-II) */
000100 ebfffffe BL OSStart
;;;96 }
000104 e28dd01c ADD sp,sp,#0x1c
000108 e49de004 POP {lr}
00010c e3a00000 MOV r0,#0
000110 e12fff1e BX lr
|L1.276|
000114 00000000 DCD ||.bss.5||
|L1.280|
000118 72617453 DCB "Star"
00011c 61542074 DCB "t Ta"
000120 00006b73 DCB "sk\0\0"
ENDP
AREA ||.bss.5||, NOINIT, ALIGN=2
AppStartTaskStk
% 512
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -