1. 问题描述
目前C51单片机在国内使用最多的就是Keil环境, 然而Keil特别难用不说, 它还是商业软件
网上有很多尝试使用VS开发C51的文章, 但大多都是只用VS作为编辑器, 功能很局限
2. 目标
尝试使用VS创建CMake项目, 调用SDCC编译器进行编译
3. 解决方法
需要的工具
- 安装了使用C++的桌面开发功能并且包含了用于Windows的C++ CMake工具的Visual Studio
- 已加入环境变量的SDCC编译器
需要注意
- 因为使用的是SDCC编译器, 很多非标准C的语法与Keil内的写法不同, 需要先熟悉这些语法的SDCC标准, 如果需要单片机头文件的转换, 可以去GitHub上找转换程序的项目
工程创建步骤
- 创建一个CMake项目

- 打开这个CMake项目的设置页面

- 修改配置名称(不改也没关系, 不过默认的是x64看着很不舒服), 配置类型Release(C51单片机怎么Debug嘛…)
最重要的是CMake命令参数, 必须指定为-DCMAKE_SYSTEM_NAME=Generic -DCMAKE_C_COMPILER=sdcc

- 接下来点击右上角的编辑JSON, 删掉
inheritEnvironments配置并保存(否则会出现多次定义了变量CMAKE_C_COMPILER的错误), 当然上一步配置的内容就在这里, 也可以在这里修改

- 现在回到我们的项目来, 新建
include和src目录, 在src目录内再新建一个CMakeLists.txt文件

- 修改项目根目录下的
CMakeLists.txt文件(项目名自己修改)# 项目特定的逻辑 cmake_minimum_required(VERSION 3.8) # 项目名称 set(PROJECT_NAME "CMakeProject1") project(${PROJECT_NAME} C) # 这个C是必须的, 否则将会提示CXX编译器错误 # 头文件查找目录 include_directories(${PROJECT_SOURCE_DIR}/include) # 源码子目录 add_subdirectory(${PROJECT_SOURCE_DIR}/src) - 修改
src目录下的CMakeLists.txt文件# 源码列表 # set(SRC_LIST "main.c") file(GLOB SRC_LIST *.c) # 将源代码添加到此项目的可执行文件。 add_executable (${PROJECT_NAME} ${SRC_LIST}) - 最后, 如果没有报错, 就可以生成二进制文件了, 生成的二进制文件是
项目根目录\out\build\配置名称\src\项目名称.ihx

- 再补充一下, 如果无法使用
ihx文件, 可以使用SDCC中的工具packihx.exe将它转换成hex文件或使用makebin.exe将它转换成bin文件# 注意packihx的>是必须的 packihx CMakeProject1.ihx > CMakeProject1.hex makebin CMakeProject1.ihx CMakeProject1.bin
本文针对C51单片机使用Keil环境难用且为商业软件、网上用VS开发功能局限的问题,提出使用VS创建CMake项目,调用SDCC编译器进行编译的方法。介绍了所需工具,强调要熟悉SDCC语法标准,还详细说明了工程创建步骤及相关注意事项。

262

被折叠的 条评论
为什么被折叠?



