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

📄 main.s

📁 Cortex-M4+example
💻 S
字号:
///////////////////////////////////////////////////////////////////////////////
//                                                                            /
// IAR ANSI C/C++ Compiler V6.10.1.52143/W32 for ARM    16/Apr/2011  20:58:13 /
// 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\main.c        /
//    Command line =  "E:\Project\15_K60\03_Software\02_My                    /
//                    program\K60_IAR\03_uart_int\src\Sources\C\main.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\main.s         /
//                                                                            /
//                                                                            /
///////////////////////////////////////////////////////////////////////////////

        NAME main

        EXTERN enableuartreint
        EXTERN light_change
        EXTERN light_init
        EXTERN periph_clk_khz
        EXTERN uart_init
        EXTERN uart_sendN

        PUBLIC main

// E:\Project\15_K60\03_Software\02_My program\K60_IAR\03_uart_int\src\Sources\C\main.c
//    1 //-------------------------------------------------------------------------*
//    2 // 工 程 名: uart_int                                                      *
//    3 // 硬件连接: 将K60核心板与扩展板连接                                       *
//    4 // 程序描述: 启动后发送"Hello World!",之后等待接收一个字节数据,收到后回发*
//    5 // 目    的: 初步掌握利用中断方式进行串行通信的基本知识                    *
//    6 // 说    明: 波特率为9600,使用UART3口                                      *
//    7 //---------------苏州大学飞思卡尔嵌入式系统实验室2011年--------------------*
//    8 
//    9 //头文件
//   10 #include "includes.h"
//   11 

        SECTION `.text`:CODE:NOROOT(2)
        THUMB
//   12 void main(void)
//   13 {
main:
        PUSH     {R4,LR}
//   14     //1 主程序使用的变量定义
//   15     uint32 runcount;		//运行计数器
//   16     
//   17     //2 关中断
//   18     DisableInterrupts;      //禁止总中断
        CPSID i         
//   19     
//   20     //3 模块初始化
//   21     light_init(Light_Run_PORT,Light_Run1,Light_OFF); //指示灯初始化
        MOVS     R2,#+1
        MOVS     R1,#+13
        LDR.N    R0,??DataTable1  ;; 0x400ff080
        BL       light_init
//   22     uart_init (UART3,periph_clk_khz,9600);			 //串口初始化
        MOV      R2,#+9600
        LDR.N    R0,??DataTable1_1
        LDR      R1,[R0, #+0]
        LDR.N    R0,??DataTable1_2  ;; 0x4006d000
        BL       uart_init
//   23 
//   24     //4 开中断
//   25     enableuartreint(UART3,UART3irq);		//开串口3接收中断
        MOVS     R1,#+51
        LDR.N    R0,??DataTable1_2  ;; 0x4006d000
        BL       enableuartreint
//   26     EnableInterrupts;			        //开总中断
        CPSIE i         
//   27     
//   28     uart_sendN(UART3,(uint8*)"Hello World!",12);
        MOVS     R2,#+12
        ADR.W    R1,`?<Constant "Hello World!">`
        LDR.N    R0,??DataTable1_2  ;; 0x4006d000
        BL       uart_sendN
//   29     //主循环
//   30     while(1)
//   31     {
//   32         //1 主循环计数到一定的值,使小灯的亮、暗状态切换
//   33         runcount++;
??main_0:
        ADDS     R4,R4,#+1
//   34         if(runcount>=5000000)
        LDR.N    R0,??DataTable1_3  ;; 0x4c4b40
        CMP      R4,R0
        BCC.N    ??main_0
//   35         {
//   36             light_change(Light_Run_PORT,Light_Run1);//指示灯的亮、暗状态切换
        MOVS     R1,#+13
        LDR.N    R0,??DataTable1  ;; 0x400ff080
        BL       light_change
//   37             runcount=0;
        MOVS     R4,#+0
        B.N      ??main_0
//   38         }			
//   39     }
//   40 }

        SECTION `.text`:CODE:NOROOT(2)
        DATA
??DataTable1:
        DC32     0x400ff080

        SECTION `.text`:CODE:NOROOT(2)
        DATA
??DataTable1_1:
        DC32     periph_clk_khz

        SECTION `.text`:CODE:NOROOT(2)
        DATA
??DataTable1_2:
        DC32     0x4006d000

        SECTION `.text`:CODE:NOROOT(2)
        DATA
??DataTable1_3:
        DC32     0x4c4b40

        SECTION `.text`:CODE:NOROOT(2)
        DATA
`?<Constant "Hello World!">`:
        ; Initializer data, 16 bytes
        DC8 72, 101, 108, 108, 111, 32, 87, 111, 114, 108
        DC8 100, 33, 0, 0, 0, 0

        SECTION __DLIB_PERTHREAD:DATA:REORDER:NOROOT(0)

        SECTION __DLIB_PERTHREAD_init:DATA:REORDER:NOROOT(0)

        END
//   41 
//   42 
//   43 
//   44 
// 
// 102 bytes in section .text
// 
// 102 bytes of CODE memory
//
//Errors: none
//Warnings: none

⌨️ 快捷键说明

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