デバッガ, ベクトル, 文字列処理, WSL, NVIDIA, リアルタイムOS
その他
PHPでWebアプリケーションを作るとき, 必ずデバックを行う必要があります. Debugの方法として, "echo"関数などを使用したプログラムの状態を画面に出力するなどがありますが, ファイルとしてそのようなデバック情報が保存されないのが難点です.
このDebugツールは以下の目的で作られました.
- 簡単にDebugできるように
- 外部ファイルとしてデバック情報を保存
C#からC++に入った人もいるでしょう. その時C#で大変よく使っていたStringが恋しい場合があります. C++を書きつつC#を感じたい時があります.
上の問題を解決する方法でここで紹介するStringがあります. このStringで用意されている関数名はほぼC#と一致します.
C#で非常に便利だったSplit関数も用意されています.
また, 文字列探索において一番高速とされるBM法を用いています.
Stringを強化, 改良何でもしてください. ( `ー´)ノ
C#のStringを使ったことがない方は, これをお勧めすることはできません. これと同様かそれ以上の機能を持つC++のstringをお使いください. C++ですでに用意されています.
PHPでWebアプリケーションを作るとき, 必ずデバックを行う必要があります. Debugの方法として, "echo"関数などを使用したプログラムの状態を画面に出力するなどがありますが, ファイルとしてそのようなデバック情報が保存されないのが難点です.
このDebugツールは以下の目的で作られました.
- 簡単にDebugできるように
- 外部ファイルとしてデバック情報を保存
線形代数にある線形写像, 基底の変換行列, 表現行列などを理解するとき, 今どこの座標系にいるのか, 基底は変わったのか, ここはベクトル空間かという悩みに会います.
本稿では, 変換行列や表現行列を図で理解することを目的にします. 行列の掛け算が点の移動であることを意識すると, 理解しやすくなります.
C#からC++に入った人もいるでしょう. その時C#で大変よく使っていたStringが恋しい場合があります. C++を書きつつC#を感じたい時があります.
上の問題を解決する方法でここで紹介するStringがあります. このStringで用意されている関数名はほぼC#と一致します.
C#で非常に便利だったSplit関数も用意されています.
また, 文字列探索において一番高速とされるBM法を用いています.
Stringを強化, 改良何でもしてください. ( `ー´)ノ
C#のStringを使ったことがない方は, これをお勧めすることはできません. これと同様かそれ以上の機能を持つC++のstringをお使いください. C++ですでに用意されています.
2021年12月現在, この記事で紹介している方法は古い可能性があります.
最新の方法について, microsoft 公式の以下のページか, 他の最新情報サイトをご覧ください.
WSL2上でUSBデバイスを認識させるために, VirtualHereを用いた方法を, Linux側でUSB/IPの機能を有効にする方法も含めて, 説明します.
このセクションでは, Windows Subsystem for Linux について書かれます.
shell環境における開発をするためには,まずその開発環境を整える必要があります. 本稿では,開発環境を整えるスクリプトを公開します.
本稿で上げるスクリプトは,WSL(Windows Subsystem For Linux)上でのセットアップにも対応させています.
2021年12月現在, この記事で紹介している方法は古い可能性があります.
最新の方法について, microsoft 公式の以下のページか, 他の最新情報サイトをご覧ください.
WSL2上でUSBデバイスを認識させるために, VirtualHereを用いた方法を, Linux側でUSB/IPの機能を有効にする方法も含めて, 説明します.
公式リファレンスを参考しつつ, Ubuntu 上にNVIDIA GPU ドライバ, CUDA, cuDNNを入れて, tensorflow をGPUで動かす方法を, フローチャートで進めます.
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