uchan note

プログラミングや電子工作の話題を書きます

2016-01-01から1年間の記事一覧

自作OS Advent Calendar 2016 目次

これは 自作 OS Advent Calendar 2016 の 25 日目の記事です。 1 日目から 24 日目までの記事をまとめた目次になっています。 それぞれの記事のURLの後に書いてある一言紹介は、uchanによるものです。 記事の著者さんに確認を取っておらず、もしかしたら誤っ…

はりぼてOSでELFなアプリを起動する

これは 自作 OS Advent Calendar 2016 の 18 日目の記事です。 概要 『30 日でできる!OS 自作入門』 の「はりぼて OS」が対応している実行可能形式は HRB 形式です。 HRB という名の通り「はりぼて OS」独自の形式で、.text、.data、.bss セクションに相当…

Windows で GCC 6.2.0 をビルドするメモ

これは 自作 OS Advent Calendar 2016 の 8 日目の記事です。 概要 現時点で最新バージョンの GCC 6.2.0 を Windows 上でビルドするメモです。 このメモでは、i386-elf をターゲットにした GCC を作ります。 コンパイラ本体のみが対象で、標準ライブラリ等は…

レベル変換の仕組み(オームの法則からMOS-FETを使ったレベル変換回路まで)

レベル変換 レベル変換とは、電圧の異なる信号線をつなぐ際に電圧を変換することです。 例えば Raspberry Pi という小さな Linux ボードコンピュータの電源電圧は 3.3V です。 そのため GPIO の入出力電圧も 3.3V となっており、電子工作でよくある 5V 駆動…

osdev-jp という自作 OS のコミュニティを作りました

これは 自作 OS Advent Calendar 2016 の初日の記事です。 自作 OS Advent Calendar といいつつ、初日は技術的なことは書かずにコミュニティの紹介をします。期待してくださった方にはすみません(^^;) 自作 OS コミュニティの昔と今 私が自作 OS というもの…

nfcpy で複数の System Code を持つ NFC タグを扱う方法

Linux (Ubuntu 16.04) で nfcpy を使ってみました。落とし穴が多い気がしたので、ここにまとめます。 特に、複数の system code を持つような NFC タグの扱いが複雑ですので、詳しく説明します。 概要 Linux で NFC タグを読み書きするには nfcpy という Pyt…

Python で Markdown 文書を HTML へ変換する

python-markdown2, py-gfm, pygments というライブラリを使って Markdown 文書を HTML へ変換するメモです。 GitHub Flavored Markdown (GFM) の特徴である Fenced Code Block にも対応しています。 インストール $ pip3 install --user python-markdown2 py…

フリースタンディングな GCC 5.3 をビルド on Ubuntu 15.10

自作 OS 製作などでお世話になるフリースタンディングな GCC をビルドする手順のメモ。完全にきれいな環境でビルドしたわけではなく、依存関係をすべてメモに記載できていない。手順通りにビルドしてもツールが不足していたりしてエラーになることがあるが、…

deb パッケージングメモ - alien 編

Ubuntu で deb パッケージを作ろうとして調べ、実験したメモです。 なぜ自作ツールの deb パッケージを作るのか 開発したソフトウェアを Chef や Ansible などでデプロイするのに、apt-get install できると便利です。 deb にすることで、プログラム本体だけ…

楽しい仕様書と生産性に関する考察

結論:楽しい仕様書は将来にわたってチームの生産性を向上させる。 仕様書を書く効果 『Joel on Software』(オーム社 2005)でジョエルはこんなことを書いている。 「仕様書の最も重要な役割はプログラムをデザインすることだ。」 仕様書を書くには設計する…

Git で deb パッケージング

Git で管理しているソフトウェアを deb パッケージにしたいことがあります。 本記事は、1 つの Git リポジトリの中でソフトウェア本体と deb パッケージのメタデータを管理する方法を説明します。 2016/02/29追記:ここで紹介するブランチ構成には問題がある…

KiCad Pcbnew 各レイヤの役割

概要 KiCad のプリント基板エディタ Pcbnew の各レイヤの役割をメモします。 この記事は KiCad 4.0.1-stable を対象に記述しています。古いバージョンではレイヤ名が日本語になっていたりと違いがあるようです。バージョン 4.0.1 に対応した体系的な説明が見…

MOSFET を用いた双方向レベル変換回路の考察

前回の記事 で紹介したレベル変換回路(level shifter)の動作を説明し、MOSFET の機種選択の考慮点を考えます。結論は、MOSFET のゲートしきい値電圧が高い機種は使えないので注意しましょうということです。

DRV8830 と電源電圧が異なるマイコンを直につないで良い

English translation is below. 前回の記事 モータドライバ DRV8830 に関するメモ の続きです。 概要 本記事は DRV8830 という TI (Texas Instruments) 製のモータドライバと各種マイコンを I2C で接続する際の注意点をまとめたものです。結論は、DRV8830 と…

モータドライバ DRV8830 に関するメモ

DRV8830 は TI (Texas Instruments) 製のモータドライバです。秋月電子通商でも販売しています ので、それなりに有名だと思います。 DRV8830 は 2.75V から 6.8V までと幅広い電源電圧に対応しており、乾電池 2 本でも動くので電子工作には最適です。 マイコ…