週末!プログラミング部

ソフトウェア開発ネタを中心に自分でいろいろ調べた内容を自分の勝手な解釈で思うがままに書いくためのブログ。サンプルソースコード、API、プラットフォーム、プログラミング言語、開発環境などを調査、分析して追求いく予定です。

Pythonでデザインパターン 拾参ノ型「Visitor」

今回はPythonの勉強しながらデザインパターンのVisitorをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 Visitorとは 直訳すると「訪問者」ですね。 wikiには「 アルゴリズムをオブジェクトの構造から分離するためのデザイ…

Pythonでデザインパターン 拾弐ノ型「Decorator」

今回はPythonの勉強しながらデザインパターンのDecoratorをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 Decoratorとは 直訳すると「飾り付けをする人」ですかね。 wikiには「既存のオブジェクトに新しい機能や振る舞い…

Pythonでデザインパターン 拾壱ノ型「Composite」

今回はPythonの勉強しながらデザインパターンのCompositeをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 Compositeパターンとは 直訳すると「複合物」や「混合物」みたいな意味でしょうか。 wikiには「ディレクトリとフ…

Pythonでデザインパターン 拾ノ型「Strategy」

今回はPythonの勉強しながらデザインパターンのStrategyをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 Strategyとは 直訳すると「戦略」ですね。 wikiには「アルゴリズムを使用者から独立したまま様々に変化させること…

Pythonでデザインパターン 玖ノ型「Bridge」

今回はPythonの勉強しながらデザインパターンのBridgeをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 Bridgeとは 直訳すると「橋」ですね。 wikiには「"橋渡し"のクラスを用意することによって、クラスを複数の方向に拡…

Pythonでデザインパターン 捌ノ型「AbstractFactory」

今回はPythonの勉強しながらデザインパターンのAbstractFactoryをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 AbstractFactoryとは 直訳すると「抽象的な工場」になります。 wikiには「関連するインスタンス群を生成す…

Pythonでデザインパターン 漆ノ型「Builder」

今回はPythonの勉強しながらデザインパターンのBuilderをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 Builderとは 直訳すると「建築者」という意味になります。 wikiには「 オブジェクトの生成過程を抽象化することによ…

Pythonでデザインパターン 陸ノ型「Prototype」

今回はPythonの勉強しながらデザインパターンのPrototypeをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 Prototypeとは 直訳すると「原型」や「模範」という意味になります。 wikiには「生成されるオブジェクトの種別が…

Pythonでデザインパターン 伍ノ型「Singleton」

今回はPythonの勉強しながらデザインパターンのSingletonをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 Singletonとは 直訳すると「単一要素」みたいな意味になります。 wikiには「そのクラスのインスタンスが1つしか生…

Pythonでデザインパターン 肆ノ型「FactoryMethod」

今回はPythonの勉強しながらデザインパターンのFactoryMethodをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 FactoryMethodとは 直訳すると「工場手続き」みたいな意味になります。 wikiには「他のクラスのコンストラク…

Pythonでデザインパターン 参ノ型「TemplateMethod」

今回はPythonの勉強しながらデザインパターンのTemplateMethodをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 TemplateMethodとは 直訳すると「型板手続き」みたいな意味になります。 wikiには「ある処理のおおまかなア…

Pythonでデザインパターン 弐ノ型「Adapter」

今回はPythonの勉強しながらデザインパターンのAdapterをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 Adapterとは 直訳すると「適合させるもの」という意味になりますが、 直訳だと少しわかりにくいですね(;´Д`) wiki…

Pythonでデザインパターン 壱ノ型「Iterator」

今回はPythonの勉強目的でデザインパターンのIteratorをやってみました。 他のパターンにつきましては、以下の目次記事をご参照ください。 Iteratorとは 直訳だと「繰り返す」や「反復」という意味になります。 wikiには「コンテナオブジェクトの要素を列挙…

Pythonを勉強しながらデザインパターンを勉強してみる

最近、Pythonの勉強を始めてみました。 私は新しい言語を覚えるとき、とにかく真似てもいいから色んなコードを書いて、その言語の雰囲気を味わうようにしています。 そんな勉強方法が良いかはさておき(・`ω´・;) 今回も色んなコードを書いてみるところか…

Pythonにおけるクラスの使い方とスコープを確認してみる

会社の若い子たちがPhysonで機械学習とかやっているようなので自分も勉強してみることにしました。 基本的な文法はなんとなくわかる気がするので、Pythonにおけるクラスの使い方とスコープから初めてみたいと思います。 自分のお勉強目的の備忘録なのでわか…

Cortex-M4でCMSISライブラリを使わずにSysTickを制御してみる

前回までは、Cortex-M4でCMSISライブラリを使わずにGPIO制御してみました。 今回は、Cortex-M4でCMSISライブラリを使わずにSysTickを制御してみたいと思います。 SysTickとは ARMマイコンが周辺機器とは別に持っている24ビットのシステム・タイマです。 特徴…

Cortex-M4でCMSISライブラリを使わずにGPIO制御してみる(拡張)

