0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

MakerLisp 为创客和嵌入式设计师提供 Lisp 和 CP/M

那年我十七_ 来源:听风说梦 作者:听风说梦 2022-08-01 11:48 次阅读

MakerLisp Embedded Lisp Machine 面向用于物联网边缘的嵌入式系统的制造商和开发人员。

目前,复古计算和复古显示技术似乎正在大规模复苏。例如,仅考虑我最近的一些专栏:“适合 Altoids 糖果罐的微型计算机复古套件”、“超级酷复古 IBM 克隆计算机 DIY 套件”和“拆分翻盖显示器引发怀旧浪潮”。

因此,您可以想象我被介绍给路德·约翰逊(Luther Johnson)这个超越复古的人的惊喜和喜悦。作为Lisp 编程语言和CP/M 操作系统的忠实拥护者,Luther 怀念 1970 年代末和 1980 年代初个人微型计算机的简单性和即时性,因此他设计并构建了自己想要的系统,之后他决定把它提供给其他人玩。

让我们从 Lisp 开始,它最初于 1958 年被指定,使其成为第二古老的高级编程语言(只有 Fortran 更老,一年)。作为最早的编程语言之一,Lisp 开创了计算机科学的许多思想。此外,它很快成为人工智能 (AI) 早期研究最喜欢的语言。令人惊奇的是,List 至今仍在广泛使用。Lisp 的追随者倾向于将其描述为“一种多范式语言,对命令式、函数式和面向对象的编程具有出色的支持”,而其批评者则声称 Lisp 是“Lots of Insipid Stupid Parentheses”的缩写。

当然,Luther 是一个狂热的爱好者,他对 Lisp 的描述如下:

一般来说,解释性环境(如 Forth、BasicPython 和许多其他语言)非常适合快速原型设计和迭代开发,您可以从开发和测试小块拼图开始,然后从可信组件构建解决方案。在嵌入式系统开发中,这可能是一种特别高效的工作方式,在这种方式中,我们需要在开发软件时观察和了解与硬件的交互。

Lisp 语言家族[以其]简洁的表达能力和[其]高“语义能量密度”而著称。同时,Lisp 是最简单的语言之一,因为它本身并没有太多的语言需要学习。相反,您将大部分时间都花在思考自己的代码上。由于 Lisp 的工作方式,以及从编写 Lisp 程序的过程中演变而来的风格,您的代码可以更好地组合和组合在一起,并且您编写的东西每次都可以工作,无处不在。Lisp 程序似乎用更少的代码完成了更多工作。

Lisp 的 MakerLisp 方言是一种 Lisp,它具有表达式评估的 Scheme 模型、低级宏和具有通用 Lisp 拼写和语义的语言函数、C 语言算术和标准 C 库函数。MakerLisp 系统是用可移植的 C 语言编写的,它即时 (JIT) 解释了一种微小的核心语言。所有其他形式和功能都通过 Lisp 函数和宏提供。

具有 JIT 增量编译的 Lisp 解释器,如 MakerLisp,可以交付性能非常好的程序。Lisp 环境有利于快速完成工作,由此产生的“原型代码”具有生产价值。嵌入式系统开发已经够难了。我们可以使用我们可以获得的所有开发工具,并且我们可以在 Lisp 中利用的计算模型在嵌入式系统上与在其他问题领域中一样高效。

尽管 MakerLisp 的 JIT 增量编译比完全编译的 Lisp 程序运行得更慢,但它的运行速度仍然比等效的 Python 代码快三倍。不过这里的重点是,除了 Luther 之外,Lisp 还有很多粉丝。不幸的是,在面向物联网 (IoT) 边缘的嵌入式系统制造商和开发人员的微控制器开发板中,您往往不会发现 Lisp。所有这些都将我们带到 Luther 的MakerLisp Embedded Lisp Machine:

MakerLisp Machine 的主处理器是信用卡大小的单板计算机 (SBC),具有 50-MHz Zilog eZ80 和 1 MB 的 SRAM(可扩展至 16 MB)。还有一个用于运行实时时钟 (RTC) 的 CR1632 电池支架,而板上的 FAT32 微型 SD 卡插槽为您的程序和数据提供存储(请注意,电池和微型 SD 卡都不是包括在电路板上,但两者都在商店中广泛使用)。

