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