toit是什么意思(Toit开源语言在ESP32比在MicroPython快)

toit是什么意思?Toit是前谷歌员工团队开发的一个完整物联网平台,该平台具有远程管理、固件更新的功能。它适用于设备群,其功能类似于 balena、Microsoft Azure 或 Particle这类边缘到云平台解决方案所提供的功能。
Toit 原本是使用轻量级容器在 ESP32 微控制器上工作,不过在看到现有高级语言 MicroPython 和 Javascript 在低端微控制器平台上运行不够快之后,Toit 团队在2018 年开始开发 Toit 语言,并且实现了开源。他们还在基于LGPL-2.1 许可证的基础上在Github上发布了编译器、虚拟机和标准库 。
如果你们的应用程序受到了性能限制,或者你们使用电池运行 ESP32,你们可以试试从 MicroPython 切换到 Toit 语言。因为Toit 方面声称在 ESP32 上使用 Toit 可将性能提高 30 倍:
在我们进入了加班模式的几个月后,我们有了第一个结果,即一种抽象出内存分配的高级语言:Toit语言。我们使用该语言在ESP32 上执行代码的速度比在MicroPython 上快 30倍,而且Python开发人员们可以在几个小时内学会该语言。
因此,让我们可以通过在 Ubuntu 20.04 中试用来更深入地了解它。该虚拟机基于具有自定义 malloc 实现、UART 分配修复和 LWIP 修复的 ESP-IDF 的分支。以下是我们首先需要安装的:
git clone https://github.com/toitware/esp-idf.git pushd esp-idf/ git checkout patch-head-4.3-3 git submodule update --init --recursive export IDF_PATH=$(pwd) popd
现在安装 ESP32 工具:
sudo apt install python3-pip $IDF_PATH/install.sh . $IDF_PATH/export.sh
并通过构建toit和示例使其在主机上运行:
sudo apt install go --install=classic sudo apt-get install gcc-multilib g++-multilib make tools
现在我们可以运行 hello world 示例:
// Copyright (C) 2021 Toitware ApS. // Use of this source code is governed by a Zero-Clause BSD license that can // be found in the examples/LICENSE file. main: print "Hello, World!"
如下:
build/host/bin/toitvm examples/hello.toit Hello, World!
一切都很好,那么如何为 ESP32 构建示例呢?也很简单,如下:
make esp32
这将创建一个预加载了的 hello world 示例的 Toit 固件文件 (toit.bin),之后就可以使用 esptool 刷新,如下所示:
LD build/esp32/toit.elf esptool.py v3.1-dev Merged 2 ELF sections To flash all build output, run 'make flash' or: python /home/jaufranc/edev/esp-idf/components/esptool_py/esptool/esptool.py --chip esp32 --port /dev/ttyUSB0 --baud 921600 --before default_reset --after hard_reset write_flash -z --flash_mode dio --flash_freq 40m --flash_size detect 0xd000 /home/jaufranc/edev/toit/build/esp32/ota_data_initial.bin 0x1000 /home/jaufranc/edev/toit/build/esp32/bootloader/bootloader.bin 0x10000 /home/jaufranc/edev/toit/build/esp32/toit.bin 0x8000 /home/jaufranc/edev/toit/build/esp32/partitions.bin make[1]: Leaving directory '/home/jaufranc/edev/toit/toolchains/esp32'
很好!另外我们肯定也可以用 Wi-Fi 来检查示例,确实有http.toit示例:
// Copyright (C) 2021 Toitware ApS.
// Use of this source code is governed by a Zero-Clause BSD license that can
// be found in the examples/LICENSE file.
import net
import http
main:
network := net.open
host := "www.google.com"
socket := network.tcp_connect host 80
connection := http.Connection socket host
request := connection.new_request "GET" "/"
response := request.send
bytes := 0
while data := response.read:
bytes += data.size
print "Read $bytes bytes from http://$host/"
这一简洁又简单的例子只是下载谷歌页面并报告下载的字节数。但是等等,我们在哪里配置Wi-Fi凭证呢?可以在构建时添加,如下所示:
make esp32 ESP32_ENTRY=examples/http.toit ESP32_WIFI_SSID=myssid ESP32_WIFI_PASSWORD=mypassword
或者你们也可以通过更改默认程序的方式在 Makefile 中配置 WiFi SSID 和密码:
# Use 'make ESP32_ENTRY=examples/mandelbrot.toit' to compile a different # example for the ESP32 firmware. ESP32_ENTRY=examples/hello.toit ESP32_WIFI_PASSWORD= ESP32_WIFI_SSID=
我没有启动 ESP32 来测试它,但我猜想是可以在第一次刷新 Toit 固件后修改设备本身自带的 hello.toit。根据make esp32命令的输出显示,OTA 固件更新应该也可以被启用。完整的 Toit 平台最多可免费用于 10 台设备,除了 Github 页面,你们还可以在文档网站上找到更多信息,不仅包括我们在此处使用的固件和 Toit 语言,还包括 Cloud API 和整个Toit平台。
本文《toit是什么意思(Toit开源语言在ESP32比在MicroPython快)》由网赚联盟( wangzhuan.org.cn )整理或原创,感谢您的阅读。随机文章
站长导航友情链接交换
关键词排名优化
GEO培训
SEO小小课堂网
SEO教程
站长导航
搜素引擎算法
百度搜索“网赚联盟”即可找到本站,微信搜索“小小课堂网”关注小小课堂网公众号。网赚联盟( wangzhuan.org.cn )欢迎用户投稿,发布者:用户投稿,文章版权归作者所有,投稿文章不代表网赚联盟立场,中二少年发布为网赚联盟原创文章,转载请注明出处:https://wangzhuan.org.cn/154126.html

微信扫一扫
支付宝扫一扫