存储在板载闪存中的默认系统软件是 MakerLisp,它是 Scheme、Common Lisp 和 C 的混合体。不需要操作系统 (OS),这个“裸机上的 Lisp”提供从 Lisp 的直接访问程序到 eZ80 寄存器和外围设备。因此,您可以在更强大的处理器上执行 Arduino 类型的事情,同时在自托管的 Lisp 环境中进行编程。

现在,售价 129 美元的主处理器卡本身就很有趣,但 Luther 还创建了一些额外的板卡,它们一起构成了一个完整的计算机系统,如下所示:

首先,我们有一个 I/O 扩展板,它横跨图片的顶部(主处理器卡插入扩展板的左侧)。扩展板为额外的外部电源提供桶形插孔和插头引脚,以及调节的 5-V 和 3.3-V 电源。它还通过接头引脚提供对 eZ80 的所有 32 个通用输入和输出 (GPIO) 的访问,供可选板和面包板电路使用。

接下来,我们有一个 USB HID 键盘控制器主板(在图像的中间右侧),它可以管理来自大多数常见 USB 键盘的输入。此外,我们还有一个 VGA 显示控制器板(在图像的中间左侧),它几乎可以驱动任何 VGA 监视器,以提供 30 行 × 80 列的 9 × 16 显示,代码页 437扩展的 ASCII 文本和图形人物。

此外,Luther 还创建了一个定制的激光切割木外壳来容纳所有 MakerLisp 板、USB 键盘和用于原型设计的面包板(请注意,该套件不提供面包板、USB 键盘、VGA 显示器和任何相关的电缆)。

整个系统包括主处理器卡、I/O 扩展板、USB 和 VGA 控制器板以及定制外壳,Tindie 的MakerLisp eZ80 Lisp 和 CP/M 机器售价 296 美元(加上运费)。

再次强调,该套件不提供 USB 键盘和 VGA 显示器,但可以从多个来源轻松获得。例如,Vortexgear Core 键盘和Elecrow 10.1 英寸 HDMI VGA 显示器。

只是为了让您体验一下可能性,Luther 的一位客户将一款名为 Black Box 的复古 BASIC 游戏移植到 MakerLisp 并参加了竞赛。他因对 Lisp 语言的专业使用而排名第五,第二名,这表明 Lisp 爱好者可以真正利用 MakerLisp 机器展示他们的技能并展示他们的东西。

最后但并非最不重要的一点是,关于 CP/M,Luther 告诉我这个端口目前正在进行中;事实上,它已成功启动并运行程序。CP/M BIOS 将与 Lisp 系统一起存在于 MakerLisp 处理器板的闪存中。“实时更新”闪存工具已经可用于安装 Lisp 系统的更新,当 CP/M 端口可用时,它将成为 MakerLisp 系统闪存更新的一部分。

那么,你说什么?你过去使用过 Lisp 还是现在有兴趣学习它?你是否和我一样,“咬牙切齿”地玩 MakerLisp 机器?

审核编辑 黄昊宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式系统
    +关注

    关注

    40

    文章

    3430

    浏览量

    128221
  • 制造商
    +关注

    关注

    0

    文章

    131

    浏览量

    12826
  • LISP
    +关注

    关注

    0

    文章

    12

    浏览量

    7681
