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

📄 dbgu.lst

📁 AT91SAM7X256底层驱动源码
💻 LST
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.30A/W32 KICKSTART     01/Nov/2005  10:59:18 #
# Copyright 1999-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode        =  thumb                                                #
#    Endian          =  little                                               #
#    Stack alignment =  4                                                    #
#    Source file     =  E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
#                       430A-1_2\BasicAES-SAM7X\src\dbgu.c                   #
#    Command line    =  E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
#                       430A-1_2\BasicAES-SAM7X\src\dbgu.c -lC               #
#                       E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
#                       430A-1_2\BasicAES-SAM7X\compil\Binary\List\ -o       #
#                       E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
#                       430A-1_2\BasicAES-SAM7X\compil\Binary\Obj\ -z9       #
#                       --debug --cpu_mode thumb --endian little --cpu       #
#                       ARM7TDMI --stack_align 4 -e --fpu None               #
#                       --dlib_config "D:\Program Files\IAR                  #
#                       Systems\Embedded Workbench 4.0                       #
#                       Kickstart\arm\LIB\dl4tptnnl8f.h" -I                  #
#                       E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
#                       430A-1_2\BasicAES-SAM7X\compil\srcIAR\ -I            #
#                       E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
#                       430A-1_2\BasicAES-SAM7X\compil\..\src\ -I            #
#                       E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
#                       430A-1_2\BasicAES-SAM7X\compil\..\..\ -I             #
#                       "D:\Program Files\IAR Systems\Embedded Workbench     #
#                       4.0 Kickstart\arm\INC\"                              #
#    List file       =  E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
#                       430A-1_2\BasicAES-SAM7X\compil\Binary\List\dbgu.lst  #
#    Object file     =  E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR #
#                       430A-1_2\BasicAES-SAM7X\compil\Binary\Obj\dbgu.r79   #
#                                                                            #
#                                                                            #
##############################################################################

