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

📄 app.txt

📁 ATMEL ARM7 SAM64 Porting ucos / Keil ARM VER3.04。不同于其它
💻 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 + -