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

📄 fio.lst

📁 lpc2478开发板基于IAR编译器移植ucos实验例程
💻 LST
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.42A/W32 EVALUATION    12/Dec/2008  17:14:24 #
# Copyright 1999-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode        =  arm                                                  #
#    Endian          =  little                                               #
#    Stack alignment =  4                                                    #
#    Source file     =  E:\IAR_2478\IAR_2478\26uCOS\Src\uCOS\Target\fio.c    #
#    Command line    =  E:\IAR_2478\IAR_2478\26uCOS\Src\uCOS\Target\fio.c    #
#                       -lCN E:\IAR_2478\IAR_2478\26uCOS\Src\uCOS\RAM_Debug\ #
#                       List\ -o E:\IAR_2478\IAR_2478\26uCOS\Src\uCOS\RAM_De #
#                       bug\Obj\ -z2 --no_cse --no_unroll --no_inline        #
#                       --no_code_motion --no_tbaa --no_clustering           #
#                       --no_scheduling --debug --cpu_mode arm --endian      #
#                       little --cpu ARM7TDMI-S --stack_align 4 -e --fpu     #
#                       None --dlib_config "C:\Program Files\IAR             #
#                       Systems\Embedded Workbench 4.0                       #
#                       Evaluation\arm\LIB\dl4tpannl8n.h" -I                 #
#                       E:\IAR_2478\IAR_2478\26uCOS\Src\uCOS\include\ -I     #
#                       E:\IAR_2478\IAR_2478\26uCOS\Src\uCOS\ucos-ii\include #
#                       \ -I "C:\Program Files\IAR Systems\Embedded          #
#                       Workbench 4.0 Evaluation\arm\INC\"                   #
#    List file       =  E:\IAR_2478\IAR_2478\26uCOS\Src\uCOS\RAM_Debug\List\ #
#                       fio.lst                                              #
#    Object file     =  E:\IAR_2478\IAR_2478\26uCOS\Src\uCOS\RAM_Debug\Obj\f #
#                       io.r79                                               #
#                                                                            #
#                                                                            #
##############################################################################

