undefined

bokuweb.me

組み込み業界へ向かう人に、自分が買ってよかったと思った技術書達

もう終わりそうですけど、4月ですしこれから組み込み業界へ向かうかたへ自分がこの本よかったなーって思ったのをいくつかピックアップしてみます。ただ、一言に『組み込み』と言っても幅広くて分野によって求められる知識は結構変わってくると思いますが、ベースは一緒だろうと思います。

ちなみに自分はCPUはRL78、Cortex-M0、Cortex-M3、Rx、SH、Cortex-A9、FPGAは最大でも7000LUT程度のレンジのハードウェア設計をやってきました。今はZynqや大規模FPGA開発に携わりたいと思っています。

以下に挙げていきますが、オススメがあれば是非教えていただきたいです。

※順番に意味はありません。

CPUの創りかた

CPUの創りかた

CPUの創りかた

名著。非常にわかりやすく、さくっと読めてしまう。汎用ロジック(74HCシリーズ)で4bitCPUを実装していく過程を丁寧に説明している。CPUってどうやって動いてるの?って人は是非読むべき一冊。CPLDなりFPGAに実装するのも楽しいかも。

CPU自作入門

CPU自作入門 ~HDLによる論理設計・基板製作・プログラミング~

CPU自作入門 ~HDLによる論理設計・基板製作・プログラミング~

CPU設計、回路設計・基板設計、コンパイラ設計という構成。楽しい内容なんだけど、個人的には若干駆け足気味に感じた。基板設計よりHDL部分に多くの説明を割いてくれればベター。基板設計はEAGLEだけど、今ならKiCADを使ってみるのも楽しいかも。

12ステップで作る組み込みOS自作入門

12ステップで作る組込みOS自作入門

12ステップで作る組込みOS自作入門

名著。著者はバイナリかるたとかアセンブラ短歌の坂井さん。12ステップでリアルタイムOSを自作します。使用マイコンはH8/3069Fです。秋月にもまだ売ってますね。

akizukidenshi.com

大学の授業でPC上でしかC言語を走らせたこと無いって人は"Hello World"の大変さに驚くはず。"Hello World"までに12ステップ中1ステップを割く上に、ステップ1が終了しても変数にただしくアクセスできないという大変さを味わえる本です。

ここではあげませんが、このH8ボードは多く題材として取り扱われていて、こいつで組み込みLinuxを動かしたりネットワークプログラミングする書籍もあったと思います。多分。

ただ、H8は基本的には終息品なのでARMのCortex-MだとかRL78、RXに自作OSを移植するのも楽しいかも。(こっそりRL78への移植は始めたのでもしできたらエントリにします。RAM容量が少ないためローダーは諦めましたが。)

RTL設計スタイルガイド Verilog HDL編

RTL設計スタイルガイド Verilog HDL編―LSI設計の基本

RTL設計スタイルガイド Verilog HDL編―LSI設計の基本

入手困難品。RTL設計するなら手元においておいたほうがいいかも。VHDL編もあるけど、これからならSystemVeilogもあるしVerilogでいいんじゃないかと思ってるけど、実際どうなんでしょう?ちなみにこのスタイルガイドはVerilog HDL編とありますがSystemVerilogにも対応してます。FPGA入門書などではメタステーブルだとか肝心の部分が抜けてる場合が多いので、このスタイルガイドは目を通しておいたほうが良いかも。ただ、高額な上入手困難です。

Verilog HDL&VHDLテストベンチ記述の初歩

Verilog HDL&VHDLテストベンチ記述の初歩 (DESIGN WAVE MOOK)

Verilog HDL&VHDLテストベンチ記述の初歩 (DESIGN WAVE MOOK)

テストベンチの書き方は入門書に紹介されていないケースが多いのでこちらも目を通しておいてもいいかも、ということで挙げておきます。VHDL、Verilog両方対応。SystemVerilog版のこういった書籍が出たらいいなーと思いつつ。

モダンC言語プログラミング

タイトルからは読み取れませんが組み込みをターゲットにした内容になっています。オブジェクト指向プログラミング、デザインパターンからGtestを使ったTDD、Jenkinsを使った継続的インテグレーションまで網羅しています。ICEでちまちま単体テストしてたり、そもそも単体テストすらしてないって現場がまだまだ多いと思うので是非読んどきたい一冊。

テスト駆動開発による組み込みプログラミング

テスト駆動開発による組み込みプログラミング ―C言語とオブジェクト指向で学ぶアジャイルな設計

テスト駆動開発による組み込みプログラミング ―C言語とオブジェクト指向で学ぶアジャイルな設計

上記はGtestだったけど、こっちはUnityとCppUTest。「組み込みだと実機イルじゃん?テストできないじゃん?」って問題を解決しようとしている。組み込みらしくLEDだとかフラッシュメモリドライバを題材にしてる。

