600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 基于VMware+Ubuntu 14.04 搭建ESP32 开发环境

基于VMware+Ubuntu 14.04 搭建ESP32 开发环境

时间:2023-09-23 09:17:54

相关推荐

基于VMware+Ubuntu 14.04 搭建ESP32 开发环境

基于VMware+Ubuntu 14.04 搭建ESP32 开发环境

开发环境:VMware + 14.04

1.更新 cmake

准备工作:官网下载cmake-3.6.3.tar.gz(/download/)1.解压文件tar -xvf cmake-3.6.3.tar.gz,并修改文件权限chmod -R 777 cmake-3.6.32.检测gcc和g++是否安装,如果没有则需安装gcc-g++:sudo apt-get install build-essential(或者直接执行这两条命令sudo apt-get install gcc,sudo apt-get install g++)3.进入cmake-3.6.3 进入命令 cd cmake-3.6.34.执行sudo ./bootstrap5.执行sudo make6.执行 sudo make install7.执行 cmake –version,返回cmake版本信息,则说明安装成功

2.准备nijia

#1.安装依赖re2croot@ubuntu:~# apt-get install re2croot@ubuntu:~# re2c --versionre2c 1.0.1#2.下载ninjagit clone /ninja-build/ninja.git#3.编译ninjacd ninja./configure.py --bootstrap #会出现报错:subprocess.CalledProcessError: Command 're2c -b -i --no-generation-date --no-version -o ./src/ ./src/' returned non-zero exit status 2.#解决:vi ./configure.py 删除--no-version再执行./configure.py --bootstrap4.安装ninjasudo cp ./ninja /usr/bin ninja --version

3.更新python至3.8.5

安装的Ubuntu 16操作系统里面自带的Python版本一个是2.7,一个是3.5。如果想安装一个3.8.x的版本或其他版本。注意:此处的安装不是由3.5.2升级到3.8.x,而是单独安装另一个版本3.8.x 。安装步骤如下:第一步:安装依赖环境:sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev libffi-dev liblzma-dev python-openssl第二步:下载Python3.8.5的源码wget /ftp/python/3.8.5/Python-3.8.5.tgz第三步:解压tar -zxvf Python-3.8.5.tgz;第四步:进入解压后的目录(1)cd Python-3.8.5;(2)./configure; #编译前的配置(3)make; #编译(4)sudo make install;#编译后的安装第五步:安装成功后,找到 python3.8 解释器位置,一般是 /usr/local/bin/python3.8#删除原来的软连接#rm -rf /usr/bin/python3sudo rm /usr/bin/python#rm -rf /usr/bin/pip3#添加python3的软链接sudo ln -s /usr/local/bin/python3.8 /usr/bin/python#添加 pip3 的软链接#ln -s /usr/local/bin/pip3.8 /usr/bin/pip3查看一下是否安装成功:$ python3 -V$ pip3 -V

mkdir ~/esp//把准备好的ESP-SDk和交叉编译链//解压准备好的ESP-SDKunzip esp-idf.zip//解压准备好的交叉编译链tar -zxvf xtensa-esp32-elf-gcc8_2_0-esp32-r1-linux-amd64.tar.gz

设置环境变量:vi ~/.bashrc在最后添加以下内容:

export PATH="$HOME/esp/xtensa-esp32-elf/bin:$PATH"export IDF_PATH=~/esp/esp-idfexport PATH="$IDF_PATH/tools:$PATH"alias get_idf='. $HOME/esp/esp-idf/export.sh'

开始布置ESP 开发环境:

cd ~/esp/esp-idf./install.sh

遇到问题 1:

lindenis@ubuntu:~/esp/esp-idf$ ./install.shInstalling ESP-IDF tools: No such file or directorylindenis@ubuntu:~/esp/esp-idf$

解决方法:

dos2unix ./tools/*

遇到问题 2:

lindenis@ubuntu:~/esp/esp-idf$ ./install.shInstalling ESP-IDF toolsInstalling ESP-IDF tools /home/lindenis/esp/esp-idfInstalling tools: xtensa-esp32-elf, esp32ulp-elf, openocd-esp32Installing xtensa-esp32-elf@esp32-r1-8.2.0Downloading xtensa-esp32-elf-gcc8_2_0-esp32-r1-linux-amd64.tar.gz to /home/lindenis/.espressif/dist/xtensa-esp32-elf-gcc8_2_0-esp32-r1-linux-amd64.tar.gz.tmpTraceback (most recent call last):File "/home/lindenis/esp/esp-idf/tools/idf_tools.py", line 1317, in <module>main(sys.argv[1:])File "/home/lindenis/esp/esp-idf/tools/idf_tools.py", line 1313, in mainaction_func(args)File "/home/lindenis/esp/esp-idf/tools/idf_tools.py", line 1107, in action_installtool_obj.download(tool_version)File "/home/lindenis/esp/esp-idf/tools/idf_tools.py", line 541, in downloadurlretrieve(url, local_temp_path, report_progress if not global_non_interactive else None)File "/usr/local/lib/python3.8/urllib/request.py", line 247, in urlretrievewith contextlib.closing(urlopen(url, data)) as fp:File "/usr/local/lib/python3.8/urllib/request.py", line 222, in urlopenreturn opener.open(url, data, timeout)File "/usr/local/lib/python3.8/urllib/request.py", line 525, in openresponse = self._open(req, data)File "/usr/local/lib/python3.8/urllib/request.py", line 547, in _openreturn self._call_chain(self.handle_open, 'unknown',File "/usr/local/lib/python3.8/urllib/request.py", line 502, in _call_chainresult = func(*args)File "/usr/local/lib/python3.8/urllib/request.py", line 1421, in unknown_openraise URLError('unknown url type: %s' % type)urllib.error.URLError: <urlopen error unknown url type: https>lindenis@ubuntu:~/esp/esp-idf$

解决方法:

打开 Modules/Setup

//有些python版本是Setup.list

取消注释 以下几行

209 SSL=/usr/local/ssl210 _ssl _ssl.c \211 -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \212 -L$(SSL)/lib -lssl -lcrypto

重新编译安装:

(1)cd Python-3.8.5;(2)./configure; #编译前的配置(3)make; #编译(4)sudo make install;#编译后的安装

继续出现问题 2.1:

error "libssl is too old and does not support X509_VERIFY_PARAM_set1_host()"

解决问题:重新下载编译ssl

wget /source/openssl-1.1.1d.tar.gz --no-check-certificatetar -zxvf openssl-1.1.1d.tar.gz cd openssl-1.1.1d/./configmakesudo make installsudo mv /usr/bin/openssl /usr/bin/openssl.old //将旧版本的openssl进行备份sudo ln -s /usr/local/bin/openssl /usr/bin/openssl //将新版本的openssl进行软链接新建或修改 /etc/ld.so.conf.d/libc.conf 配置文件,添加如下内容:/usr/local/lib//将openssl的安装路径加入配置中然后运行如下命令:ldconfig //重新加载配置此时在用openssl version命令就可以看到已经是自己安装的新版本了,这样也方便切换为老版本。cd ~/Python-3.8.5vi Modules/SetupSSL=/usr/local/ssl改为SSL=/usr/local//重新编译pythonmake clean./configuremake

遇到-解决问题 2.2

Python build finished successfully!The necessary bits to build these optional modules were not found:_uuid sudo apt-get install uuid-dev

makesudo make install//自此安装Python 3.8.5 完毕

遇到问题2.3:

/home/lindenis/esp/esp-idf/install.sh esp32再次执行,遇到以下错误urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate (_ssl.c:1123)>ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get local issuer certificate>>> lindenis@ubuntu:/usr/local/ssl$ sudo cp ~/cacert.pem /usr/local/sslcert.pem

解决方法:

python>>> import ssl >>> print(ssl.get_default_verify_paths())DefaultVerifyPaths(cafile=None, capath='/usr/local/ssl/certs', openssl_cafile_env='SSL_CERT_FILE', openssl_cafile='/usr/local/ssl/cert.pem', openssl_capath_env='SSL_CERT_DIR', openssl_capath='/usr/local/ssl/certs')>>> //下载cacert.pem lindenis@ubuntu:/usr/local/ssl$ sudo cp ~/cacert.pem /usr/local/sslcert.pem再次执行:/home/lindenis/esp/esp-idf/install.sh esp32OK!

4.编译烧录测试hello_world:

cd ~/espcp -r $IDF_PATH/examples/get-started/hello_world .cd ~/esp/hello_worldget_idfidf.py set-target esp32idf.py build

遇到问题3:

烧录完成后,开机只不断打印:

rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)flash read err, 1000ets_main.c 371 ets Jun 8 00:22:57rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)flash read err, 1000ets_main.c 371 ets Jun 8 00:22:57

解决问题:

是因为烧录时相关地址设置错了:

设置成正确的:

重新上电开机,打印如下,开发环境搭建完成。

参考资料:

ubuntu 安装ninja_陈 洪 伟的博客-CSDN博客_ubuntu安装ninja

Ubuntu Linux 安装Python3.8.x或其他版本的步骤 - 乌鸦哥 - 博客园

关于Shell脚本执行python代码,出现No such file or directorython: can‘t open file的问题_yimenren的博客-CSDN博客

urllib.error.URLError:urlopen error unknown url type:https 解决办法_Tyler_Zx的博客-CSDN博客

python3 安装ssl编译问题_luckydoit的博客-CSDN博客_python 编译ssl

Python打开https链接报错:unable to get local issuer certificate_wjx141的博客-CSDN博客

快速入门 - - — ESP-IDF 编程指南 v4.1.1 文档

END

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。