さっそくで申し訳ないが、前の記事の訂正だ。
訂正というか、私の認識違いだったのだけど、最後のログ出力を見て気付いた。
Generate user1.4096.new.6.bin successully in BIN_PATH
BIN_PATHは、GCCの実行ファイルが入ったパスじゃ無くて、インストール先のパスに近いもののようだ。
configureでいうところの、—prefixみたいなもの。
なので、こういう感じにした方がよさそうだ。
export SDK_PATH="e:/Prog/esp8622/ESP8266_RTOS_SDK"
export BIN_PATH=`pwd`/bin
export XTENSA_GCC_PATH="/cygdrive/c/Users/xxx/AppData/Local/Arduino15/packages/esp8266/tools/xtensa-lx106-elf-gcc/1.20.0-26-gb404fb9-2/bin"
export PATH=$XTENSA_GCC_PATH:$PATH
mkdir -p $BIN_PATH
前に調べた、アドレスを見ておこう。
不自然だ。
USER1とUSER2が同じソースでやるのだったら、User paramの16KBとSystem paramの16KBは同じ位置にいないといけない気がするのだ。
いけないというか、別にこういう持たせ方をしたくても悪くは無いのだけど、どこでそれを決めているのだろうか?
だって、4MBのFLASHがあって2分割するなら、2MB+2MBにするのが自然だと思うのだ。
でも、これは1MB+1MB+自由領域、みたいな割り方になっている。
USER2の領域にはUser paramの領域が無い。
これはSystem paramの領域でまかなうのだろうか?
そういうことを考えながらアプリを作ると、USER1と2のどっちで起動したかなど気にしたくないので、自由領域をUSER1/2で共通に使うようにするだろう。
そして今さら気づいたのだが、FOTA有り時と無し時でflash.binの位置が違う。
FOTA無し時はSPI-FLASHの先頭にあるのだ。
FOTA有り時には、先頭がBootになっている。
前回も、FLASHに焼くツールで最初に指定しているのはboot_v1.4(b1).binだ。
うん、まだまだ考え方が甘いな。
今日はここまで。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。