• 沒有找到結果。

FML 的排版功能

第四章 FML 應用程式開發平台之實現步驟

4.2 建立 FML 瀏覽器

4.2.2 FML 的排版功能

利用 RECURSIVE CONTAINER 巢狀語法,可排出任意複雜度的頁面。

排版單位可使用百分比,讓不同解析度之下有一致的呈現效果。

z TEXTS 元件功能

TEXTS 是一個擁有 TEXT FORMATTING 功能的視窗控制元件,支援預設 好的自動換行 auto-wrapping 和基本的 HTML TAGS 如 BR、 H1、 H2、 PRE , 除此之外,使用者也可容易地自訂需要的 TAG。

和 HTML 不同的是,在 FML Browser 中,允許在同一行的文字中做多 種不同的對齊方式。在同一列的水平文字時,設定為 aMIDDLE,文字會 排在行的中間位置,設定為 aMIDDLE 時,文字會排在行的中間位置,設 定為 aEND,文字會排在行的末端位置。aSKY aHOVER aGROUND 控制文字 的垂直對齊方式。

TEXTS 文字對齊的範例如圖 5 所示:

圖 4. FML 之 TEXTS 範例

圖 4 為 FML 之 TEXTS 範例,可處理文字格式的變化與設定,對齊方 向的語法與編排和文字段落與換行。RED、 BLUE、 GREEN 為內建的顏色 設定值,TEXTCOLOR 可 接受 RGB 值。HYPERLINK 是 BUTTON 的一種型態, 可在 ONCLICK handle 中設定觸發後所要處理的事項。Before line feed 計算行高,調整下一行應留的行距,再沿用原設定繼續排版。

4.2.3 嵌入式環境所執行的 dsFORTH 版本相同,未來 FBrowser 程式 的維護、新增與開發不會有版本不同的問題。

缺點︰從比較 dsForth 和 Fsharp 二者之差異、到完成所有 Fsharp 缺乏的指令功能,移植 dsFortht 的工作較費時。而 dsForth 功能複雜以評估 FBrowser 瀏覽器在 EP32 應用為目的之階

段,,若連許多不需要的指令功能也全數移植,增加移植工 作量與 EP32 系統的負擔。

(2) 提供 EP32 平台的硬體指令功能,讓 dsForth 設計者增加 EP32 平 台的功能。

優點︰由 dsForth 設計者自行增加 EP32 之跨平台功能。可省去 EP32 環境之移植的工作。

缺點︰需等待 dsForth 廠商支援。由於 EP32 尚屬研發中的架構,

dsForth 廠商未必會支援。

(3) 在 FSHARP 上新增 FML BROWSER 使用之指令功能。

優點︰移植工作較少,節省移植時間,僅補齊 FBROWSER 所使用之功 能即可。

缺點︰僅能暫時解決第一階段功能的工作,未來仍需不斷地面對 FSHARP、dsFORTH 、FBROWSER 版本不一等的問題。

為節省時間,以進行評估研究目的之便,僅採取在 FSHARP 上新增 FML Broswer 使用之指令功能。

4.3.2 移植工作

移植工作,主要需完成︰

(1) 在 EP32 的 FSharp 中新增視窗處理機制。

(2) FSharp Forth 指令集和 dsForth ANSI Forth 指令集比較與轉換 工作。有許多指令執行內容相同,但不同版本,使用不同的指令 名稱,需要先將指令名稱確定。

(3) LOCAL VARIABLE FRAME 之新增︰因 FSharp 系統並沒有 Local Variable Frame 之架構,因此需新增此架構。

4.4 應用實例

4.4.1 EP32 模擬器

FML Browser 在 EP32 嵌入式系統之移植操作與測試,主要透過圖 5 在 PC 端的 EP32 模擬器:

圖 5. EP32 模擬器

在此環境下,即可在 PC 端進行在 EP32 上的程式設計與測試,模擬 測試之步驟流程︰

輸入 XREAD,讀取可在 EP32 執行的 FBrowser 程式。則可在 PC 端進 入檢示 EP32 的 LCD 顯示畫面及啟動 FBrowser 設計環境。此時,讀進 FML 檔案,執行後即可在 PC 端模擬在 EP32 + FSharp 組成的嵌入式系統中運 行。

4.4.2 在 LCD 裝置上的運行結果

將 EP32 版的瀏覽器程式,和可在 PC 上以 FML 撰寫且正確執行的自 動控制面版程式寫入以 EP32 為核心的嵌入式設備的 LCD 裝置上,其運 行結果如圖 6。

圖 6. FML 在 EP32 的運行結果

5. 第五章 評估與檢討

5.1 FML BROWSER 評估結果

在 EP32 架構的嵌入式設備中,利用 FML 所撰寫的程式,如電子書瀏 覽註解功能、工業應用的自動控制面版的測試範例等,確實可如預期般 地正常運作。FML BROWSER 確實具備了下列特點︰

(1) 提供一套使用者圖形界面的視窗元件,提昇了堆疊架構的嵌入式 視窗應用程式的開發效率。

(2) 提供與 HTML 相同的標記功能之外,還包含了更有彈性的自動排 版功能,並允許在 TEXTS 元件中,同一列文字可設定不同的垂直 對齊方式。

(3) 提供彈性的繪圖及程式邏輯功能。

