2019-04-01から1ヶ月間の記事一覧
はじめに 組込みLinuxでRustする場合、普通にホストマシンで開発して、普通にホストマシンのRustコンパイラでクロスビルドしたものをターゲットに持って行っています。 これで事足りているのですが、前々から興味があったため、YoctoでRustアプリケーション…
はじめに 著者の皆様から本書をいただきました。本当にありがとうございます。 実践Rust入門[言語仕様から開発手法まで]作者: κeen,河野達也,小松礼人出版社/メーカー: 技術評論社発売日: 2019/05/08メディア: 単行本(ソフトカバー)この商品を含むブログを…
はじめに 技術書典で入手した基板を作ってみよう 技術書典6特装版 -KiCad 5による基板作成-を参考に基板を作ってみます。 書籍内で詳細が記述されていない部分 (インストール方法など)のみ、メモとして記載します。 techbookfest.org 私は、電子回路(LSI)設…
はじめに Cortex-Mのコンテキストスイッチを書いています。 引数有りで、インラインアセンブリだけを実行する関数を作り、threadのディスパッチを書いていました。 このような場合、適切なconstraintを書いてインラインアセンブリを呼び出さないと、リリース…
はじめに 1つ1つは短めです。 少しでも、宣伝、フィードバック、になれば幸いです。 OS Girls booth.pm 8086やIntel SDMの紙媒体が転がっている不思議な部室で繰り広げられる女子高生たちのOS自作物語です。 物語の導入として、PCを使っていて湧いた疑問から…
はじめに inteface-meet-up.connpass.com CQ出版様の雑誌インタフェース主催で、組込みRustのイベントを開催することになりました。 CQ出版様、ありがとうございます。 参加枠埋まってますが、繰り上がりや、多くの方が参加登録して頂ければまた別の機会を設…
はじめに 先日、twitterで以下のアンケートを行ったところ、予想以上に多くの方にご回答頂けたため、まとめと私の考えを書きます。 組込みでCからRustにステップアップするための順序。C → ?? → Rustさぁ??に入るのは?— 錆ありはぐれベアメタル (@LDScell) …
はじめに 自分用メモです。 1日の流れ 10:10分ごろ会場に到着しましたが、すでにかなりの行列でした。 入場券の番号は2111でした。 11:30頃、会場入りしたと思います。 ハードウェア、低レイヤ、セキュリティ、と島を巡りました。 12:15頃には買い物を終えま…
はじめに Zephyrにはテストフレームワーク (Mockもあります!) が用意されています。 テストは大事です。さっさとテストを作れるようにしましょう! docs.zephyrproject.org 前回は、単純なテストを試したので、今回は、Mockを試してみます。 サンプル とに…
はじめに Zephyrにはテストフレームワーク (Mockもあります!) が用意されています。 テストは大事です。さっさとテストを作れるようにしましょう! docs.zephyrproject.org 何事も写経から、ということで、サンプルの写経を行っていきます。 汎用テンプレー…
はじめに Zephyrにはテストフレームワーク (Mockもあります!) が用意されています。 テストは大事です。さっさとテストを作れるようにしましょう! docs.zephyrproject.org Ztest ZephyrのテストフレームワークZtestは、インテグレーションテストにも、特定…
はじめに ZephyrとRustのインテグレーションに挑戦しています。 Rustで最低限動作するZephyrのUART Driverを作りました。 力技で無理矢理実装したところも多いです。負債を返済するときが来ました。 デバイス登録 まずは、デバイスおよびデバイスドライバをZ…
はじめに ZephyrとRustのインテグレーションに挑戦しています。 RustでデバイスDriverを作っていきます。 まずは、QEMUのUARTをターゲットにします。 QEMUのUARTデバイスはガバガバで、初期化を行わなくてもデータ送受信ができるので、敷居が低いです。 UART…
はじめに ZephyrとRustのインテグレーションに挑戦しています。 RustでデバイスDriverを作っていきます。 まずは、QEMUのUARTをターゲットにします。 QEMUのUARTデバイスはガバガバで、初期化を行わなくてもデータ送受信ができるので、敷居が低いです。 やる…
はじめに ZephyrとRustのインテグレーションに挑戦しています。 前回は、RustでDriverの初期化関数を書いて、動作させることに成功しました。 tomo-wait-for-it-yuki.hatenablog.com 今回から、もう少しちゃんとデバイスDriverを作っていきます。 まずは、QE…
はじめに Zephyrのdriverを作る方法を学びます。 まずは、qemu_cortex_m3をターゲットとした場合の、UART device driverを写経します。 |> zephyr/drivers/serial/uart_stellaris.c 全体で700行くらいなので、全てを単純に写経する、というよりポイントを押…
はじめに ZephyrとRustのインテグレーションに挑戦しています。 これまでで、アプリケーションをRustで書いてきました。 ここからは、Driverを書く方法を調査していきます。 前回までのあらすじ アプリケーションに公開するDriver APIを作るため、システムコ…
はじめに ZephyrとRustのインテグレーションに挑戦しています。 これまでで、アプリケーションをRustで書いてきました。 ここからは、Driverを書く方法を調査していきます。 前回までのあらすじ Rustで書いたDriverの初期化関数から、文字が出力できました。…
はじめに nRF52840は、Cortex-M4Fが搭載されたSoCです。 また、CryptoCell 310という暗号化アクセラレータが搭載されています。 Nordic Documentation LibraryのCryptoCellのページを見ると、「ARM TrustZone CryptoCell 310」と書かれています。 www.nordic…
はじめに ZephyrとRustのインテグレーションに挑戦しています。 これまでで、アプリケーションをRustで書いてきました。 ここからは、Driverを書く方法を調査していきます。 前回までのあらすじ RustでZephyrのDriverを書くためには、INIT_DEVICEマクロ相当…
はじめに ZephyrとRustのインテグレーションに挑戦しています。 これまでで、アプリケーションをRustで書いてきました。 ここからは、Driverを書く方法を調査していきます。 DEVICE_INITマクロ tomo-wait-for-it-yuki.hatenablog.com 前回記事で、DEVICE_INI…