E:\SAM7X\AT91_SAM7X256-IAR\AT91SAM7X256-BasicAES-IAR430A-1_2\BasicAES-SAM7X\src\dbgu.c
      1          //*----------------------------------------------------------------------------
      2          //*         ATMEL Microcontroller Software Support  -  ROUSSET  -
      3          //*----------------------------------------------------------------------------
      4          //* The software is delivered "AS IS" without warranty or condition of any
      5          //* kind, either express, implied or statutory. This includes without
      6          //* limitation any warranty or condition with respect to merchantability or
      7          //* fitness for any particular purpose, or against the infringements of
      8          //* intellectual property rights of others.
      9          //*----------------------------------------------------------------------------
     10          //* File Name           : dbgu.c
     11          //* Object              : DBGU routines written in C
     12          //* Creation            : JG   16/Aug/2004
     13          //*----------------------------------------------------------------------------
     14          
     15          // Include Standard files
     16          #include "project.h"
     17          
     18          //*--------------------------1--------------------------------------------------
     19          //* \fn    AT91F_DBGU_Printk
     20          //* \brief This function is used to send a string through the DBGU channel (Very low level debugging)
     21          //*----------------------------------------------------------------------------

   \                                 In segment CODE, align 4, keep-with-next
     22          void AT91F_DBGU_Printk(	char *buffer)
     23          {
     24              AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ;
   \                     AT91F_DBGU_Printk:
   \   00000000   0CE0               B           ??AT91F_DBGU_Printk_0
     25              unsigned int temp;
     26          
     27              while(*buffer != '\0')
     28              {
     29                  temp=0;
     30          
     31          	while (temp==0)
     32          	{
     33          	  if ( (pDbgu->DBGU_CSR & 0x0200) == 0)
   \                     ??AT91F_DBGU_Printk_1:
   \   00000002   0849               LDR         R1,??AT91F_DBGU_Printk_2  ;; 0xfffff214
   \   00000004   0968               LDR         R1,[R1, #+0]
     34          	    temp=0;
   \   00000006   8023               MOV         R3,#+0x80
   \   00000008   9B00               LSL         R3,R3,#+0x2        ;; #+0x200
   \   0000000A   0B40               AND         R3,R1
   \   0000000C   191C               MOV         R1,R3
   \   0000000E   00D0               BEQ         ??AT91F_DBGU_Printk_3
   \   00000010   0121               MOV         R1,#+0x1
   \                     ??AT91F_DBGU_Printk_3:
   \   00000012   0906               LSL         R1,R1,#+0x18
     35          	  else
     36          	    temp=1;
     37          	}
   \   00000014   F5D0               BEQ         ??AT91F_DBGU_Printk_1
     38          
     39                  pDbgu->DBGU_THR = *buffer;
   \   00000016   0449               LDR         R1,??AT91F_DBGU_Printk_2+0x4  ;; 0xfffff21c
   \   00000018   0A60               STR         R2,[R1, #+0]
     40                  buffer++;
   \   0000001A   401C               ADD         R0,R0,#+0x1
     41              }
   \                     ??AT91F_DBGU_Printk_0:
   \   0000001C   0278               LDRB        R2,[R0, #+0]
   \   0000001E   002A               CMP         R2,#+0
   \   00000020   EFD1               BNE         ??AT91F_DBGU_Printk_1
     42          }
   \   00000022   7047               BX          LR                 ;; return
   \                     ??AT91F_DBGU_Printk_2:
   \   00000024   14F2FFFF           DC32        0xfffff214
   \   00000028   1CF2FFFF           DC32        0xfffff21c
     43          
     44          

   \                                 In segment CODE, align 4, keep-with-next
     45          void Init_DBGU_CLK(void)
     46          {
     47            AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, ((unsigned int) 1 << AT91C_ID_SYS));
   \                     Init_DBGU_CLK:
   \   00000000   0148               LDR         R0,??Init_DBGU_CLK_0  ;; 0xfffffc10
   \   00000002   0221               MOV         R1,#+0x2
   \   00000004   0160               STR         R1,[R0, #+0]
     48          }
   \   00000006   7047               BX          LR                 ;; return
   \                     ??Init_DBGU_CLK_0:
   \   00000008   10FCFFFF           DC32        0xfffffc10
     49          

   \                                 In segment CODE, align 4, keep-with-next
     50          void Init_DBGU_BGR(unsigned short baud)
     51          {
     52            AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ;
     53          
     54            pDbgu->DBGU_BRGR = (unsigned short)baud;
   \                     Init_DBGU_BGR:
   \   00000000   ....               LDR         R1,??DataTable6    ;; 0xfffff220
   \   00000002   0860               STR         R0,[R1, #+0]
     55          }
   \   00000004   7047               BX          LR                 ;; return
     56          

   \                                 In segment CODE, align 4, keep-with-next
     57          void DBGU_TX_Enable(void)
     58          {
     59            AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ;
     60          
     61            pDbgu->DBGU_CR = 0x00000040;
   \                     DBGU_TX_Enable:
   \   00000000   ....               LDR         R0,??DataTable5    ;; 0xfffff200
   \   00000002   4021               MOV         R1,#+0x40
   \   00000004   0160               STR         R1,[R0, #+0]
     62          }
   \   00000006   7047               BX          LR                 ;; return
     63          

   \                                 In segment CODE, align 4, keep-with-next
     64          void DBGU_RX_Enable(void)
     65          {
     66            AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ;
     67          
     68            pDbgu->DBGU_CR = 0x00000010;
   \                     DBGU_RX_Enable:
   \   00000000   ....               LDR         R0,??DataTable5    ;; 0xfffff200
   \   00000002   ....               B           ?Subroutine0
     69          }

   \                                 In segment CODE, align 4, keep-with-next
   \                     ?Subroutine0:
   \   00000000   1021               MOV         R1,#+0x10
   \   00000002   0160               STR         R1,[R0, #+0]
   \   00000004   7047               BX          LR                 ;; return
   \   00000006   C046               NOP         
   \                     ??Subroutine0_0:
   \   00000008   70F4FFFF           DC32        0xfffff470
   \   0000000C   74F4FFFF           DC32        0xfffff474
   \   00000010   04F4FFFF           DC32        0xfffff404
     70          

   \                                 In segment CODE, align 4, keep-with-next
     71          void DBGU_RX_TX_RST_DIS(void)
     72          {
     73            AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ;
     74            pDbgu->DBGU_CR = 0x000000AC;
   \                     DBGU_RX_TX_RST_DIS:
   \   00000000   ....               LDR         R0,??DataTable5    ;; 0xfffff200
   \   00000002   AC21               MOV         R1,#+0xAC
   \   00000004   0160               STR         R1,[R0, #+0]
     75          }
   \   00000006   7047               BX          LR                 ;; return
     76          

   \                                 In segment CODE, align 4, keep-with-next
     77          void DBGU_Parity_Cfg(unsigned int par)
     78          {
     79            AT91PS_DBGU pDbgu = AT91C_BASE_DBGU ;
     80          
     81            pDbgu->DBGU_MR = par << 9;
   \                     DBGU_Parity_Cfg:
   \   00000000   ....               LDR         R1,??DataTable7    ;; 0xfffff204
   \   00000002   4002               LSL         R0,R0,#+0x9
   \   00000004   0860               STR         R0,[R1, #+0]
     82          }
   \   00000006   7047               BX          LR                 ;; return
     83          
     84          

   \                                 In segment CODE, align 4, keep-with-next
     85          void Init_DBGU(void)
     86          {
     87            AT91F_DBGU_CfgPIO();
   \                     Init_DBGU:
   \   00000000   C020               MOV         R0,#+0xC0
   \   00000002   4005               LSL         R0,R0,#+0x15       ;; #+0x18000000
   \   00000004   ....               LDR         R1,??Subroutine0_0  ;; 0xfffff470
   \   00000006   0860               STR         R0,[R1, #+0]
   \   00000008   ....               LDR         R1,??Subroutine0_0+0x4  ;; 0xfffff474
   \   0000000A   0022               MOV         R2,#+0
   \   0000000C   0A60               STR         R2,[R1, #+0]
   \   0000000E   ....               LDR         R1,??Subroutine0_0+0x8  ;; 0xfffff404
   \   00000010   0860               STR         R0,[R1, #+0]
     88            DBGU_RX_TX_RST_DIS();
   \   00000012   ....               LDR         R0,??DataTable5    ;; 0xfffff200
   \   00000014   AC21               MOV         R1,#+0xAC
   \   00000016   0160               STR         R1,[R0, #+0]
     89            Init_DBGU_BGR(26);  //26 <=> 115kBd
   \   00000018   ....               LDR         R1,??DataTable6    ;; 0xfffff220
   \   0000001A   1A22               MOV         R2,#+0x1A
   \   0000001C   0A60               STR         R2,[R1, #+0]
     90            DBGU_Parity_Cfg(4);
   \   0000001E   ....               LDR         R1,??DataTable7    ;; 0xfffff204
   \   00000020   8022               MOV         R2,#+0x80
   \   00000022   1201               LSL         R2,R2,#+0x4        ;; #+0x800
   \   00000024   0A60               STR         R2,[R1, #+0]
     91            DBGU_TX_Enable();
   \   00000026   4021               MOV         R1,#+0x40
   \   00000028   0160               STR         R1,[R0, #+0]
   \   0000002A   C046               NOP         
     92            DBGU_RX_Enable();
   \   0000002C                      REQUIRE ?Subroutine0
   \   0000002C                      ;; // Fall through to label ?Subroutine0
     93          }

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable5:
   \   00000000   00F2FFFF           DC32        0xfffff200

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable6:
   \   00000000   20F2FFFF           DC32        0xfffff220

   \                                 In segment CODE, align 4, keep-with-next
   \                     ??DataTable7:
   \   00000000   04F2FFFF           DC32        0xfffff204
     94          
     95          

   Maximum stack usage in bytes:

     Function           CSTACK
     --------           ------
     AT91F_DBGU_Printk      4
     DBGU_Parity_Cfg        0
     DBGU_RX_Enable         0
     DBGU_RX_TX_RST_DIS     0
     DBGU_TX_Enable         0
     Init_DBGU              0
     Init_DBGU_BGR          0
     Init_DBGU_CLK          0


   Segment part sizes:

     Function/Label     Bytes
     --------------     -----
     AT91F_DBGU_Printk    44
     Init_DBGU_CLK        12
     Init_DBGU_BGR         6
     DBGU_TX_Enable        8
     DBGU_RX_Enable        4
     ?Subroutine0         20
     DBGU_RX_TX_RST_DIS    8
     DBGU_Parity_Cfg       8
     Init_DBGU            44
     ??DataTable5          4
     ??DataTable6          4
     ??DataTable7          4

 
 166 bytes in segment CODE
 
 166 bytes of CODE memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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