ESP8266でATコマンド以外のことをやろうとしたら、ファームを作って焼くことになる。
まずはコンパイル環境を準備しよう。
もうハードウェアのことじゃないけど、いいや。
Step 1. Setup Linux Compile Environment 搭建ESP8266编译环境 - ESP8266 Developer Zone
コンパイル環境はここからダウンロード、とあるが、404 Not Found ...
More detailsのリンク先にあるGoogle Driveは生きていた。
https://drive.google.com/folderview?id=0B5bwBE9A5dBXaExvdDExVFNrUXM&usp=sharing
ダウンロードに時間がかかるので、ここで昼ご飯にしよう。
VirtualBoxに入れて、Guest AdditionsやOSの更新をする。
先にOSの更新をした方がいいのかな?
パスワードはespressifだ(PDF参照)。
これはこれで、かなり時間がかかる。
終わったら、Time and DateとかKeyboard Input Methodsとか、とにかく自分に合うようにしておく。
esp8266_lubuntuを起動しているVirtualBoxの「デバイス>共有フォルダー設定」を開いて、共有フォルダが設定されているか確認しよう。
PDFの手順通りにやるなら、共有名は「share」にしておく。
私はこの確認を、VirtualBox本体の設定画面でやっていたのだが、なぜかマウントがうまくできない。
「デバイス>共有フォルダー設定」の方を開くと、「Guest Additionsがインストールされていない」と警告が出てきた。
たぶん、Guest Additionsのインストール後にOSの更新をしたから、再インストールが必要になってしまったのだな。
やると、mount.shの実行でマウントできた。
そして、iot_sdkのappフォルダに移動して、make・・・と書いてあるけど、Makefileがないので動かない。
PDFと違うじゃないかぁぁぁぁぁぁ。
DSAS開発者の部屋:ESP8266 モジュールの AT コマンドに SSL クライアント機能を追加する
こちらを読むと、ビルドしたいものをappの中に置くらしい。
そして、gen_misc.shのあとにmakeしている。
esp8266@esp8266-VirtualBox:~/Share/esp_iot_sdk_v1.4.1_pre5/app$ ./gen_misc.shgen_misc.sh version 20150511Please follow below steps(1-5) to generate specific bin(s):STEP 1: choose boot version(0=boot_v1.1, 1=boot_v1.2+, 2=none)enter(0/1/2, default 2):1boot mode: newSTEP 2: choose bin generate(0=eagle.flash.bin+eagle.irom0text.bin, 1=user1.bin, 2=user2.bin)enter (0/1/2, default 0):1generate bin: user1.binSTEP 3: choose spi speed(0=20MHz, 1=26.7MHz, 2=40MHz, 3=80MHz)enter (0/1/2/3, default 2):2spi speed: 40 MHzSTEP 4: choose spi mode(0=QIO, 1=QOUT, 2=DIO, 3=DOUT)enter (0/1/2/3, default 0):0spi mode: QIOSTEP 5: choose spi size and map0= 512KB( 256KB+ 256KB)2=1024KB( 512KB+ 512KB)3=2048KB( 512KB+ 512KB)4=4096KB( 512KB+ 512KB)5=2048KB(1024KB+1024KB)6=4096KB(1024KB+1024KB)enter (0/2/3/4/5/6, default 0):6spi size: 4096KBspi ota map: 1024KB + 1024KBstart...make[1]: Entering directory `/mnt/Share/esp_iot_sdk_v1.4.1_pre5/app/user'DEPEND: xtensa-lx106-elf-gcc -M -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -DAT_UPGRADE_SUPPORT -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle user_main.cDEPEND: xtensa-lx106-elf-gcc -M -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -DAT_UPGRADE_SUPPORT -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle at_upgrade.cmake[1]: Leaving directory `/mnt/Share/esp_iot_sdk_v1.4.1_pre5/app/user'make[1]: Entering directory `/mnt/Share/esp_iot_sdk_v1.4.1_pre5/app/user'make[1]: Warning: File `.output/eagle/debug/obj/user_main.d' has modification time 3.6 s in the futurextensa-lx106-elf-gcc -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -DAT_UPGRADE_SUPPORT -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle -o .output/eagle/debug/obj/at_upgrade.o -c at_upgrade.cxtensa-lx106-elf-gcc -Os -g -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -ffunction-sections -fdata-sections -DICACHE_FLASH -DAT_UPGRADE_SUPPORT -I include -I ./ -I ../../include/ets -I ../include -I ../../include -I ../../include/eagle -o .output/eagle/debug/obj/user_main.o -c user_main.cxtensa-lx106-elf-ar ru .output/eagle/debug/lib/libuser.a .output/eagle/debug/obj/at_upgrade.o .output/eagle/debug/obj/user_main.oxtensa-lx106-elf-ar: creating .output/eagle/debug/lib/libuser.amake[1]: warning: Clock skew detected. Your build may be incomplete.make[1]: Leaving directory `/mnt/Share/esp_iot_sdk_v1.4.1_pre5/app/user'make: Warning: File `user/.output/eagle/debug/lib/libuser.a' has modification time 3.7 s in the futurextensa-lx106-elf-gcc -L../lib -nostdlib -T../ld/eagle.app.v6.new.2048.ld -Wl,--no-check-sections -u call_user_start -Wl,-static -Wl,--start-group -lc -lgcc -lhal -lphy -lpp -lnet80211 -llwip -lwpa -lmain -ljson -lupgrade -lsmartconfig user/.output/eagle/debug/lib/libuser.a -lat -Wl,--end-group -o .output/eagle/debug/image/eagle.app.v6.out!!!!!!user bin 1 !!!-20675081672067508166Support boot_v1.4 and +Generate user1.4096.new.6.bin successully in folder bin/upgrade.boot.bin------------>0x00000user1.4096.new.6.bin--->0x01000!!!make: warning: Clock skew detected. Your build may be incomplete.esp8266@esp8266-VirtualBox:~/Share/esp_iot_sdk_v1.4.1_pre5/app$
タイムスタンプがずれているのは気にしないでおくれ。
$ ls -l ../bin/upgrade/
total 7742
-rwxrwxrwx 1 root root 284596 Oct 29 14:29 user1.4096.new.6.bin
-rwxrwxrwx 1 root root 2881418 Oct 29 14:29 user1.4096.new.6.dump
-rwxrwxrwx 1 root root 4761082 Oct 29 14:29 user1.4096.new.6.S
なんかはできたようだ。
が、これをいきなり焼く前に、みんなのまねをしてビルド済みのものを焼いてみよう。
幸い、アップデートされるから焼かれたことも確認できる。
ESP_DOWNLOAD_TOOLのタイトルはV2.3になってるけど、ファイル名はV2.4だ。
あとね、このツールは日本語のパスとかに置かないようにしよう。STARTするとエラーになったよ。
ready
AT+GMR
AT version:0.50.0.0(Sep 18 2015 20:55:38)
SDK version:1.4.0
compile time:Sep 18 2015 21:30:56
OK
うん、ATは0.25.0.0→0.50.0.0になったし、SDKは1.1.2→1.4.0になった。
気になったのは、焼いたファイルが「user1.2048.new.5.bin」ということ。
さっきビルドしたらuser1.4096.new.6.binができたのだが、それはgen_misc.shのSTEP5で「6」を選んだからじゃないだろうか。
・・・うん、「5」でビルドしたらuser1.2048.new.5.binができた。
readme.txtを見ると、「user1.2048.new.5.bin」を使っているのは16Mbit-C1と32Mbit-C1だけだ。
そしてそもそも「6」のファイルはAT_v0.50の中に入っていない。
うーん、どう考えるとよいのだろうか・・・。
なお、ビルドしたbinの「5」と「6」の違いはこんな程度。
2番目はタイムスタンプっぽいし、3番目はチェックサムだろうか。
STEP 5: choose spi size and map
0= 512KB( 256KB+ 256KB)
2=1024KB( 512KB+ 512KB)
3=2048KB( 512KB+ 512KB)
4=4096KB( 512KB+ 512KB)
5=2048KB(1024KB+1024KB)
6=4096KB(1024KB+1024KB)
IOT_SDK_User_Manual v1.4に「6」を選んだときのメモリマップが載っていた。
- sdk_v1.1.0以降
- boot v1.4以降
- flash download tool v1.2以降
「5」は、こう。
- sdk v1.1.0以降
- boot v1.4以降
- flash download tool v1.2以降
条件は同じなのだが、右側のFLASHのUser Data領域が「6」の方が広いのだな。
それくらいみたいだから「6」でもいいのかな。
0 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。