


[摘? ? ? ? ? ?要]? 現代生產生活中人們越來越多地使用嵌入式產品及系統,對教學來說,如何使用嵌入式環境來更好地面向課程實驗教學和學習也顯現出重要的意義。著眼于嵌入式相關概念、實驗環境、資料查閱、實驗以及多種形式教學適度平衡等,多角度、多方面就如何開展嵌入式實驗教學進行了探討。
[關? ? 鍵? ?詞]? QT;嵌入式;實驗教學
[中圖分類號]? G712 ? ? ? ? ? ? ? ? ? ?[文獻標志碼]? A? ? ? ? ? ? ? ? ? ? ? [文章編號]? 2096-0603(2020)02-0122-02
Embedded System即嵌入式系統在我們的日常生活中都有涉及,它的出現已經有30多年的歷史。自從集成電路飛速發展以來,人們對智能控制在工業領域中的應用就有了更好的期望。因此具有更高的存儲容量、更快的運算處理速度和更智能化的自我管理操作系統的嵌入式產品便應運而生了。如果說我們平時所用的電腦是復雜的計算機系統,那么嵌入式產品就是面向實際應用需求的簡化版的計算機系統以及外圍硬件資源。在教學中所使用的嵌入式產品也是具有上述相同特征的。和常見的計算機一樣嵌入式控制處理器的類型也有很多種,其中最常見的就是ARM公司授權使用的ARM處理器,而結合教學的實際需求特點一般所用的是ARM處理器中的CORTEX-A8型號處理器。
一、嵌入式實驗教學環境
在實驗教學中使用的如基于ARM CORTEX-A8內核的開發平臺或實驗箱就是目標機。如何使用包括目標機在內的嵌入式環境來更好地面向課程實驗教學和學習可能是不太輕松的一個話題。下面我們以嵌入式系統目標機GUI的基于QT的顯示實驗來加以探討。首先我們需要準備以下實驗環境:(1)PC主機;(2)嵌入式系統目標機;(3)相關配套軟件及連接配件。如圖1所示:
相關配套軟件包括:宿主機中的Vmware(虛擬機工具要裝好)、Linux(圖形化界面要有)、目標機(arm-linux-gcc、Vim編輯器、QT環境等要有)。注:如果宿主機是Windows系統需裝Vmware虛擬機,如果是Linux系統便無需安裝。
二、基于QT的嵌入式實驗教學探討
啟動QtCreator
選中New Project建立一個project,設置項目介紹和位置中的名稱以及創建路徑。在構建套件(Kit)中選擇Desktop Qt5.2.0 GCC 32bit以及相關的Debug和Release選擇項。默認設置類名(C):MainWindow;基類(B):QMainWindow;頭文件(H):mainwin dow.h;源文件(S):mainwindow.cpp;界面文件(F):mainw indow.ui。完成項目管理設置。
選中“編輯”,在項目一欄中選中已建立好的項目,在右鍵菜單中選擇“添加現有文件”,將包含兩個圖形文件的images文件夾添加到project中,Images文件夾就出現在“其他文件”中。選中源文件中的main.cpp,并修改其程序內容為:
#include “mainwindow.h”
#include
#include
int main(int argc,char *argv[])
{
QApplication a(argc,argv);
MainWindow w;
w.show();
QFrame *frame = new QFrame;
QFrame *frame 1= new QFrame;
frame->setObjectName(“myframe”);
frame->resize(800,600);
frame->setStyleSheet(“QFrame#myframe{border-image:url(images/1.png) }”);
frame->show();
frame1->setObjectName(“myframe”);
frame1->resize(800,600);
frame1->setStyleSheet(“QFrame#myframe{border-image:url(images/2.jpg) }”);
frame1->show();
return a.exec();
}
運行(菜單運行或運行快捷鍵Ctrl+R)
出現問題如下:
In function ‘int main(int,char**): main.cpp
‘QFrame was not declared in this scope main.cpp 9
‘frame was not declared in this scope main.cpp 9
expected type-specifier? before? ‘QFrame? main.cpp 9
expected ; before ‘QFrame? main.cpp 9
‘frame1 was not declared in this scope? main.cpp 10
expected type-specifier? before? ‘QFrame? main.cpp 10
expected ; before ‘QFrame? main.cpp 10
此時可提醒學生查閱相關資料,得到解決方案。因為我們說使用的版本是基于QT5.2.0,和原來低版本在聲明定義上有所差別,因此我們在程序開頭增加聲明:
#include
重新運行,結果如圖2所示無圖片輸出。
出現問題如下:
In function ‘int main(int,char**): main.cpp
‘QFrame was not declared in this scope main.cpp 10
‘frame was not declared in this scope main.cpp 10
expected type-specifier? before? ‘QFrame? main.cpp 10
expected ; before ‘QFrame? main.cpp 10
‘frame1 was not declared in this scope? main.cpp 11
expected type-specifier? before? ‘QFrame? main.cpp 11
expected ; before ‘QFrame? main.cpp 11
讓學生閱讀程序找出與圖片輸出有關語句為:frame->setStyleSheet("QFrame#myframe{border-image:url(images/1.png)}") frame1->setStyleSheet("QFrame#myframe{border-image:url(images/2.jpg)}");
仔細分析該圖片路徑為相對路徑及工程項目文件所在路徑,與圖片實際路徑不符合。解決方案:將相對路徑改為絕對路徑,或將圖片文件移動至工程項目文件所在路徑。這里采用第一種方案。
修改后程序為:
#include “mainwindow.h”
#include
#include
#include
int main(int argc,char *argv[])
{
QApplication a(argc,argv);
MainWindow w;
w.show();
QFrame *frame = new QFrame;
QFrame *frame 1= new QFrame;
frame->setObjectName(“myframe”);
frame->resize(800,600);
frame->setStyleSheet(“QFrame#myframe{border-image:url(/images/1.png) }”);
frame->show();
frame1->setObjectName(“myframe”);
frame1->resize(800,600);
frame1->setStyleSheet(“QFrame#myframe{border-image:url(/images/2.jpg) }”);
frame1->show();
return a.exec();
}
重新運行,結果如圖3所示:
在實驗之前先要講清楚相關概念:(1)主機和目標機的特征和相互關系;(2)如何在主機上創建工程項目文件并通過編譯匯編生產可執行程序文件;(3)在程序調試過程中遇到的問題如何通過有效途徑解決;(4)如何控制可執行程序文件和數據從主機傳到目標機;(5)如何在目標機中來運行可執行程序,從而幫助學生更好地完成實驗。在講解過程中可以使用如類比、操作演示、情境問答以及網絡資源自助輔導等方法,幫助學生更好地理解。類比法是將需要解釋說明的對象用平時在生活中人們易于接受和常見的事物來恰當地加以闡述。操作演示是將實驗完整步驟通過PPT、視頻短片和現場演示從感性認識角度來加以解釋。情境問答是教師提出在實驗中比較容易遇到的問題由學生作答并一起展開討論。網絡資源自助輔導則由學生通過網絡資源查閱來自助解疑和輔助學習。
在實驗操作過程中可根據教學對象學習和掌握能力的不同特點來適度平衡學習重點和內容。如注意力不集中、進入狀態較慢的學生應適度給予完整演示、講解和指導。當然也可由能力掌握較全面的學生來幫助有困難的學生,教師只對重點、難點給予必要的指導。當然對能力較一般的學生提出小組互助討論學習也應給予鼓勵,但應注意適度的效果落實。另外,在實際操作過程中,應以互相尊重、互為促進的本意來看待教學雙方提出的建議和要求。同時也應教育好學生不能一味地依賴他人來得出實驗數據,而還應通過自身合理充分地發揮主觀積極性來科學實驗。
三、結語
把握好明確概念、熟悉實驗環境、大量查閱資料、勇于嘗試以及多種形式教學適度平衡的原則是順利開展嵌入式實驗教學的關鍵。當然實現原則的前提是需要具備一定的時間和條件做好相當程度的準備和實施。
參考文獻:
[1]黎燕霞.嵌入式Linux系統設計與開發[M].北京:電子工業出版社,2016.
[2]朱華生,呂莉,熊志文,等.嵌入式系統原理與應用:基于ARM微處理器和Linux操作系統(修訂版)[M].北京:清華大學出版社,2018.
編輯 鄭曉燕
作者簡介:戴軍,講師,就職于江蘇開放大學江蘇城市職業學院信息工程學院,主要從事電子信息、物聯網等專業相關課程的教學工作。