組込みシステム開発 百物語

産業機械メーカーで組込みシステム(ファームウェア)開発に従事しています。これまでオシロ…

組込みシステム開発 百物語

産業機械メーカーで組込みシステム(ファームウェア)開発に従事しています。これまでオシロスコープを使ったデバッグ作業からiOSアプリ開発まで色々なことをやってきました。組込みシステム開発の現場でみかけた、あんな不具合、こんなトラブル。事実1割、思い込み3割、脚色6割で書き綴ります。

記事一覧

地元長野県開催のRuby Kaigi 2023に参加しました。

地元長野県の松本市で開催されたRuby Kaigi 2023に参加しました。東京で開催されていた頃には毎年のように参加していたのですが、全国各地を巡回して開催するようになって…

Rubyistに贈る霧ヶ峰周辺案内

RubyKaigi 2023 のハイキングイベントスポンサー 株式会社ヤマップ(YAMAP)主催のハイキング・イベントに参加するRubyistに紹介する霧ヶ峰周辺の案内です。 霧ヶ峰 三菱電…

Rubyistに送る信州山歩きのススメ

2023年5月11日〜13日開催されるプログラミング言語 Ruby の国際カンファレンス "Ruby Kaigi 2023" に参加するため、長野県松本市にやってきてトレッキングや登山に興味を持…

リアルタイム・クロックとアクティブ・ロー

不具合が報告された内容は次のようなものでした。 現在時刻(年月日時分秒)の管理はいろいろな方法があると思いましすが、多くの組込みシステムでは『リアルタイム・クロ…

まつもと市民芸術館アクセス紹介

2023年5月11日~13日に長野県松本市まつもと市民芸術館で開催される RubyKaigi 2023 の参加者に向けたRubyKaigi会場の「まつもと市民芸術館」へのアクセス方法の紹介です。…

松本への交通アクセス

2023年5月11日~13日に長野県松本市 まつもと市民芸術館で開催される RubyKaigi 2023 参加者のための交通アクセスのご紹介です。 東京方面特急あずさ 新宿駅と松本駅を結…

0x5C問題

ASCIIコードでは 0x5C に \ (バックスラッシュ) を割り当てています。 しかしながら JIS X 0201 では ¥ (円記号) を割り当てています。 ちなみに、ISO/IEC 646 では 0x5C …

characterは8ビットか?

ASCIIコードは8ビットではありません。7ビットです。 16進数では 0x00 〜 0x7F の領域、10進数では 0 〜 128 の領域に文字を割り当てています。 0x80〜0xFFの領域にASCII文…

C言語における多次元配列へのポインタ

C言語における『多次元配列へのポインタ』のサンプルコードと説明です。 1. 配列要素へのポインタ1.1. 1次元配列とポインタを組み合わせた例 #include <stdio.h> #defin

ジグとドグ

製造業では『製造治具』や『検査治具』なんて用語がしばしば登場します。『治具』は『ジグ』と読みます。 広辞苑には次のような説明があります。 『治具』と漢字で目にす…

"invert" か "reverse" か

現在放送中のテレビドラマにハマっています。清原果耶さん演じる謎の超絶美人な名探偵が完全犯罪を目論む殺人犯に対して恋愛下手を装ってグイグイと距離を縮めていき、鋭い…

残差計算のオーバーフロー

コンピュータの世界では長さや強さなどの物理量をデジタル(0と1)で扱うため量子化誤差というものが生じることがあります。 たとえば整数演算で 10 / 3 を計算すると結果は…

コンパイルスイッチ

C言語にはコンパイルスイッチ(条件付きコンパイル)という機能があります。OSやプラットホーム、ハードウェアの違いによる定義や処理の違いを切り替えるために多用されま…

const外し

C言語は何でもできるプログラミング言語であるという説明を見かけることがあります。時にそこには「自分で自分の足を撃ち抜くことすらできる」という揶揄が含まれているこ…

バルス

宮崎駿監督の名作冒険活劇アニメーション作品に登場する滅びの呪文です。映画のテレビ放送を見ながらTwitterで呟く遊びが広がって、映画公開当時には生まれていない世代で…

