

Arduino IDEを使いCプログラムを書いています。  
プログラムの中でSDが壊れた時、電源が一度切れた時、  
リブートが走り再びプログラムを動き始めます。  
この時リブート前のデータを利用したいので、FLASHにデータを書き込みます。  
以下のサンプルを参考に、FLASHのマウントなどの手続き、処理をしてみました。  
しかし、リブート前に書き込んだ位置に、リブート後に同じ位置に書き込みができずにいます。  
FLASHのtest.txtに、リブート前に"1"と書き込んだ所に、リブート後"2"を上書きしたいのですが、"12"となります。("2"だけFLASHに入るようにしたい）  
seekを使うと上書きできるようですので試しましたが、うまくできませんでした。

文字の("1" or "2")、 数字の(1 or 2)、両方でseekを使ったサンプルがあれば教えて下さい。

<https://github.com/sonydevworld/spresense-arduino-
compatible/blob/master/Arduino15/packages/SPRESENSE/hardware/spresense/1.0.0/libraries/Flash/examples/read_write/read_write.ino>  
<https://github.com/sonydevworld/spresense-arduino-
compatible/blob/master/Arduino15/packages/SPRESENSE/hardware/spresense/1.0.0/libraries/File/examples/read_write/read_write.ino>

質問に過不足ありましたら別途回答を致します。宜しくお願い致します。


CC BY-SA 4.0
2023-11-15T00:47:02.163
96780
2023-11-16T05:53:25.120
2023-11-15T02:03:59.297
3060
60297
question
spresense
SpresenseでFLASHにデータを上書きで書き込みたい


コードも使用機種もないので一般論でしか回答できませんが、、  
ふつう、フラッシュメモリ、っていうのは上書きはできません  
一旦そのブロックのイレーズを行い、（ブロック内のデータも含めて）書き込み直す、という操作を行う必要があります


CC BY-SA 4.0
2023-11-16T00:59:02.337
96789
2023-11-16T00:59:02.337
27481
96780
answer


機種はspresenseのメインボードを利用しています。  
「フラッシュメモリ、っていうのは上書きはできません」という事を知りませんでした。ありがとうございました。  
Spresense Arduino ライブラリを見ると、「ブロックのイレーズ」はありませんでしたが、  
「Flash.remove() Flash デバイス内のファイルを削除します。」がありました。ありがとうございました。

<https://developer.sony.com/spresense/development-
guides/arduino_developer_guide_ja.html>


CC BY-SA 4.0
2023-11-16T05:53:25.120
96797
2023-11-16T05:53:25.120
60297
96780
answer