概要この記事は、Raspberry Pi PicoにRust言語を使って組込みを行う際のTips集です。 各電子パーツを使って実現したいことから、対応するコードの記法を探せるようになっています。 適宜追加するので、ちょくちょく見に来てもらえると良いことがあるかもしれません。 (この記事は「Rust Advent Calendar 2021|25日目に登録されています)
はんだ付けが難しい場合、価格は少々高くなりますが、スイッチサイエンスからピンヘッダ実装済みのPicoが販売されているので、それを購入するのもよいでしょう。 ピンヘッダのはんだ付けが完了したら、ブレッドボードに挿入します。PCとUSBケーブルで接続するので、ケーブルが出る方の端に配置すると、残りの部分に部品を置きやすくなります。 それでは、以下より開発環境を構築していきます。 実行環境 Mac mini (2018) macOS Big Sur 11.5.2 HomebrewでGitをインストール済み Macでの手順を記述しますが、Linuxでも同様に実行できると思います。 開発に必要なツールの準備 まず、Rustのツールチェインをはじめとした、開発に必要なツールをインストールします。 Rustツールチェインの準備 https://rustup.rs/ の手順に従い、Rustのツールチェイン
はじめに 他分野のエンジニアに「1回のミーティングで車載OSについて教えて」と相談されることがあったため、その説明の際に使ったメモ書きを共有する。一応、最初に予防線を張っておくと、私自身、車載ソフトウェア業界に身を置くが、「いわゆる車載OS分野の専門家か?」というとそうでもないし、やや距離のある分野の方への説明なので、ツッコミはお手柔らかにお願いしたい。 ISO-26262機能安全について OSという耽美な響きからGeekでTechな話を期待されたかもしれないが、まず国際標準の話から説明を始める。というのも、この点が生命・財産に関わるソフトウェアと、そうでないソフトウェアを分かつ、大きな前提のため、ここはスキップできない。 機能安全とは? 国際標準とは世界で統一的なコミュニケーションを図るための規格であり、Terminologyについては他のどんな文書より定義が厳密なものだが、「1回のミー
引数部は、コマンドによっては不要となるが、その場合でも空データ(0x00)を送信し、コマンド・トークンの合計6バイトを守らなければならない。 CRC部は、コマンド部~引数部をCRC7で演算したものである。図のように1バイト(8ビット)の内、上位7ビットがCRC、最下位(LSB)は1固定であるので、計算したCRCを1bit左シフトするなどの考慮が必要である。 ・CRC(巡回冗長検査) SDカードのコマンド・トークンで使われるCRCはCRC7である。多項式は である。 CRCの計算方法はいくつかあるが、下のようなCRC生成回路をそのままCで実現することとする。 プログラム例を示す。 1: char calc_CRC7(char *data, int len) { 2: int i, j; 3: char crc, dt; 4: 5: crc = 0; 6: for (i = 0; i < le
現在広く普及しているメモリカードのひとつに、SDメモリカード(Secure Digital Memory Card)があります。SDメモリカード(以下SDCと表記)は、マルチメディアカード(Multi-Media Card、以下MMCと表記)上位互換のシステムとして開発されたもので、SDC対応機器はいくつかの考慮だけでMMCを同じソケットで使うことができます。これらのメモリカードには、機能はそのままで外形だけ小型化されたバリエーションがあります。MMC/SDCは内部にマイコンを持ち、フラッシュ メモリの制御(消去、書き込み、エラー制御、消耗均等化など)は内部で完結しています。データの読み書きは基本的にブロック(512バイト)単位となり、この点でハードディスクなどの汎用ストレージデバイスと変わるところはありません。ファイルシステムにはFATまたはexFATが採用されています。 現在、MMCは
Yoctoベースの組み込みLinux「Wind River Linux」を使って、Raspberry Pi上で動作するLinuxディストリビューションをゼロから作る 今回の初心者講座では、商用組み込みLinuxシェアNo.1のWind River Linuxによる「Linuxディストリビューションの開発手順」を紹介いたします。Wind River Linuxは固定的なパッケージ型の製品ではなく、自由自在に新しいLinuxディストリビューションを設計できる、革新的な製品です。 本記事前半では、Wind River LinuxのベースとなっているYocto Projectの概略と、Wind River Linuxの提供する「商用Linux製品ならではの付加価値」を解説いたします。本記事後半では「Wind River Linuxの無償版を実際にダウンロードし、Raspberry Pi 4 Mod
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 VirtualTech Japan Inc.
The Embedded Rust Bookへようこそ。Rustをマイクロコントローラのような、「ベアメタル」の組込みシステムで使うための入門書です。 組込みRustは誰のためのもの 組込みRustは、Rustの高い抽象度と安全性のもと、組込みプログラミングをしたい人のためのものです。 (Rustは誰のためのものも合わせて見て下さい) スコープ この本の目的は、以下の通りです。 組込みRustをできる限り速く開始できるようにします。すなわち、開発環境のセットアップ方法です。 組込み開発におけるRustの現在のベストプラクティスを共有します。つまり、より正しい組込みソフトウェアを書くための、Rustの最善な利用方法です。 いくつかのケースに対するマニュアルを提供します。例えば、1つのプロジェクト内で、C言語とRustとを混在する方法です。 本書は出来る限り一般的な事項を取り扱います。ただし、
組み込み向けLinuxディストリビューションであるOpenWrtを触っていると、普段のLinuxではあまり見慣れない技術が使われていることに気づきます。本稿ではOpenWrtのファイルシステムで利用されているOverlayFS、SquashFS、JFFS2とその背景知識についてまとめます。 「OpenWrt Project: Filesystems」も合わせて参照してください。 OverlayFS OverlayFSは2層のファイルシステムの内容を重ね合わせるようなファイルシステムで、下層は読み込み専用、上層は読み書き可能なファイルシステムを使うのが一般的です。OverlayFS全体としては上層と下層を合成したようなファイルシステムとして振る舞います。 OpenWrtの場合、/以下がOverlayFSにより2つのファイルシステムの重ね合わせで実現されています。 SquashFS OpenW
Enea(エニアと発音)OSE(Operating System Embedded)は商用のリアルタイムオペレーティングシステム(OS)であり、主に組み込みシステム向けに販売されている。 詳細[編集] Enea OSEはダイレクトメッセージパッシングの方式を用いており、分散環境に適したOSである。独自のIPC(インタープロセスコミュニケーション)であるLINXは異なるメディア等においても透過的なプロセス間通信が可能であり、異なるCPU間にあるプロセス同士があたかもひとつのOS上で動作しているかのように振舞う。 また、このLINXはLinux向けにも提供されておりOSE-Linux間においても透過的な通信を可能とする。Linux向けのLINXはGPLにて無料提供されている。 技術[編集] OSE上のプログラミングは、基本的に8つのシステムコールだけで多くのプログラムを組むことができます。OS
前回の「ステッピングモータの仕組みと制御のコツ」からH8マイコンでのモータ制御についての解説を始めました。モータを制御するためには、モータがどのような仕組みで動いているかを知っていることが望ましいといえるでしょう。そこで今回は、本連載で使用しているターゲットボード(仕様は第6回を参照)に接続できるDCモータとステッピングモータを制御するための技術、PWM制御について解説いたします。 ⇒ 連載バックナンバーはこちら PWMとは? PWMはPulse Width Modulationの略で、パルス波のデューティー比を変化させて変調する変調方法です。そして、デューティー比とは周期的なパルス波を出したときの周期とパルス幅の比のことで、以下の式で表されます。
くみこみックスにようこそ! くみこみックスでは,組み込み技術に関連する用語やデータを公開しています. 例えば,こんな用語を収録しています.
Test Driven Development for Embedded C James W. Grenning(著) Pragmatic Bookshelf (2011/5/2) 352ページ ISBN: 978-1-93435-662-3 書籍の概要 本書はC言語による組み込みソフトウェア開発におけるTDD(Test Driven Development)[1]を解説した書籍です。著者の James Grenning 氏 は、世界中でアジャイル開発やTDDに関するトレーニング、コーチング、コンサルティングを行っています。James氏はアジャイルな見積り技術であるプランニングポーカーの考案者であり、アジャイルソフトウェア開発宣言のオリジナル著者の1人でもあります。 これまでTDDに縁遠かった組み込みソフトウェア開発者必読の1冊 近年、和田卓人氏(@t_wada)を中心にTDDに精通してい
携帯型ゲーム機用のソフトウエアの開発では、クロス開発環境(開発環境 != 実行環境)構築のスキルと対象ハードウエアに関する詳細な知識またはハッキング力が必要となります。このような開発プロセスは、ゲーム機以外の携帯情報端末や通信機器のミドルウエアやアプリケーションソフトウエア開発でもほぼ同じです。ここでは、GBA (Gameboy Advance, ARM7TDMI搭載) を用いて、携帯型ゲーム機のアプリケーションソフトウエアの開発にチャレンジしてみましょう。プログラミング技法の追求よりも、携帯型ゲーム機の面白い使い方を発見してください。このテーマは、ハードウエア志向の人にお勧めです。 (注)Gameboy Advanceは、任天堂株式会社の登録商標です。市販ゲームソフトのコピー、改変等は、絶対にしないで下さい。また、ネットに流通している不正コピー(ROMイメージ)の使用や逆アセンブルは違法
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く