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
主站蜘蛛池模板: 国产91高清视频| 色哟哟国产精品一区二区| 欧美日韩另类在线| 91精品国产情侣高潮露脸| 国产精品片在线观看手机版 | 中文一级毛片| 国产精品亚欧美一区二区| 久久久久久久久亚洲精品| 欧美伊人色综合久久天天| 国产在线97| 亚洲一级毛片| 久久香蕉国产线看精品| 午夜欧美在线| 日本一区二区不卡视频| 国产又粗又猛又爽视频| 欧美α片免费观看| 国产三级精品三级在线观看| 国产欧美中文字幕| 色九九视频| 91在线播放国产| 天天综合天天综合| 亚洲色精品国产一区二区三区| 国产主播一区二区三区| 国产成人精品日本亚洲| 亚洲精品成人7777在线观看| 一级一级特黄女人精品毛片| 国产国拍精品视频免费看 | 99国产精品一区二区| 国产青榴视频在线观看网站| 国产在线日本| 亚洲v日韩v欧美在线观看| 91久久大香线蕉| 国产一区二区人大臿蕉香蕉| h视频在线播放| 久热精品免费| 久久五月天综合| 久久久久久久久亚洲精品| 亚洲最黄视频| 国产主播在线一区| 成人免费黄色小视频| 伊人久久综在合线亚洲2019| 玩两个丰满老熟女久久网| 无码免费的亚洲视频| 亚洲第一成网站| 久久人人爽人人爽人人片aV东京热| 一区二区在线视频免费观看| 国产原创第一页在线观看| 亚洲欧美精品在线| 九九热精品免费视频| 欧美一级高清片久久99| 亚洲中文字幕23页在线| 精品国产自在在线在线观看| 国产特级毛片| 高潮毛片无遮挡高清视频播放| 亚洲女同一区二区| 国产H片无码不卡在线视频| 亚洲欧美自拍一区| 日本免费一级视频| 国产福利免费在线观看| 超碰色了色| 亚洲嫩模喷白浆| 欧美色综合久久| 91蜜芽尤物福利在线观看| 蜜臀AV在线播放| 无码在线激情片| 色香蕉网站| 成人福利在线视频免费观看| 国产精女同一区二区三区久| 日本91在线| 国产精品亚洲日韩AⅤ在线观看| 毛片大全免费观看| 欧美19综合中文字幕| 无码网站免费观看| 尤物午夜福利视频| 国产综合色在线视频播放线视| 中文字幕1区2区| 美女免费黄网站| 丝袜无码一区二区三区| 美女被操黄色视频网站| 国产精品免费福利久久播放| 69国产精品视频免费| 久久综合九色综合97网|