正誤表
XIPがある場合とない場合の違い
誤 (ver 1.0, p. 5)
XIPを採⽤していない場合、CPUがプログラムを実⾏するためには以下の⼿順を踏みます。
- 起動時にブートROMが外部フラッシュメモリから命令を読み出す。
- それらをSRAMにすべてコピーする。
- CPU がSRAM上のプログラムを実⾏する。
XIPによって、CPUはフラッシュメモリの内容を直接読み出して命令を実⾏できるため、起動時にプログラムをSRAMへコピーする必要がありません。
その結果、起動が⾼速化され、SRAMを実⾏時データのみに使えるという利点があります。
⼀⽅、XIPがなければ次のような処理が必要になります。
- 起動時にブートROMがフラッシュから命令を読み出す。
- それらをSRAMにすべてコピーする。
- CPUがSRAM上のプログラムを実⾏する。
この⽅法では起動時間が⻑くなり、SRAMの多くをコードが占有します。
RP2350が採⽤するXIP構成は、外部フラッシュメモリの⼤容量をそのまま活かし、SRAMを動的な処理専⽤に温存できるという点で合理的です。
正(ver 1.1で修正済み)
XIPを採用していない場合、CPUがプログラムを実行するためには以下の手順を踏みます。
- 起動時にブートROMが外部フラッシュメモリから命令を読み出す。
- それらをSRAMにすべてコピーする。
- CPUがSRAM上のプログラムを実行する。
この方法では起動時間が長くなり、SRAMの多くをコードが占有します。
一方、XIPが利用できる環境では、CPUはフラッシュメモリの内容を直接読み出して命令を実行できるため、起動時にプログラムをSRAMへコピーする必要がありません。
その結果、起動が高速化され、SRAMを実行時データのみに使えるという利点があります。
RP2350が採用するXIP構成は、外部フラッシュメモリの大容量をそのまま活かし、SRAMを動的な処理専用に温存できるという点で合理的です。
表 1.4: SRAM のバンク構成とアドレス
誤 (ver 1.0, p. 7)
| アドレス | バンク |
| 0x2000_0000 | SRAM0 |
| 0x2000_0004 | SRAM1 |
| 0x2000_0008 | SRAM2 |
| 0x2000_100c | SRAM3 |
| 0x2000_1010 | SRAM0 |
| … | … |
| 0x2003_fffc | SRAM3 |
正(ver 1.1で修正済み)
| アドレス | バンク |
| 0x2000_0000 | SRAM0 |
| 0x2000_0004 | SRAM1 |
| 0x2000_0008 | SRAM2 |
| 0x2000_000c | SRAM3 |
| 0x2000_0010 | SRAM0 |
| … | … |
| 0x2003_fffc | SRAM3 |
リスト 3.21のキャプション
誤 (ver 1.0, p. 62)
リスト 3.21: blinky_usb.rs の全体: src/blinky_usb.rs
正(ver 1.1で修正済み)
リスト 3.21: blinky_input.rs の全体: src/blinky_input.rs
受信パイプの使用(組込み)
誤 (ver 1.0, p. 81)
これらのタスクはそれぞれ次章以降で解説します。
正(ver 1.1で修正済み)
これらのタスクはそれぞれ次節以降で解説します。
CPUアーキテクチャの選択性
誤 (ver 1.0, p. 146)
RP2350はRP2040のデュアルコア構造を受け継ぎ、Core 0, Core 1のそれぞれでArmまたはRISC-Vコアを選択できるようになっています。
つまり、合わせて4個のコアを搭載していますが、ここから2個選んで並列動作させることができます。
正(ver 1.1で修正済み)
RP2350はRP2040のデュアルコア構造を受け継ぎ、Core 0, Core 1としてArmまたはRISC-Vコアを選択できるようになっています。
つまり、
- Arm シングルコア
- Arm デュアルコア
- RISC-V シングルコア
- RISC-V デュアルコア
のいずれかで動作させることが可能です。
