999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

構建嵌入式Linux軟件設計虛擬實驗室

2020-11-09 07:29:18馮剛譚琦董宇
計算機時代 2020年10期
關鍵詞:嵌入式實驗室環境

馮剛 譚琦 董宇

摘? 要: 為了降低嵌入式軟件學習和開發中硬件資源的投入成本,提出以Proteus作為嵌入式target平臺,Ubutun Linux作為host平臺,構建嵌入式Linux軟件設計虛擬實驗室的步驟。以7段數碼的顯示為例演示了嵌入式Linux虛擬環境下進行嵌入式軟件開發的過程,獲得了較直觀的實驗結果。虛擬實驗室的建設有效地降低了嵌入式系統的開發成本,彌補了傳統實驗室的不足。

關鍵詞: Proteus; 嵌入式Linux軟件設計; 虛擬實驗室; 嵌入式系統

中圖分類號:TP391.9? ? ? ? ? 文獻標識碼:A? ? ?文章編號:1006-8228(2020)10-56-04

Abstract: In order to reduce the cost of hardware resources in embedded software learning and development, the steps of constructing a virtual laboratory for embedded Linux software design with Proteus as the embedded target platform and Ubuntu Linux as the host platform are proposed. A 7-segment digital display is used as an example to demonstrate the process of co-designing software and hardware in an embedded Linux virtual environment, which obtains a more intuitive experiment result. The construction of virtual lab effectively reduces the development cost of embedded systems and makes up for the shortcomings of traditional laboratories.

Key words: Proteus; embedded Linux software design; virtual laboratory; embedded system

0 引言

隨著計算機技術的日益發展,嵌入式系統幾乎滲入到人類社會生活的各個方面。全國各大高等院校的電子、計算機、信息等專業均開設了嵌入式相關課程,并建立了相應的嵌入式實驗室。這些實驗室基本上采用成套的硬件設備來構建,不同的實驗室只能進行某一類課程的實驗,而且由于嵌入式硬件的多樣性以及資金的限制,無法建立一個適應各種需求的嵌入式實驗室。一些學校已購買了一定的嵌入式設備,但因為學生人數眾多、設備的損壞/老化等原因,使得嵌入式實踐過程成為一種驗證性的實驗過程[1-3]。

虛擬實驗室其基本思想是用軟件方法虛擬各種實際的元器件、虛擬必要的電子檢測設備如示波器等,即所有的實驗只需要一臺PC機和相應的軟件就可以設計完成[5-7]。因此,虛擬實驗室的出現較好地解決了目前嵌入式實踐課程中出現的問題,為嵌入式軟硬件教學提供了一個很好的平臺,豐富了實踐教學的手段,彌補了傳統實驗室的不足[4]。

本文針對嵌入式Linux軟件設計虛擬實驗室的建設進行了研究,提出了利用Proteus構建嵌入式Linux軟件設計的虛擬仿真平臺。通過該虛擬實驗室,可以充分利用Proteus提供的各種硬件設備,搭建一個仿真現實的實驗系統,進而在這個系統上完成整個基于Linux的嵌入式軟件開發過程。

1 虛擬實驗室的特點

由于嵌入式Linux軟件設計涉及到嵌入式系統軟硬件的多個方面,從嵌入式的引導程序Bootloader到Linux內核、根文件系統及應用程序的開發都需要有全面的認識,與傳統的嵌入式實驗室相比虛擬實驗室存在下述特點:

⑴ 成本低。虛擬實驗室其根本就是采用虛擬的設備來進行相關的嵌入式實驗,整個實驗過程均在軟件上仿真運行,當實驗設備和實驗環境發生變化時,只需要對虛擬環境中的相關設備和環境進行改變即可,可以從根本上解決實驗室建設經費短缺、實驗設備不斷損壞老化等問題。以嵌入式Linux軟件設計課程為例,由于Bootloader、Linux內核及根文件的移植是一個十分復雜又容易出錯的過程,往往要多次對實驗箱開發板的flash進行底層的燒寫,由于學生在實驗中的不當操作極易導致開發板的損壞,改用虛擬實驗環境就從根本上避免了這種問題,學生只需簡單將移植后的軟件裝入到虛擬的flash中就可以檢查移植的結果。

⑵ 實驗時間靈活。采用虛擬實驗室后,不再需要進行大班的嵌入式實踐教學,可以讓學生充分地利用課外時間,分散、靈活地完成實踐教學。過去的嵌入式實驗由于設備緊缺,常常是多個學生共用一套實驗設備,有些基礎差的同學根本沒有機會理解實驗內容,也無法完整地完成實驗過程,基本上是屬于走過場。通過虛擬嵌入式Linux環境,可以做到每個人獨立完成實驗要求,獨立考核,并促使學生在平時也可以動手進行實踐,充分調動了學生自主學習的積極性。

⑶ 方便靈活。實驗環境不再固定單一,可以根據實驗要求進行各種軟硬件設計,有利于創新創造人才的培養。傳統的嵌入式實驗都是在固定的開發箱上進行, 幾乎不能進行硬件電路上的創新改進,只能在已有的硬件平臺上進行實驗,而Proteus平臺提供的ARM仿真開發環境提供了極大的改進與擴展的空間,我們可以對除CPU以外的硬件電路進行設計修改,并根據修改后的硬件電路進行bootloader、Linux內核的相應修改,最后完成應用程序的設計,充分體現了嵌入式軟硬件協同設計的本質,對提高學生的學習水平,培養新工科提倡的人才提供了很好的實踐環境。

2 虛擬實驗室的構建

2.1 軟件環境

⑴ Proteus

Proteus軟件是英國Lab Center Electronics公司出版的EDA工具軟件,它不僅具有其他EDA工具軟件的仿真功能,還能仿真嵌入式CPU及外圍器件.其最具特色的地方在于:①互動的電路仿真;②仿真處理器及其外圍電路;③直接在基于原理圖的虛擬原型上編程,再配合顯示及輸出,能看到運行后輸入輸出的效果。選用Proteus作為嵌入式Linux交叉開發環境的target端,在Proteus環境設計嵌入式系統的硬件原理圖,并將host端生成的嵌入式軟件加載運行,觀察系統仿真運行結果。

⑵ Ubuntu

選用桌面Linux版本Ubuntu作為host端,在Ubuntu上安裝交叉編譯工具,如arm-linux-gcc/arm-elf-gcc、uboot源碼、ucLinux源碼等,為嵌入式系統開發建立好交叉開發環境。

2.2 實驗內容和實驗過程

⑴ 在Ubuntu Linux系統中安裝嵌入式開發環境:arm-linux-gcc/arm-elf-gcc、uclinux源碼、uboot源碼等。

⑵ 在Proteus上進行硬件電路的設計。

⑶ 在Ubuntu Linux進行嵌入式軟件開發,編寫嵌入式驅動程序與應用程序源碼。

⑷ 在Ubuntu Linux交叉編譯產生驅動程序的內核模塊及應用程序。

⑸ 在Proteus的仿真環境中加載并運行驅動程序模塊及應用軟件,觀察系統仿真運行的結果。

2.3 實例分析

下面以Linux下進行7段數碼管的顯示控制過程為例介紹驅動程序和應用程序開發的過程。

⑴ 安裝交叉編譯環境(過程略)。

⑵ 完成硬件電路設計,設計中包括對Proteus中的ARM for VSM進行輸入輸出接口P0-P31的設計以及7段數碼管的線路連接。最top層電路如圖1所示。

⑶ 編寫驅動程序c及應用程序,其關鍵c語言代碼如下:

//驅動程序中提供給應用程序的接口函數

static struct file_operations seg7_fops = {

owner:THIS_MODULE,

open:seg7_module_open,

ioctl:seg7_module_ioctl,

release:seg7_module_release,

};

//7段數碼管的驅動程序,接收應用程序的輸入,控制7段數碼的顯示

static int seg7_module_ioctl(struct inode *inode, struct

file *file, unsigned int cmd, unsigned long arg)

{

switch (cmd) {

//根據cmd顯示0~F的一個值

case 0:printk (KERN_INFO "Display 0\n");

P0=seg7_list[0];

break;

......

case 15:printk (KERN_INFO "Display F\n");

P0=seg7_list[15];

break;

default: return -EINVAL; }

return 0; }

static int seg7_module_init(void) { //注冊設備

int register_result=register_chrdev(seg7_major,

"seg7", &seg7_fops);

if (seg7_major==0) seg7_major=register_result;

printk(KERN_INFO "seg7: init OK?。躰");

P0=0x00;

return 0; }

static void seg7_module_cleanup(void) { //注銷設備

if (unregister_chrdev(seg7_major, "seg7"))

printk (KERN_ALERT "seg7 module unregister?。躰");

else

printk (KERN_ALERT "seg7 module unregister error?。躰");}

module_init(seg7_module_init); //內核模塊初始化函數

module_exit(seg7_module_cleanup); //內核模塊卸載函數

//頭文件seg7.h

#ifndef _SEG7_H_

#define _SEG7_H_

#define P0 *((volatile unsigned char *)0x80000080)

//對應的硬件接口地址

#define P1 *((volatile unsigned char *)0x80000084)

#define P2 *((volatile unsigned char *)0x80000088)

#define P3 *((volatile unsigned char *)0x80000090)

