xmake 是一个基于 Lua 的轻量级跨平台构建工具,使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快速入门,能够让用户把更多的精力集中在实际的项目开发上。
前言
依我这几天学习cmake和xmake来说,xmake的构建项目的能力非常强大,并且速度也非常快,语法也是非常现代化。
同时,它也是一个自满足的构建系统,拥有强大的包管理系统,快速的构建引擎。
而且xmake的开发者活跃度较高,经常在线。
所以我决定用它来构建一个由cubeMX生成的stm32的项目。
安装xmake
项目地址:https://github.com/xmake-io/xmake/releases
windows
点击链接下载xmake的安装包,包名一般是xmake-[version].[win32|win64].exe,或者下载xmake-[version].[win32|win64].zip的包,解压后添加该路径到环境变量中。
或者可以使用winget install xmake
安装。
linux
我这里的是Ubuntu20.04 LTS系统,可以使用sudo apt install xmake
直接安装。
打开命令提示符,输入xmake --vision
生成代码
安装STM32代码生成器-STM32CubeMX
在ST官网下载STM32CubeMX:https://www.st.com/zh/development-tools/stm32cubemx.html
输入邮箱后会收到一封邮件,点开邮件链接就可以下载了。
使用CubeMX生成代码
选择芯片->选择功能配置->Project Manager
Project Manager里面的Project注意选择ToolChain为Makefile
Code Generator里面选择Copy only the necessary library files 以减小项目大小。
然后就可以生成代码了。
编译工具
我们可以使用armcc和arm-none-eabi-gcc来编译,但是armcc一般是集成在Keil等软件中,需要收费,所以这里使用arm-none-eabi-gcc来编译。
arm-none-eabi-gcc
用于编译 ARM 架构的裸机系统(包括 ARM Linux 的 boot、kernel,不适用编译 Linux 应用 Application),
一般适合 ARM7、Cortex-M 和 Cortex-R 内核的芯片使用,所以不支持那些跟操作系统关系密