投稿

2022の投稿を表示しています

【Raspberry Pi Pico】Flashメモリの空き領域に設定値保存 (C/C++)

イメージ
PicoではオンボードのFlashメモリにプログラム[.uf2]を書き込んで動作させますが、大抵の場合はメモリの一番後ろの方は空いているはずです。(メモリをフルに使うようなギリギリのプログラムを作成されているなら別ですが) その空いているFlashメモリの領域は使用できますので、電源が切れても保持しておきたい設定値等を保存することができます。 ※本当はUSB接続によりPicoのマスストレージにテキストファイルをコピーしてPicoで読み書きしたかったのですが、C/C++ではどうやらまだ難しそうでした。(2022/7月現在。MicroPythonならできるかも) 1. Pico基板上のFlashメモリについて 型式: W25Q16JVUXIQ 容量: 16Mbit (16777208bit = 2097151Byte) アドレス: 0x000000 ~ 0x1FFFFF 通信: SPI (Pico C/C++SDK有り) ブロック図 容量は16Mbitで、32ブロックに分かれています。.uf2のプログラムは先頭から書き込まれるため、大抵の場合32ブロック目(Block31)は空き容量となると思います。よってここ(Block31)を電源遮断時でも維持したいデータの保存場所とします。開始アドレスは 0x1F0000 です。 各ブロック自体も16セクタに分かれており、1セクタにつき4kByteとなっています。Flashの消去はこの1セクタ(4kByte)単位で行われ、書き込みは256Byte単位で行われるとのことです。 2. Flashメモリに設定値を書き込む例 用意されているC/C++SDKの関数で簡単に実現できます。アドレスはFlashメモリのアドレスを指定します。 #include <hardware/flash.h> static void save_setting_to_flash(void) { // W25Q16JVの最終ブロック(Block31)のセクタ0の先頭アドレス = 0x1F0000 const uint32_t FLASH_TARGET_OFFSET = 0x1F0000; // W25Q16JVの書き込み最小単位 = FLASH_PAGE_SIZE

【Windows11】簡単にできるRaspberry Pi Pico 開発環境構築 (VSCode, C言語, PicoProbe)

イメージ
Windows11でのRaspberry Pi Pico(RP2040)の開発環境の構築方法を紹介します。Pico Setupインストーラーを使用すると容易に構築できます。 ターゲット 対象OS: Windows 11 Pro (Windows10もほぼ同じ方法で可) エディタ: Visual Studio Code 使用言語: C言語 デバッグ環境: PicoProbeを用いてステップ実行可能 公式PDFにも説明がありますが、容易に構築できるようツールが準備されています。 1.Pico Setup の実行 こちら から最新のPico Setupインストーラーをダウンロードします。執筆時点では0.3.4が最新でしたので、私はこれを使用しました。 pico-setup-windows-0.3.4-x64.exe ダウンロードが完了したら、インストールを行います。 インストーラーを起動して、NEXTを押下します。 何も変更せず、NEXTを押下します。 インストールフォルダを選択します。デフォルトではユーザーのドキュメントフォルダが指定されています。私はそのままInstallを押下しました。 インストールが始まります。少し時間がかかります。(私の環境では5分程度) Completeと表示されたらNEXTを押下します。 『Clone and build pico repos』 にチェックが入った状態で Finish を押下します。 コマンドプロンプトが開きます。しばらく待つと『続行するには何かキーを押してください』と表示され、Y又はNキーを押下してインストールを終了します。 インストールフォルダをエクスプローラーで開き、『Visual Studio Code for Pico』のショートカット等が存在することを確認します。 2.Visual Studio Code for Pico の実行 Pico Setupのインストールフォルダ中に『Visual Studio Code for Pico』のショートカットが存在しますので、実行します。(Picoの開発時、Visual Studio Codeはこのショートカットから起動します) 『フォルダを開く』