用来当电子词典的话palm os如680/690,BB os如9790,塞班 如 e63那个步骤最少?

最近看到一个项目,名字叫 Dragonfruit。它干的事挺有意思:不是做一个 Palm OS 皮肤,也不是把几张 Palm 界面截图贴到墨水屏上,而是真的在 ESP32 设备上模拟一台68k Palm,更准确点说,它模拟的是 Motorola MC68EZ328,也就是当年 Palm IIIx 这类机器里面那颗 DragonBall EZ,一看这个名字就很有年代感。

Github地址:

github.com/megabytefish

左边是真 Palm IIIxe,右边是 M5Paper。右边这个白色墨水屏设备里跑出来的 Launcher,不是图片,是 Palm OS 3.x 真启动后的界面。

这类项目最怕只做到“像”。图标像、字体像、外壳像,最后其实就是个怀旧主题。Dragonfruit 不是这个玩法,它更像是把一台 Palm 的硬件行为重新捏出来,然后让原版 Palm OS ROM 自己跑起来。

简单讲就是:ESP32 负责跑模拟器,PSRAM 放 Palm 的 RAM 和 ROM 镜像,墨水屏显示原有的Palm 的 160x160 黑白画面,触摸屏负责把手指/笔的位置变成 Palm 能理解的 pen event。

这个项目里几个主要器件挺关键。

第一个是 ESP32-D0WDQ6-V3。M5Paper 上这颗是双核 240MHz,纯解释器能跑,但速度不够舒服,所以设备端还做了 burst JIT,把热点 68000 ROM 代码翻译成 Xtensa 本机代码。JIT 编译器跑在第二个核上,不是随便拿个 ESP32 点亮屏幕。

第二个是 8MB PSRAM。Palm IIIx 的模拟 RAM 是 2MB,ROM 镜像也要放进去。README 里直接说了,没有外部 PSRAM 不行,像 ESP32-C3 那种单核、没 PSRAM 的芯片就别想了。

第三个是 IT8951 墨水屏控制器。M5Paper 是 960x540 的电子纸屏,而 Palm 原来是 160x160、1bit framebuffer。Dragonfruit 要把 Palm 的小黑白画面放大、旋转,再把 Graffiti 那块丝印区叠到下面。墨水屏刷新慢,所以显示这块不能当普通 LCD 随便刷。

第四个是 GT911 电容触控。Palm 原来是电阻屏和触控笔,M5Paper 是电容屏。

第五个是 SD 卡。Palm OS ROM 不随项目分发,因为有版权。你得自己从拥有的 Palm 设备里导出 ROM,放到 FAT32 SD 卡根目录,命名为 palm.rom。启动时固件读进 PSRAM。SD 卡里还可以放 PRC/PDB/PQA,让系统启动时安装;也可以放备份目录,把 Palm 数据库导出来。

上面这张图更有意思。M5Paper 上已经能跑 Graffiti 手写练习了。你看它不是只能进 Launcher,触控、手写区、按钮区这些都已经能跟 Palm OS 对上。

很多模拟器项目,启动系统那一刻最激动,后面就没下文了。Dragonfruit 反而是在这些小地方下功夫:首次启动向导、触控校准、国家/时间/日期设置、Graffiti 输入、Apps/Menu/Calc/Find 这些丝印按钮、睡眠和自动关机、数据库安装和备份。

觉得这个项目复古好玩,不是因为 Palm OS 多先进。现在看 Palm,那套东西当然很老了,160x160 黑白屏、Graffiti 手写、Date Book、Memo Pad,都是上个时代的东西。但它放在 M5Paper 上,突然又顺眼了。墨水屏本来就慢,Palm OS 本来也不追求花哨动画;Palm 的黑白 UI 碰上电子纸,反而比很多现代系统更合适。再加上 ESP32、PSRAM、JIT、触控映射、SD 卡这些嵌入式细节,整个项目就不是单纯怀旧,而是一次挺完整的“旧系统搬家”。

关注公众号“嵌入式杂谈”,了解更多有趣好玩的嵌入式信息,感谢大家的点赞,在看。

编辑于 2026-06-18 · 著作权归作者所有