CMakeを使って、FreeRTOS最小構成のVisualStudioプロジェクト作る
概要
Windows上でFreeRTOSを動かす
は提供されているサンプルプロジェクトの実行のみでした。
実際の開発では異なる開発環境や複数人開発、またビルド環境の管理に対応することが必要になると思います。
この記事ではCMakeでFreeRTOSのVisual Studioプロジェクトを構築します。
この記事で説明するコード
手順
FreeRTOS
ダウンロード
必要なファイルを選ぶ
FreeRTOS各ポート(コンパイラ、アーキテクチャの組み合わせ)のコードがすべて含まれています。
ここからWindows Visual Studio環境に必要なファイルだけ取得します。
FreeRTOS/Source直下にあるファイル、FreeRTOS/include以下のファイルがカーネルコアとなる部分で、どのポートでも必要なファイルになります。
FreeRTOS/portable/以下がポートごとのファイルになります
MemMangはheap管理用で必要
MSVC-MingWはVisualStudio用で必要
となります。
これら必要のファイルのみ自身のプロジェクトに取り込みます。
アプリケーションコード
自身で開発するアプリケーションコードをいれます。
Github Repositoryにはチュートリアルのサンプルコードを入れてあります。
CMake
基本的な使い方
日本語の記事がいろいろとあるので参照してください。
https://qiita.com/shohirose/items/45fb49c6b429e8b204ac
とか良いです。
今回用のCMakeLists.txt
# ----------------------------
# 必要な最小バージョンを指定
# ----------------------------
cmake_minimum_required(VERSION 3.1).
# ----------------------------
# プロジェクト名, 言語(C言語)を指定.
# ----------------------------
project(freertos_project C)
# ----------------------------
# include directory
# Makefile の -include 命令や,コンパイラでの -I オプションは include_directories で代用.
# ----------------------------
include_directories(./src)
include_directories(./src/Supporting_Functions)
include_directories(./FreeRTOS/Source/include)
include_directories(./FreeRTOS/Source/portable/MemMang)
include_directories(./FreeRTOS/Source/portable/MSVC-MingW)
# ----------------------------
# コンパイル対象のソース一覧を作成
# - 指定されたGLOBパターン<globbing_expressions>にマッチするファイルを探索し、その一覧をリストとして変数<variable>に格納します。
# このとき絶対パスで格納されますが、RELATIVE <path>が指定されていると、このパスからの相対パスとなります。
# - 以下の正規表現のメタ文字に似たものが使えます。
# - 任意の文字の0回以上の繰り返し*
# - 任意の文字?
# - ブラケット内で指定された文字[ ]とその範囲
# フォーマット
# file(WRITE <filename> [<content1> ...])
# file(APPEND <filename> [<content1> ...])
# filenameがVCだとプロジェクト名になるみたい.
# ----------------------------
file(GLOB freertos_files FreeRTOS/Source/*.[ch] FreeRTOS/Source/portable/MSVC-MingW/*.[ch] FreeRTOS/Source/portable/MemMang/*.[ch])
file(GLOB src_files src/*.[ch] src/Supporting_Functions/*.[ch])
# ----------------------------
# オブジェクトファイルを作るソースを指定
# ----------------------------
add_library(freertos OBJECT ${freertos_files})
add_library(src OBJECT ${src_files})
# ----------------------------
# VisualStudioのFilterを作るようにする.
# ----------------------------
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
# ----------------------------
# 実行ファイルを作る方法を指定
# ----------------------------
add_executable(${PROJECT_NAME}
$<TARGET_OBJECTS:freertos>
$<TARGET_OBJECTS:src>
)
CMakeの実行
buildディレクトリで cmake .. します。
PS F:\git-work\cmake_freertos_visualstudio\build> cmake ..
-- The C compiler identification is MSVC 19.27.29110.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.27.29110/bin/Hostx64/x64/cl.exe - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Configuring done
-- Generating done
-- Build files have been written to: F:/git-work/cmake_freertos_visualstudio/build
※Shift押しながら右クリックでPowerShellを開けるので便利です
VisualStudio立ち上げる
ここまでくるとbuildディレクトリ内は
となっているので、freertos_project.slnをダブルクリックしましょう。
あとはスタートアッププロジェクトを設定すれば実行できます。
build以下はGit Repository管理ではなく、CMakeから作成するので管理も楽ですし、配布もしやすいですね。
Author And Source
この問題について(CMakeを使って、FreeRTOS最小構成のVisualStudioプロジェクト作る), 我々は、より多くの情報をここで見つけました https://qiita.com/azuki_bar/items/fc7ee06dad935a466779著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .