物联网编程(物联网编程是什么)

Mark wiens

发布时间:2022-11-03

物联网编程(物联网编程是什么)

 

编程语言Toit开源了!

Toit 是一种面向对象的物联网编程语言,在 IoT设备上能够实现秒级代码部署(注:如果使用C语言,一个简单的代码更改需要几分钟才能重新部署);同时,Toit也是一种现代的、内存安全的编程语言,集成了先进的编辑器功能,如语法高亮、goto-definitions 、代码自动补全等等。

Toit 编程语言具备以下特征:

现代、简单、易于使用高级和面向对象声明性和静态分析安全和垃圾收集

Toit的出现是因为有一群软件工程师对IoT开发的现状感到不满,凭借着在Google为Flutter构建V8 JavaScript 引擎和Dart语言的丰富经验,他们开始自己构建适用于IoT的最佳平台。也正是在平台构建过程中,他们意识到必须有一种高效的编程语言来满足物联网的需求。最开始,他们尝试使用了Python和JavaScript,但在微控制器上,这两种语言的速度都不够快。

互联网小常识:备份方法从备份模式来看,可以逻辑备份和物理备份,从备份策略来看可以分为完全备份、增量备份和差异备份。恢复速度由快到慢是完全备份,差异备份、增量备份。备份文件由多到少为完全备份、差异备份、增量备份。

为了解决性能和健壮性问题,Toit团队开始研究Toit语言,经过测试发现,Toit在 ESP32 上的执行代码速度比 MicroPython 快 30 倍以上,同时学习门槛也很低,Python开发人员在几小时内就可以学会它。

为什么会选择开源Toit?Toit团队表示:从一开始,我们就明确知道Toit肯定是会在某个时刻开源的,因为所有主流的编程语言都是开源的。开源可以获得充满活力的生态系统,编程语言才能被大规模采用。经过多次迭代和实际环境的应用,Toit语言已经成为微控制器编写强大软件的利器,我们希望更多开发者能够从中受益,因此选择将它开源出来。链接:https://juejin.cn/news/7034398085325422628

Licenses

Toit 编译器、虚拟机和所有支持基础设施均在LGPL-2.1许可下获得许可。lib/目录中包含的标准库在MIT许可下获得许可。examples/ 目录中包含的示例在0BSD许可下获得许可。

某些子目录在它们自己的开源许可证下,在这些目录中有详细说明。这些子目录是:

下的每个子目录 src/third_party下的每个子目录 src/compiler/third_party下的每个子目录 lib/font/x11_100dpi

构建

依赖关系

ESP-IDF

虚拟机对 ESP-IDF 有要求,适用于 Linux 和 ESP32 构建(对于 Linux,它适用于 MBedTLS 实现)。

我们建议您使用 Toitware 的ESP-IDF fork,它有一些变化:

自定义 malloc 实现。UART 等的分配修复LWIP 修复。gitclone https://github.com/toitware/esp-idf.gitpushdesp-idf/gitcheckout patch-head-4.3-3git子模块更新 --init --recursive弹出

请记住将其添加到您的 ENV 中IDF_PATH:

导出IDF_PATH=...

ESP32 工具

如果要为 ESP32 构建映像,请安装 ESP32 工具。

在 Linux 上:

$IDF_PATH/install.sh

对于其他平台,请参阅乐鑫的文档。

请记住更新您的环境变量:

.$IDF_PATH/export.sh

构建系统将自动使用 Toit 编译器的 32 位构建来为 ESP32 生成正确的可执行映像。如果您使用的是 64 位 Linux 机器并且您不支持编译安装的 32 位可执行文件,则您的构建可能会失败。您可以通过安装gcc-multilib和g++-multilib包在大多数 Linux 发行版上安装此支持。如果使用apt-get,则可以使用以下命令:

互联网小常识:综合布线系统分为六个子系统,分别为:工作区子系统、配线(水平)子系统、干线(垂直)子系统、设备间子系统、管理子系统和建筑群子系统。

sudo apt-getinstall gcc-multilib g++-multilib

为 Linux 和 Mac 构建

确保IDF_PATH已设置,如上所述。

然后在结帐的根目录下运行以下命令。

制作工具

这将构建 Toit VM、编译器、语言服务器和包管理器。

然后你应该能够执行一个 toit 文件:

build/host/bin/toitvm 示例/hello.toit

包管理器位于build/toitpkg:

build/toitpkg pkg init --project-root=<some-directory>build/toitpkg pkg install --project-root=<some-directory><package-id>

语言服务器可以通过以下方式启动:

构建/toitlsp--toitc=build/host/bin/toitc

有关如何集成语言服务器,请参阅 IDE 的说明。

对于 VSCode,您还可以使用已发布的扩展。

Mac 笔记

对 Mac 构建的支持仍在进行中。目前,无法在 Mac 上为 ESP32 构建固件映像,因为它需要编译和运行 32 位可执行文件。我们正在努力 解决这个问题。

为 ESP32 构建

确保已设置 ESP32 工具的环境变量,如依赖项部分所述。

为您的 ESP32 设备构建一个可以使用esptool.py.

制作esp32

默认情况下,映像会启动并运行examples/hello.toit. 您可以使用自己的入口点并通过ESP32_ENTRYmake 变量指定它:

制作 esp32 ESP32_ENTRY=examples/mandelbrot.toit

为 ESP32 配置 WiFi

您可以通过设置ESP32_WIFI_SSID和 ESP32_WIFI_PASSWORDmake 变量轻松配置 ESP32 的内置 WiFi :

制作 esp32 ESP32_ENTRY=examples/http.toit ESP32_WIFI_SSID=myssid ESP32_WIFI_PASSWORD=mypassword

这允许 WiFi 在网络接口打开时自动启动。

Toit开源地址:https://github.com/toitlang/toit

欢迎点赞+转发+关注!大家的支持是我分享最大的动力!!!

互联网小常识:IEEE802.11无线局域网协议中,冲突检测存在一定的问题(Near/Far现象),因为不能一边发送一边接收,所以无法使用CSMA/CD,将其改为CSMA/CA或DCF.另一个问题无线MAC层的问题是“hidden node”的问题,这个问题通过RTS/CTS解决。

免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186