前提
ESP8266でRTOS(FreeRTOS)を使う場合の開発環境のインストール手順を示します。ソースからコンパイルしない限り、Linux上で動作するコンパイラしか存在しません。ESPRESSIFのドキュメント(英語)で説明されているVirtualBoxを使う方法、または、Hyper-V上でLinuxを動かしコンパイラをインストールする方法のどちらかを選択する必要があります。
必要な物を入手
【VirtualBoxを使う方法】
ソフトウェア開発キット ESP8266 RTOS SDK V1.5.0
コンパイル環境 VirtualBox と VirtualBoxで動かす仮想マシン
フラッシュダウンローダ flash_download_tools_v3.4.4
フラッシュダウンローダの設定ファイル tool_config.txt
【Hyper-V上でLinuxを動かす方法】
ソフトウェア開発キット ESP8266 RTOS SDK V1.5.0
Linuxが動く環境 Ubuntuなど
コンパイラ xtensa-lx106-elf gitのサイトからDownloadZipで取得
フラッシュダウンローダ flash_download_tools_v3.4.4
フラッシュダウンローダの設定ファイル tool_config.txt
配置
ホームディレクトリにソフトウエア開発キットを解凍する。
$ gunzip ESP8266_RTOS_SDK-v1.5.0.zip $ mv ESP8266_RTOS_SDK-master ESP8266_RTOS_SDK
【以下はLinuxで動かす場合だけ実施】
コンパイラを適当な場所に配置します。
$ gunzip xtensa-lx106-elf-master.zip $ mv xtensa-lx106-elf-master xtensa-lx106-elf
パスを通します。
ホームディレクトリの .profile ファイルに下記の1行を追加し再ログインします。
export PATH=$PATH:【コンパイラを配置した場所】/bin
SDKにパッチを当てる
ESP8266_RTOS_SDKのVersion 1.5.0は、ダウンロードしたままでは使えません。
このパッチを当てます。ESP8266_RTOS_SDKを配置したディレクトリにリンク先のzipファイルをダウンロードして下さい。
$ cd 【ESP8266_RTOS_SDKを配置したディレクトリ】 $ gunzip ESP8266_RTOS_SDK-v1.5.0.patch.zip $ patch -n -p1 < ESP8266_RTOS_SDK_v1.5.0.patch
作業が終了したら、zipファイルとpatchファイルは消しても良いです。
ドライバライブラリをコンパイル
自分のハードウェアに合わせてピン配置をカスタマイズします。
$ cd ~/ESP8266_RTOS_SDK/driver_lib $ gen_lib.sh driver
カスタマイズをlibdriver.aに反映させるためコンパイルしておきます。
ダウンロードした状態のlibdriver.aは、gpio.cとhw_timer.cとuart.cしか含んでいませんので、i2c_master.cやspi_interface.cに含まれる関数を使いたい場合もコンパイルが必要です。
$ cd 【ESP8266_RTOS_SDKを置いたディレクトリ】/driver_lib $ ./make_lib.sh driver
【ESP8266_RTOS_SDKを置いたディレクトリ】/lib/libdriver.a のタイムスタンプがコンパイルが完了した時刻になっていることを確かめます。
サンプルをコンパイル
サンプルのディレクトリへ移動します。
$ cd 【ESP8266_RTOS_SDKを置いたディレクトリ】/examples/websocket_demo
ダウンロードしたままの状態ではシェルスクリプト gen_misc.shに実行権限が付いていませんので付けます。
$ chmod 755 gen_misc.sh
シェルスクリプト gen_misc.sh 中のSDKのパスを変更します。
下記を実行する前に、BINファイルを置くディレクトリを作っておくと良いでしょう。BINファイルとは、コンパイルしたプログラムそのものです。
【編集前】 export SDK_PATH= export BIN_PATH= 【編集後】 export SDK_PATH=【ESP8266_RTOS_SDKを置いたディレクトリ】 export BIN_PATH=【BINファイルを置くディレクトリ】
コンパイルを実行します。
$ ./gen_misc.sh
Please check SDK_PATH & BIN_PATH, enter (Y/y) to continue:に対してはyと答え、その他の質問にはenterを押下してください。
Generated eagle.flash.bin and eagle.irom0text.bin successfully in BIN_PATHが表示されば正常終了です。
フラッシュダウンローダを配置
解凍します。
$ gunzip flash_download_tools_v3.4.4.zip
配置したディレクトリにフラッシュダウンローダの設定ファイルを置きます。
ESPFlashDownloadTool_v3.4.4.exeを実行するとフラッシュダウンローダが立ち上がります。ファイルのパス名に含まれる、SDK_DIRとBIN_DIRをそれぞれ、【ESP8266_RTOS_SDKを置いたディレクトリ】と【BINファイルを置くディレクトリ】に指定し直してください。
ver3からSTARTボタンを押すだけでダウンロードが始まるようになりました。設置値はESP-WROOM-02向けになっていますので、適宜変更してください。