[更新于2015-01-26.]
node
esp-open-sdk是用于编译ESP8266微型WiFi和CPU一体化的芯片固件的工具链建立工具(不是工具链自己),里面使用crosstool-NG以及gcc、binutils等工具来生成xtensa-lx106-elf工具链,ESP8266的固件使用所建立出来的工具链进行编译。
linux
esp-open-sdk主要在linux上运行(参考https://github.com/pfalcon/esp-open-sdk),经过mac port也能够在mac os x上运行,按照下面的脚本运行便可。git
这个脚原本自于http://www.esp8266.com,但我运行时出现一些错误,可能与版本有关,目前的版本最终编译成功。github
crosstool-NG原始版原本自于https://github.com/jcmvbkbc/crosstool-NG 。shell
能够尝试安装新的sed, gperf and grep解决出现的问题(Yosemite 10.10.1):npm
brew install gnu-sed --with-default-names brew tap homebrew/dupes brew install gperf brew install grep
安装的一些过程,因为原始工程在不断更新,逐步加入了一些补丁包,有些步骤可能已经再也不须要。
bash
#!/bin/bash #Need to install proper packages first ( although I might missed something ): sudo port install git gsed gawk binutils gperf grep gettext py-serial #Then create case sensitive volume ( like described by @tralamazza): hdiutil create -size 10g -fs "Case-sensitive HFS+" -volname ESPTools ESPTools.sparsebundle hdiutil attach ESPTools.sparsebundle cd /Volumes/ESPTools #Get the compiler: git clone --recursive cd esp-open-sdk git submodule init git submodule update cd .. #Patch it: sed -i.bak '1s/^/gettext=\'$'\n/' crosstool-NG/kconfig/Makefile sed -i.bak -e 's/[[:<:]]sed[[:>:]]/gsed/' Makefile sed -i.bak -e 's/[[:<:]]awk[[:>:]]/\$(AWK)/' lx106-hal/src/Makefile.am #上面两行执行出错,有谁知道缘由? sed -i.bak 's/AM_PROG_AS/AM_PROG_AS\'$'\nAM_PROG_AR/' configure.ac #And finally build: cd esp-open-sdk make STANDALONE=n #...n or y
设置路径:
工具
sudo ln -s /Volumes/ESPTools/ /esptools export PATH=$PATH:/esptools/esp-open-sdk/xtensa-lx106-elf/bin
cd /esptools/esp-open-sdk git clone https://github.com/tuanpmt/esptool-ck.git cd esptool-ck make chmod +x esptool
Compile esp-mqtt:
ui
cd /esptools git clone https://github.com/tuanpmt/esp_mqttcd esp_mqtt make -f Makefile.mac
Compile NodeMcu:spa
git clone https://github.com/nodemcu/nodemcu-firmware make
为了平时使用方便,每次进入系统须要运行(能够保存为.sh或放到启动脚本中,PATH在~/.profile中设置):
hdiutil attach ESPTools.sparsebundle sudo ln -s /Volumes/ESPTools/ /esptools export PATH=$PATH:/esptools/esp-open-sdk/xtensa-lx106-elf/bin