E:\IAR_2478\IAR_2478\26uCOS\Src\uCOS\Target\fio.c
      1          /*****************************************************************************
      2           *   fio.c:  Fast I/O module file for NXP LPC24xx Family Microprocessors
      3           *
      4           *   Copyright(C) 2006, NXP Semiconductor
      5           *   All rights reserved.
      6           *
      7           *   History
      8           *   2006.07.13  ver 1.00    Prelimnary version, first Release
      9           *
     10          ******************************************************************************/
     11          #include "LPC2468.h"				/* LPC24xx definitions */
     12          #include "type.h"
     13          #include "irq.h"
     14          #include "timer.h"
     15          #include "fio.h"
     16          
     17          /*****************************************************************************
     18          ** Function name:		GPIOInit
     19          **
     20          ** Descriptions:		initialize GPIO port
     21          **
     22          ** parameters:			port number and port type, Fast I/O or
     23          ** 						regular GPIO, direction
     24          ** Returned value:		None
     25          **
     26          *****************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
     27          void GPIOInit( DWORD PortNum, DWORD PortType, DWORD PortDir )
     28          {
     29              if ( (PortType == REGULAR_PORT) && ((PortNum == 0) || (PortNum == 1)) )
   \                     GPIOInit:
   \   00000000   020051E3           CMP      R1,#+2
   \   00000004   1800001A           BNE      ??GPIOInit_0
   \   00000008   000050E3           CMP      R0,#+0
   \   0000000C   0100000A           BEQ      ??GPIOInit_1
   \   00000010   010050E3           CMP      R0,#+1
   \   00000014   1400001A           BNE      ??GPIOInit_0
     30          	{
     31          		SCS &= ~GPIOM;		/* set GPIOx to use regular I/O */
   \                     ??GPIOInit_1:
   \   00000018   B8309FE5           LDR      R3,??GPIOInit_2  ;; 0xffffffffe01fc1a0
   \   0000001C   B4C09FE5           LDR      R12,??GPIOInit_2  ;; 0xffffffffe01fc1a0
   \   00000020   00C09CE5           LDR      R12,[R12, #+0]
   \   00000024   01C0DCE3           BICS     R12,R12,#0x1
   \   00000028   00C083E5           STR      R12,[R3, #+0]
     32          		if ( PortDir == DIR_OUT )
   \   0000002C   010052E3           CMP      R2,#+1
   \   00000030   0600001A           BNE      ??GPIOInit_3
     33          		{
     34          			(*(volatile unsigned long *)(REGULAR_PORT_DIR_BASE
     35          					+ PortNum * REGULAR_PORT_DIR_INDEX)) = 0xFFFFFFFF;
   \   00000034   1030A0E3           MOV      R3,#+16
   \   00000038   8EC2A0E3           MOV      R12,#-536870904
   \   0000003C   A0CB8CE3           ORR      R12,R12,#0x28000
   \   00000040   93C02CE0           MLA      R12,R3,R0,R12
   \   00000044   0030E0E3           MVN      R3,#+0
   \   00000048   00308CE5           STR      R3,[R12, #+0]
   \   0000004C   200000EA           B        ??GPIOInit_4
     36          		}
     37          		else
     38          		{
     39          			(*(volatile unsigned long *)(REGULAR_PORT_DIR_BASE
     40          					+ PortNum * REGULAR_PORT_DIR_INDEX)) = 0x00000000;
   \                     ??GPIOInit_3:
   \   00000050   1030A0E3           MOV      R3,#+16
   \   00000054   8EC2A0E3           MOV      R12,#-536870904
   \   00000058   A0CB8CE3           ORR      R12,R12,#0x28000
   \   0000005C   93C02CE0           MLA      R12,R3,R0,R12
   \   00000060   0030A0E3           MOV      R3,#+0
   \   00000064   00308CE5           STR      R3,[R12, #+0]
   \   00000068   190000EA           B        ??GPIOInit_4
     41          		}
     42          	}
     43          	else if ( PortType == FAST_PORT )
   \                     ??GPIOInit_0:
   \   0000006C   010051E3           CMP      R1,#+1
   \   00000070   1700001A           BNE      ??GPIOInit_4
     44          	{
     45          		if ( (PortNum == 0) || (PortNum == 1) )
   \   00000074   000050E3           CMP      R0,#+0
   \   00000078   0100000A           BEQ      ??GPIOInit_5
   \   0000007C   010050E3           CMP      R0,#+1
   \   00000080   0400001A           BNE      ??GPIOInit_6
     46          		{
     47          			SCS |= GPIOM;	/* set GPIOx to use Fast I/O */
   \                     ??GPIOInit_5:
   \   00000084   4C309FE5           LDR      R3,??GPIOInit_2  ;; 0xffffffffe01fc1a0
   \   00000088   48C09FE5           LDR      R12,??GPIOInit_2  ;; 0xffffffffe01fc1a0
   \   0000008C   00C09CE5           LDR      R12,[R12, #+0]
   \   00000090   01C09CE3           ORRS     R12,R12,#0x1
   \   00000094   00C083E5           STR      R12,[R3, #+0]
     48          		}
     49          		if ( PortDir == DIR_OUT )
   \                     ??GPIOInit_6:
   \   00000098   010052E3           CMP      R2,#+1
   \   0000009C   0600001A           BNE      ??GPIOInit_7
     50          		{
     51          			(*(volatile unsigned long *)(HS_PORT_DIR_BASE
     52          					+ PortNum * HS_PORT_DIR_INDEX)) = 0xFFFFFFFF;
   \   000000A0   2030A0E3           MOV      R3,#+32
   \   000000A4   FFC5A0E3           MOV      R12,#+1069547520
   \   000000A8   FFC98CE3           ORR      R12,R12,#0x3FC000
   \   000000AC   93C02CE0           MLA      R12,R3,R0,R12
   \   000000B0   0030E0E3           MVN      R3,#+0
   \   000000B4   00308CE5           STR      R3,[R12, #+0]
   \   000000B8   050000EA           B        ??GPIOInit_4
     53          		}
     54          		else
     55          		{
     56          			(*(volatile unsigned long *)(HS_PORT_DIR_BASE
     57          					+ PortNum * HS_PORT_DIR_INDEX)) = 0x00000000;
   \                     ??GPIOInit_7:
   \   000000BC   2030A0E3           MOV      R3,#+32
   \   000000C0   FFC5A0E3           MOV      R12,#+1069547520
   \   000000C4   FFC98CE3           ORR      R12,R12,#0x3FC000
   \   000000C8   93C02CE0           MLA      R12,R3,R0,R12
   \   000000CC   0030A0E3           MOV      R3,#+0
   \   000000D0   00308CE5           STR      R3,[R12, #+0]
     58              	}
     59          	}
     60              return;
   \                     ??GPIOInit_4:
   \   000000D4   0EF0A0E1           MOV      PC,LR            ;; return
   \                     ??GPIOInit_2:
   \   000000D8   A0C11FE0           DC32     0xffffffffe01fc1a0
     61          }
     62          

   \                                 In segment CODE, align 4, keep-with-next
     63          void LedsInit(void)               // 初始化led端口
     64          {
     65            FIO3CLR = 0x0f000000;            // P3.24~P3.27
   \                     LedsInit:
   \   00000000   F003E0E3           MVN      R0,#-1073741821
   \   00000004   FE0DC0E3           BIC      R0,R0,#0x3F80
   \   00000008   F016A0E3           MOV      R1,#+251658240
   \   0000000C   001080E5           STR      R1,[R0, #+0]
     66          }
   \   00000010   0EF0A0E1           MOV      PC,LR            ;; return
     67          

   \                                 In segment CODE, align 4, keep-with-next
     68          void LedOn(unsigned int n)       //  点亮第n个led
     69          {
     70            unsigned long LEDData=0x01000000;
   \                     LedOn:
   \   00000000   4027A0E3           MOV      R2,#+16777216
   \   00000004   0210B0E1           MOVS     R1,R2
     71            n = n % 4;                      //  总共4个灯
   \   00000008   030010E2           ANDS     R0,R0,#0x3       ;; Zero extend
     72            LEDData = LEDData << n;         //  移到对应位
   \   0000000C   1110B0E1           LSLS     R1,R1,R0
     73            FIO3SET = LEDData;              //  置1点亮
   \   00000010   7C22E0E3           MVN      R2,#-1073741817
   \   00000014   FE2DC2E3           BIC      R2,R2,#0x3F80
   \   00000018   001082E5           STR      R1,[R2, #+0]
     74          
     75          
     76          }
   \   0000001C   0EF0A0E1           MOV      PC,LR            ;; return
     77          

   \                                 In segment CODE, align 4, keep-with-next
     78          void LedOff(unsigned int n)        //  熄灭第n个led
     79          {
     80            unsigned long LEDData=0x01000000;
   \                     LedOff:
   \   00000000   4027A0E3           MOV      R2,#+16777216
   \   00000004   0210B0E1           MOVS     R1,R2
     81            n = n % 4;
   \   00000008   030010E2           ANDS     R0,R0,#0x3       ;; Zero extend
     82            LEDData = LEDData << n;
   \   0000000C   1110B0E1           LSLS     R1,R1,R0
     83            FIO3CLR = LEDData;              //  置0熄灭
   \   00000010   F023E0E3           MVN      R2,#-1073741821
   \   00000014   FE2DC2E3           BIC      R2,R2,#0x3F80
   \   00000018   001082E5           STR      R1,[R2, #+0]
     84          
     85          }
   \   0000001C   0EF0A0E1           MOV      PC,LR            ;; return
     86          
     87          /*********************************************************************************
     88          **                            End Of File
     89          *********************************************************************************/

   Maximum stack usage in bytes:

     Function CSTACK
     -------- ------
     GPIOInit     0
     LedOff       0
     LedOn        0
     LedsInit     0


   Segment part sizes:

     Function/Label Bytes
     -------------- -----
     GPIOInit        220
     LedsInit         20
     LedOn            32
     LedOff           32

 
 304 bytes in segment CODE
 
 304 bytes of CODE memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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