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

📄 uart.lst

📁 Cortex-M4+example
💻 LST
📖 第 1 页 / 共 3 页
字号:
###############################################################################
#                                                                             #
# IAR ANSI C/C++ Compiler V6.10.1.52143/W32 for ARM     16/Apr/2011  20:57:48 #
# Copyright 1999-2010 IAR Systems AB.                                         #
#                                                                             #
#    Cpu mode     =  thumb                                                    #
#    Endian       =  little                                                   #
#    Source file  =  E:\Project\15_K60\03_Software\02_My                      #
#                    program\K60_IAR\03_uart_int\src\Sources\C\Component_C\ua #
#                    rt.c                                                     #
#    Command line =  "E:\Project\15_K60\03_Software\02_My                     #
#                    program\K60_IAR\03_uart_int\src\Sources\C\Component_C\ua #
#                    rt.c" -D IAR -D TWR_K60N512 -lCN                         #
#                    "E:\Project\15_K60\03_Software\02_My                     #
#                    program\K60_IAR\03_uart_int\bin\Ram\List\" -lB           #
#                    "E:\Project\15_K60\03_Software\02_My                     #
#                    program\K60_IAR\03_uart_int\bin\Ram\List\" -o            #
#                    "E:\Project\15_K60\03_Software\02_My                     #
#                    program\K60_IAR\03_uart_int\bin\Ram\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              #
#                    D:\iar\arm\INC\c\DLib_Config_Normal.h -I                 #
#                    "E:\Project\15_K60\03_Software\02_My                     #
#                    program\K60_IAR\03_uart_int\src\Sources\H\" -I           #
#                    "E:\Project\15_K60\03_Software\02_My                     #
#                    program\K60_IAR\03_uart_int\src\Sources\H\Component_H\"  #
#                    -I "E:\Project\15_K60\03_Software\02_My                  #
#                    program\K60_IAR\03_uart_int\src\Sources\H\Frame_H\" -Ol  #
#                    --use_c++_inline                                         #
#    List file    =  E:\Project\15_K60\03_Software\02_My                      #
#                    program\K60_IAR\03_uart_int\bin\Ram\List\uart.lst        #
#    Object file  =  E:\Project\15_K60\03_Software\02_My                      #
#                    program\K60_IAR\03_uart_int\bin\Ram\Obj\uart.o           #
#                                                                             #
#                                                                             #
###############################################################################