unsigned char seg7_list[16]={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; //數碼管的共陰極編碼值

#endif /* _SEG7_H_ */

應用程序測試代碼如下:

//test-seg7.c

#include

#include "seg7.h"

int main(void)

{ int fd;

int length,i,j;

fd=open("/dev/seg7", O_RDWR)

//調用驅動程序提供open函數

while(j<10) { //循環顯示10次

for(i=0,i<16,i++) {

ioctl(fd, i); //循環顯示0~F

sleep(1); }

j++ }

close(fd);

printf("Success?。躰");

return 0; }

⑷ 編譯連接生成內核模塊seg7-module及應用程序test-seg7(過程略)。

⑸ bootloader啟動并加載uclinux內核如圖2所示。

⑹ 在Proteus加載運行,運行結果如圖3所示。

3 結論

由此可見,基于Proteus進行嵌入式Linux虛擬仿真實驗室的構建是完全可行的。采用虛擬實驗室的方式,可以很好地解決傳統嵌入式實驗室設備老化折損等問題,降低了嵌入式系統開發的成本,同時也方便學生充分利用課余時間進行嵌入式系統的軟硬件設計,不受實驗室場地以及實驗箱硬件設計的限制,能夠充分調動學生自我學習積極性。在我院實際的教學與實踐應用中,取得了很好的教學效果,學生對嵌入式Linux軟件設計課程的滿意度評分達到了98.8%。不僅如此,使用虛擬仿真的方式,還可以在項目開發中進行快速原形設計,在虛擬開發成功之后進行實際制作,這樣可以大大節省開發成本、提高開發效率,具有極好的實用價值。

參考文獻(References):

[1] 曹穎.虛擬實驗室在儀器分析教學中的應用探討[J].實驗科學與技術,2015.13(2):36-37

[2] 沈珊瑚等.以學生為中心的嵌入式系統原理與設計實踐課程教學探索[J].計算機教育,2019.7:159-162

[3] 趙繼忠等.基于Proteus的工頻參數測量儀的設計[J].自動化與儀器儀表,2019.2:84-87

[4] 江維等.基于PROTEUS和MDK的嵌入式虛擬實驗室構建[J].武漢紡織大學學報,2018.31(5):22-25

[5] Elena V.Morozova etc. The Laboratory Stand Simulation for Programming Microprocessor Devices[C].IEEE Conference of Russian Young Researchers in Electrical and Electronic Engineering,2019:125-128

[6] Sohaib Aslam etc.Development of a Software Based PIC24F Series Microcontroller Educational Trainer[C]. International Conference on Engineering and Emerging Technologies (ICEET),2019.

[7] Sandeep Sasidharan etc. Design and Simulation of Microcontroller based Power factor correction converter[C].Electronic Converter for Nuclear Research Application 2018 International CET Conference on Control, Communication, and Computing (IC4),2018:95-100

猜你喜歡
嵌入式實驗室環境
長期鍛煉創造體內抑癌環境
一種用于自主學習的虛擬仿真環境
孕期遠離容易致畸的環境
電競實驗室
電子競技(2019年22期)2019-03-07 05:17:26
電競實驗室
電子競技(2019年21期)2019-02-24 06:55:52
電競實驗室
電子競技(2019年20期)2019-02-24 06:55:35
電競實驗室
電子競技(2019年19期)2019-01-16 05:36:09
環境
搭建基于Qt的嵌入式開發平臺
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
主站蜘蛛池模板: 亚洲第一福利视频导航| 久久久久青草线综合超碰| 国产h视频在线观看视频| a级毛片网| 亚洲最大在线观看| 九九精品在线观看| aa级毛片毛片免费观看久| 国产福利拍拍拍| 狠狠躁天天躁夜夜躁婷婷| 国产成人凹凸视频在线| 午夜啪啪福利| 伊人蕉久影院| 天天爽免费视频| 成人免费网站在线观看| 欧美性爱精品一区二区三区 | 国产欧美日韩视频怡春院| 日韩一二三区视频精品| 97视频在线观看免费视频| 国产又粗又猛又爽视频| 极品性荡少妇一区二区色欲 | 69国产精品视频免费| 国产97视频在线| 亚洲日本在线免费观看| 久久黄色小视频| 午夜欧美理论2019理论| 日韩成人免费网站| 日本亚洲欧美在线| 97综合久久| 亚洲精品桃花岛av在线| 久久免费视频6| 日韩免费毛片视频| 国产成人高清在线精品| 精品成人一区二区三区电影 | 草逼视频国产| 在线人成精品免费视频| 欧美午夜视频在线| 亚洲三级a| 国产精品浪潮Av| 2021无码专区人妻系列日韩| 国产导航在线| 福利小视频在线播放| 久久综合AV免费观看| 永久免费精品视频| 国产成人福利在线视老湿机| 国产精品丝袜视频| 国产精品999在线| 国产在线视频二区| 国产精品美人久久久久久AV| 亚洲福利视频一区二区| 久久精品欧美一区二区| 成人国产免费| 免费观看无遮挡www的小视频| 香蕉伊思人视频| 欧美午夜性视频| 亚洲午夜综合网| 国产波多野结衣中文在线播放| av天堂最新版在线| 美女一区二区在线观看| 国产综合另类小说色区色噜噜| 亚洲三级成人| 98精品全国免费观看视频| 伊人久久婷婷| 国产女人在线视频| 麻豆精品久久久久久久99蜜桃| 免费观看男人免费桶女人视频| 欧美专区日韩专区| 蜜臀AVWWW国产天堂| 日本欧美一二三区色视频| 亚洲无码高清一区二区| 亚洲人成电影在线播放| 久久99精品久久久久久不卡| 狠狠综合久久| 午夜精品一区二区蜜桃| 四虎精品国产永久在线观看| 亚洲天堂久久新| 亚洲天堂日本| 精品一区二区三区水蜜桃| 青青青国产免费线在| 亚洲天堂首页| 欧美成人免费午夜全| 日本三级欧美三级| 波多野结衣的av一区二区三区|