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

📄 uart.lst

📁 Cortex-M4+example
💻 LST
📖 第 1 页 / 共 3 页
字号:
###############################################################################
#                                                                             #
# IAR ANSI C/C++ Compiler V6.40.1.53790/W32 for ARM     09/Aug/2012  10:07:34 #
# Copyright 1999-2012 IAR Systems AB.                                         #
#                                                                             #
#    Cpu mode     =  thumb                                                    #
#    Endian       =  little                                                   #
#    Source file  =  C:\Users\305030973\Desktop\M4                            #
#                    example\01_light\src\Sources\C\Component_C\uart.c        #
#    Command line =  "C:\Users\305030973\Desktop\M4                           #
#                    example\01_light\src\Sources\C\Component_C\uart.c" -D    #
#                    IAR -D TWR_K60N512 -lCN "C:\Users\305030973\Desktop\M4   #
#                    example\01_light\bin\Flash\List\" -lB                    #
#                    "C:\Users\305030973\Desktop\M4                           #
#                    example\01_light\bin\Flash\List\" -o                     #
#                    "C:\Users\305030973\Desktop\M4                           #
#                    example\01_light\bin\Flash\Obj\" --no_cse --no_unroll    #
#                    --no_inline --no_code_motion --no_tbaa --no_clustering   #
#                    --no_scheduling --debug --endian=little --cpu=Cortex-M4  #
#                    -e --fpu=None --dlib_config "C:\Program Files\IAR        #
#                    Systems\Embedded Workbench 6.4_2\arm\INC\c\DLib_Config_N #
#                    ormal.h" -I "C:\Users\305030973\Desktop\M4               #
#                    example\01_light\src\Sources\H\" -I                      #
#                    "C:\Users\305030973\Desktop\M4                           #
#                    example\01_light\src\Sources\H\Component_H\" -I          #
#                    "C:\Users\305030973\Desktop\M4                           #
#                    example\01_light\src\Sources\H\Frame_H\" -I "C:\Program  #
#                    Files\IAR Systems\Embedded Workbench 6.4_2\arm\INC\" -I  #
#                    "C:\Program Files\IAR Systems\Embedded Workbench         #
#                    6.4_2\arm\INC\CLIB\" -Ol --use_c++_inline                #
#    List file    =  C:\Users\305030973\Desktop\M4                            #
#                    example\01_light\bin\Flash\List\uart.lst                 #
#    Object file  =  C:\Users\305030973\Desktop\M4                            #
#                    example\01_light\bin\Flash\Obj\uart.o                    #
#                                                                             #
#                                                                             #
###############################################################################

