VisualStudio+CMake+SDCC搭建C51开发环境

1. 问题描述

目前C51单片机在国内使用最多的就是Keil环境, 然而Keil特别难用不说, 它还是商业软件
网上有很多尝试使用VS开发C51的文章, 但大多都是只用VS作为编辑器, 功能很局限

2. 目标

尝试使用VS创建CMake项目, 调用SDCC编译器进行编译

3. 解决方法

需要的工具

  • 安装了使用C++的桌面开发功能并且包含了用于Windows的C++ CMake工具的Visual Studio
  • 已加入环境变量SDCC编译器

需要注意

  • 因为使用的是SDCC编译器, 很多非标准C的语法与Keil内的写法不同, 需要先熟悉这些语法的SDCC标准, 如果需要单片机头文件的转换, 可以去GitHub上找转换程序的项目

工程创建步骤

  1. 创建一个CMake项目
    VisualStudio+CMake+SDCC搭建C51开发环境_第1张图片
  2. 打开这个CMake项目的设置页面
    VisualStudio+CMake+SDCC搭建C51开发环境_第2张图片
  3. 修改配置名称(不改也没关系, 不过默认的是x64看着很不舒服), 配置类型Release(C51单片机怎么Debug嘛…)
    最重要的是CMake命令参数, 必须指定为-DCMAKE_SYSTEM_NAME=Generic -DCMAKE_C_COMPILER=sdcc
    VisualStudio+CMake+SDCC搭建C51开发环境_第3张图片
  4. 接下来点击右上角的编辑JSON, 删掉inheritEnvironments配置并保存(否则会出现多次定义了变量CMAKE_C_COMPILER的错误), 当然上一步配置的内容就在这里, 也可以在这里修改
    VisualStudio+CMake+SDCC搭建C51开发环境_第4张图片
  5. 现在回到我们的项目来, 新建includesrc目录, 在src目录内再新建一个CMakeLists.txt文件
    VisualStudio+CMake+SDCC搭建C51开发环境_第5张图片
  6. 修改项目根目录下的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)
    
  7. 修改src目录下的CMakeLists.txt文件
    # 源码列表
    # set(SRC_LIST "main.c")
    file(GLOB SRC_LIST *.c)
    
    # 将源代码添加到此项目的可执行文件。
    add_executable (${PROJECT_NAME} ${SRC_LIST})
    
  8. 最后, 如果没有报错, 就可以生成二进制文件了, 生成的二进制文件是项目根目录\out\build\配置名称\src\项目名称.ihx
    VisualStudio+CMake+SDCC搭建C51开发环境_第6张图片
  9. 再补充一下, 如果无法使用ihx文件, 可以使用SDCC中的工具packihx.exe将它转换成hex文件或使用makebin.exe将它转换成bin文件
    # 注意packihx的>是必须的
    packihx CMakeProject1.ihx > CMakeProject1.hex
    makebin CMakeProject1.ihx CMakeProject1.bin
    

你可能感兴趣的:(C++学习笔记)