网上ESP8266 SDK开发环境多以dock和Windows为主,我还是使用传统的linux,毕竟比较通用,也已经习惯了。
选RTOS是因为觉得没有操作系统,开发嵌入系统太复杂了,后来才知道NONOS其实也是有任务管理功能的。另外对free RTOS有点熟,感觉是发展方向,所以没有太多的犹豫。
其实网上的很多程序示例都是基于NONOS的,资料比较好找,不管了,学习就要跟新的。
1、首先是环境,还是debain 10.4,32位或64位均可,乐鑫提供的交叉编译工具既有32位也有64位的,我用的是64位的。
2、安装环境必需的软件
apt-get install gcc git wget make libncurses-dev flex bison gperf python python-serial ninja-build
apt-get install cmake python-pip
3、下载需要的文件,最新版的文件下载位置在https://github.com/espressif/这里。传入到linux并解压缩,文件xtensa-lx106-elf-linux64-1.22.0-100-ge567ec7-5.2.0.tar.gz是交叉编译的工具链,按需要选择32位或64位。文件ESP8266_RTOS_SDK_v3.3.tar.gz是开发软件包。
编译工具链可以放在/opt/目录下,开发包也可以放在/opt/,用tar解压缩到当前目录。
tar -xvf xtensa-lx106-elf-linux64-1.22.0-100-ge567ec7-5.2.0.tar.gz
tar -xvf ESP8266_RTOS_SDK_v3.3.tar.gz
4、设置环境变量
#添加toolchain的路径
export PATH=$PATH:/opt/xtensa-lx106-elf/bin
#添加SDK脚本路径
export PATH=$PATH:/opt/ESP8266_RTOS_SDK/tools
#添加SDK路径
export IDF_PATH=/opt/ESP8266_RTOS_SDK
为了方便,可以将上面的三条命令写入当前用户的.bashrc文件中,这样每次登录就自动设好了。
5、下载几个PHP的编译辅助工具。试过,不单独安装也可以,会在每次编译程序时都检测是否符合要求,如果没有就自动下载,好在这几个文件都比较小,下载速度很快。
python -m pip install --user -r $IDF_PATH/requirements.txt
Successfully installed click-7.1.2 future-0.18.2 pyelftools-0.26 pyparsing-2.3.1
6、SDK中还缺两个组件包,需要自己下载,也可在编译时自动下载,但国内的网络质量实在是...
cd ESP8266_RTOS_SDK/components/json/cJSON
tar xvf cJSON_v1.7.12.tar
mv cJSON_v1.7.12 cJSON
cd cJSON
git init
ESP8266_RTOS_SDK/components/mbedtls/mbedtls
tar xvf mbedtls-2.13.1.tar
mv mbedtls-2.13.1 mbedtls
cd mbedtls
git init
7、好了,已经安装配置完成了,可以试着编译个程序
cd ~/ESP8266_RTOS_SDK/examples/get-started/hello_world/
make menuconfig
make -j2
8、完全可以将程序拷贝在自己的任何目录中,保留示例的模板即可。
mkdir ~/myProject
cp -r ~/ESP8266_RTOS_SDK/examples/get-started/hello_world/ ~/myProject/
cd ~/myProject
make -j2
在linux下,编译的速度还是很快的,与CPU的个数有很大的关系。