收藏 人收藏

    评论

    相关推荐

    嵌入式会越来越卷吗?

    。这种技术进步嵌入式系统的应用提供了更多可能性,使得其在移动设备、医疗保健等领域的应用更加灵活和可靠。同时,新兴技术领域,如人工智能、机器学习,也
    发表于 03-18 16:41

    嵌入式工程需要掌握哪些技术?

    嵌入式工程需要掌握哪些技术? 嵌入式系统是当今科技领域中的重要组成部分,它们存在于我们生活的方方面面,从智能手机到汽车控制系统,从家电到医疗设备。因此,对于那些想要进入嵌入式行业的
    发表于 03-04 16:38

    嵌入式人工智能的就业方向有哪些?

    的发展方向有很多,门槛高低不一样。下面给大家列举一些相应岗位所需具备的技能: 一:嵌入式Linux,C语言开发工程,Linux软件开发工程 LinuxC语言开发 LinuxC语言开发进阶 Linux
    发表于 02-26 10:17

    嵌入式系统发展前景?

    应用领域。随着汽车电子化和智能化程度的不断提高,嵌入式系统将在汽车控制、安全系统、自动驾驶等方面发挥更为重要的作用。 工智能和机器学习技术的发展嵌入式系统提供了新的发展机遇。
    发表于 02-22 14:09

    嵌入式软件开发应该掌握哪些知识?

    两个部分组成,其中嵌入式软件是指在嵌入式系统中运行的程序,用于控制硬件并提供特定的功能和服务。嵌入式软件应用广泛,包括汽车、医疗设备、智能家居、智能穿戴、工业自动化等众多领域。 二、
    发表于 02-19 11:23

    嵌入式学习步骤

    嵌入式行业是一个涉及广泛领域的行业,嵌入式、物联网、人工智能、智能与科学、电子信息工程、通信工程、自动化工程、测控、计算机科学等专业在嵌入式系统中使得软件和硬件的结合更加高效,适合从事嵌入式
    发表于 02-02 15:24

    嵌入式硬件和软件哪个好?

    嵌入式硬件和软件哪个好? 嵌入式软硬件工程哪个更有前途呢?一起来看看。 嵌入式是分为软硬件工程的,首先我们先来看看
    发表于 12-05 15:17

    为什么嵌入式没有35岁危机?

    岁危机呢? 首先,嵌入式技术的应用领域非常广泛。它不仅仅局限于软件开发,还需要与硬件密切结合。相比之下,其他IT岗位如软件工程、系统管理员等更容易受到年龄因素的限制。嵌入式技术的工作内容常常需要
    发表于 11-17 10:33

    如何成为一名优秀的嵌入式工程

    利用指针直接操作内存,这有助于你更高效地使用内存。 3.熟悉数据结构:C语言提供了许多基本的数据结构,如数组、链表、栈、队列等。作为嵌入式工程,你需要熟悉并掌握这些数据结构的特点和用法,以便在编程时能够
    发表于 11-07 15:36

    什么是嵌入式Linux?

    发展需要不断进化。随着芯片性能的增强和社会变革的需要,嵌入式系统越来越承接更多、更复杂的功能,所以嵌入式开发也以高薪稳定的状态稳坐在就业的顶端。(相较于其他行业,嵌入式工程的工资在同
    发表于 10-11 13:47

    从事嵌入式工作有哪些优势?

    随着物联网和人工智能的发展,嵌入式技术越来越值钱,学嵌入式的人也越来越多,现在开始入行嵌入式。根据一些权威部门统计,我国目前嵌入式软件人才缺口每年
    发表于 10-08 15:05

    嵌入式软件好还是硬件好?

    嵌入式软硬件工程哪个更有前途呢?一起来看看。 嵌入式是分为软硬件工程的,首先我们先来看看嵌入式硬件工程
    发表于 09-18 15:31

    嵌入式学习路线你知道吗?

    中对指针的理解和应用。这一阶段的主要目的是学习编程语言、开发环境、和培养自己的编程思维,进一步学习嵌入式开发打下良好的基础。 2学习ARM体系结构编程 这一阶段才是真正的嵌入式编程,首先我们要选择一款
    发表于 06-14 16:00

    如何构建我自己的嵌入式C编译器?

    只是为了获得如何构建我自己的嵌入式 C 编译器的知识,如预处理、汇编、链接器、生成 Hex 文件、elf 文件、映射文件。 任何有用的链接可用? 我是嵌入式软件工程,并且具有 c 编程 python、bat 脚本方面的知识。
    发表于 06-08 08:10

    嵌入式用什么语言编程?

    嵌入式用什么语言编程? 嵌入式系统应用越来越广泛,专业的嵌入式工程对这样的问题肯定不会太关注,只是针对一些初级入门者,做个简单的了解,认识一下这个广受关注的技术是由哪种语言编写的?
    发表于 05-18 10:08