目次

自作, 編集中

Heap4.c | スクリプティング

各タスクごとに割り当てられるメモリの管理

状態リスト | タスク管理

それぞれのタスクにはそのタスクの状態というものがあります. 今回のOSでは, このタスクの状態を状態リストを用いて判別することにします. 以下から, タスク状態の種類, 状態リストの構造, リストを用いたタスク状態の切り替え方法を詳しく見ていきます.

作品
端末第四世代(TerminalPro4) | 作品例
本体外観
本体外観

TerminalPro4とはSDカードに保存されている任意のプログラムを選択, 実行することができるものです. また外部のマイコン(optibootのみ対応)に対してプログラムを書き込むことも可能です. プログラマはTerminalPro4が備えている液晶, 音楽再生機, ボタンを自由に使用することができます. TerminalPro4が音楽プレイヤーからゲーム機まで様々なものになるのは, プログラマ次第です.

このページでは, TerminalPro4のハードウェア製作方法, TerminalPro4用のソフトウェア(アプリケーション)作製方法を説明していきます.

大まかな仕様は次のようになっています.

  • マイコン数: 3(ArduinoUno)
  • 入出力デバイス: 白黒ディスプレイ, スイッチ, 音声, SD
  • 音声出力法: PWM方式

TerminalPro4は次のライブラリを使用します.

C言語
Port.c | スクリプティング

PortMacro.hで宣言されているOSコア部分の関数をここで定義します. このファイルはAVRマイコン専用です.

OS
使用方法 | Arduino上で走るOSの作り方

ここでは, ArduinOSの使用方法を説明します.

スクリプティング | Arduino上で走るOSの作り方

ここから, OSのソースファイル, ヘッダファイルを順番に実装していきます.

実装するファイルは次のとおりです.

  • Heap4.c
  • List.c
  • List.h
  • ArduinOS.h
  • ArduinOSConfig.h
  • ArduinOSConfigAtmega328P.h
  • ArduinOSConfigAtmega2560.h
  • Port.c
  • Portable.h
  • PortMacro.h
  • ProjDefs.h
  • Queue.c
  • Queue.h
  • Semaphore.h
  • StackMacros.h
  • Task.c
  • Task.h

変更を加えるファイルは以下のとおりです.

  • Arduino.h
  • wiring.c
  • main.cpp

基本的な製作の流れを踏まえつつ, 各ファイルごとに説明を行っていきます.

仕組み | Arduino上で走るOSの作り方

ここには, OSの仕組みに関する情報が書かれます. OSは非常に多くのことが関わっているため以下のように分けていきます.

  • メモリ管理
  • タスク管理
  • OSの設定
  • Arduino標準機能との融合
OSの設定 | 仕組み

ここでは, OSの設定方法について説明します.

設定ファイルは,ArduinOSConfig.hです. このファイル内にOSの設定を書きます. また, 設定ではハードウェアの基本構成に加え, 各機能の有効化, システムフックを行うか, などといった設定を行えます.

「https://contentsviewer.work/Master/:tagmap/Arduino/自作,編集中?layer=ja」から取得