Windows10 IoT Core のアニバーサリーアップデート


デスクトップの Windows10 にアニバーサリーアップデートが来たように、 Windows 10 IoT Core についても アニバーサリーアップデートが来ました。今回はこれの導入手順や新機能などを紹介してみたいと思います。

導入について

以前にIoT Core を導入している場合で、 Windows 10 IoT Core Dashboard がインストールされている環境では、 Dashboard を起動すると以下のようにウィンドウが表示されて、更新を促されるので更新を行います。
win10-iot-update-01

ちなみに Windows 10 IoT Core Dashboard は以下のページから取得可能です。
Microsoft Windows 10 IoT Core Get Start
こららの詳細は、以前の導入記事を参照していただければと思います。

win10-iot-update-02
Dashboard から必要事項を入力して microSD カードにイメージデータを書き込みます
他に作業することはないのでしばらく待ちます。

書き込みが完了した microSD カードを Raspberry Pi 2 に装着して、電源をいれます。
初回起動にはそこそこの時間(5分程度)がかかるので、画面が落ち着くまで待ちます。

ちなみに OS のバージョンとしては 10.0.14393.0 となっていました
続きを読む


gcc 組込み関数(memcpyとか)のインライン展開抑制


アライメントに寛容な x86 の話ではなく、 ARM プロセッサのお話になります。OSが動いていてソフトウェア例外を処理できるような状況では非アライメントなデータであってもなんとか動くので表面化しませんが、そのアタリをケアしない状況ではプログラムが停止してしまう原因の1つです。

さて非アライメントなデータ列をコピーしたりクリアしたりする際に、memcpy, memset などを使用することがあります。
デバッグ時にはうまく動いていたのに、最適化を有効にしたリリースビルドでは, このあたりでうまく動作せずに例外を出してしまったりすることがあります。

仕方なくこれらの関数の自前版を用意してこちらを使うようにしてしまうのも1つの手です。しかし memcpy, memset などのまま対処することも可能なことがわかりましたのでここで紹介したいと思います。
ここまでに言い忘れてしまいましたが、 gcc を使用した開発環境でのお話です。

原因

そもそも最適化によって何が起こり、正常に動かなくなってしまうのか。この原因は gcc が自分の組み込み関数を使用し、最適化によってインライン展開されてしまうことによります。

インライン展開されてもアライメント寛容なコードであればまだ良かったりしますが、速度重視のために最適化されているのでそうはならないのが現実です。

対策

gcc のコンパイルオプションで実はこのインライン展開の抑制が可能です。
-fno-builtin-(functionname) というオプションになります。なので、 memset,memcpy らを抑制する場合には、 -fno-builtin-memset, -fno-builtin-memcpy といったようなオプションを指定することとなります。


マウスによるウィンドウのリサイズや移動処理を実装 (wayland)


前回のモデル描画を実装してみたところで中身が入った感じなので、ウィンドウとしてリサイズができるように処理を追加していきたいと思います。
実はこのウィンドウサイズのリサイズの処理のためにも、 EGL を使った描画実装に変更したのです。

まずは動作状況をお見せします。以下のような感じで動作するようになりました。

wayland-resize-window
続きを読む


MSDN ディスクセットの Windows2000 でインストール


MSDN の Windows2000 をなんとかして Let’s Note CF-R5 にインストール した話になります。

Windows XP, Windows7, Windows8 と色々と試してみた CF-R5 ですが、どれもこれも動作が重くてつらい感じでした。そんな中、Windows 2000 もアリだという点に気づいたので試してみました。

色々と苦労もありましたが無事にインストール完了し他のOSとは違って軽快に動いている気がします。現時点においては起動直後で 200MB 程度のメモリ使用にとどまっています。

苦労のポイントは以下の点でした

  • Windows2000用のドライバの入手性
  • Windows2000のインストールディスクの問題

最初のドライバの入手については、頑張って探して見つける以外に方法がないので、ここでは説明しません。

Windows2000のインストールディスクについての話をこれから説明していきます。 続きを読む


Windows7SP1 ディスクに ロールアップKB3125574 を統合する


つい先日 Windows7 SP1 向けに、各パッチの集大成である「KB3125574ロールアップ」が提供開始となりました。Windowsを新規でインストールした直後に Windows Update を実行すると大量のパッチファイルの適用のために長い時間がかかりました。今回のロールアップを使うとパッチ適用のための時間を短縮することができます。

この「KB3125574ロールアップ」は 2016/4 までの約5年ほどの大量のパッチの集大成となっています。時間短縮目的で導入することが多いと思うので、オフラインインストールのパッケージを取得して共有しておくことがオススメだと思います。このオフラインインストーラーの入手は 「Microsoft Update カタログ」というところから取得します。ダウンロードセンターで配布していないようなのと、上記サイトには必ず InternetExplorer でアクセスする必要がある、という点に注意してください。まだ IEが手放せないようです。

続きを読む


GPUView の導入について


以前とりあえず GPUView を起動させてみることはやってみました。今回はそんな GPUView をもっと簡単に試せる方法が見つかったのでブログにまとめてみます。

通常の方法

簡単に使える版の前に通常の導入・使用方法をまとめておきます。

Windows Performance Kit の導入

GPUView は Windows Performance Kit の一部として含まれています。現時点ではこれが所属するパッケージが OS の種類によって異なります。

続きを読む



Wayland で EGL を使った描画に変更してみる


Wayland と weston でシンプルなアプリケーションを今まで作ってきましたが、このあたりで EGL を用いた方法に変更することにしました。他の情報ソースを見てみても、共有メモリ実装と EGL を使ったものの2種類に大別されているかなと思います。例によって調べてみて手探りでやっていたりするので、間違っていることもあるかと思いますのでご注意ください。
(Wayland プログラミングな書籍やまとめサイトっていつかできあがってくるのでしょうか)。 続きを読む