你见过这样的笔记本吗?能放视频、能听声音,随手 alt-tab 切出去打一局游戏,或者记两笔笔记,再切回视频接着看。听起来再正常不过,笔记本本来就该干这些事。
但如果有人告诉你,这台机器的心脏是一块 Arduino 兼容的 AVR 单片机板,你大概会和我们一样,一口咖啡差点喷出来。放下杯子吧,因为 Vladimir 的这台 AVR 笔记本,是真的做到了。
心脏是一块 8 位芯片
这台笔记本的核心是 ATmega2560。按 8 位单片机的标准来看,它已经算相当能打的一颗芯片了,但说到底,它仍然只是一块 8 位单片机。
所以,要让一套基于 FreeRTOS 的系统跑起来,还要把它想要的所有功能都塞进去,代码上必须非常小心。这不是堆硬件就能解决的事,是一行一行抠出来的空间。
举个例子,那块 ST7920 128×64 单色 LCD,并没有用任何现成的标准库来驱动。Vladimir 自己写了一套驱动,只做他需要的那部分功能——不多写一行,也不浪费一点资源。
24 帧视频,还得带上声音
更让人意外的是视频播放。即便只有 1 位色彩,要跑到 24 fps 也依然是个挑战,尤其是还要同时处理声音。
这两件事放在一块 8 位单片机上,本身就是互相抢资源的局面。至于他到底是怎么做到的,相关的技术记录里写了过程,但代码目前还在审核,没有正式放出。
我们能做的,是先看它跑起来的样子。演示视频里,这台笔记本确实在动、在响、在切换——不是概念图,也不是渲染动画。
为什么这件事让人上头
让一台 8 位机器去做那些你根本不指望 8 位能装下的事,这种气质其实并不陌生。它让人想起 Z80 上的 SymbOS——同样是硬把不可能塞进可能里。
对搞系统运维的人来说,之前也出现过 AVR 网页服务器这样的东西。每一次,都是同一件事:把一块看起来"不够用"的芯片,用到超出它该有的样子。
这台 AVR 笔记本目前还不是你能买到的东西,代码也还在等审核。但它至少证明了一件事——限制这东西,有时候只是还没被人认真对待过。
热门跟贴