Windows系统下代码编译系统搭建

 

 

       在编译单片机代码时,我们经常使用IDE来管理代码,包括编译和链接生成应用程序,但有时候我们只有编译器并没有IDE,需要我们自己来搭建单片机的编译环境,即自己搭建makefile文件管理系统,其实IDE也是通过makefile来管理代码的编译的,只是它隐藏了makefile的功能。在Windows系统下搭建自己的单片机的编译环境,其步骤一般如下所示:

  1. 安装Windows版本make等编译代码的命令程序
  2. 安装单片机版本的编译器工具
  3. 编写makefile文件
  4. 编写bat脚本
  5. 调试程序

下面将简单介绍各步骤。

 

1、安装Windows版本make等编译代码的命令程序

       为什么要安装Windows版本make等编译代码的命令程序呢?因为我们采用了makefile文件来管理代码的编译,makefile文件包含了如何编译工程代码的信息其本身并不是应用程序,其需要 make命令程序来解析并执行。一般来说Windows版本make常用工具有2种,一种是GnuWin32,另一种是Cygwin,读者可以选择其中一种来安装,其安装过程就不在此介绍了,网上有一堆文章了。

 

2、安装单片机版本的编译器工具

       编译器工具的作用即将代码翻译成机器码,对不同架构的处理器和单片机而言,其机器码一般都不一样,因此需要安装相应版本的编译器工具。编译器工具一般被make命令调用来将代码编译成机器码。本文章将安装NXP MPC57XX的S32,该软件包含了Cygwin和编译器工具。

 

3、编写makefile文件

       Makefile文件用于管理和组织工程代码的编译和链接,其有点像脚本文件,其有独立的文件包含、变量定义、内置命令、规则定义等,GNU官方make参考手册(https://www.gnu.org/software/make/manual/) 里面有详细介绍,当然里面都是全英文的,建议读者先参考《跟我一起写Makefile》陈皓 这本书,这样能对makefile语法较全面的了解。笔者将在下一篇文章中简单介绍。

 

 

4、编写bat脚本

       在windows系统下安装完make等命令工具后,我们需要编写bat脚本来设置一些环境变量及调用make等命令程序来自动完成工程代码的编译。下面是笔者常用的bat脚本代码:

::自动编译工程代码的脚本 作者:卢进铭

::关闭脚本运行时 命令的提示

@echo off

::设置MAKE_PATH为make等命令的路径

SET MAKE_PATH=C:/NXP/S32DS_Power_v2017.R1/utils/msys32/usr/bin

::往Path环境变量添加 make等命令及编译器工具的路径

SET Path=%Path%;%MAKE_PATH%;C:/NXP/S32DS_Power_v2017.R1/Cross_Tools/powerpc-eabivle-4_9/bin

 

::SET MAKE_PATH=C:/GnuWin32/bin

::调用make clean 来清除上一次编译的结果来重新开始代码的编译

CALL %MAKE_PATH%/make.exe clean

::删除上一次编译的调试信息

CALL %MAKE_PATH%/rm.exe build.log

::调用make all命令来开始代码的编译,-j表示使用多少个处理器内核来编译代码,NUMBER_OF_PROCESSORS为处理器内核的个数

::2>&1 | tee.exe -a build.log 表示将make的输出信息放到build.log文件中,这样我们就能查看每一次代码编译的结果和错误信息

CALL %MAKE_PATH%/make.exe all -j %NUMBER_OF_PROCESSORS% 2>&1 | tee.exe -a build.log

::暂停脚本的运行,提示脚本运行完成

Pause

 

 

其中

:: 是注释标志,用于解说代码或屏蔽代码的运行

SET 用于新建或设置环境的值,我们一般使用该命令将make等命令及编译器工具的路径添加到Windows本身自带的Path环境变量中,这样当bat脚本就能从Path中搜索到该命令,而不是报错说找不到该命令。

%环境变量% 用于取环境变量的值

CALL 用于调用程序,比如启动make.exe程序

 

5、调试程序

       通过make将生成带调试信息的elf文件和不带调试文件的S19文件,elf文件可以通过被iSYSTEM winIDEA或S32DS或其它工具 烧写进单片机程序并设置断点观察程序运行情况,S19可以通过自己编写的烧录工具烧写进单片机中。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值