ubuntu ESP8266 RTOS开发入门

  • Post author:
  • Post category:其他




为什么用ubuntu而不用windows

  1. 对linux还算熟悉
  2. windows下没有搭建好平台
  3. eclipse还是不喜欢用,而且Ai-Thinker还是老版本eclipse魔改
  4. ubuntu下配置好了是真丝滑,编绎更快,烧写更方便



开发环境

# 依赖安装
sudo apt-get install gcc git wget make libncurses-dev flex bison gperf python python-serial

# 编译器下载
mkdir ~/esp
cd ~/esp
wget https://dl.espressif.com/dl/xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz
tar zxvf xtensa-lx106-elf-gcc8_4_0-esp-2020r3-linux-amd64.tar.gz
cd xtensa-lx106-elf

# 将编译器加入path
vim ~/.bashrc
export PATH=${JAVA_HOME}/bin:$PATH:/home/dawen/esp/xtensa-lx106-elf/bin/

# 下载sdk
# gitee上搜索ESP8266_RTOS_SDK和esp-gitee-tools
git clone --recursive https://gitee.com/EspressifSystems/ESP8266_RTOS_SDK.git
git clone https://gitee.com/EspressifSystems/esp-gitee-tools.git
# 下载sdk的子模块,官网说的是用git submodule update --init --recursive,但从github下载太慢了
./esp-gitee-tools/submodule-update.sh ESP8266_RTOS_SDK/

# 配置环境变量
# 可以把这一句加入~/.bashrc,今后每次使用前就输入一个esp8266,就配置好的IDF_PATH变量
alias esp8266='export IDF_PATH=~/esp/ESP8266_RTOS_SDK/'

# 确认python版本为python3
python --version

# 安装python3依赖
python -m pip install --user -r $IDF_PATH/requirements.txt

# 复制出hello_world项目
cd ~/esp/project/
cp -r $IDF_PATH/examples/get-started/hello_world .

# 设置
make menuconfig

# 编译
# 这里要注意头文件不能包含系统头文件/usr/include,C_INCLUDE_PATH变量不能有/usr/include。第一次就是在这里>出问题,系统头文件和项目头文件有冲突
make build
# 烧录,这里要看后面内容,不然会报权限问题
make flash

# 监视,同上要先配置好ttyUSB0权限
make monitor



下载权限问题

/dev/ttyUSB0默认只有root用户才有权限访问,但可以设置

# 以下目录加入70-ttyUSB.rules文件
cat /etc/udev/rules.d/70-ttyUSB.rules
# 就是把ttyUSB* 权限改成都能访问
KERNEL=="ttyUSB*", OWNER="root", GROUP="root", MODE="0666"
# 重启udev.service,不行就重启电脑
systemctl restart udev.service

完成以上步骤后可进入/dev/目录,用

ls -al|grep USB

看下ttyUSB0的权限,只要是

-rw-rw-rw-

就可以了。完成以上步骤后就可以使用普通用户运行

make flash

直接烧写,如果使用windows,要下载还要自己选择各bin文件和下载地址,就一个字慢。相比而言linux首次编绎也要比windows快。



linux用什么串口助手

linux串口助手有很多,我试过microcom,minicom,putty,cutecom。前3个都不支持74880波特率。cutecom可以选择自定义74880波特率。esp8266默认启动uart0波特率就是74880,所以要想查看完整信息要选一个支持74880波特率的串口助手。最坑的地方是windows下的putty是支持74880的,linux下就不支持。为此我还专门切换了3次系统,就是显示不出来,还改程序波特率为115200试了下,前半节乱码,后半节就可以显示了。



在那里找学习资料


  1. CSDN学习点

    ,这里是csdn的一个学习资料
  2. 克隆下来的

    ESP8266_RTOS_SDK

    仓库下

    examples

    目录下有很多例程,上面的资料也不少是直接抄的

    examples

    目录下面的试例。说说这个目录下内容:
peripherals						# 外围设备,gpio,uart,pwd,spi,sdio,adc,i2s等
get-started						# 就一个hello_world,用来看你的程序能不能运行
protocols							# 一些网络协议相关库,这个我也不太懂
wifi								  # 这个不用说wifi相关
# 其它的我就不熟悉了



再说一个小知识

freertos 的频率可以在

make menuconfig

的时候配置,我的先是100,用vTaskDelay(500)等了5秒钟,还以为程序死了。里面还有很多选项,有待您的探索。



版权声明:本文为weixin_45850062原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。