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項目
    創建項目
  2. 打開這個CMake項目的設置頁面
    打開設置頁面
  3. 修改配置名稱(不改也沒關係, 不過默認的是x64看着很不舒服), 配置類型Release(C51單片機怎麼Debug嘛…)
    最重要的是CMake命令參數, 必須指定爲-DCMAKE_SYSTEM_NAME=Generic -DCMAKE_C_COMPILER=sdcc
    修改設置
  4. 接下來點擊右上角的編輯JSON, 刪掉inheritEnvironments配置並保存(否則會出現多次定義了變量CMAKE_C_COMPILER的錯誤), 當然上一步配置的內容就在這裏, 也可以在這裏修改
    編輯JSON
  5. 現在回到我們的項目來, 新建includesrc目錄, 在src目錄內再新建一個CMakeLists.txt文件
    項目
  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
    生成
  9. 再補充一下, 如果無法使用ihx文件, 可以使用SDCC中的工具packihx.exe將它轉換成hex文件或使用makebin.exe將它轉換成bin文件
    # 注意packihx的>是必須的
    packihx CMakeProject1.ihx > CMakeProject1.hex
    makebin CMakeProject1.ihx CMakeProject1.bin
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章