地元長野県開催のRuby Kaigi 2023に参加しました。

地元長野県開催のRuby Kaigi 2023に参加しました。

地元長野県の松本市で開催されたRuby Kaigi 2023に参加しました。東京で開催されていた頃には毎年のように参加していたのですが、全国各地を巡回して開催するようになってからは少し足が遠のいて7年ぶりのRuby Kaigiへの参加となりました。コロナ禍でリアルな対面カンファレンスの参加も久々だったので、とても刺激的で充実したカンファレンス参加となりました。

3日間の聴講の中で印象に残ったセッ

もっとみる
Rubyistに贈る霧ヶ峰周辺案内

Rubyistに贈る霧ヶ峰周辺案内

RubyKaigi 2023 のハイキングイベントスポンサー 株式会社ヤマップ(YAMAP)主催のハイキング・イベントに参加するRubyistに紹介する霧ヶ峰周辺の案内です。

霧ヶ峰

三菱電機のエアコンのブランド名として有名ですが、八ヶ岳中信高原国定公園の一角、車山から鷲ヶ峰周辺の台地の総称です。最高地点は標高1,925mの車山です。周囲には白樺湖、蓼科湖、女神湖などの湖がありますが、いずれも

もっとみる
Rubyistに送る信州山歩きのススメ

Rubyistに送る信州山歩きのススメ

2023年5月11日〜13日開催されるプログラミング言語 Ruby の国際カンファレンス "Ruby Kaigi 2023" に参加するため、長野県松本市にやってきてトレッキングや登山に興味を持たれる方も多いと思います。駅やホテルに置いてある観光パンフレットを見て、折角だから行ってみたい思う方もあると思います。
超偏見ですが、プログラマーのアウトドア・アクティビティというとサイクリング、ロードバイ

もっとみる
リアルタイム・クロックとアクティブ・ロー

リアルタイム・クロックとアクティブ・ロー

不具合が報告された内容は次のようなものでした。

現在時刻(年月日時分秒)の管理はいろいろな方法があると思いましすが、多くの組込みシステムでは『リアルタイム・クロック(RTC : Real-Time Clock)』という部品を使っています。このRTCはボタン電池や2次電池で動作するようになっていて、機器(マイコン)の主電源をオフした後も、淡々と時を刻んでいます。

「停電で電源が落ちてリセットされ

もっとみる
まつもと市民芸術館アクセス紹介

まつもと市民芸術館アクセス紹介

2023年5月11日~13日に長野県松本市まつもと市民芸術館で開催される RubyKaigi 2023 の参加者に向けたRubyKaigi会場の「まつもと市民芸術館」へのアクセス方法の紹介です。

松本駅からのアクセス

松本駅 お城口から、まつもと市民芸術館まで徒歩10分です。駅を背後にして片側2車線の「あがたの森通り」の右側の歩道を歩いていけば一本道です。車道の反対側の歩道を歩くと市民芸術館の

もっとみる
松本への交通アクセス

松本への交通アクセス

2023年5月11日~13日に長野県松本市 まつもと市民芸術館で開催される RubyKaigi 2023 参加者のための交通アクセスのご紹介です。

東京方面特急あずさ

新宿駅と松本駅を結ぶ中央東線『特急あずさ』が便利です。一部の列車が千葉始発、東京駅経由となります。新宿駅から最短2時間半で松本に到着します。2019年のダイヤ改正で特急あずさの自由席は廃止されました。全車両指定席のみとなります。

もっとみる
0x5C問題

0x5C問題

ASCIIコードでは 0x5C に \ (バックスラッシュ) を割り当てています。
しかしながら JIS X 0201 では ¥ (円記号) を割り当てています。
ちなみに、ISO/IEC 646 では 0x5C は各国自由領域に割り当てています。たとえばKB(韓国語) では ₩ が割り当てられています。したがって JIS X 0201 は ASCIIには準拠していませんが、ISO/IEC 646

