Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Keyboard Firmware in Rust
Search
KOBA789
July 03, 2019
Technology
0
690
Keyboard Firmware in Rust
https://rust.connpass.com/event/133657/
KOBA789
July 03, 2019
Tweet
Share
More Decks by KOBA789
See All by KOBA789
ついに生産が終わったけどZ80でまだまだ遊びたい
koba789
5
4k
ISUCONの練習を楽しくたくさんやる方法
koba789
2
860
Z80をRustで動かすまで年が越せない
koba789
0
170
ISUCON練習環境を最も簡単に用意する方法
koba789
2
3.1k
音をアレする
koba789
0
830
メガネとBluetooth Low Energyでお喋りする
koba789
0
1.5k
Rustでon-diskなB+Treeを作ったときの細かな話
koba789
11
1.8k
音の出るCPUを作っている途中
koba789
5
4.6k
自宅サーバーでbottlerocketを動かしてk8sクラスタを組む
koba789
1
1.2k
Other Decks in Technology
See All in Technology
CZII - CryoET Object Identification 参加振り返り・解法共有
tattaka
0
370
Culture Deck
optfit
0
420
OpenID Connect for Identity Assurance の概要と翻訳版のご紹介 / 20250219-BizDay17-OIDC4IDA-Intro
oidfj
0
280
白金鉱業Meetup Vol.17_あるデータサイエンティストのデータマネジメントとの向き合い方
brainpadpr
6
750
7日間でハッキングをはじめる本をはじめてみませんか?_ITエンジニア本大賞2025
nomizone
2
1.8k
技術的負債解消の取り組みと専門チームのお話 #技術的負債_Findy
bengo4com
1
1.3k
君も受託系GISエンジニアにならないか
sudataka
2
430
一度 Expo の採用を断念したけど、 再度 Expo の導入を検討している話
ichiki1023
1
170
データ資産をシームレスに伝達するためのイベント駆動型アーキテクチャ
kakehashi
PRO
2
540
30分でわかる『アジャイルデータモデリング』
hanon52_
9
2.7k
個人開発から公式機能へ: PlaywrightとRailsをつなげた3年の軌跡
yusukeiwaki
11
3k
レビューを増やしつつ 高評価維持するテクニック
tsuzuki817
1
720
Featured
See All Featured
Designing for Performance
lara
604
68k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.4k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
174
51k
GraphQLとの向き合い方2022年版
quramy
44
13k
Raft: Consensus for Rubyists
vanstee
137
6.8k
Optimizing for Happiness
mojombo
376
70k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
Large-scale JavaScript Application Architecture
addyosmani
511
110k
Into the Great Unknown - MozCon
thekraken
35
1.6k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
Gamification - CAS2011
davidbonilla
80
5.1k
Transcript
ࣗ࡞ΩʔϘʔυͷ ϑΝʔϜΣΞΛ 3VTUͰॻ͘ KOBA789
,0#" w ΫοΫύουגࣜձٕࣾज़෦σʔλج൫άϧʔϓ w ϝΠϯͷࣄେྔͷσʔλΛ͍͍ײ͡ʹ͢Δ͜ͱ ͱ͍͏͜ͱʹͳ͍ͬͯΔ w ࣮ࡍ͓͠Ζͦ͏ͳ͜ͱΛͳΜͰ͍ͬͯΔ w
ݱࡏ৽ଔ
ࣗ࡞ΩʔϘʔυ
None
࠷ۙ<͍ͭ >ਓؾͳझຯ<ཁग़య>
https://techlife.cookpad.com/entry/2018/08/14/172130
ฐࣾʹͨ͘͞ΜͷѪՈ͕
Ͱɺ
https://internship.cookpad.com/2019/spring/
Πϯλʔϯγοϓ ࣗ࡞ΩʔϘʔυίʔε
None
څྉΒͬͯࣗ࡞ΩʔϘʔυΛ Δ͜ͱʹͳͬͯ͠·ͬͨ
͑Β͍ਓʮόζΒ͍ͤͨʯ Զʮ͡Ό͋ΧϦΩϡϥϜաܹʹʯ
݁Ռ
wΜ͚ͩͪΖΜΔ w؆୯ͳిࢠճ࿏Δ wϓϦϯτج൘ͷઃܭΔ wϑΝʔϜΣΞ3VTUͰॻ͘
ϑΝʔϜΣΞ 3VTUͰॻ͘
1SP.JDSP https://www.switch-science.com/catalog/1623/ ࣗ࡞ΩʔϘʔυͰҰൠత
1SP.JDSPͷੴ"5NFHB6 "5NFHB6"73
3VTUͰ"73ͩΔ͍
ΈࠐΈ3VTU͓͢͢Ί $PSUFY.γϦʔζ "3. 3*4$7͡Όͳͯ͘͝ΊΜͳ
௨শCMVFQJMM w 45.'$͕ͬͯΔ w 45.'$$PSUFY. w 3".,# w $16$MPDLVQUP.)[ w
'MBTI,# ࣮ࡍͳ͔ͥ,# https://wiki.stm32duino.com/index.php?title=File:STM32_Blue_Pill_perspective.jpg
௨শCMVFQJMM ͓͍͘Βͩͱࢥ͍·͔͢ https://wiki.stm32duino.com/index.php?title=File:STM32_Blue_Pill_perspective.jpg
௨শCMVFQJMM https://wiki.stm32duino.com/index.php?title=File:STM32_Blue_Pill_perspective.jpg
։ൃͷͨΊͷπʔϧ
͍͍ͩͨ 5IF&NCFEEFE3VTU#PPL ʹॻ͍ͯ͋ΔͷͰলུ
ͱ͘ʹศརͳͷΛհ
#MBDL.BHJD1SPCF w 1SPHSBNNFS%FCVHHFS w ιϑτΣΞΦʔϓϯιʔε w ϋʔυΣΞCMVFQJMMͳͲ͕͑Δ w ࢲCMBDLQJMMΛͬͯ࡞ͬͨ w
ϑϦεΫέʔεͰ͍͍ײ͡
None
cargo runͰ͖Δ ຊೋ Demo
HEC͑Δ ϒϨʔΫϙΠϯτషΕΔ ϝϞϦμϯϓͰ͖Δ
println!Ͱ͖Δ Demo
cortex_m_semihosting
ΈࠐΈϓϩάϥϛϯάͰ ආ͚ΒΕͳ͍ͷ
पลػثϖϦϑΣϥϧ
ϖϦϑΣϥϧͷػೳݺͼग़͠ ϨδελΞΫηε
ΞηϯϒϦ /P
JO$ ϝʔΧʔ͕ϥΠϒϥϦΛఏڙ JO3VTU ศརΫϨʔτ͕͋Δ
TWESVTU wΈΜͳ͍͖ͩ͢ίʔυδΣωϨʔλ wσόΠεఆٛϑΝΠϧTWE͔Β wϨδελΞΫηεؔͷίʔυΛు͘
TUNG wTWESVTUͰు͔ΕͨίʔυΛ w͍͍ײ͡ʹௐͨ͠ΫϨʔτ wTUNGͰ͑Δ
-νΧͱ͔Ͱ͖Δ
None
͔͠͠ɺ
ΩʔϘʔυͳͷͰ 64#)*%Λ ͠ΌΒͳ͍ͱ͍͚ͳ͍
ϨδελΛݸୟ͘͘Β͍Ͱ 64#͠ΌΕͳ͍
ް͍64#ͷ༷ॻͱ ް͍64#)*%ͷ༷ॻͱ Ϋιް͍45.ͷ༷ॻΛಡΜͰ దͳϨδελɾϝϞϦΛ ͨ͘͞ΜಡΈॻ͖͢ΔίʔυΛॻ͘ඞཁΞϦ
࣮͠·ͨ͠
64#)*%࣮Γ͔ͨ w 64#ͷ༷ΛಡΉ w 64#)*%$MBTTͷ༷ΛಡΉ w 45.'ͷϚχϡΞϧΛಡΉ w ͕ۭ݀͘΄ͲಡΉ w
MJCPQFODNͷίʔυΛࢀߟʹ͢Δ w 3VTUͰॻ͘ˠϩδΞφͰݟΔˠ͢ w ҎԼ܁Γฦ͠
ԶӦۀ͘Β͍͔͔ͬͨ
͜͜ͰϩδΞφ Demo
3VTUؔͳ͍ؾ͕͢Δͳ
ίʔυยΛͪΐͬͱհ
64#ͷ௨৴Ͱ͏όοϑΝ
https://www.stmcu.jp/design/document/reference_manual/51428/ IUUQTXXXTUNDVKQEFTJHOEPDVNFOUSFGFSFODF@NBOVBM
͜ΕΛ͍͍ײ͡ʹϞσϦϯά
None
VolatileCell
VolatileCell w ϝϞϦͷWPMBUJMFΞΫηεΛ w ͍͍ײ͡ʹ͢ΔϥΠϒϥϦ w std::ptr::read_volatileͱ͔unsafeͰࠔΔ
MJCPQFODNΛ ࢀߟʹ͕ͨ͠ʜʜ
3VTUಛ༗ͷ͠͞ w ϓϩτίϧͷ࣮εςʔτϚγϯʹͳΓ͕ͪ w εςʔτΛܕ҆શʹ͢Δͷͪΐͬͱίπ͕͍Δ w งғؾͰߏ࡞Δͱ్தͰ٧Ή w ݩͷ࣮ΛಡΜͰ $ͷࡶ͞ʹΩϨΔ
None
None
͠Γ͖ΕͱΜ΅