リアルタイムOS, 文章, メモリ管理, アラーム, ブートローダ, 軽量マークアップ言語
その他
ここでは, 文の書き方に関することが書かれます.
ここでは, OutlineTextの特徴を示します.
OutlineTextの特徴は以下のとおりです.
- プレーンテキストでの見た目がそのままウェブページに反映
- 文章のアウトラインを見えやすく
- 見た目が分かりやすい文章は,読みやすく書きやすい
OutlineTextは, プレーンテキストの段階で文章のアウトラインを分かりやすくするために開発された軽量マークアップ言語です. 他の軽量マークアップ言語(Markdown, AsciiDoc, ReStructuredText, …)と異なり, インデントは文章の階層構造を表します. このことで, 文章の階層構造が視覚的にわかりやすくなります.
OutlineTextの実行例をご覧になりたい時はこのウェブページを参照してください. このウェブページはすべてOutlineTextで書かれています. OutlineTextのプレーンテキストは, ウェブページ右下にあるこのページのソースコードを表示
をクリックすることで, 確認できます.
すぐに試してみたい方は, 以下のページから
すぐに試す
OSは日常のあらゆる場所で目にします. パソコンには必ずと言っていいほどOSが走っており, 携帯, ゲーム機などにもOSが走っております. このような普段よく使うOSですが, そのOSの仕組みを分かっていても, 実際どのように作るのかはよく知られておらず気になります.
このページでは, 実際にArduinoで動くOSを作成することで, OSの理解を深めます. 使用するプログラミング言語はC言語です. (作成といいましても, すでに在りますFreeRTOSから必要な機能を抜き出し, Arduinoで動くようにしました.) なお, 今回扱うOSは汎用OSではなくリアルタイムOS(RTOS)と呼ばれるものです. 汎用OSとは, すべてのタスクに等しく優先度が与えられますが, RTOSではタスクごとに優先度を設定できます.
話の進め方ですが, 今回のOS製作では実装に重きを置くため, コードを中心に話を進めていきます. 各コードごとに簡単な説明を行い, その中で特に重要な部分―OSの仕組みに深くかかわる部分―もしくはさらに詳しい説明については別ページで行います. これら別ページ―詳細ページ―は子コンテンツである"仕組み"にまとめられています.
話の流れは次のとおりです.
- RTOSとは
- 目標と使い方
- 準備
- ファイル構成
- スクリプト
- ボードの設定
- 仕組み
対応状況
- Arduino UNO
- Arduino Mega
動作確認済み環境
- Arduino IDE 1.8.10
- Arduino AVR Boards 1.8.1
Optibootに関して簡単に説明します. 説明項目は以下のとおりです.
- optibootとは
- optibootの起動方法
- optibootにコマンドを送る
- optibootにスケッチを送る
OSは日常のあらゆる場所で目にします. パソコンには必ずと言っていいほどOSが走っており, 携帯, ゲーム機などにもOSが走っております. このような普段よく使うOSですが, そのOSの仕組みを分かっていても, 実際どのように作るのかはよく知られておらず気になります.
このページでは, 実際にArduinoで動くOSを作成することで, OSの理解を深めます. 使用するプログラミング言語はC言語です. (作成といいましても, すでに在りますFreeRTOSから必要な機能を抜き出し, Arduinoで動くようにしました.) なお, 今回扱うOSは汎用OSではなくリアルタイムOS(RTOS)と呼ばれるものです. 汎用OSとは, すべてのタスクに等しく優先度が与えられますが, RTOSではタスクごとに優先度を設定できます.
話の進め方ですが, 今回のOS製作では実装に重きを置くため, コードを中心に話を進めていきます. 各コードごとに簡単な説明を行い, その中で特に重要な部分―OSの仕組みに深くかかわる部分―もしくはさらに詳しい説明については別ページで行います. これら別ページ―詳細ページ―は子コンテンツである"仕組み"にまとめられています.
話の流れは次のとおりです.
- RTOSとは
- 目標と使い方
- 準備
- ファイル構成
- スクリプト
- ボードの設定
- 仕組み
対応状況
- Arduino UNO
- Arduino Mega
動作確認済み環境
- Arduino IDE 1.8.10
- Arduino AVR Boards 1.8.1
OSはタスクごとにメモリを動的に割り当てる必要があります(タスクが保有するメモリに関することはのちに説明します). というのも, これらのタスクはアプリケーション実行中に生成, 削除される可能性があるからです.
今回では, このメモリ管理をOSが行うことにします. OSがメモリ管理を行うことで, OS動作の理解がしやすくなるからです.
このページでは, OSによるメモリ管理をどのように実装するのか説明します.
ここでは, 実際にタスクが作成されたときのメモリの構造を示していきたいと思います. メモリでの各領域の説明, この構造によるmallocの問題を示します.
文章を書くという行為は, 日常でよく行われます. その際, 他人にわかりやすく書こうとしますが, なかなかそうはいきません. 何から書き始めていいのか, どのようにして文章を続けるか悩みます. ここでは, 筆者なりにわかりやすい文章を書くということについて考察します.
本稿は, 筆者が今まで文を書いてきて, 先輩, 先生方から言われた文の校正内容をまとめたものです. 文の意味で校正をするのではなく, 文を文字列として扱いプロトコル的に校正します.
本来手動でメモリ管理しなければならない動的なオブジェクトを、スコープによって自動でメモリ管理するもの。
OSはタスクごとにメモリを動的に割り当てる必要があります(タスクが保有するメモリに関することはのちに説明します). というのも, これらのタスクはアプリケーション実行中に生成, 削除される可能性があるからです.
今回では, このメモリ管理をOSが行うことにします. OSがメモリ管理を行うことで, OS動作の理解がしやすくなるからです.
このページでは, OSによるメモリ管理をどのように実装するのか説明します.
ここでは, 実際にタスクが作成されたときのメモリの構造を示していきたいと思います. メモリでの各領域の説明, この構造によるmallocの問題を示します.
ここでは, OutlineText の文法を示していきます. 基本的に Markdown と似せていますが, インデントに対する挙動が異なります. 見やすい文章を書くことを注意すれば, OutlineText は自然に解釈し構造化します.
ここでは, 実際にタスクが作成されたときのメモリの構造を示していきたいと思います. メモリでの各領域の説明, この構造によるmallocの問題を示します.