乐鑫esp8266学习rtos3.0笔记:体验下官方推荐的在Linux搭建 ESP8266_RTOS_SDK 3.0 最新环境的搭建和编译源码吧。
Posted on 2020-03-08 17:25 CoreHouse 阅读(775) 评论(0) 编辑 收藏 举报- 本系列博客学习由非官方人员 半颗心脏 潜心所力所写,不做开发板。仅仅做个人技术交流分享,不做任何商业用途。如有不对之处,请留言,本人及时更改。
1、 Esp8266之 搭建开发环境,开始一个“hellow world”串口打印。
2、 Esp8266之 利用GPIO开始使用按钮点亮你的“第一盏灯”。
3、 Esp8266之 利用 "软件定时器 " 定时0.5秒闪烁点亮一盏LED。
4 、Esp8266之 了解PWM,更为深入地用PWM控制一盏LED的亮度变化。
5 、Esp8266之 原生乐鑫SDK高级使用之封装Post与Get请求云端,拿到“天气预报信息”。
6 、Esp8266之 了解 SmartConfig与Airkiss一键配网,给8266配网上云端。无需把wifi名字密码写在固件里。
7 、Esp8266之 了解 softAP热点配网模式原理,仿“机智云”定义自己的热点配网模式协议。
8、 Esp8266之 你要找的8266作为UDP、TCP客户端或服务端的角色通讯,都在这了。
9、 Esp8266进阶之路: [小实战上篇]Windows系统搭建8266的本地Mqtt服务器,局域网点亮一盏LED灯。
10、 Esp8266进阶之路: [小实战下篇]Windows系统搭建8266的本地Mqtt服务器,局域网点亮一盏LED灯。
11、 Esp8266进阶之路: 8266接入阿里智能,点亮一盏LED灯,期待天猫精灵语音控制的不约而至!
12、 Esp8266进阶之路: 图文并茂学习阿里云主机搭建8266MQTT服务器,实现移动网络远程控制一盏LED。
13、 Esp8266进阶之路: 动手做个8266毕设小案例,smartConfig + MQTT协议轻松实现远程控制一盏LED。
14、 Esp8266进阶之路: esp8266的 FreeRtos系统学习的正确姿势 ------ 环境搭建、烧录。
15、 Esp8266进阶之路: esp8266的 物联网又一股清流,8266接入阿里云平台非阿里智能的SDS服务,点亮一盏LED灯。
16、 Esp8266进阶之路: esp8266的 基于Nonos移植红外线H1838,实现红外遥控器配网,远程控制一盏灯。
17、 Esp8266进阶之路: esp8266自研的快速上电开关五次 (开-关为一次) ,无需按键触发则8266进去一键配网模式。
18、 Esp8266进阶之路: esp8266 基于NONOS 实现 OTA 远程升级,实现无线“ 热修复 ”升级固件程序。
19、 Esp8266进阶之路: esp8266驱动 ds18b20、dht11 温湿度传感器,采集温湿度传感器到服务器。
20、 Esp8266进阶之路: 深入学习esp8266的esp now模式,仿机智云做一个小网关,实现无需网络下轻松彼此连接通讯交互数据。
21、 Esp8266进阶之路: 浅谈 esp8266 如何在本地局域网网络情况下实现最大效率地和前端实现数据交互。
22、 Esp8266进阶之路: esp8266的工程如何添加第三方静态库文件以及如何自定义文件夹,聊聊那些makeFile的事。。
23、 Esp8266进阶之路: 再来一波 esp8266 基于 freeRtos系统连接自己私有的服务器实现OTA远程升级,接触下 lwip的基本知识。。
24、 Esp8266进阶之路: 渗透学习回顾下esp8266的外置spi芯片25q系列,熟悉8266代码块在其的分布,得心应手放置图片或其他资料。
25、 Esp8266进阶之路: 深聊下esp8266的串口 Uart 通讯中断编程,为您准备好了 NONOS 版本 和 RTOS 系统的串口驱动文件。
26、 Esp8266进阶之路: RTOS分析 MQTT 实现过程,实现移植 MQTT协议在 esp8266 rtos实时系统,可断线重连。
27、 Esp8266进阶之路: 跟紧脚步,用VisualStudio Code开发 esp8266 rtos SDK v3.0版本,全新的 idf 框架,节省内存模块化开发。
28、 Esp8266进阶之路: 教你轻松自如使用cJson在乐鑫 esp8266 如何解析一段json数据以及如何生成一段json数据。
29、 Esp8266进阶之路: 百万条消息免费之乐鑫esp8266使用TCP直连模式MQTT协议接入阿里云物联网平台,支持私家服务器对接支持阿里云规则引擎。
30、 Esp8266进阶之路: 乐鑫esp8266 SDK编程使用 IIC总线驱动 0.96寸的OLED显示屏,显示天气预报信息。
31、 Esp8266进阶之路: 当esp8266遇到 Html,该怎么内置网页控制设备,理清内置网页的实现过程,实现无需路由器手机也可以控制esp8266。
32、 Esp8266进阶之路: 细聊HmacMD5的加密方法带来的安全性,并实践在esp8266上,最大保障传输的过程的信息的安全性。
33、 Esp8266进阶之路: 如何优雅地像乐鑫原厂封装esp8266底层寄存器的逻辑思维,做成自己的静态库库文件,让第三方人使用?
34、 Esp8266进阶之路: 乐鑫esp8266 NONOS SDK 3.0编程使用 SPI 驱动基于Max7219芯片的八位数码管,显示日期信息。
35、 Esp8266进阶之路: 乐鑫esp8266芯片借助机智云平台做一个商业化的七彩RGB灯泡可调整体方案项目,炫彩夺目高大尚。
36、 Esp8266之rtos3.0笔记: 认识esp8266 Rtos 3.0 sdk 工程结构,esp8266如何向esp-idf工程靠近的,如何自定义头文件编译?
37、 Esp8266之rtos3.0笔记: 你要找的基本外设功能都在这里了,包括Gpio、Pwm 和 Uart 接口使用。
38、 Esp8266之rtos3.0笔记: 一篇文章带你搞掂存储技术 NVS 的认识和使用,如何利用NVS保存整型、字符串、数组以及结构体。
39、 Esp8266之rtos3.0笔记: 捋一捋微信公众号配网智能设备 esp8266 并绑定设备的过程,移植并成功实现在 esp8266 rtos3.1 。
40、 Esp8266之rtos3.0笔记: 基于乐鑫idf框架,研究出超稳定、掉线重连、解决内存泄露问题的Mqtt框架!支持esp8266和esp32!
41、 Esp8266之rtos3.0笔记: esp8266-12模块基于rtos3.1版本ota功能远程空中升级固件,官网基础之上增加dns域名解析!
42、 Esp8266之rtos3.0笔记: 我又来了,基于rtos3.0版本 SDK编程 SPI 驱动 ws2812b 七彩灯,代码全部开源奉献给你们!
43、 Esp8266之rtos3.0笔记: esp8266-12模块基于rtos3.0版本扫描周围获取附近可用的 Wi-Fi 热点路由器信息,同样适合esp32。
44、 Esp8266之rtos3.0笔记: 整理分享那些我在项目中常用的esp8266 rtos3.0版本的常见驱动,Button按键长短按、PWM平滑调光等。
45、 Esp8266之rtos3.0笔记: 内置仅1M的Esp8285,如何攻破最棘手的OTA问题,大大节省资源成本开发产品。
46、 Esp8266之rtos3.0笔记: 详细分析Esp8266上电信息打印的数据,如何做到串口通讯上电不乱码打印。
47、 Esp8266之rtos3.0笔记: 无需外网,如何实现在本地局域网与控制端做数据交换的一些开发经验。
48、 Esp8266之rtos3.0笔记: 迟来的1024程序员祝福,开源分享一个驱动 ds18b20 获取温度的工程。
49、 Esp8266之rtos3.0笔记: aliyun sdk 直连接入阿里云物联网平台,实现天猫精灵找队友零配网功能和语音控制。
50、 Esp8266之rtos3.0笔记: esp产品量产方案初入门之 如何从外部读取 csv 文件的数据,比如从代码读取外部文件阿里云三元组。
51、 Esp8266之rtos3.0笔记: 体验下 Linux搭建 ESP8266_RTOS_SDK 3.0 最新环境的搭建和编译吧。
-------- 学习笔记持续更新,欢迎关注我…
很多人怎么联系我一起学习进步,下面打个小小公告:
玩转esp8266
带你飞、加群
esp8266源代码免费学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp8266
esp32源代码免费学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp32
前言
这周双休休息,看到群里有朋友说Linux环境真的快的一批,又想起之前乐鑫研发朋友在我博客留言推荐使用Linux环境,今天周日,花了2小时排版给大家讲解下,过程中有很多注意的地方,但是 Linux编译真的快的一批!!
这里再贴下2018年写了个在Windows搭建 3.0 版 SDK编译,收到不少的阅读量和肯定! 当然,也有开发者喜欢 Windows 环境开发, 这里再贴下链接:
https://blog.csdn.net/xh870189248/article/details/81382279
一、windows 安装 Linux 系统
下载 VM 虚拟机 版本15.5.1,或点我下载:
https://www.vmware.com/go/getworkstation-win
和谐码:FC7D0-D1YDL-M8DXZ-CYPZE-P2AY6
下载镜像,这里选择ubuntu桌面版18.04.4版本,或点我下载。
http://mirrors.aliyun.com/ubuntu-releases/16.04/ubuntu-16.04.6-desktop-amd64.iso
重要的一步,VM安装乌邦图步骤请参考如下教程,或点我访问。:
https://jingyan.baidu.com/article/f96699bb147a73894e3c1b2e.html
我们还需要安装几个常用的软件 :
sudo apt-get purge vim-common
sudo apt-get install vim
sudo apt install git
二、搭建编译环境;
环境一变再变,也要看准官方的文档搭建,因为每个版本的环境会有所不一致!
https://docs.espressif.com/projects/esp-idf/zh_CN/latest/get-started/linux-setup.html
2.1 、基本环境
开始一堆依赖安装:
sudo apt-get install git wget flex bison gperf python python-pip python-setuptools python-serial python-click python-cryptography python-future python-pyparsing python-pyelftools cmake ninja-build ccache libffi-dev libssl-dev
成功之后:
2.2 、编译工具链获取
可以看到,ESP8266 最新版本的编译工具链目前是5.2.0版本,为了提高大家的效率,我这里给大家贴下安信可共享下载链接,可缩短下载时间,下图可以看到明显的下载效果:
sudo wget https://axk.coding.net/api/share/download/1f1b2769-e56a-4de8-b91a-01c70ff8b9ac
解压其到当前文件夹:
sudo tar -zvxf 1f1b2769-e56a-4de8-b91a-01c70ff8b9ac
修改其权限为777:
sudo chmod 777 -R xtensa-lx106-elf
2.2 、获取 ESP8266_RTOS_SDK 代码
这里介绍下有2种方式下载最新的代码,因为访问GitHub真的太慢了!
2.2.1 【方式一】用博主提供的方式拉取最新代码
众所周知,乐鑫的开放源码都放在GitHub,而GitHub又被微软收购了,这一年的访问下载速度慢得乌龟一样,哈哈!所以,我克隆一份放在了国内的码云网站,这样就保证我们拉取代码非常快!
PS:这份同步乐鑫源仓库的工作,我会一直保持下去!
首先,我们先拉取源码,先不拉取子模块!
sudo git clone https://gitee.com/xuhongv/ESP8266_RTOS_SDK.git
我们看了下子模块源路径是不规范的,这里,我们再修改为码云上的:
# 编辑子模块源码路径
sudo vim .gitmodules
# 修改为下面这样
[submodule "components/json/cJSON"]
path = components/json/cJSON
url = https://gitee.com/xuhongv/cJSON.git
[submodule "components/mbedtls/mbedtls"]
path = components/mbedtls/mbedtls
url = https://gitee.com/xuhongv/mbedtls.git
[submodule "components/lwip/lwip"]
path = components/lwip/lwip
url = https://gitee.com/xuhongv/esp-lwip.git
- 设置环境变量,不懂linux小白的同学,认真看下面的动图哈:
- 之后按下 i 表示嵌入代码!
- 修改为上面的提示的代码!
- 按下esc 再 :wq 表示写入保存!
弄好了之后就这样,给大家看看我的!
不管怎么样,还是要更新拉取子模块的:
git submodule update --init --recursive
2.2.2 【方式二】用官方方式拉取最新代码
带子模块递归方式拉取GitHub,慢慢等吧!
sudo git clone --recursive https://github.com/espressif/ESP8266_RTOS_SDK.git
2.3 、设置环境变量
这里就简单很多,就设置2个变量即可!先拿到上述的工具链路径和SDK路径!
以我的环境为例:
export PATH=$PATH:/home/xuhongv/Desktop/ESPRESSIF/ESP8266/xtensa-lx106-elf/bin
export IDF_PATH=/home/xuhongv/Desktop/ESPRESSIF/ESP8266/ESP8266_RTOS
- 之后按下 i 表示嵌入代码:
vim ~/.bashrc
- 任意一处添加 表示嵌入上面代码!
- 按下esc 再 :wq 表示写入保存:
source ~/.bashrc
- 工具链环境测试是否设置成功:
xtensa-lx106-elf-gcc -v
- IDF_PATH 路径测试是否设置成功:
echo $IDF_PATH
查看工具链是否正确?
IDF_PATH 路径测试是否设置成功?
三、编译代码;
终于到了编译代码啦!!过程体验真的比Windows顺畅的一匹!
进去任意一个例子,然后 make menuconfig 面板设置,当然默认也可以!
通过CPU多核make all -j8
快速编译成功之后,会有如下提示!可以看到有指定的串口下载等信息!
Generating esp8266.project.ld
LD build/hello-world.elf
esptool.py v2.4.0
To flash all build output, run 'make flash' or:
python /home/xuhongv/Desktop/ESPRESSIF/ESP8266/ESP8266_RTOS_SDK/components/esptool_py/esptool/esptool.py --chip esp8266 --port /dev/ttyUSB0 --baud 115200 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size 2MB 0x0 /home/xuhongv/Desktop/ESPRESSIF/ESP8266/ESP8266_RTOS_SDK/examples/get-started/hello_world/build/bootloader/bootloader.bin 0x10000 /home/xuhongv/Desktop/ESPRESSIF/ESP8266/ESP8266_RTOS_SDK/examples/get-started/hello_world/build/hello-world.bin 0x8000 /home/xuhongv/Desktop/ESPRESSIF/ESP8266/ESP8266_RTOS_SDK/examples/get-started/hello_world/build/partitions_singleapp.bin
四、烧录和串口打印
在Linux环境烧录我们的ESP8266模块开发板,主要注意这个串口读取的权限问题!插进我们的开发板之后,会有提示,如果没有提示,查看 虚拟机 – 可移动设备 --点击对应的串口!
- 串口烧录:
make flash
- 串口信息监听:
make monitor
4.1 【常见问题】如何查看是否开发板已连接到虚拟机Linux了?
先通过查看是否依附,再看看是否在列表中? 2条指令即可!
dmesg | grep ttyS*
ls /dev/tty*
4.2 【常见问题】权限问题 /dev/ttyUSB0
使用某些 Linux 版本向 ESP32 烧写固件时,可能会出现 Failed to open port /dev/ttyUSB0 错误消息。此时,可以将当前用户增加至 :ref:Linux Dialout 组 <linux-dialout-group>
。
因为默认情况下,只有root用户和属于dialout组的用户会有读写权限,因此直接把自己的用户加入到dialout组就可以了。操作完命令后要重启一下,就永久生效了。
xuhongv@ubuntu:~$ sudo usermod -aG dialout xuhongv
4.3 【常见问题】如何烧录指定的串口;
比如烧录到 /dev/ttyUSB1,加上 ESPPORT 参数即可!
make flash ESPPORT=/dev/ttyUSB1
4.4 【常见问题】烧录不稳定;
我建议还是使用 CP2102 串口芯片的板子! 别用CH340!
4.5 【常见问题】提示没有那个文件或目录;
xuhongv@xuhongv-ubuntu:~/ESPRESSIF/ESP8266/ESP8266_RTOS_SDK/mycode/spi_oled$ make menuconfig
Makefile:8: /home/xuhongv/ESPRESSIF/ESP8266_RTOS_SDK/make/project.mk: 没有那个文件或目录
make: *** 没有规则可制作目标“/home/xuhongv/ESPRESSIF/ESP8266_RTOS_SDK/make/project.mk”。 停止。
检查下 IDF_PATH 路径!! 再重新设置!
4.5 【常见问题】make menuconfig 时候报错;
cc -c -DCURSES_LOC="<curses.h>" -DLOCALE -MMD -MP -I "." -I "/home/xuhongv/ESPRESSIF/ESP8266/ESP8266_RTOS_SDK/tools/kconfig" /home/xuhongv/ESPRESSIF/ESP8266/ESP8266_RTOS_SDK/tools/kconfig/mconf.c -o mconf.o
<command-line>:0:12: fatal error: curses.h: 没有那个文件或目录
compilation terminated.
Makefile:173: recipe for target 'mconf.o' failed
make[1]: *** [mconf.o] Error 1
make[1]: 离开目录“/home/xuhongv/ESPRESSIF/ESP8266/ESP8266_RTOS_SDK/tools/kconfig”
因为一些依赖没装好, 需要安装下即可:
sudo apt-get install git wget make libncurses-dev flex bison gperf python python-seria
另外,不要把我的博客作为学习标准,我的只是笔记,难有疏忽之处,如果有,请指出来,也欢迎留言哈!
- 玩转
esp8266
带你飞、加群QQ
群,不喜的朋友勿喷勿加:434878850 - 个人邮箱:xuhongv@yeah.net 24小时在线,有发必回复!
- esp8266源代码学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp8266
- esp32源代码学习汇总(持续更新,欢迎star):https://github.com/xuhongv/StudyInEsp32
- 关注下面微信公众号二维码,干货多多,第一时间推送!