![ソニー、ラズベリーパイへ出資。エッジAI強化で協業](https://cdn-ak-scissors.b.st-hatena.com/image/square/29d48dd1d32e695b15e1f7fbf24474de6ba1eb29/height=288;version=1;width=512/https%3A%2F%2Fwww.watch.impress.co.jp%2Fimg%2Fipw%2Flist%2F1492%2F780%2Fi00.jpg)
今回紹介する「Fuchsia」は、Googleが開発したちょっと毛色の異なるリアルタイムOS(RTOS)である。Fuchsiaは花の名前(日本ではフクシアやフーシャ、あるいはホクシャなどとも呼ばれたりするらしい)だが、そう名付けた理由は不明である(図1)。 ⇒連載記事「リアルタイムOS列伝」バックナンバー スマートディスプレイ「Nest Hub」で採用 FuchsiaはGoogleが開発した第3のOSである。このあたりの経緯は、Fuchsiaを採用したスマートディスプレイ「Nest Hub」の記事で紹介されているので、お読みになった方もいるかと思う。2020年の発表時には、Fuchsiaを「汎用OSを構築するための長期プロジェクト」とGoogleは説明しているが、この「汎用」というのはWindowsやmacOS、Android/iOSのように「コンシューマーが直接操作する」ことは必ずしも意
昔は組み込み=Cという感じだったが、2023年現在に、組み込み(ベアメタル)プログラミングを試してみるのであればRust+Raspberry Pi Picoの組み合わせが良いだろう。理由はいろいろあるが、1:クロスコンパイラの導入が楽。WindowsでもMacでもLinuxでも、クロスプラットフォームで楽。2:ボード、クレート(HAL)、デバッガなどの情報が豊富で、みな同じ構成を使っており選択に迷いがない。3:Rustは素晴らしいシステムプログラミング言語であり、あと数年すれば仕事で書く場合でもRust>Cとなるだろう。いまから取り組んで、Rustの概念、作法に慣れておくのがよい。残念ながらCでやることになったとしてもRust的な考え方は絶対に役に立つ。 筆者は2017年ごろから組み込みRustに手をつけていた。そのころはnightlyコンパイラが必要で、cargoではビルドできず、クレー
春の入門祭り🌸の第6弾です はじめにこんにちは、TIG/DXチームの栗田です。もともと宇宙物理を専攻しており、前職では製鉄メーカーでプラントエンジニアをしていました。 最近ではもっぱら工場IoT案件で制御系システムとクラウドをつなぐようなことをしていますが、その前は組み込みマイコンで制御系開発をしていました(人工衛星時代の話)。 IT業界で働き始めると、ソースコードを書いてそれを実行してシステムを動かす、ということを行うことになりますが、その裏で頑張ってくれているのがコンパイラです。普段プログラムを書いていても、「コンパイラ使ったことあるけどその中身までは。。。」「普段Pythonとかで特に意識したことない。」な方もいると思います。 そこで今回は春の入門祭りということで、自分でコンパイラを作ります。ただしコンパイラはコンパイラでも、イチから全部作るのはなかなか大変なので、公開されているコ
組み込み機器をどう動かすかを考える際、選択肢として浮上するのが「RTOS(Real Time Operating System)」である。このRTOSとは何であり、なぜ必要か、どのような特長を持つのか、組み込み向けLinuxとはどう違うのか、解説する。 RTOSの存在意義 組み込み機器と一口で言ってもどのあたりをターゲットにするのかで議論は変わるが、8bit~32bit程度のマイコンを利用した比較的スタンドアロンに近い組み込みシステムを議論の対象とした際、頻出する言葉が、「RTOS(Real Time Operating System)」である。 それぞれのマイコンベンダーが開発環境に合わせ、最低限のデバイス用ライブラリや標準的なランタイム(文字列操作など)を提供してくれるのが通例であり、これだけでもシステムは構築できる。であるからして、こうしたシステムでは必ずしもOSが必要とは限らないの
リアルタイムOSとは何か、ここ最近10年の動向を概説する:リアルタイムOS列伝(1)(1/3 ページ) IoT(モノのインターネット)市場が拡大する中で、エッジ側の機器制御で重要な役割を果たすことが期待されているリアルタイムOS(RTOS)について解説する本連載。第1回は、リアルタイムOSのここ最近10年の動向について概説する。 リアルタイムOS(RTOS)は、組み込み向けシステムにおいて、既に欠くことができない重要なコンポーネントになっている、と言うと「えー」という声も聞こえそうだが、事実そういうポジションにある。 RTOSとは何か、という話は3年ほど前にもTechFactoryで一度書かせていただいているが、要するに組み込み向けに最適化した(特にリアルタイム応答性能を重視した)軽量なOSである。 先述の記事では、以下の7つの特徴をご紹介した。 複数スレッド(タスク)の並行動作が可能 最
はじめに テントの中から失礼します、CX事業本部のてんとタカハシです! タイトルを見てロマンを感じた方、是非お友達になりましょう。Rust、ラズパイ、IoT、うん、かっけー!な気分で記事を書いています。よろしくお願いします。 前々から、Python & Raspberry Pi でセンサー等をいじってお遊びすることはあったのですが、近年 Rust が色々と話題 & 組み込み関連とも相性が良いのでは?といったことから、ずーっとやってみたかったこと、ついにやってみました。 今回は、Rust を使って Raspberry Pi に接続している温度センサーから値を読み取り、AWS IoT Core に Publish する方法についてご紹介したいと思います。 尚、この記事の中では、AWS IoT Core らへんのデプロイ等については語りませんが、下記のリポジトリの方で、Publish した値が
Introduction Welcome to The Embedded Rust Book: An introductory book about using the Rust Programming Language on "Bare Metal" embedded systems, such as Microcontrollers. Who Embedded Rust is For Embedded Rust is for everyone who wants to do embedded programming while taking advantage of the higher-level concepts and safety guarantees the Rust language provides. (See also Who Rust Is For) Scope Th
はじめに tomo-wait-for-it-yuki.hatenablog.com 前回の続きです。 今回は、Rustを使うことによる生産性について、考察します。 言語仕様、エコシステム、コミュニティによる生産性向上 生産性は可視化が難しいです。 そのため、本トピックではわかりやすく数値を比較するようなことは、できません。 Rustは厳格なルールをプログラマに課しますが、Rustの厳格なルールはバグを減らすことで、生産性の向上に寄与するでしょう。 Rustは、とりあえず動くものを作る時には、堅苦しい言語かもしれません。しかし、正しく動くものを作る時は、絶大な力を発揮します。 C言語はプログラマに最大限の自由を与え、その自由による責任をプログラマに負わせます。 Rustは、プログラマに義務に負わせ、その分保証を与えます。 unsafeブロックを含まないRustの関数は、コンパイルできた時点で
Rustの本質は、プログラムを理解する苦労を、未来から現在に移すことにある。 プログラミングRust p.120より はじめに www.rust-lang.org Rustは、とても良い言語です。 Rustを使う理由は、性能、信頼性、生産性を高めたいから、に尽きると考えています。 Rustを学ぶうちに、組込み開発でRustを使うと、多くの恩恵を受けられるのではないか、と考えるようになりました。 正直、組込みが一番Rustの恩恵を受けられるのでは、くらいに思っている。— 錆ありはぐれベアメタル (@LDScell) January 13, 2019 また、Rustを学ぶことは、プログラマとしてのスキルを向上させてくれます。 プログラミングRustで一番お気に入りの文章を引用します。 Rustを使い始めてわかったのは、C/C++では長い間かけてゆっくり学んでいたような「良い書き方」を学ばないこ
自分のためだけに Embassy コードリーディングシリーズです。 nRF52840 向けの Waker を wake している実装を見ていきます。 GPIO 割り込みから wake() するのが、おそらく最も単純な実装でしょう、ということで GPIO の example を探します。 examples/nrf52840/src/bin/gpiote_port.rs 中身は下のような感じです。 Task Pool が 4 になっていて、同じタスクを複数 spawn できるようになっているようですが、そこは一旦無視しましょう。 pin.wait_for_low() を見るのが良さそうです。 #[embassy_executor::task(pool_size = 4)] async fn button_task(n: usize, mut pin: Input<'static, AnyPin
はじめに 2021年4月20日、『基礎から学ぶ 組込みRust』(C&R研究所) を出版します。Rust の文法から組込み Rust でファームウェアを作成するところまでを、片手で持てる (多分!まだ持ったことないけど!) 1 冊の本にまとめた、喉から手が出るほど (私が) 求めていた書籍です。 先日、無事入稿を果たしたので、今の気持ちを徒然なるまま綴ったのが、このエントリです。 基礎から学ぶ 組込みRust 作者:中林 智之,井田 健太発売日: 2021/04/20メディア: 単行本(ソフトカバー) 一番始めに言いたいこととしては、今現在、「組込み Rust がプロダクションレディか?」、と問われると、「ほとんどのプロジェクトに対してそうではない」というのが私個人の見解です。セーフティクリティカルな分野では、機能安全をはじめとする認証の問題があり、そんなにおいそれとプログラミング言語変更
Nature株式会社VPoEのid:Songmuです。当社でもエンジニアリングブログを始めることにしました。 NatureはIoTスマートリモコン製品のNature Remo1を主力製品としていますが、家庭の電力マネジメントのためのIoT製品スマートエネルギーハブNature Remo E2や、電気小売事業のNatureスマート電気3も提供しています。目指すところはクリーンエネルギー100%の世界の実現で、お客様に利便性と同時にエコであるという、気持ちの良いライフスタイルを提供したいと考えています。 先日、Nature Remoは累積販売台数30万台を越えました4が、エンジニアはハードウェアエンジニアが2名、ソフトウェアエンジニアが8名の体制です。ハードウェアも含め、技術領域が多岐にわたっているため、まだまだエンジニアを募集中です。 さて、今回は最初のエントリということで、Natureで使
2024-04-02 firequeueの改修 ~非同期処理で45%のAPIレイテンシ削減を実現~ Go Natureエンジニアインターン生の後藤です。この記事では、インターン期間中に取り組んだfirequeueの改修についてお話します。 背景 NatureのバックエンドにはNature Remoからメッセージを受け取るエンドポイントがあるのですが、このエンドポイントはメッセ… #golang 2024-03-13 Nature Remo BLE マクロあらため機器拡張マクロが正式リリースされました BLE 機器拡張マクロ Nature Remo Nature で iOS/Android あと Firmware チョットデキル亀田 @Gemmbu です。 昨年末ベータテスターを募集し、皆さんと協力としながら開発を行ってきました BLE マクロあらため機器拡張マクロが正式リリースされました。
Nature株式会社ファームウェアエンジニアの中林 (id:tomo-wait-for-it-yuki) です。 本記事では、拙著『基礎から学ぶ 組込みRust』1がC&R研究所様より出版されたので、書籍の紹介やNatureのファームウェア開発にRustを使っていきたい、ということを書きます。 本を書きましたエントリは個人ブログで書いている2ので、それとは少し違った観点から話をしたいと思います。 『基礎から学ぶ 組込みRust』の紹介 2021年5月現在、Rustはすでにマイナーの域を超えたと言って差し支えない状況でしょう。一方、組込みRustはまだまだマイナーな分野です。『基礎から学ぶ 組込みRust』出版をtwitterやブログで告知した際も、「Rustって組込みできたんだ?」という反応が少なくありませんでした。 マイナー扱いから脱するための施策として、認知度を上げ、入門を手厚くする、
ベアメタルプログラミングとはOSなどを利用せずに、直接ハードウェア上にプログラムを走らせるプログラミング手法である。要するにOSなどを自分で作る練習にもってこいなのである。また、Rust言語は型安全なプログラミングであるにも関わらず、メモリへの直接アクセスなどを行えるため、このベアメタルプログラミングが可能な言語である。 というわけで、今回はRustでベアメタルプログラミングをやってみたので感想を述べたい。とはいっても、現状はQEMUで動かしているだけので、いずれ実機でも試してみたいところである。ちなみに、Rustもベアメタルプログラミングも今回はじめてである。 今回行ったことは、1つのCPUコアのみ動作させて、UART0からシリアルでHello Worldを出したあと、グラフィック描画のフレームバッファを取得してマンデルブロ集合を描画するという、比較的単純なものである。他の仕事もやりつつ
こんにちは、hachi8833です。来週のRubyKaigi 2017@広島にちなんで、米国から見た日本のRuby事情の翻訳記事をお送りいたします。 概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: How is Ruby Different in Japan? 公開日: 2017/06/04 著者: Noah Gibbs ブログサイト: appfolio -- 米国サンタバーバラ、ダラス、サンディエゴに拠点を構える開発会社です。 通常はリンクを日本語版に置換えますが、本記事では米国人が参照したリンクをたどりやすいよう、原則として英語リンクはそのままにしてあります。 最近のやりとりの中で「日本のRubyコミュニティにおけるRubyの使いみちは、米国とはだいぶ違うよね」という話題に触れたところ、ポカーンという顔をされてしまいました。 特に、「米国でRubyと言えばほぼRailsやW
今の職場、PCにインストールするパッケージが管理されているため、 python3のインストーラを使用できない。 PCによっては、管理者権限が無いため、そもそもインストーラ動かせない。 そんな環境でも、vim8のif_pythonを有効化して、denite.nvimを動かしたい。 というわけで、色々試した結果動かせたので、その時のメモ。 環境は以下の通り。 Windows10 64bit vim8 Kaoriya版 結果だけ見る時は、最後の「まとめ」を見ればOK。 前準備 試行1: python35.dllとvcruntime140.dllを$VIMに置く 試行2: 全部$VIM直下に突っ込む。 試行3: python3のフォルダを$VIMに置く 試行4: pythonthreedllを設定する 試行5: runtimepath再設定 まとめ 前準備 python3のパッケージを公式から取得
mruby Advent Calendar 2016の16日目の記事です。 おことわり 私自身はmruby Advent Calendarに参加されている他の方々のような歴戦のmrubistという訳では無く、そもそもRubyをさわり始めてまだ一年未満のぺーぺーではあるのですが、そんなぺーぺーの感じたことを記事にしたいと思って書いています。 何か深みのある蘊蓄だとかそういった事は申し訳ありませんが書けません、ご了承下さい。 はじめに mrubyというものは組み込み用のスクリプト言語として作成された物であり、本来はSoCやワンチップマイコン等の所謂組み込みシステムに使われる事が多いと思いますが、私はあえてアプリケーションの拡張用スクリプト言語として使用しています。 組み込みシステム向けのスクリプトなだけあって、コンパクトで省メモリな為アプリケーションに組み込むにも都合が良いかと思います。 この
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く