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

📄 com.lst

📁 ARM入门的好帮手.包含了从简单到相对较复杂的程序.
💻 LST
📖 第 1 页 / 共 2 页
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/EC++ Compiler V3.10A/W32              05/Nov/2001  14:53:15 #
# Copyright 1999-2001 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode     =  arm                                                     #
#    Code model   =  small                                                   #
#    Endian       =  little                                                  #
#    Source file  =  C:\At91\software\projects\bench\Source\com.c            #
#    Command line =  -I C:\Compil\EW23\ARM\INC\ -I ..\..\..\ -lC             #
#                    C:\At91\software\projects\bench\IAR\ARM_external\List\  #
#                    -lA C:\At91\software\projects\bench\IAR\ARM_external\Li #
#                    st\ -o C:\At91\software\projects\bench\IAR\ARM_external #
#                    \Obj\ -e -s9 --debug --cpu_mode arm --code_model small  #
#                    --endian little --cpu=arm7tdmi                          #
#                    C:\At91\software\projects\bench\Source\com.c            #
#    List file    =  C:\At91\software\projects\bench\IAR\ARM_external\List\c #
#                    om.lst                                                  #
#    Object file  =  C:\At91\software\projects\bench\IAR\ARM_external\Obj\co #
#                    m.r79                                                   #
#                                                                            #
#                                                                            #
##############################################################################

