YU2TA7KA's BLOG ~take one step at a time~

派生開発、組み込み開発周りのこと。

IT-プログラミング言語-Rust

【組込みRust】RustのLチカコードを解読する

はじめに ソースコード 解読 Attributes #![deny(unsafe_code)] #![no_main] #![no_std] #[entry] Crates panic_halt cortex_m cortex_m_rt stm32f4xx_hal stm32f4xx_hal::prelude::* crate::hal::{stm32}; main() main() -> ! { loop {} } Peripheralsの取…

【組込みRust】RustでST Nucleo Board STM32F411RET6をLチカさせる

はじめに 概要 ST Nucleo Board STM32F411RET6とは 開発環境の構築 Rustのインストール Rustのクレートの追加 クロスコンパイル環境の構築 Lチカプロジェクトの構築 Lチカコードのコピペ examples/delay-blinky.rs Cargo.toml .cargo/config memory.x Lチカ…

RustでJenkinsのXFDを試作してみた on Raspberry Pi3 B+

はじめに XFDとは? 作ったもの 構成 環境 概要説明 わかったこと XFDの試作にRaspberry Piは便利 Rustのcrateが優秀なことを実感 Raspberry Pi3でRustの開発はしんどい やってみたいこと リファクタリング 監視端末とフィードバックデバイスの分離 フィード…

Rustのアプリケーション開発入門~逆ポーランド記法計算機を通して~

はじめに やったこと コマンドライン引数の処理 計算ロジックの実装 ユニットテストの記述 エラーハンドリング 気づいたこと おわりに はじめに 実践Rustプログラミング入門のChapter4を写経しました。その感想です。ソースコードは下記githubにあります*1。…

Rustの関数ポインタを配列で扱う

関数ポインタの利用 fn double(n: i32) -> i32 { n + n } fn abs(n: i32) -> i32 { if n >= 0 { n } else { -n } } fn main() { // doubleの関数ポインタをfへ束縛 let mut f: fn(i32) -> i32 = double; assert_eq!(f(-42), -84); // absの関数ポインタをfへ…

ダイクストラのアルゴリズムをRustで実装

はじめに BinaryHeapについて 実装 隣接行列を用いた実装 優先度付きキューを用いた実装 参考 はじめに 最短経路を求めるアルゴリズムとして有名なダイクストラ法をRustで実装しました。ダイクストラ法は隣接行列を用いるとO(|V|^2)ですが、優先度付きキュー…

ABC015_C 高橋くんのバグ探しで学ぶstatic mutの危険性[Rust]

要約 問題概要 解法 危険な実装(ダメ絶対) 構造体を使った安全なコード*1 static mut を使った危険なコード 参考 要約 DFS(深さ優先探索)の勉強としてAtCoder Beginner Contest 015 C問題をピックアップ。 グローバル変数を使った解答例を模倣してstatic…

rustlings 🦀❤️やってみた

rustlingsとは Rustを実際に読み書きしながら学んでいくエクササイズツールです。具体的には、rustlingsを起動するとソースコードのエラーが表示され、そのエラーを解消しコンパイルに成功させることが目標になります。そして、その過程でRustを学んでいきま…

Rustでアラビア数字をローマ数字に変換する

はじめに 問題 ローマ数字の表記法の特徴 アルゴリズム 実装 もう少しやりたいこと 勉強になったこと まだよくわかっていないこと 参考 おわりに はじめに 突然ですが、画像は何巻の美しいシャナかご存知でしょうか? ローマ数字で表記されている通り19巻で…

MIMEのパースでハマった話

はじめに ソースコード全文をコピペできていなかった 利用すべきcrateバージョンがよくわかっていない おわりに ソースコード CrateのバージョンNG時のエラーメッセージ はじめに Rust CookbookのParse the MIME type of a HTTP responseでハマったので、そ…

Rust入門した感想

はじめに やったこと 1.実践Rust入門 1部読了 特徴(これが全てではない) 型 所有権システム(所有権、借用、ライフタイム) トレイト 2部 2.パーセプトロンの実装 3.FizzBuzz実装 4.Rust.Tokyo聴講 展望 はじめに 夏頃から部内メンバの発案に乗っからせて…

Raspberry PiにRustをインストールしてHelloWorldする

夏休みに始める新しいこととして、いろいろあってRustが選ばれました。参考書は実践Rust入門[言語仕様から開発手法まで]です。参考書の1章を読んだのですが、Rustの特徴を詳細に解説してくれており、これからがワクワクしてきました。C,C++と同レベルの速度…