MakerLisp Embedded Lisp Machine 面向用于物聯(lián)網(wǎng)邊緣的嵌入式系統(tǒng)的制造商和開(kāi)發(fā)人員。
目前,復(fù)古計(jì)算和復(fù)古顯示技術(shù)似乎正在大規(guī)模復(fù)蘇。例如,僅考慮我最近的一些專(zhuān)欄:“適合 Altoids 糖果罐的微型計(jì)算機(jī)復(fù)古套件”、“超級(jí)酷復(fù)古 IBM 克隆計(jì)算機(jī) DIY 套件”和“拆分翻蓋顯示器引發(fā)懷舊浪潮”。
因此,您可以想象我被介紹給路德·約翰遜(Luther Johnson)這個(gè)超越復(fù)古的人的驚喜和喜悅。作為L(zhǎng)isp 編程語(yǔ)言和CP/M 操作系統(tǒng)的忠實(shí)擁護(hù)者,Luther 懷念 1970 年代末和 1980 年代初個(gè)人微型計(jì)算機(jī)的簡(jiǎn)單性和即時(shí)性,因此他設(shè)計(jì)并構(gòu)建了自己想要的系統(tǒng),之后他決定把它提供給其他人玩。
讓我們從 Lisp 開(kāi)始,它最初于 1958 年被指定,使其成為第二古老的高級(jí)編程語(yǔ)言(只有 Fortran 更老,一年)。作為最早的編程語(yǔ)言之一,Lisp 開(kāi)創(chuàng)了計(jì)算機(jī)科學(xué)的許多思想。此外,它很快成為人工智能 (AI) 早期研究最喜歡的語(yǔ)言。令人驚奇的是,List 至今仍在廣泛使用。Lisp 的追隨者傾向于將其描述為“一種多范式語(yǔ)言,對(duì)命令式、函數(shù)式和面向?qū)ο蟮木幊叹哂谐錾闹С帧保渑u(píng)者則聲稱(chēng) Lisp 是“Lots of Insipid Stupid Parentheses”的縮寫(xiě)。
當(dāng)然,Luther 是一個(gè)狂熱的愛(ài)好者,他對(duì) Lisp 的描述如下:
一般來(lái)說(shuō),解釋性環(huán)境(如 Forth、Basic、Python 和許多其他語(yǔ)言)非常適合快速原型設(shè)計(jì)和迭代開(kāi)發(fā),您可以從開(kāi)發(fā)和測(cè)試小塊拼圖開(kāi)始,然后從可信組件構(gòu)建解決方案。在嵌入式系統(tǒng)開(kāi)發(fā)中,這可能是一種特別高效的工作方式,在這種方式中,我們需要在開(kāi)發(fā)軟件時(shí)觀察和了解與硬件的交互。
Lisp 語(yǔ)言家族[以其]簡(jiǎn)潔的表達(dá)能力和[其]高“語(yǔ)義能量密度”而著稱(chēng)。同時(shí),Lisp 是最簡(jiǎn)單的語(yǔ)言之一,因?yàn)樗旧聿](méi)有太多的語(yǔ)言需要學(xué)習(xí)。相反,您將大部分時(shí)間都花在思考自己的代碼上。由于 Lisp 的工作方式,以及從編寫(xiě) Lisp 程序的過(guò)程中演變而來(lái)的風(fēng)格,您的代碼可以更好地組合和組合在一起,并且您編寫(xiě)的東西每次都可以工作,無(wú)處不在。Lisp 程序似乎用更少的代碼完成了更多工作。
Lisp 的 MakerLisp 方言是一種 Lisp,它具有表達(dá)式評(píng)估的 Scheme 模型、低級(jí)宏和具有通用 Lisp 拼寫(xiě)和語(yǔ)義的語(yǔ)言函數(shù)、C 語(yǔ)言算術(shù)和標(biāo)準(zhǔn) C 庫(kù)函數(shù)。MakerLisp 系統(tǒng)是用可移植的 C 語(yǔ)言編寫(xiě)的,它即時(shí) (JIT) 解釋了一種微小的核心語(yǔ)言。所有其他形式和功能都通過(guò) Lisp 函數(shù)和宏提供。
具有 JIT 增量編譯的 Lisp 解釋器,如 MakerLisp,可以交付性能非常好的程序。Lisp 環(huán)境有利于快速完成工作,由此產(chǎn)生的“原型代碼”具有生產(chǎn)價(jià)值。嵌入式系統(tǒng)開(kāi)發(fā)已經(jīng)夠難了。我們可以使用我們可以獲得的所有開(kāi)發(fā)工具,并且我們可以在 Lisp 中利用的計(jì)算模型在嵌入式系統(tǒng)上與在其他問(wèn)題領(lǐng)域中一樣高效。
盡管 MakerLisp 的 JIT 增量編譯比完全編譯的 Lisp 程序運(yùn)行得更慢,但它的運(yùn)行速度仍然比等效的 Python 代碼快三倍。不過(guò)這里的重點(diǎn)是,除了 Luther 之外,Lisp 還有很多粉絲。不幸的是,在面向物聯(lián)網(wǎng) (IoT) 邊緣的嵌入式系統(tǒng)制造商和開(kāi)發(fā)人員的微控制器開(kāi)發(fā)板中,您往往不會(huì)發(fā)現(xiàn) Lisp。所有這些都將我們帶到 Luther 的MakerLisp Embedded Lisp Machine:
MakerLisp Machine 的主處理器是信用卡大小的單板計(jì)算機(jī) (SBC),具有 50-MHz Zilog eZ80 和 1 MB 的 SRAM(可擴(kuò)展至 16 MB)。還有一個(gè)用于運(yùn)行實(shí)時(shí)時(shí)鐘 (RTC) 的 CR1632 電池支架,而板上的 FAT32 微型 SD 卡插槽為您的程序和數(shù)據(jù)提供存儲(chǔ)(請(qǐng)注意,電池和微型 SD 卡都不是包括在電路板上,但兩者都在商店中廣泛使用)。
存儲(chǔ)在板載閃存中的默認(rèn)系統(tǒng)軟件是 MakerLisp,它是 Scheme、Common Lisp 和 C 的混合體。不需要操作系統(tǒng) (OS),這個(gè)“裸機(jī)上的 Lisp”提供從 Lisp 的直接訪問(wèn)程序到 eZ80 寄存器和外圍設(shè)備。因此,您可以在更強(qiáng)大的處理器上執(zhí)行 Arduino 類(lèi)型的事情,同時(shí)在自托管的 Lisp 環(huán)境中進(jìn)行編程。
現(xiàn)在,售價(jià) 129 美元的主處理器卡本身就很有趣,但 Luther 還創(chuàng)建了一些額外的板卡,它們一起構(gòu)成了一個(gè)完整的計(jì)算機(jī)系統(tǒng),如下所示:
首先,我們有一個(gè) I/O 擴(kuò)展板,它橫跨圖片的頂部(主處理器卡插入擴(kuò)展板的左側(cè))。擴(kuò)展板為額外的外部電源提供桶形插孔和插頭引腳,以及調(diào)節(jié)的 5-V 和 3.3-V 電源。它還通過(guò)接頭引腳提供對(duì) eZ80 的所有 32 個(gè)通用輸入和輸出 (GPIO) 的訪問(wèn),供可選板和面包板電路使用。
接下來(lái),我們有一個(gè) USB HID 鍵盤(pán)控制器主板(在圖像的中間右側(cè)),它可以管理來(lái)自大多數(shù)常見(jiàn) USB 鍵盤(pán)的輸入。此外,我們還有一個(gè) VGA 顯示控制器板(在圖像的中間左側(cè)),它幾乎可以驅(qū)動(dòng)任何 VGA 監(jiān)視器,以提供 30 行 × 80 列的 9 × 16 顯示,代碼頁(yè) 437擴(kuò)展的 ASCII 文本和圖形人物。
此外,Luther 還創(chuàng)建了一個(gè)定制的激光切割木外殼來(lái)容納所有 MakerLisp 板、USB 鍵盤(pán)和用于原型設(shè)計(jì)的面包板(請(qǐng)注意,該套件不提供面包板、USB 鍵盤(pán)、VGA 顯示器和任何相關(guān)的電纜)。
整個(gè)系統(tǒng)包括主處理器卡、I/O 擴(kuò)展板、USB 和 VGA 控制器板以及定制外殼,Tindie 的MakerLisp eZ80 Lisp 和 CP/M 機(jī)器售價(jià) 296 美元(加上運(yùn)費(fèi))。
再次強(qiáng)調(diào),該套件不提供 USB 鍵盤(pán)和 VGA 顯示器,但可以從多個(gè)來(lái)源輕松獲得。例如,Vortexgear Core 鍵盤(pán)和Elecrow 10.1 英寸 HDMI VGA 顯示器。
只是為了讓您體驗(yàn)一下可能性,Luther 的一位客戶(hù)將一款名為 Black Box 的復(fù)古 BASIC 游戲移植到 MakerLisp 并參加了競(jìng)賽。他因?qū)?Lisp 語(yǔ)言的專(zhuān)業(yè)使用而排名第五,第二名,這表明 Lisp 愛(ài)好者可以真正利用 MakerLisp 機(jī)器展示他們的技能并展示他們的東西。
最后但并非最不重要的一點(diǎn)是,關(guān)于 CP/M,Luther 告訴我這個(gè)端口目前正在進(jìn)行中;事實(shí)上,它已成功啟動(dòng)并運(yùn)行程序。CP/M BIOS 將與 Lisp 系統(tǒng)一起存在于 MakerLisp 處理器板的閃存中?!皩?shí)時(shí)更新”閃存工具已經(jīng)可用于安裝 Lisp 系統(tǒng)的更新,當(dāng) CP/M 端口可用時(shí),它將成為 MakerLisp 系統(tǒng)閃存更新的一部分。
那么,你說(shuō)什么?你過(guò)去使用過(guò) Lisp 還是現(xiàn)在有興趣學(xué)習(xí)它?你是否和我一樣,“咬牙切齒”地玩 MakerLisp 機(jī)器?
審核編輯 黃昊宇
-
嵌入式系統(tǒng)
+關(guān)注
關(guān)注
41文章
3682瀏覽量
131362 -
制造商
+關(guān)注
關(guān)注
0文章
147瀏覽量
13419 -
LISP
+關(guān)注
關(guān)注
0文章
12瀏覽量
7918
發(fā)布評(píng)論請(qǐng)先 登錄
嵌入式開(kāi)發(fā)入門(mén)指南:從零開(kāi)始學(xué)習(xí)嵌入式
飛凌嵌入式2025嵌入式及邊緣AI技術(shù)論壇圓滿(mǎn)結(jié)束

如何成為一名嵌入式軟件工程師?
嵌入式去哪個(gè)城市好?
電子發(fā)燒友榮獲飛凌嵌入式“2024年度最具價(jià)值媒體”獎(jiǎng)
嵌入式軟件工程師就業(yè)好不好?
如何成為嵌入式開(kāi)發(fā)工程師?
為什么嵌入式驅(qū)動(dòng)開(kāi)發(fā)工程師可以拿高薪?
嵌入式工程師常用的開(kāi)發(fā)工具有哪些?
從客戶(hù)需求視角去認(rèn)識(shí)ZLG | 為用戶(hù)提供工業(yè)自動(dòng)化及嵌入式領(lǐng)域生態(tài)產(chǎn)品

評(píng)論