• S32K的make过程


    >>S32DS编译时的主make过程

     1 #<<<<<<<<<<主makefile重要流程>>>>>>>>>>
     2 #======1.定义first的依赖项为all
     3 first:all
     4 
     5 #======2.定义RM 用于clean操作时的删除当前目录下的所有文件
     6 RM := rm -rf
     7     #======3.包含sources.mk和surbdir.mk(工程子文件夹中所有用到.c的子makefile文件)
     8     -include sources.mk
     9     -include subdir.mk
    10     -include APP/DEA/subdir.mk
    11 
    12 #======3.0 sources.mk主要用于:
    13 #======3.0.1 定义所有全局变量并赋空值
    14         TODISASSEMBLE_SRCS_QUOTED := 
    15         OBJ_SRCS_OS_FORMAT := 
    16 #======3.0.2 定义文件夹路径变量SUBDIRS
    17         SUBDIRS := 
    18         APP/DEA 
    19         APP/SWVersion 
    20         
    21 #======3.1 subdir.mk主要用于:
    22 #======3.1.1 追加全局变量:C_SRCS_QUOTED C_SRCS C_DEPS_QUOTED OBJS_QUOTED C_DEPS OBJS_OS_FORMAT OBJS
    23         C_SRCS_QUOTED += 
    24         "../APP/DEA/DeaCoding.c" 
    25         
    26 #======3.1.2 定义各自.o的依赖项及生成.d文件
    27         APP/DEA/DeaDiag.o: ../APP/DEA/DeaDiag.c
    28           arm-none-eabi-gcc "@APP/DEA/DeaDiag.args" -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "APP/DEA/DeaDiag.o" "$<"
    29 
    30 #====================================4.定义all的依赖项
    31 # All Target
    32 all: warning-messages explicit-dependencies app.elf secondary-outputs
    33 # Tool invocations
    34 app.elf: $(OBJS) E:/workspace/S32K/ioc/Projects/D532_MC/D532_MC_APP/Project_Settings/Linker_Files/S32K148_256_flash.ld $(USER_OBJS)
    35     @echo 'Building target: $@'
    36     @echo 'Executing target #340 $@'
    37     @echo 'Invoking: Standard S32DS C Linker'
    38     arm-none-eabi-gcc -o "app.elf" "@app.args"  $(USER_OBJS_QUOTED) 
    39     @echo 'Finished building target: $@'
    40     @echo ' '
    41 
    42 app.bin: $(EXECUTABLES)
    43     @echo 'Executing target #341 $@'
    44     @echo 'Invoking: Standard S32DS Create Flash Image'
    45     arm-none-eabi-objcopy -O binary $(EXECUTABLES)  "app.bin"
    46     @echo 'Finished building: $@'
    47     @echo ' '
    48 
    49 app.siz: $(EXECUTABLES)
    50     @echo 'Executing target #342 $@'
    51     @echo 'Invoking: Standard S32DS Print Size'
    52     arm-none-eabi-size --format=berkeley $(EXECUTABLES)
    53     @echo 'Finished building: $@'
    54     @echo ' '
    55 
    56 # Other Targets
    57 clean:
    58     -$(RM) $(SECONDARY_FLASH_QUOTED) ./*/*/*/*.d ./*/*/*/*/*/*/*.d ./*/*/*/*/*/*/*/*.d ./*/*/*/*/*.d ./*/*/*/*/*/*.d ./*/*.d ./*/*/*.d  ./*/*/*/*.o ./*/*/*/*/*/*/*.o ./*/*/*/*/*/*/*/*.o ./*/*/*/*/*.o ./*/*/*/*/*/*.o ./*/*/*.o ./*/*.o  $(SECONDARY_SIZE_QUOTED) $(EXECUTABLES_QUOTED)
    59     -@echo ' '
    60 
    61 secondary-outputs: $(SECONDARY_FLASH) $(SECONDARY_SIZE)
    62 
    63 .PHONY: all clean dependents explicit-dependencies warning-messages
    64 .SECONDARY:
    65 
    66 -include ../makefile.targets
    67 
    68 explicit-dependencies: 
    69 
    70 warning-messages: 

    >>S32DS编译时的子make过程

     1 -include ../../makefile.local
     2 
     3 # Add inputs and outputs from these tool invocations to the build variables 
     4 #======3.1.1 追加全局变量:C_SRCS_QUOTED C_SRCS C_DEPS_QUOTED OBJS_QUOTED C_DEPS OBJS_OS_FORMAT OBJS
     5 C_SRCS_QUOTED += 
     6 "../APP/Task_Com/CanApp.c" 
     7 
     8 C_SRCS += 
     9 ../APP/Task_Com/CanApp.c 
    10 
    11 C_DEPS_QUOTED += 
    12 "./APP/Task_Com/CanApp.d" 
    13 
    14 OBJS_QUOTED += 
    15 "./APP/Task_Com/CanApp.o" 
    16 
    17 C_DEPS += 
    18 ./APP/Task_Com/CanApp.d 
    19 
    20 OBJS_OS_FORMAT += 
    21 ./APP/Task_Com/CanApp.o 
    22 
    23 OBJS += 
    24 ./APP/Task_Com/CanApp.o 
    25 
    26 #======3.1.2 定义各自.o的依赖项及生成.d文件
    27 # Each subdirectory must supply rules for building sources it contributes
    28 APP/Task_Com/CanApp.o: ../APP/Task_Com/CanApp.c | pre-build
    29     @echo 'Building file: $<'
    30     @echo 'Executing target #50 $<'
    31     @echo 'Invoking: Standard S32DS C Compiler'
    32     arm-none-eabi-gcc "@APP/Task_Com/CanApp.args" -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@)" -c -o "APP/Task_Com/CanApp.o" "$<"
    33     @echo 'Finished building: $<'
    34     @echo ' '
  • 相关阅读:
    [ZJOI2006]书架
    luogu P3369 【模板】普通平衡树(splay)
    MegaCli是一款管理维护硬件RAID软件,可以通过它来了解当前raid卡的所有信息,包括 raid卡的型号,raid的阵列类型,raid 上各磁盘状态
    ipmi配置方法-20200328
    debian配置---->/etc/apt/sources.list apt基本源设置指南
    Alien 魔法:RPM 和 DEB 互转
    Debian 9 中设置网络
    SSH自动断开连接的原因-20200323
    mpstat命令
    dstat命令
  • 原文地址:https://www.cnblogs.com/tjy1805099/p/12736841.html
Copyright © 2020-2023  润新知