文/陳倚重
目前高職院校單片機課程主要以51系列單片機為教學目標,集成開發(fā)環(huán)境(IDE)則采用ARM公司的Keil,具備了程序輸入、編輯、編譯、仿真、調(diào)試等多種功能,但作為單片機初學人員來說,IDE很多功能用不到,而且現(xiàn)在軟件文件動不動幾百M到幾個G,安裝越來越繁瑣。比如很多單片機系統(tǒng)程序只需一個源文件就可以,完全可以用編輯軟件編輯完后,用命令行的方式生成HEX文件下載到開發(fā)板上。
該文針對高職院校單片機教學要求設(shè)計了單片機系統(tǒng)開發(fā)軟件,采用網(wǎng)絡(luò)方式,利用瀏覽器登錄就可以使用單片機系統(tǒng)開發(fā)所需的程序編輯、編譯等功能,能生成硬件所需的HEX文件。通過該系統(tǒng)可以解決教學的場所問題,不用因為軟件安裝問題必須固定在一個實訓室,也無需對學生機軟件進行維護;還可以解決單片機學習的共享問題,在網(wǎng)絡(luò)上相互分享程序開發(fā)心得。
如圖1所示,系統(tǒng)采用BS架構(gòu),即瀏覽器-服務(wù)器架構(gòu),在這種結(jié)構(gòu)下,通過瀏覽器來進入工作界面,極少部分事務(wù)邏輯在前端(Browser)實現(xiàn),主要事務(wù)邏輯在服務(wù)器端(Server)實現(xiàn),形成三層(3-tier)結(jié)構(gòu)。這樣使得客戶端電腦負荷大大簡化(因此被稱為瘦客戶端),減輕了系統(tǒng)維護、升級的支出成本,降低了用戶的總體成本(TCO)。
圖1:BS架構(gòu)
圖2:工作原理
瀏覽器通過Web表單提交C源程序,在服務(wù)器端調(diào)用編譯軟件編譯源文件,如產(chǎn)生錯誤,讀取錯誤信息發(fā)送到瀏覽器編譯信息窗口,提示用戶程序的錯誤信息;編譯通過則將編譯后生成的HEX文件通過鏈接的方式發(fā)送給用戶供下載。如圖2所示。
圖3:瀏覽器窗口
用戶通過瀏覽器編寫程序。主要包含了三個子模塊,文件管理區(qū)、程序編輯區(qū)、信息反饋區(qū)。瀏覽器窗口如圖3所示。
文件管理區(qū)便于用戶管理自己的程序源文件,可以創(chuàng)建、增刪文件。當項目開發(fā)涉及多個文件時,引入包的概念,將其包含在一個目錄里面。
用戶通過源程序編輯區(qū)界面輸入、編輯、提交代碼。利用CSS3、JavaScript 以及Bootstrip等技術(shù)制作網(wǎng)頁。采用bui框架,使用戶在編輯程序時,代碼能夠高亮顯示并自動縮進,能夠自動生成代碼列表,方便用戶,減少編寫代碼錯誤。實現(xiàn)屏蔽瀏覽器兼容差異的無刷新提交,優(yōu)化用戶體驗。
當程序提交服務(wù)器編譯后,服務(wù)器讀取編譯的信息反饋到信息反饋區(qū),如果有錯誤則顯示錯誤提示,沒有錯誤則顯示編譯的基本信息,并把編譯文件以鏈接的方式顯示在信息反饋區(qū)上供用戶下載。
在服務(wù)器端搭建Apache Tomcat + MySQL的服務(wù)支持,當服務(wù)器接收到瀏覽器發(fā)送來的源程序后,調(diào)用C51.exe對文件進行編譯產(chǎn)生.obj目標文件,再調(diào)用BL51.exe對生成的目標文件進行鏈接定位,生成絕對目標文件,最后調(diào)用OH51.exe對絕對目標文件進行轉(zhuǎn)換,生成.hex可執(zhí)行文件,最后將.hex文件鏈接發(fā)送到瀏覽器端。
傳統(tǒng)的單片機集成開發(fā)環(huán)境是單機模式的,使用前都需要進行安裝。學期前,為了能夠使教學順利的進行,實訓室管理員在學期開始就要將所有的軟件安裝到每一臺機器上,然后不時維護因使用不當而出現(xiàn)的軟件錯誤?;诰W(wǎng)絡(luò)的單片機開發(fā)平臺解決軟件在安裝、維護的問題,減少不必要的工作。
基于網(wǎng)絡(luò)的單片機開發(fā)平臺可以使用戶不用理會空間和時間的限制,只要可以訪問網(wǎng)絡(luò),就可以隨時隨地的進行單片機的開發(fā),用戶也可以及時的方便的進行交流。