E:\Project\15_K60\03_Software\02_My program\K60_IAR\03_uart_int\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   30B4               PUSH     {R4,R5}
     19          	register uint16 sbr, brfa;
     20          	uint8 temp;
     21          
     22          	//使能引脚
     23          	if (uartch == UART0_BASE_PTR)
   \   00000002   ....               LDR.N    R3,??DataTable0  ;; 0x4006a000
   \   00000004   9842               CMP      R0,R3
   \   00000006   08D1               BNE.N    ??uart_init_0
     24          	{
     25          		//在PTD6上使能UART0_TXD功能
     26          		PORTD_PCR6 = PORT_PCR_MUX(0x3);
   \   00000008   ....               LDR.N    R3,??DataTable0_1  ;; 0x4004c018
   \   0000000A   4FF44074           MOV      R4,#+768
   \   0000000E   1C60               STR      R4,[R3, #+0]
     27          		//在PTD7上使能UART0_RXD
     28          		PORTD_PCR7 = PORT_PCR_MUX(0x3); 
   \   00000010   ....               LDR.N    R3,??DataTable0_2  ;; 0x4004c01c
   \   00000012   4FF44074           MOV      R4,#+768
   \   00000016   1C60               STR      R4,[R3, #+0]
   \   00000018   3AE0               B.N      ??uart_init_1
     29          	}else if (uartch == UART1_BASE_PTR)
   \                     ??uart_init_0:
   \   0000001A   ....               LDR.N    R3,??DataTable0_3  ;; 0x4006b000
   \   0000001C   9842               CMP      R0,R3
   \   0000001E   08D1               BNE.N    ??uart_init_2
     30          	{
     31          		//在PTC4上使能UART1_TXD功能
     32          		PORTC_PCR4 = PORT_PCR_MUX(0x3); 
   \   00000020   ....               LDR.N    R3,??DataTable0_4  ;; 0x4004b010
   \   00000022   4FF44074           MOV      R4,#+768
   \   00000026   1C60               STR      R4,[R3, #+0]
     33          		
     34          		//在PTC3上使能UART1_RXD
     35          		PORTC_PCR3 = PORT_PCR_MUX(0x3); 
   \   00000028   ....               LDR.N    R3,??DataTable0_5  ;; 0x4004b00c
   \   0000002A   4FF44074           MOV      R4,#+768
   \   0000002E   1C60               STR      R4,[R3, #+0]
   \   00000030   2EE0               B.N      ??uart_init_1
     36          	}else if (uartch == UART2_BASE_PTR)
   \                     ??uart_init_2:
   \   00000032   ....               LDR.N    R3,??DataTable0_6  ;; 0x4006c000
   \   00000034   9842               CMP      R0,R3
   \   00000036   08D1               BNE.N    ??uart_init_3
     37          	{
     38          		//在PTD3上使能UART2_TXD功能
     39          		PORTD_PCR3 = PORT_PCR_MUX(0x3); 
   \   00000038   ....               LDR.N    R3,??DataTable0_7  ;; 0x4004c00c
   \   0000003A   4FF44074           MOV      R4,#+768
   \   0000003E   1C60               STR      R4,[R3, #+0]
     40          		//在PTD2上使能UART2_RXD
     41          		PORTD_PCR2 = PORT_PCR_MUX(0x3); 
   \   00000040   ....               LDR.N    R3,??DataTable0_8  ;; 0x4004c008
   \   00000042   4FF44074           MOV      R4,#+768
   \   00000046   1C60               STR      R4,[R3, #+0]
   \   00000048   22E0               B.N      ??uart_init_1
     42          	}else if (uartch == UART3_BASE_PTR)
   \                     ??uart_init_3:
   \   0000004A   ....               LDR.N    R3,??DataTable0_9  ;; 0x4006d000
   \   0000004C   9842               CMP      R0,R3
   \   0000004E   08D1               BNE.N    ??uart_init_4
     43          	{
     44          		//在PTC17上使能UART3_TXD功能
     45          		PORTC_PCR17 = PORT_PCR_MUX(0x3); 
   \   00000050   ....               LDR.N    R3,??DataTable0_10  ;; 0x4004b044
   \   00000052   4FF44074           MOV      R4,#+768
   \   00000056   1C60               STR      R4,[R3, #+0]
     46          		//在PTC16上使能UART3_RXD
     47          		PORTC_PCR16 = PORT_PCR_MUX(0x3); 
   \   00000058   ....               LDR.N    R3,??DataTable0_11  ;; 0x4004b040
   \   0000005A   4FF44074           MOV      R4,#+768
   \   0000005E   1C60               STR      R4,[R3, #+0]
   \   00000060   16E0               B.N      ??uart_init_1
     48          	}else if (uartch == UART4_BASE_PTR)
   \                     ??uart_init_4:
   \   00000062   ....               LDR.N    R3,??DataTable0_12  ;; 0x400ea000
   \   00000064   9842               CMP      R0,R3
   \   00000066   08D1               BNE.N    ??uart_init_5
     49          	{
     50          		//在PTE24上使能UART4_TXD功能
     51          		PORTE_PCR24 = PORT_PCR_MUX(0x3); 
   \   00000068   ....               LDR.N    R3,??DataTable0_13  ;; 0x4004d060
   \   0000006A   4FF44074           MOV      R4,#+768
   \   0000006E   1C60               STR      R4,[R3, #+0]
     52          		//在PTE25上使能UART4_RXD
     53          		PORTE_PCR25 = PORT_PCR_MUX(0x3); 
   \   00000070   ....               LDR.N    R3,??DataTable0_14  ;; 0x4004d064
   \   00000072   4FF44074           MOV      R4,#+768
   \   00000076   1C60               STR      R4,[R3, #+0]
   \   00000078   0AE0               B.N      ??uart_init_1
     54          	}else if (uartch == UART5_BASE_PTR)
   \                     ??uart_init_5:
   \   0000007A   ....               LDR.N    R3,??DataTable0_15  ;; 0x400eb000
   \   0000007C   9842               CMP      R0,R3
   \   0000007E   07D1               BNE.N    ??uart_init_1
     55          	{
     56          		//在PTE8上使能UART5_TXD功能
     57          		PORTE_PCR8 = PORT_PCR_MUX(0x3); 
   \   00000080   ....               LDR.N    R3,??DataTable0_16  ;; 0x4004d020
   \   00000082   4FF44074           MOV      R4,#+768
   \   00000086   1C60               STR      R4,[R3, #+0]
     58          		//在PTE9上使能UART5_RXD
     59          		PORTE_PCR9 = PORT_PCR_MUX(0x3); 
   \   00000088   ....               LDR.N    R3,??DataTable0_17  ;; 0x4004d024
   \   0000008A   4FF44074           MOV      R4,#+768
   \   0000008E   1C60               STR      R4,[R3, #+0]
     60          	}
     61          	 
     62          	//使能串口时钟    
     63          	if(uartch == UART0_BASE_PTR)
   \                     ??uart_init_1:
   \   00000090   ....               LDR.N    R3,??DataTable0  ;; 0x4006a000
   \   00000092   9842               CMP      R0,R3
   \   00000094   06D1               BNE.N    ??uart_init_6
     64          		SIM_SCGC4 |= SIM_SCGC4_UART0_MASK;
   \   00000096   ....               LDR.N    R3,??DataTable0_18  ;; 0x40048034
   \   00000098   1B68               LDR      R3,[R3, #+0]
   \   0000009A   53F48063           ORRS     R3,R3,#0x400
   \   0000009E   ....               LDR.N    R4,??DataTable0_18  ;; 0x40048034
   \   000000A0   2360               STR      R3,[R4, #+0]
   \   000000A2   2DE0               B.N      ??uart_init_7
     65          	else
     66          		if (uartch == UART1_BASE_PTR)
   \                     ??uart_init_6:
   \   000000A4   ....               LDR.N    R3,??DataTable0_3  ;; 0x4006b000
   \   000000A6   9842               CMP      R0,R3
   \   000000A8   06D1               BNE.N    ??uart_init_8
     67          			SIM_SCGC4 |= SIM_SCGC4_UART1_MASK;
   \   000000AA   ....               LDR.N    R3,??DataTable0_18  ;; 0x40048034
   \   000000AC   1B68               LDR      R3,[R3, #+0]
   \   000000AE   53F40063           ORRS     R3,R3,#0x800
   \   000000B2   ....               LDR.N    R4,??DataTable0_18  ;; 0x40048034
   \   000000B4   2360               STR      R3,[R4, #+0]
   \   000000B6   23E0               B.N      ??uart_init_7
     68          		else
     69          			if (uartch == UART2_BASE_PTR)
   \                     ??uart_init_8:
   \   000000B8   ....               LDR.N    R3,??DataTable0_6  ;; 0x4006c000
   \   000000BA   9842               CMP      R0,R3
   \   000000BC   06D1               BNE.N    ??uart_init_9
     70          				SIM_SCGC4 |= SIM_SCGC4_UART2_MASK;
   \   000000BE   ....               LDR.N    R3,??DataTable0_18  ;; 0x40048034
   \   000000C0   1B68               LDR      R3,[R3, #+0]
   \   000000C2   53F48053           ORRS     R3,R3,#0x1000
   \   000000C6   ....               LDR.N    R4,??DataTable0_18  ;; 0x40048034
   \   000000C8   2360               STR      R3,[R4, #+0]
   \   000000CA   19E0               B.N      ??uart_init_7
     71          			else
     72          				if(uartch == UART3_BASE_PTR)
   \                     ??uart_init_9:
   \   000000CC   ....               LDR.N    R3,??DataTable0_9  ;; 0x4006d000
   \   000000CE   9842               CMP      R0,R3
   \   000000D0   06D1               BNE.N    ??uart_init_10
     73          					SIM_SCGC4 |= SIM_SCGC4_UART3_MASK;
   \   000000D2   ....               LDR.N    R3,??DataTable0_18  ;; 0x40048034
   \   000000D4   1B68               LDR      R3,[R3, #+0]
   \   000000D6   53F40053           ORRS     R3,R3,#0x2000
   \   000000DA   ....               LDR.N    R4,??DataTable0_18  ;; 0x40048034
   \   000000DC   2360               STR      R3,[R4, #+0]
   \   000000DE   0FE0               B.N      ??uart_init_7
     74          				else
     75          					if(uartch == UART4_BASE_PTR)
   \                     ??uart_init_10:
   \   000000E0   ....               LDR.N    R3,??DataTable0_12  ;; 0x400ea000
   \   000000E2   9842               CMP      R0,R3
   \   000000E4   06D1               BNE.N    ??uart_init_11
     76          						SIM_SCGC1 |= SIM_SCGC1_UART4_MASK;

⌨️ 快捷键说明

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