main.s

来自「Cortex-M4+example」· S 代码 · 共 145 行

S
145
字号
///////////////////////////////////////////////////////////////////////////////
//                                                                            /
// IAR ANSI C/C++ Compiler V6.40.1.53790/W32 for ARM    09/Aug/2012  10:07:33 /
// Copyright 1999-2012 IAR Systems AB.                                        /
//                                                                            /
//    Cpu mode     =  thumb                                                   /
//    Endian       =  little                                                  /
//    Source file  =  C:\Users\305030973\Desktop\M4                           /
//                    example\01_light\src\Sources\C\main.c                   /
//    Command line =  "C:\Users\305030973\Desktop\M4                          /
//                    example\01_light\src\Sources\C\main.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_Normal.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\main.s                  /
//                                                                            /
//                                                                            /
///////////////////////////////////////////////////////////////////////////////

        NAME main

        #define SHT_PROGBITS 0x1

        EXTERN light_change
        EXTERN light_init

        PUBLIC main

// C:\Users\305030973\Desktop\M4 example\01_light\src\Sources\C\main.c
//    1 //-------------------------------------------------------------------------*
//    2 // 工 程 名: light                                                         *
//    3 // 硬件连接: 将K60核心板与扩展板连接                                       *
//    4 // 程序描述: 用GPIO编程控制小灯闪烁                                        *
//    5 // 目    的: 第一个Freescale K60系列MCU C语言程序框架                      *
//    6 // 说    明: 提供Freescale MCU的编程框架,供教学入门使用                   *
//    7 //---------------苏州大学飞思卡尔嵌入式系统实验室2011年--------------------*
//    8 
//    9 //头文件
//   10 #include "includes.h"
//   11 
//   12 //全局变量声明
//   13 
//   14 //主函数

        SECTION `.text`:CODE:NOROOT(2)
        THUMB
//   15 void main(void)
//   16 {
//   17     //1 主程序使用的变量定义
//   18     uint32 runcount;	//运行计数器
//   19     
//   20     //2 关中断
//   21     DisableInterrupts;     //禁止总中断
main:
        CPSID i
//   22     
//   23     //3 模块初始化
//   24     light_init(Light_Run_PORT,Light_Run1,Light_OFF); //指示灯初始化
        MOVS     R2,#+1
        MOVS     R1,#+13
        LDR.N    R0,??main_0      ;; 0x400ff080
        BL       light_init
//   25     light_init(Light_Run_PORT,Light_Run2,Light_ON); //指示灯初始化
        MOVS     R2,#+0
        MOVS     R1,#+14
        LDR.N    R0,??main_0      ;; 0x400ff080
        BL       light_init
//   26 
//   27     //4 开中断
//   28 
//   29     //主循环
//   30     while(1)
//   31     {
//   32         //1 主循环计数到一定的值,使小灯的亮、暗状态切换
//   33         runcount++;
??main_1:
        ADDS     R4,R4,#+1
//   34         if(runcount>=5000000)
        LDR.N    R0,??main_0+0x4  ;; 0x4c4b40
        CMP      R4,R0
        BCC.N    ??main_1
//   35         {
//   36             light_change(Light_Run_PORT,Light_Run1);//指示灯的亮、暗状态切换
        MOVS     R1,#+13
        LDR.N    R0,??main_0      ;; 0x400ff080
        BL       light_change
//   37             light_change(Light_Run_PORT,Light_Run2);//指示灯的亮、暗状态切换
        MOVS     R1,#+14
        LDR.N    R0,??main_0      ;; 0x400ff080
        BL       light_change
//   38             runcount=0;
        MOVS     R4,#+0
        B.N      ??main_1
        Nop      
        DATA
??main_0:
        DC32     0x400ff080
        DC32     0x4c4b40
//   39         }
//   40     }
//   41 }

        SECTION `.iar_vfe_header`:DATA:REORDER:NOALLOC:NOROOT(2)
        SECTION_TYPE SHT_PROGBITS, 0
        DATA
        DC32 0

        SECTION __DLIB_PERTHREAD:DATA:REORDER:NOROOT(0)
        SECTION_TYPE SHT_PROGBITS, 0

        SECTION __DLIB_PERTHREAD_init:DATA:REORDER:NOROOT(0)
        SECTION_TYPE SHT_PROGBITS, 0

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

⌨️ 快捷键说明

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