C:\Users\305030973\Desktop\M4 example\01_light\src\Sources\C\Component_C\uart.c
      1          //-------------------------------------------------------------------------*
      2          // 文件名: uart.c                                                          *
      3          // 说  明: uart构件源文件                                                  *
      4          //-------------------------------------------------------------------------*
      5          
      6          #include "uart.h"
      7          
      8          //-------------------------------------------------------------------------*
      9          //函数名: uart_init                                                        *
     10          //功  能: 初始化uartx模块。                                                *
     11          //参  数: uartch:串口号                                                    *
     12          //        sysclk:系统总线时钟,以MHz为单位                                 *
     13          //        baud:波特率,如9600,38400等,一般来说,速度越慢,通信越稳       *
     14          //返  回: 无                                                               *
     15          //说  明:                                                                  *
     16          //-------------------------------------------------------------------------*

   \                                 In section .text, align 2, keep-with-next
     17          void uart_init (UART_MemMapPtr uartch, uint32 sysclk, uint32 baud)
     18          {
   \                     uart_init:
   \   00000000   0xB430             PUSH     {R4,R5}
     19          	register uint16 sbr, brfa;
     20          	uint8 temp;
     21          
     22          	//使能引脚
     23          	if (uartch == UART0_BASE_PTR)
   \   00000002   0x....             LDR.N    R3,??DataTable0  ;; 0x4006a000
   \   00000004   0x4298             CMP      R0,R3
   \   00000006   0xD108             BNE.N    ??uart_init_0
     24          	{
     25          		//在PTD6上使能UART0_TXD功能
     26          		PORTD_PCR6 = PORT_PCR_MUX(0x3);
   \   00000008   0x....             LDR.N    R3,??DataTable0_1  ;; 0x4004c018
   \   0000000A   0xF44F 0x7440      MOV      R4,#+768
   \   0000000E   0x601C             STR      R4,[R3, #+0]
     27          		//在PTD7上使能UART0_RXD
     28          		PORTD_PCR7 = PORT_PCR_MUX(0x3); 
   \   00000010   0x....             LDR.N    R3,??DataTable0_2  ;; 0x4004c01c
   \   00000012   0xF44F 0x7440      MOV      R4,#+768
   \   00000016   0x601C             STR      R4,[R3, #+0]
   \   00000018   0xE03A             B.N      ??uart_init_1
     29          	}else if (uartch == UART1_BASE_PTR)
   \                     ??uart_init_0:
   \   0000001A   0x....             LDR.N    R3,??DataTable0_3  ;; 0x4006b000
   \   0000001C   0x4298             CMP      R0,R3
   \   0000001E   0xD108             BNE.N    ??uart_init_2
     30          	{
     31          		//在PTC4上使能UART1_TXD功能
     32          		PORTC_PCR4 = PORT_PCR_MUX(0x3); 
   \   00000020   0x....             LDR.N    R3,??DataTable0_4  ;; 0x4004b010
   \   00000022   0xF44F 0x7440      MOV      R4,#+768
   \   00000026   0x601C             STR      R4,[R3, #+0]
     33          		
     34          		//在PTC3上使能UART1_RXD
     35          		PORTC_PCR3 = PORT_PCR_MUX(0x3); 
   \   00000028   0x....             LDR.N    R3,??DataTable0_5  ;; 0x4004b00c
   \   0000002A   0xF44F 0x7440      MOV      R4,#+768
   \   0000002E   0x601C             STR      R4,[R3, #+0]
   \   00000030   0xE02E             B.N      ??uart_init_1
     36          	}else if (uartch == UART2_BASE_PTR)
   \                     ??uart_init_2:
   \   00000032   0x....             LDR.N    R3,??DataTable0_6  ;; 0x4006c000
   \   00000034   0x4298             CMP      R0,R3
   \   00000036   0xD108             BNE.N    ??uart_init_3
     37          	{
     38          		//在PTD3上使能UART2_TXD功能
     39          		PORTD_PCR3 = PORT_PCR_MUX(0x3); 
   \   00000038   0x....             LDR.N    R3,??DataTable0_7  ;; 0x4004c00c
   \   0000003A   0xF44F 0x7440      MOV      R4,#+768
   \   0000003E   0x601C             STR      R4,[R3, #+0]
     40          		//在PTD2上使能UART2_RXD
     41          		PORTD_PCR2 = PORT_PCR_MUX(0x3); 
   \   00000040   0x....             LDR.N    R3,??DataTable0_8  ;; 0x4004c008
   \   00000042   0xF44F 0x7440      MOV      R4,#+768
   \   00000046   0x601C             STR      R4,[R3, #+0]
   \   00000048   0xE022             B.N      ??uart_init_1
     42          	}else if (uartch == UART3_BASE_PTR)
   \                     ??uart_init_3:
   \   0000004A   0x....             LDR.N    R3,??DataTable0_9  ;; 0x4006d000
   \   0000004C   0x4298             CMP      R0,R3
   \   0000004E   0xD108             BNE.N    ??uart_init_4
     43          	{
     44          		//在PTC17上使能UART3_TXD功能
     45          		PORTC_PCR17 = PORT_PCR_MUX(0x3); 
   \   00000050   0x....             LDR.N    R3,??DataTable0_10  ;; 0x4004b044
   \   00000052   0xF44F 0x7440      MOV      R4,#+768
   \   00000056   0x601C             STR      R4,[R3, #+0]
     46          		//在PTC16上使能UART3_RXD
     47          		PORTC_PCR16 = PORT_PCR_MUX(0x3); 
   \   00000058   0x....             LDR.N    R3,??DataTable0_11  ;; 0x4004b040
   \   0000005A   0xF44F 0x7440      MOV      R4,#+768
   \   0000005E   0x601C             STR      R4,[R3, #+0]
   \   00000060   0xE016             B.N      ??uart_init_1
     48          	}else if (uartch == UART4_BASE_PTR)
   \                     ??uart_init_4:
   \   00000062   0x....             LDR.N    R3,??DataTable0_12  ;; 0x400ea000
   \   00000064   0x4298             CMP      R0,R3
   \   00000066   0xD108             BNE.N    ??uart_init_5
     49          	{
     50          		//在PTE24上使能UART4_TXD功能
     51          		PORTE_PCR24 = PORT_PCR_MUX(0x3); 
   \   00000068   0x....             LDR.N    R3,??DataTable0_13  ;; 0x4004d060
   \   0000006A   0xF44F 0x7440      MOV      R4,#+768
   \   0000006E   0x601C             STR      R4,[R3, #+0]
     52          		//在PTE25上使能UART4_RXD
     53          		PORTE_PCR25 = PORT_PCR_MUX(0x3); 
   \   00000070   0x....             LDR.N    R3,??DataTable0_14  ;; 0x4004d064
   \   00000072   0xF44F 0x7440      MOV      R4,#+768
   \   00000076   0x601C             STR      R4,[R3, #+0]
   \   00000078   0xE00A             B.N      ??uart_init_1
     54          	}else if (uartch == UART5_BASE_PTR)
   \                     ??uart_init_5:
   \   0000007A   0x....             LDR.N    R3,??DataTable0_15  ;; 0x400eb000
   \   0000007C   0x4298             CMP      R0,R3
   \   0000007E   0xD107             BNE.N    ??uart_init_1
     55          	{
     56          		//在PTE8上使能UART5_TXD功能
     57          		PORTE_PCR8 = PORT_PCR_MUX(0x3); 
   \   00000080   0x....             LDR.N    R3,??DataTable0_16  ;; 0x4004d020
   \   00000082   0xF44F 0x7440      MOV      R4,#+768
   \   00000086   0x601C             STR      R4,[R3, #+0]
     58          		//在PTE9上使能UART5_RXD
     59          		PORTE_PCR9 = PORT_PCR_MUX(0x3); 
   \   00000088   0x....             LDR.N    R3,??DataTable0_17  ;; 0x4004d024
   \   0000008A   0xF44F 0x7440      MOV      R4,#+768
   \   0000008E   0x601C             STR      R4,[R3, #+0]
     60          	}
     61          	 
     62          	//使能串口时钟    
     63          	if(uartch == UART0_BASE_PTR)
   \                     ??uart_init_1:
   \   00000090   0x....             LDR.N    R3,??DataTable0  ;; 0x4006a000
   \   00000092   0x4298             CMP      R0,R3
   \   00000094   0xD106             BNE.N    ??uart_init_6
     64          		SIM_SCGC4 |= SIM_SCGC4_UART0_MASK;
   \   00000096   0x....             LDR.N    R3,??DataTable0_18  ;; 0x40048034
   \   00000098   0x681B             LDR      R3,[R3, #+0]
   \   0000009A   0xF453 0x6380      ORRS     R3,R3,#0x400
   \   0000009E   0x....             LDR.N    R4,??DataTable0_18  ;; 0x40048034
   \   000000A0   0x6023             STR      R3,[R4, #+0]
   \   000000A2   0xE02D             B.N      ??uart_init_7
     65          	else
     66          		if (uartch == UART1_BASE_PTR)
   \                     ??uart_init_6:
   \   000000A4   0x....             LDR.N    R3,??DataTable0_3  ;; 0x4006b000
   \   000000A6   0x4298             CMP      R0,R3
   \   000000A8   0xD106             BNE.N    ??uart_init_8
     67          			SIM_SCGC4 |= SIM_SCGC4_UART1_MASK;
   \   000000AA   0x....             LDR.N    R3,??DataTable0_18  ;; 0x40048034
   \   000000AC   0x681B             LDR      R3,[R3, #+0]
   \   000000AE   0xF453 0x6300      ORRS     R3,R3,#0x800
   \   000000B2   0x....             LDR.N    R4,??DataTable0_18  ;; 0x40048034
   \   000000B4   0x6023             STR      R3,[R4, #+0]
   \   000000B6   0xE023             B.N      ??uart_init_7
     68          		else
     69          			if (uartch == UART2_BASE_PTR)
   \                     ??uart_init_8:
   \   000000B8   0x....             LDR.N    R3,??DataTable0_6  ;; 0x4006c000
   \   000000BA   0x4298             CMP      R0,R3
   \   000000BC   0xD106             BNE.N    ??uart_init_9
     70          				SIM_SCGC4 |= SIM_SCGC4_UART2_MASK;
   \   000000BE   0x....             LDR.N    R3,??DataTable0_18  ;; 0x40048034
   \   000000C0   0x681B             LDR      R3,[R3, #+0]
   \   000000C2   0xF453 0x5380      ORRS     R3,R3,#0x1000
   \   000000C6   0x....             LDR.N    R4,??DataTable0_18  ;; 0x40048034
   \   000000C8   0x6023             STR      R3,[R4, #+0]
   \   000000CA   0xE019             B.N      ??uart_init_7
     71          			else
     72          				if(uartch == UART3_BASE_PTR)
   \                     ??uart_init_9:
   \   000000CC   0x....             LDR.N    R3,??DataTable0_9  ;; 0x4006d000
   \   000000CE   0x4298             CMP      R0,R3
   \   000000D0   0xD106             BNE.N    ??uart_init_10
     73          					SIM_SCGC4 |= SIM_SCGC4_UART3_MASK;
   \   000000D2   0x....             LDR.N    R3,??DataTable0_18  ;; 0x40048034
   \   000000D4   0x681B             LDR      R3,[R3, #+0]
   \   000000D6   0xF453 0x5300      ORRS     R3,R3,#0x2000
   \   000000DA   0x....             LDR.N    R4,??DataTable0_18  ;; 0x40048034
   \   000000DC   0x6023             STR      R3,[R4, #+0]
   \   000000DE   0xE00F             B.N      ??uart_init_7
     74          				else
     75          					if(uartch == UART4_BASE_PTR)
   \                     ??uart_init_10:
   \   000000E0   0x....             LDR.N    R3,??DataTable0_12  ;; 0x400ea000
   \   000000E2   0x4298             CMP      R0,R3
   \   000000E4   0xD106             BNE.N    ??uart_init_11
     76          						SIM_SCGC1 |= SIM_SCGC1_UART4_MASK;
   \   000000E6   0x....             LDR.N    R3,??DataTable0_19  ;; 0x40048028
   \   000000E8   0x681B             LDR      R3,[R3, #+0]
   \   000000EA   0xF453 0x6380      ORRS     R3,R3,#0x400
   \   000000EE   0x....             LDR.N    R4,??DataTable0_19  ;; 0x40048028

⌨️ 快捷键说明

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