SECBOOKS ESCR Ver2.0

SECBOOKS ESCR Ver2.0:【改訂版】組込みソフトウェア開発向けコーディング作法ガイド[C言語版] (SEC BOOKS)

SECBOOKS ESCR Ver2.0:【改訂版】組込みソフトウェア開発向けコーディング作法ガイド[C言語版] (SEC BOOKS)

  • 作者: 独立行政法人情報処理推進機構
  • 出版社/メーカー: 独立行政法人情報処理推進機構
  • 発売日: 2014/03/07
  • メディア: 単行本(ソフトカバー)
  • この商品を含むブログを見る

組み込み向けコーディング規約。Ver2.0からMISRA-C 2012を参照するようになった。ただ、まだまだ自動車業界では2004を指定するケースもあるようなので適材適所。

よくわかる回路設計者のためのSI・EMI対策

よくわかる回路設計者のためのSI・EMI対策

よくわかる回路設計者のためのSI・EMI対策

さらっと読めるのでシグナルインテグリティとEMIについてはまずはこれで入門。基本的なところは抑えられているのでまずはこれを理解しておくのがいいかも。ただ、あくまで基本なので他の実践的なSI、EMIの書籍がある人は不要かも。

高速ディジタル回路実装ノウハウ

高速ディジタル回路実装ノウハウ―高速信号を確実に伝送する基板設計とノイズ対策

高速ディジタル回路実装ノウハウ―高速信号を確実に伝送する基板設計とノイズ対策

より実践的なデータが掲載されている。たとえば74LV04から駆動能力の高い74LVC04に変更した場合の放射ノイズだとか、GNDベタにより放射ノイズの差異だとか、なかなかお目にかかれない比較結果が示されているので非常に参考になる。業務に忙殺されているとなかなか、「このパターン変えたらどれくらいノイズが増えるの ?」とか「このICこれにしたらどれだけ放射ノイズへるの?」だとか知る機会がないのでありがたい。

エリック・ボガティン 高速デジタル信号の伝送技術 シグナルインテグリティ入門

エリック・ボガティン 高速デジタル信号の伝送技術 シグナルインテグリティ入門

エリック・ボガティン 高速デジタル信号の伝送技術 シグナルインテグリティ入門

  • 作者: Eric Bogatin,須藤俊夫
  • 出版社/メーカー: 丸善
  • 発売日: 2010/07/30
  • メディア: 単行本(ソフトカバー)
  • 購入: 1人 クリック: 6回
  • この商品を含むブログを見る

高いし、厚い。他書では「そういうものだ」と片付けられている内容も数ページにわたって数式で解説している。ただ、非常に難解で電磁気学がわかってないと理解が困難です(自分もよくわかってません)。ただ、付録にガイドラインがまとめられておりそれだけでも見る価値はあります。例えば以下のようなガイドラインがあります。

クロストークを最小にせよ

  • マイクロストリップ線路やストリップ線路の伝送線路では、隣接する信号配線間スペースを少なくとも配線幅の2倍に保て
  • リターンプレーンとの誘電体の暑さを最小限に保ち、出来る限り最も低い誘電率積層材を使用せよ
  • などなど。

    技術者のためのプリント基板設計入門―PCBCAD時代のプリント基板作成と実装のすべて

    技術者のためのプリント基板設計入門―PCBCAD時代のプリント基板作成と実装のすべて (トランジスタ技術SPECIAL)

    技術者のためのプリント基板設計入門―PCBCAD時代のプリント基板作成と実装のすべて (トランジスタ技術SPECIAL)

    回路設計と基板設計は切っても切り離せないので、基板設計が全くわからない回路設計者にはおすすめ。ULの難燃試験についてやBGAに対してのQAなどが記載されている。

    【この1冊でよくわかる】ソフトウェアテストの教科書

    【この1冊でよくわかる】ソフトウェアテストの教科書―品質を決定づけるテスト工程の基本と実践

    【この1冊でよくわかる】ソフトウェアテストの教科書―品質を決定づけるテスト工程の基本と実践

    ソフトウェアテストって書いてあるけど、RTL設計する場合もソフトウェアテストに関する知識はあったほうがよい、というか必須だと思う。自分が買った中ではこれがわかりやすかった。ただ、基本的な内容なのでもっと実践的な内容は別の書籍を読んだほうがいいかも。


    以上です。 他にもVIH/VILやセットアップ・ホールド時間、I2C、UART、SPIなどのIFやSDRAM、SRAM IFなど基本的なところをしっかり抑えた本があればいいのに、と思うんだけど見たことがない。おすすめなどあれば是非教えて下さい。