前回は、Cortex-M4でCMSISライブラリを使わずにGPIO制御してみました。 今回は、その延長で複数のGPIOを制御してLチカさせます。 内容は前回やったことに毛が生えたような感じですが、今後やりたいことがあり、そのデバッグ目的のためにやります。 User LED…

Cortex-M4でCMSISライブラリを使わずにGPIO制御してみる

前回は、eclipse Embedded CDTでSTM32F407VG(Cortex-M4)のベアメタルをデバッグしました。 今回は、CMSISライブラリを使わずにGPIOを制御してUser LED(green)をLチカさせてみたいと思います。 User LED(green)の接続先 まずはUser LED(green)の接続先を探し…

eclipse Embedded CDTを使ってAMR用のベアメタルをデバッグしてみる

前回はeclipse Embedded CDTをインストールしてWidnowsだけで動くAMR用のベアメタル開発環境を構築してみました。 今回はeclipse Embedded CDTを使用してAMR用のベアメタルをデバッグしてみました。 備忘録として残します。 プロジェクトを作成する eclipse…

eclipse Embedded CDTでAMR用のベアメタル開発環境を作ってみる

eclipseを使用したARMの開発環境 eclipse Embedded CDT が便利だという話を小耳にはさみました。 eclipse Embedded CDT はeclipseにクロスツールチェーンやプラグインを追加して使うような開発環境のようです。 今回は、Windows 10 64bitマシンにeclipse Emb…

システムコールを実装してnewlibのprintfを使えるようにする

Raspberry pi のベアメタル開発環境構築の続編です。 以前、Crosstool-NGでRPiのベアメタル開発環境を作るときに、newlibも一緒にインストールしました。 今回は、システムコールを実装してnewlibのprintf()を使えるようにしてみようと思います。 printfがな…

SimulinkとC#で共有メモリを使ったプロセス間通信をさせてみる

前回は、MATLABとC#で共有メモリを使ったプロセス間通信をさせてみました。 今回は、SimulinkとC#で共有メモリを使ったプロセス間通信をさせてみたいと思います。 SimulinkからCコードを呼び出すにはS-Functionブロックというものがあります。 また、S-Funct…

MATLABとC#で共有メモリを使ったプロセス間通信をさせてみる

今回はMATLABとC#で共有メモリを使ったプロセス間通信を試みたいと思います。 MATLAB同士で共有メモリを使ったプロセス間通信としてmemmapfileを使う例があります。 しかし、memmapfileはページファイル内のメモリマップの読み書きはできません。 また、メモ…

MATLABからCライブラリを呼び出してみる

前回は、MEX関数を使ってMATLABからCコードを呼び出してみました。 今回は、すこしだけ発展させて、MEX関数をライブラリ化してMATLABから呼び出してみたいと思います。 https://jp.mathworks.com/help/matlab/call-c-library-functions.html MATLABが呼び出…

MATLABからCコードを呼び出してみる

MATLABではコマンドラインからユーザー独自のC/C++プログラムを組み込み関数のように呼び出すことができ、 これらのプログラムはMEX関数と呼ばれているようです。 https://jp.mathworks.com/help/matlab/call-mex-files-1.html MEX関数はMATLABを高速化させ…

CとC#で共有メモリを使ったプロセス間通信をさせてみる

ちょっとCとC#で共有メモリを使ったプロセス間通信が必要になったので調べてみました。 共有メモリを使用したプロセス間通信は昔からあるので、ネットで探せばやり方がたくさん出てきます。 今回は特にわかりやすかった以下のサイトを参考にさせていただき、…

小さな開発用マシンを作ってみる

DeskMiniを購入してみた 最近、開発専用のマシンが欲しくなりました(´・ω・`) なにかちょっと試したいとき、巨大なデスクトップを起動させるほどでもないけどRaspberry Piみたいなシングルボードだとパワー不足で心もとない。 そんなとき、小さくて気軽に…

RPiでAMP環境を構築してみる

今回は、Crosstool-NGで作ったRPiのベアメタル開発環境を使用して、Raspberry Pi(以降、RPi)でAMPシステムを作ってみたいと思います(・`ω´・)b AMPシステムとは Raspberry Pi OSをインストールしてみる Raspberry Pi OSが使用するメモリとCPUコア数を制限…

QEMUでRPiをエミュレートしてみる

前回は、Crosstool-NGでtoolchainを構築して、RPi3のチュートリアルをビルドしてみました。 今回は、ビルドしたカーネルを動かしてみたいと思います(・`ω´・)b ・・・が、ビルドするたびにカーネルをSDカードにコピーするのも手間なのでQEMUというエミュ…

Crosstool-NGを使ってRPiのベアメタル開発環境を構築してみる

前回、格安でRasperry Piを手に入れたのでこれらを使ってベアメタルプログラミングをしてみようと思います。 まずは開発環境の構築から(・`ω´・)b 開発環境の構築にはCrosstool-NGを使います。 Crosstool-NGは、toolchain(コンパイラ、アセンブラ、リン…