目次

リアルタイムOS, 文字列処理, 生活, フレームワーク

+
その他

Arduino, OS
Arduino上で走るOSの作り方 | Arduino

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
ライブラリ, Cpp, C#, C++
C++でC#のようなStringを使いたい | C++ライブラリ

C#からC++に入った人もいるでしょう. その時C#で大変よく使っていたStringが恋しい場合があります. C++を書きつつC#を感じたい時があります.

上の問題を解決する方法でここで紹介するStringがあります. このStringで用意されている関数名はほぼC#と一致します.

C#で非常に便利だったSplit関数も用意されています.

また, 文字列探索において一番高速とされるBM法を用いています.

Stringを強化, 改良何でもしてください. ( `ー´)ノ

CAUTION

C#のStringを使ったことがない方は, これをお勧めすることはできません. これと同様かそれ以上の機能を持つC++のstringをお使いください. C++ですでに用意されています.

ショートカット, iOS, アラーム
ショートカットで複数アラームを時間指定して設定する | iPhone

iPhoneで目覚ましを設定するときは,起床時間から何分かおきにアラームを設定することがあります.アラーム設定を複数かけるショートカットが多く提案されています[1][2][3]が,そのほとんどが設定時間をスクリプトに直書きしています.起床時間を変えるときに一からスクリプトを書きなおすのは手間がかかります.

本稿では,時間指定して複数アラームをかけられるショートカットを紹介します.

時間指定可能ショートカット
時間指定可能ショートカット
nodec
nodec framework(プラットフォーム開発のためのフレームワーク) | Welcome!

nodecは、ゲームエンジンなどのプラットフォームを新しく作成するためのフレームワークです。

アプリ開発のためのプラットフォームは、これまでたくさんありました。たとえば、GUIアプリケーション作成のプラットフォームにはQt、ゲーム開発のためのプラットフォームにはUnityがあります。ですが、これらのプラットフォームは別々で開発されており、そのうえで動くアプリコードもまた、まったく違った様相をしています。

nodecフレームワークを利用することで、新しいプラットフォームを効率的に構築できます。nodecフレームワークは、異なるプラットフォーム間で共通に使える機能を提供します。また、アプリへのインターフェイスはあらかじめ定義されているので、設計の再利用が可能です。

アプリコードの実装も、nodecフレームワークで効率化することが可能です。プラットフォームの上に、機能を抽象化したレイヤー(modules)があり、アプリ層はこのレイヤーを通してプラットフォームの機能を利用します。プラットフォームが異なっても、アプリでの実装の仕方は同じです。

プロジェクト
nodec framework(プラットフォーム開発のためのフレームワーク) | Welcome!

nodecは、ゲームエンジンなどのプラットフォームを新しく作成するためのフレームワークです。

アプリ開発のためのプラットフォームは、これまでたくさんありました。たとえば、GUIアプリケーション作成のプラットフォームにはQt、ゲーム開発のためのプラットフォームにはUnityがあります。ですが、これらのプラットフォームは別々で開発されており、そのうえで動くアプリコードもまた、まったく違った様相をしています。

nodecフレームワークを利用することで、新しいプラットフォームを効率的に構築できます。nodecフレームワークは、異なるプラットフォーム間で共通に使える機能を提供します。また、アプリへのインターフェイスはあらかじめ定義されているので、設計の再利用が可能です。

アプリコードの実装も、nodecフレームワークで効率化することが可能です。プラットフォームの上に、機能を抽象化したレイヤー(modules)があり、アプリ層はこのレイヤーを通してプラットフォームの機能を利用します。プラットフォームが異なっても、アプリでの実装の仕方は同じです。

「https://contentsviewer.work/Master/:tagmap/リアルタイムOS,文字列処理,生活,フレームワーク?layer=ja」から取得