もっとみる
characterは8ビットか?

characterは8ビットか?

ASCIIコードは8ビットではありません。7ビットです。
16進数では 0x00 〜 0x7F の領域、10進数では 0 〜 128 の領域に文字を割り当てています。 0x80〜0xFFの領域にASCII文字は割り当てられていません。

シリアル通信や、その応用技術であるパソコン通信の設定では「8bitパリティ」や「8bitノンパリティ」などの設定がありますが、これは7ビットのASCII文字コード

もっとみる
C言語における多次元配列へのポインタ

C言語における多次元配列へのポインタ

C言語における『多次元配列へのポインタ』のサンプルコードと説明です。

1. 配列要素へのポインタ1.1. 1次元配列とポインタを組み合わせた例
#include <stdio.h> #define NUMBER_OF_COLUMNS 4 int main(void){ int linear_array_x[NUMBER_OF_COLUMNS] = { 1, 2, 3, 4};

もっとみる
ジグとドグ

ジグとドグ

製造業では『製造治具』や『検査治具』なんて用語がしばしば登場します。『治具』は『ジグ』と読みます。

広辞苑には次のような説明があります。

『治具』と漢字で目にする機会が多い用語ですが英語の "jig" の当て字です。 "coffee" に珈琲をあてたり、"roman" に浪漫をあてるのと同じです。

この治具という名前が発展して「ソフトウェア治具」なんて呼び名のものも製造業の世界では見かけます

もっとみる
"invert" か "reverse" か

"invert" か "reverse" か

現在放送中のテレビドラマにハマっています。清原果耶さん演じる謎の超絶美人な名探偵が完全犯罪を目論む殺人犯に対して恋愛下手を装ってグイグイと距離を縮めていき、鋭い観察眼と巧みな誘導尋問で追い詰めていくというドSな設定です。『倒叙ミステリー(inverted detective story)』とは物語の冒頭で真犯人や犯行の手口を読者や視聴者に開示するスタイルの推理小説やドラマです。『刑事コロンボ』や『

もっとみる
残差計算のオーバーフロー

残差計算のオーバーフロー

コンピュータの世界では長さや強さなどの物理量をデジタル(0と1)で扱うため量子化誤差というものが生じることがあります。

たとえば整数演算で 10 / 3 を計算すると結果は 3 となります。整数演算で切り捨てられた 1/3 (≒0.33333) が整数演算における量子化誤差です。

組込みシステムにおいては、機械的な制約から量子化誤差が発生することがあります。たとえばあるユニットを 33.3ミ

もっとみる
コンパイルスイッチ

コンパイルスイッチ

C言語にはコンパイルスイッチ(条件付きコンパイル)という機能があります。OSやプラットホーム、ハードウェアの違いによる定義や処理の違いを切り替えるために多用されます。しかし不適切なコンパイルスイッチの使い方をして不具合を招いた例です。
#if NUMBER_OF_OPTIONAL_LINES > 3 /* optional line の数が 3 を超えるときの処理 */#else /* op

もっとみる
const外し

const外し

C言語は何でもできるプログラミング言語であるという説明を見かけることがあります。時にそこには「自分で自分の足を撃ち抜くことすらできる」という揶揄が含まれていることがあります。そんな何でもありのC言語の仕様の一つであるポインタのconst外しで不具合を招いた事例です。

組込みシステムに限ったことではありませんが、組込みシステムにおいてはハードウェアの制御パラメータやセンサーの変換テーブルなど多くの

もっとみる
バルス

バルス

宮崎駿監督の名作冒険活劇アニメーション作品に登場する滅びの呪文です。映画のテレビ放送を見ながらTwitterで呟く遊びが広がって、映画公開当時には生まれていない世代でも知っている有名なフレーズでしょう。物語の終盤、悪役に追い詰められた主人公の二人が起死回生を果たすキーワードですが、無敵の空中要塞都市ラピュタが一瞬にして自己瓦解するコマンドとしては短すぎないでしょうか? 「ヴァル研」とか「バルサミコ

もっとみる