Upgrade to Pro — share decks privately, control downloads, hide ads and more …

マイコンで動く .NET 技術談義! nanoFramework

マイコンで動く .NET 技術談義! nanoFramework

2023/2/18 【オンライン】.NET Micro Frameworkはどうなった?マイコンで動く.NET技術談義!
https://algyan.connpass.com/event/273901/

MATSUOKA Takashi

February 18, 2023
Tweet

More Decks by MATSUOKA Takashi

Other Decks in Technology

Transcript

  1. MATSUOKA Takashi @matsujirushi12 2017~ MVP for Windows Development 2020~ for

    Microsoft Azure 2022~ for Internet of Things 「e」3つ 1991年大手メーカーに入社し、工場の自動化 や情報システムの開発、運用に従事。2017年 8月、Seeed株式会社設立時に転職。組み込 みデバイスの開発環境整備やライブラリ開発 を担当。 去年、電子工作の書籍を出しました。買ってちょ ↑
  2. マイコンで動く.NET開発・実行環境 ◦ 源流は.NET Micro Framework ◦ 開発 … パソコン +

    Visual Studio/VSCode + .NET C# ◦ 実行 … マイコン (Flash <256KB, RAM <64KB) ライブラリは限定的 ◦ ベースクラスライブラリのサブセット ◦ .NET IoTライブラリ オープンソース ◦ コア部分の最新はv1.7.4.0(2022/3/1) ◦ GitHub … https://github.com/nanoframework ◦ Discord … https://discord.gg/gCyBu8T ◦ リファレンスターゲット ◦ OrgPal PalTree ◦ STMicroelectronics NUCLEO64_F091RC, STM32F429I_DISCOVERY, STM32F769I_DISCOVERY ◦ Espressif ESP32, ESP32-S2, ESP32-C3 ◦ NXP i.MX_RT1060_EVK ◦ TI CC1352R1_LAUNCHXL, CC3220SF_LAUNCHXL ◦ And more... ◦ コミュニティターゲット ◦ x15 boards https://github.com/nanoframework/nf-Community-Targets
  3. パソコン 準備~デバッグ実行までの流れ Visual Studio nanoFramework Extension マイコン nanoCLR Application (nF

    PE) nanoBooter nanoFirmwareFlasher Configuration マイコン依存 UART nF PE nF PE e.g. JTAG, DFU nano CLR C# nF PE nano Booter
  4. フラッシュメモリ使用量 マイコン nanoCLR Application (nF PE) nanoBooter Configuration nF PE

    nF PE 1.8MB 1.9MB 82KB 174KB STMicroelectronics NUCLEO-F091RC Seeed Studio XIAO ESP32C3
  5. nanoCLR cmake-presets Seeed Studio XIAO ESP32C3 STMicroelectronics NUCLEO-F091RC System.IO.FileSystem 〇

    System.Math 〇 System.Net 〇 System.IO.Ports 〇 〇 Windows.Storage 〇 System.Device.Adc 〇 System.Device.Gpio 〇 〇 System.Device.I2c 〇 〇 System.Device.Pwm 〇 〇 System.Device.Spi 〇 〇 System.Device.Wifi 〇 nanoFramework.ResourceManager 〇 〇 nanoFramework.System.Collections 〇 〇 nanoFramework.System.Text 〇 〇 Hardware.Esp32 〇 Hardware.Stm32 〇
  6. ファームウェアとライブラリの バージョン問題 マイコン nanoCLR Application (nF PE) String System.String.Substring(int startIndex)

    ◦ https://github.com/nanoframework/CoreLibrary/blob/02509b3 672275605ec7616040f7d747395dfa02c/nanoFramework.CoreL ibrary/System/String.cs#L151 Library_corlib_native_System_String::Substring___STRING__I4( CL R_RT_StackFrame& stack ) ◦ https://github.com/nanoframework/nf- interpreter/blob/main/src/CLR/CorLib/corlib_native_System_St ring.cpp#L132 定義(C++) 宣言(C#) https://github.com/nanoframework/nf- interpreter/blob/main/src/CLR/CorLib/corlib_native.cpp#L1480 checksum https://docs.nanoframework.net/content/architecture /guide-version-checksums.html
  7. 辛い話 Generics ◦ .NET nanoFramework doesn't support generics. We are

    actively working on it! ◦ https://github.com/nanoframework/Home/issues/782 async/await ◦ 不明 LINQ ◦ 不明