(4) 提供使用者自訂指令的擴充功能,在最精簡的硬體資源下,不增 加額外的負擔下,以基本的功能,發展更合適的客製化功能的程 式。

5.2 面臨的問題

從移植工作中發現,在 FSharp 和 dsForth 下,dsForth 採 ANSI Forth 標準,二者皆可進行 Forth 高階語言的撰寫,但使用 Forth 太容易因個 人喜好或需求,迅速地編制有彈性的新指令,因此,常有具相同功能的 指令,其名稱卻不盡相同。增加了程式間整合的困難度。

由於 Forth 語言過於強調客製化功能及精簡性,標準性未受重視,

要發展高相容性的商業產品並不容易。在強調重覆使用與可迅速整合的 環境下,堆疊式的嵌入式系統開發環境,欲取得軟硬體廠商的配合與支 援,要有相當大的努力與調整。

因 FML 之彈性極大,使用者能任意擴充功能,如此一來,大幅增加

了要設計一套完整支援如此彈性的 IDE 時的困難性。

因此,針對上述問題,堆疊架構的嵌入式系統環境仍有相當大的改 進空間,儘管其具有相當精簡及客制化的擴充彈性,但應考量其面臨之 瓶頸,全力克服,方可為未來的嵌入式軟體環境提供更佳解決方案。

5.3 改進與加強

為了解決 FML Browser IDE 編輯工具之開發, FML Browser 可新增 pack 和 unpack 的機制。如加上 ToString 屬性記錄每個 WIDGET 的特性,

完成 PACK 機制,需要切換到 VISUAL MODE 時,再以 BinarytoTEXT 完成 UNPACK 機制,來解決原架構所造成 IDE 編輯工具開發之衝突,以順利地 在 TEXT MODE 與 VISUAL MODE 環境切換中,仍擁有正確之程式碼。

6. 第六章 結論與未來工作

大廠專利及授權談判等問題,其在未來網路及簡單的省電型嵌入式裝置 上的應用,已受到台灣中小型傳統機械產業的青睞。若能針對堆疊架構 嵌入式系統所面臨的問題,繼續努力尋找解決之道,開發完善的軟硬體 環境與相關的技術支援。堆疊架構的關鍵技術或可為未來嵌入式的多元 化應用做出貢獻。

6.2 未來工作

本論文僅針對 FML Browser 平台實現之第一階段工作,及其移植到 EP32 之應用進行研究評估,並未探討階段二中 FML Browser 的進階功能︰

z 整合易符字形產生器及輸入法,徹底解決字形問題。

z 表格處理:可排各式表格。

z 中文排版:中文直排、左右上中下對齊、分散對齊。

z 圖檔格式:支援 Jpg , Png 格式 z 向量繪圖能力:實作部份 Flash 功能 z 整合 TCP/IP 通訊協定。

除了本論文提出面對標準化及 FML IDE 編輯工具開發的問題,需克 服解決外,後續亦可考慮以 FML 和微軟下一代的視窗作業平台中的 XAML(eXtensible Application Markup Language)應用程式開發語言之 整合為可行的研究發展方向。

由於 FML 語法與功能和 XAML 相近,未來 FML 若能發展成為 XAML 子 集,其運行在堆疊架構的處理器上,將可省去 XAML 堆疊架構的中間碼轉 換時所犧牲的效率問題。此種模式的整合與改良可做為提高堆疊架構的 嵌入式應用,但因微軟不斷延後推出的 Longhorn,亦未正式公開 XAML 技術,目前亦無相關研究探討此模式的應用。

參考資料

1. Amdahl, G. M., G. A. Blaauw, and F. P. Brooks, Jr., “Architecture of the IBM System 360,” IBM J. Research and Development 8:2, 87-101, 1964.

2. Barton, R. S., “A New Approach to the Functional Design of a Computer,” Proc Western Joint Computer Conf., 393-396, 1961.

3. Bell, G., R. Cady, H. McFarland, B. Delagi, J. O’Laughlin, R.

Noonan, and W. Wulf, “A new architecture for mini-computers: The DEC PDP-11,” Proc. AFIPS SJCC,657-675, 1970.

4. Bell, G., and W. D. Strecker, “Computer structures: What have we learned from the PDP-11?” 25 Years of the International Symposia on Computer Architecture, ACM, 138-151, 1998.

5. Brodie, Leo, ”Starting FORTH: an introduction to the FORTH language and operating system for beginners and professionals”, Prentice-Hall, 1981.

6. Brodie, Leo, ”Thinking FORTH : a language and philosophy for solving problems”, Prentice-Hall, 1984.

7. Hauck, E. A., and Dent, B. A. “Burroughs’ B6500/B7500 stack mechanism,” Proc. AFIPS SJCC, 245-251, 1968.

8. Koopman, P. “Stack Computers-The New Wave”, Ellis Horwood, 1989.

9. Lindholm, T., and Yellin, F. “The Java Virtual Machine Specification”, Second Edition, Addison-Wesley, 1999.

10. McGhan, H., and O’Connor, M. “PicoJava: A direct execution engine for Java bytecode,” Computer 31:10, 22-30, 1998.

11. 丁陳漢蓀, ”嵌入式系統-使用 eFORTH”, O’REILLY, 2003.

12. www.eforth.com.tw 易符智慧科技股份有限公司

相關文件