C:\At91\software\projects\bench\Source\com.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           : com.c
     11          //* Object              : com port terminal
     12          //*
     13          //* 1.0 25/08/00 JPP    : Creation
     14          //* 1.1 15/11/00 JPP    : additing wait PDC in at91_send_byte
     15          //*----------------------------------------------------------------------------
     16          
     17          #include <stdio.h>
     18          #include "com.h"
     19          
     20          //*----------------------------------------------------------------------------
     21          //* Function Name       : at91_open_com
     22          //* Object              : Open com Usart
     23          //* Input Parameters    : com descriptor & mode
     24          //* Output Parameters   : none
     25          //*----------------------------------------------------------------------------

   \                                 In segment NEARFUNC_A, align 4
   \   00000000                         CODE32   
     26          void at91_open_com(ComDesc *USART_pt, int mode, u_short baud)
     27          //* Begin
     28          {
   \                     at91_open_com:
   \   00000000   10402DE9              STMDB    SP!,{R4,LR}        ;; Push
     29          
     30              //* open usart in Asynchornous no time gard
     31              at91_usart_open (USART_pt->usart,(mode|US_CLKS_MCK), baud, 0);
   \   00000004   0040A0E1              MOV      R4,R0
   \   00000008   0030A0E3              MOV      R3,#+0x0
   \   0000000C   0228A0E1              MOV      R2,R2, LSL #+16
   \   00000010   2228A0E1              MOV      R2,R2, LSR #+16
   \   00000014   000094E5              LDR      R0,[R4, #+0]
   \   00000018   ........              BL       at91_usart_open
     32          
     33              //* masque all interrup and Disable all interrupts
     34              USART_pt->usart->usart_base->US_IDR = 0xFFFFFFFF ;
   \   0000001C   0000E0E3              MVN      R0,#+0x0
   \   00000020   001094E5              LDR      R1,[R4, #+0]
   \   00000024   002091E5              LDR      R2,[R1, #+0]
   \   00000028   0C0082E5              STR      R0,[R2, #+12]
     35          
     36              //* Set state
     37              USART_pt->state = COM_STATE_ENABLE;
   \   0000002C   0100A0E3              MOV      R0,#+0x1
   \   00000030   040084E5              STR      R0,[R4, #+4]
     38          
     39          }
   \   00000034   1080BDE8              LDMIA    SP!,{R4,PC}        ;; return
     40          //* End
     41          //*----------------------------------------------------------------------------
     42          //* Function Name       : at91_close_com
     43          //* Object              : Close com Usart
     44          //* Input Parameters    : com descriptor
     45          //* Output Parameters   : none
     46          //*----------------------------------------------------------------------------

   \                                 In segment NEARFUNC_A, align 4
   \   00000000                         CODE32   
     47          void at91_close_com(ComDesc *USART_pt)
     48          //* Begin
     49          {
   \                     at91_close_com:
   \   00000000   10402DE9              STMDB    SP!,{R4,LR}        ;; Push
     50              //* Close Usart
     51              at91_usart_close (USART_pt->usart) ;
   \   00000004   0040A0E1              MOV      R4,R0
   \   00000008   000094E5              LDR      R0,[R4, #+0]
   \   0000000C   ........              BL       at91_usart_close
     52              //* Set state
     53              USART_pt->state = COM_STATE_ENABLE;
   \   00000010   0100A0E3              MOV      R0,#+0x1
   \   00000014   040084E5              STR      R0,[R4, #+4]
     54          
     55          }
   \   00000018   1080BDE8              LDMIA    SP!,{R4,PC}        ;; return
     56          //* End
     57          //*----------------------------------------------------------------------------
     58          //* Function Name       : at91_print_frame
     59          //* Object              : Send a string to USART with the PDC
     60          //* Input Parameters    : com descriptor, String pointer, size
     61          //* Output Parameters   : none
     62          //*----------------------------------------------------------------------------

   \                                 In segment NEARFUNC_A, align 4, keep-with-next
   \   00000000                         CODE32   
     63          void at91_print_frame (ComDesc *USART_pt, char * buff , u_short size)
     64          //* Begin
     65          {
   \                     at91_print_frame:
   \   00000000   70402DE9              STMDB    SP!,{R4-R6,LR}     ;; Push
   \   00000004   0040A0E1              MOV      R4,R0
   \   00000008   0150A0E1              MOV      R5,R1
   \   0000000C   0260A0E1              MOV      R6,R2
     66              //* Wait end PDC Transmission)
     67              while(( USART_pt->usart->usart_base->US_TCR) !=0)  {}
   \                     ??at91_print_frame_0:
   \   00000010   000094E5              LDR      R0,[R4, #+0]
   \   00000014   001090E5              LDR      R1,[R0, #+0]
   \   00000018   3C0091E5              LDR      R0,[R1, #+60]
   \   0000001C   000050E3              CMP      R0,#+0x0
   \   00000020   FAFFFF1A              BNE      ??at91_print_frame_0
     68              //* Wait USART ready
     69              while((at91_usart_get_status(USART_pt->usart) & US_TXRDY) ==0)  {}
   \                     ??at91_print_frame_1:
   \   00000024   000094E5              LDR      R0,[R4, #+0]
   \   00000028   ........              BL       at91_usart_get_status
   \   0000002C   FF0000E2              AND      R0,R0,#+0xFF       ;; Zero extend
   \   00000030   020010E3              TST      R0,#+0x2
   \   00000034   FAFFFF0A              BEQ      ??at91_print_frame_1
     70              //* set the PDC address
     71              USART_pt->usart->usart_base->US_TPR = (at91_reg) buff;
                                                            ^
Warning[Pe191]: type qualifier is meaningless on cast type
   \   00000038   000094E5              LDR      R0,[R4, #+0]
   \   0000003C   001090E5              LDR      R1,[R0, #+0]
   \   00000040   385081E5              STR      R5,[R1, #+56]
     72              //* set the size
     73              USART_pt->usart->usart_base->US_TCR = size;
   \   00000044   0668A0E1              MOV      R6,R6, LSL #+16
   \   00000048   2668A0E1              MOV      R6,R6, LSR #+16
   \   0000004C   000094E5              LDR      R0,[R4, #+0]
   \   00000050   001090E5              LDR      R1,[R0, #+0]
   \   00000054   3C6081E5              STR      R6,[R1, #+60]
     74          }
   \   00000058   7080BDE8              LDMIA    SP!,{R4-R6,PC}     ;; return
     75          //* End
     76          
     77          //*----------------------------------------------------------------------------
     78          //* Function Name       : at91_print
     79          //* Object              : Send a string to USART
     80          //* Input Parameters    : com descriptor & String pointer
     81          //* Output Parameters   : none
     82          //*----------------------------------------------------------------------------

   \                                 In segment NEARFUNC_A, align 4, keep-with-next
   \   00000000                         CODE32   
     83          void at91_print(ComDesc *USART_pt, char * buff)
     84          //* Begin
     85          {
   \                     at91_print:
   \   00000000   F0402DE9              STMDB    SP!,{R4-R7,LR}     ;; Push
   \   00000004   0040A0E1              MOV      R4,R0

⌨️ 快捷键说明

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