文/陳倚重
目前高職院校單片機課程主要以51系列單片機為教學目標,集成開發環境(IDE)則采用ARM公司的Keil,具備了程序輸入、編輯、編譯、仿真、調試等多種功能,但作為單片機初學人員來說,IDE很多功能用不到,而且現在軟件文件動不動幾百M到幾個G,安裝越來越繁瑣。比如很多單片機系統程序只需一個源文件就可以,完全可以用編輯軟件編輯完后,用命令行的方式生成HEX文件下載到開發板上。
該文針對高職院校單片機教學要求設計了單片機系統開發軟件,采用網絡方式,利用瀏覽器登錄就可以使用單片機系統開發所需的程序編輯、編譯等功能,能生成硬件所需的HEX文件。通過該系統可以解決教學的場所問題,不用因為軟件安裝問題必須固定在一個實訓室,也無需對學生機軟件進行維護;還可以解決單片機學習的共享問題,在網絡上相互分享程序開發心得。
如圖1所示,系統采用BS架構,即瀏覽器-服務器架構,在這種結構下,通過瀏覽器來進入工作界面,極少部分事務邏輯在前端(Browser)實現,主要事務邏輯在服務器端(Server)實現,形成三層(3-tier)結構。這樣使得客戶端電腦負荷大大簡化(因此被稱為瘦客戶端),減輕了系統維護、升級的支出成本,降低了用戶的總體成本(TCO)。

圖1:BS架構

圖2:工作原理
瀏覽器通過Web表單提交C源程序,在服務器端調用編譯軟件編譯源文件,如產生錯誤,讀取錯誤信息發送到瀏覽器編譯信息窗口,提示用戶程序的錯誤信息;編譯通過則將編譯后生成的HEX文件通過鏈接的方式發送給用戶供下載。如圖2所示。

圖3:瀏覽器窗口
用戶通過瀏覽器編寫程序。主要包含了三個子模塊,文件管理區、程序編輯區、信息反饋區。瀏覽器窗口如圖3所示。
文件管理區便于用戶管理自己的程序源文件,可以創建、增刪文件。當項目開發涉及多個文件時,引入包的概念,將其包含在一個目錄里面。
用戶通過源程序編輯區界面輸入、編輯、提交代碼。利用CSS3、JavaScript 以及Bootstrip等技術制作網頁。采用bui框架,使用戶在編輯程序時,代碼能夠高亮顯示并自動縮進,能夠自動生成代碼列表,方便用戶,減少編寫代碼錯誤。實現屏蔽瀏覽器兼容差異的無刷新提交,優化用戶體驗。
當程序提交服務器編譯后,服務器讀取編譯的信息反饋到信息反饋區,如果有錯誤則顯示錯誤提示,沒有錯誤則顯示編譯的基本信息,并把編譯文件以鏈接的方式顯示在信息反饋區上供用戶下載。
在服務器端搭建Apache Tomcat + MySQL的服務支持,當服務器接收到瀏覽器發送來的源程序后,調用C51.exe對文件進行編譯產生.obj目標文件,再調用BL51.exe對生成的目標文件進行鏈接定位,生成絕對目標文件,最后調用OH51.exe對絕對目標文件進行轉換,生成.hex可執行文件,最后將.hex文件鏈接發送到瀏覽器端。

傳統的單片機集成開發環境是單機模式的,使用前都需要進行安裝。學期前,為了能夠使教學順利的進行,實訓室管理員在學期開始就要將所有的軟件安裝到每一臺機器上,然后不時維護因使用不當而出現的軟件錯誤?;诰W絡的單片機開發平臺解決軟件在安裝、維護的問題,減少不必要的工作。
基于網絡的單片機開發平臺可以使用戶不用理會空間和時間的限制,只要可以訪問網絡,就可以隨時隨地的進行單片機的開發,用戶也可以及時的方便的進行交流。