Skip to content

Commit 3d01f3d

Browse files
committed
zz
1 parent 9f72ec3 commit 3d01f3d

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

docs/smalltalk/st0082.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@
66

77
---
88

9-
凹语言分别在2022年底和2024年底增加了和改善对Arduino-wasm平台的支持,当时的技术方案是通过Wasm3虚拟机来执行凹语言输出的wasm程序。Wasm3 是一个高性能的 WebAssembly 解释器并提供了对 Arduino 的支持。但是 Wasm3 最小的硬件依赖是 ~64Kb Flash,只能在 Arduino Nano 33 等高端的单片机测试。对于只有 2KB 内存的 Arduino Nano 底端单片机缺乏支持。
10-
11-
得益于2024年8月凹语言开发组重写了后端的Wat到wasm解析和编码代码,在此工作基础上同年10月实现了一个将wat翻译到C语言的工具。为了支持小内存的单片机环境,开发组决定通过Wat2c的方案绕过对Wasm3虚拟机的依赖,直接输出Arduino需要的C程序。经过大半年的开发完善,终于可以让LCD1602液晶屏显式程序运行在只有2KB内存的Arduino Nano开发板上。
9+
这是凹语言在第三届软件创新发展大会上展出的LCD示例程序,效果如下:
1210

1311
![](/st0082-01.jpg)
1412

@@ -277,6 +275,8 @@ func SayHello(row, col: i32, s: string) {
277275

278276
## 5. 小结
279277

280-
这个文章分享的是如何通过凹语言在Arduino平台来控制LCD显示的例子。例子本身并不复杂,但其背后的技术演化从最初的Wasm3虚拟机、到重新wat后端衍生的wat2c根据、到真正跑通全链路花了将近3年时间。从第一个五年计划的“能用”,到第二个五年计划的“好用”,这个例子正是“好用”的一个侧面写照。
278+
这个例子本身并不复杂,但其背后的技术演化从最初的Wasm3虚拟机、到重新wat后端衍生的wat2c根据、到真正跑通全链路花了将近3年时间。
279+
280+
凹语言分别在2022年底和2024年底增加了和改善对Arduino-wasm平台的支持,当时的技术方案是通过Wasm3虚拟机来执行凹语言输出的wasm程序。但是 Wasm3 最小的硬件依赖是 ~64Kb Flash,对于小内存的单片机支持比较弱。开发组通过wat2c技术去掉了对Wasm3的性能损耗,终于可以让程序运行在只有2KB内存的Arduino Nano开发板上。
281281

282-
我们对任何形式的讨论和合作保持开放态度,期待诸位一起推动新一轮演化!
282+
从第一个五年计划的“能用”,到第二个五年计划的“好用”,这个例子正是“好用”的一个侧面写照。我们对任何形式的讨论和合作保持开放态度,期待诸位一起推动新一轮演化!

0 commit comments

Comments
 (0)