(南京工業(yè)大學計算機學院 江蘇·南京 211816)
全國大學生電子設計競賽是教育部高等教育司、工業(yè)和信息化部人事教育司共同發(fā)起的大學生學科競賽之一,是面向大學生的群眾性科技活動,目的在于推動高等學校促進信息與電子類學科課程體系和課程內(nèi)容的改革。經(jīng)過20多年的發(fā)展,全國大學生電子設計競賽已成為中國規(guī)模最大、參賽范圍最廣、極具影響力的針對在校本專科大學生的電子設計競賽,每年有超過4萬名大學生報名參與。
從具體試題來看,題目具有實用性強、綜合性強、技術水平發(fā)揮余地大的特點。涉及到電子信息類眾多的專業(yè)課程,如:低頻電路、高頻電路、數(shù)字電路、微機原理、電子測量、單片機、可編程邏輯器件、EDA設計等;同時涉及到很多實踐性教學環(huán)節(jié),如:電子線路實驗課、微機原理實驗課、課程設計、生產(chǎn)實習等;可選用的器件也非常多,如:晶體管、集成電路、大規(guī)模集成電路、單片機、可編程邏輯器件等;設計手段廣泛采用現(xiàn)代電子設計方法與開發(fā)工具,如:VHDL語言、Xilinx Foundation Series EDA工具、單片機編程器等。
可以看出,電子設計競賽的試題既反映了電子技術的先進水平,又引導高校在教學改革中應注重培養(yǎng)學生的工程實踐能力和創(chuàng)新設計能力。
從列屆電子設計競賽的試題來看,可以歸納成7類,即:(1)電源類;(2)信號源類;(3)高頻無線電類;(4)放大器類;(5)儀器儀表類;(6)數(shù)據(jù)采集與處理類;(7)控制類。無論哪類題目,很多都要用到一個或多個基于微處理的控制板。
在電子設計競賽的準備階段,準備一款基于微處理的控制板,熟練掌握其功能和性能和開發(fā)方法,是非常必要的。
在此國產(chǎn)芯片替代大發(fā)展時期,使用一款具有自主知識產(chǎn)權的微處理,完成大學生電子設計競賽,是一件非常有意義事情,也是完成競賽題目的一個亮點。
龍芯中科致力于龍芯系列CPU設計、生產(chǎn)、銷售和服務。主要產(chǎn)品包括面向行業(yè)應用的“龍芯1號”小CPU、面向工控和終端類應用的“龍芯2號”中CPU、以及面向桌面與服務器類應用的“龍芯3號”大CPU。目前,龍芯面向網(wǎng)絡安全、辦公與信息化、工控及物聯(lián)網(wǎng)等領域與合作伙伴展開廣泛的市場合作,并在政府、能源、金融、交通、教育等行業(yè)領域取得了廣泛應用。選擇國內(nèi)自主知識產(chǎn)權、成熟可靠、有廣泛應用案例的龍芯微處理器做控制板,用于電子設計競賽中,從功能、性能和穩(wěn)定性等方面都是非常合適的。
“龍芯1號”系列的龍芯1C是基于GS232處理器核的高性價比單芯片系統(tǒng),可應用于工業(yè)控制及物聯(lián)網(wǎng)等領域。龍芯1C包含浮點處理單元,支持多種類型的內(nèi)存,支持高容量的MLC NAND Flash。龍芯1C為開發(fā)者提供了豐富的外設接口及片上模塊,包括Camera控制器、USB OTG及USB HOST接口、AC97/I2S控制器、LCD控制器、SPI接口、UART接口等,提供足夠的計算能力和多應用的連接能力。用其制作的開發(fā)板如圖所示。
智龍開發(fā)板模塊分布圖
該控制板的微處理器為Loongson1C0300,使用了多種電源供電方式,可以專門5伏電源供電、也可使用USB接口供電。提供的JTAG/UART接口、MAC網(wǎng)絡接口、MicroSD卡接口、UART電平轉(zhuǎn)換RS232接口、并主要I/O接口通過兩排各40針的雙列直插接口引出,便于使用中的二次擴展應用。
智龍開發(fā)板的內(nèi)核和文件系統(tǒng)是存放在板上的Flash芯片上的,也可以從SD卡、U盤或者網(wǎng)絡加載。智龍開發(fā)板Flash為1G,內(nèi)存為256M,無法安裝編譯工具鏈,因此智龍開發(fā)板的程序都是在宿主機上編譯后再通過網(wǎng)絡或其它存儲介質(zhì)將目標文件下載到開發(fā)板執(zhí)行。
交叉編譯環(huán)境,可以安裝有Linux操作系統(tǒng)的PC機上完成,也可以在使用Windows操作系統(tǒng)的計算機上安裝虛擬機,再在虛擬機里,安裝Linux操作系統(tǒng)。無論是在實體機上的Linux操作系統(tǒng)還是在虛擬機中的Linux操作系統(tǒng)中,后續(xù)的開發(fā)方法是一樣的。大家可以根據(jù)自己的習慣選擇一種方式。
Windows操作系統(tǒng)中安裝虛擬機,可以下載vmware player安裝,再下載ubuntu Linux桌面系統(tǒng)在虛擬機 vmware playe中安裝,并安裝VMwaretools,方便使用。安裝完畢后,創(chuàng)建用戶和密碼,Linux操作系統(tǒng)即可使用。
為了進行控制板上的嵌入式Linux程序開發(fā),還需下載和安裝交叉編譯工具gcc-4.3-ls232。
PMON是一個兼有BIOS和bootloader部分功能的開放源碼軟件,多用于嵌入式系統(tǒng)?;邶埿镜南到y(tǒng)采用pmon作為類BIOS兼bootloader,并做了很多完善工作。
當開發(fā)板從貼片廠下線,里面是沒有任何程序的,這時一般通過JTAG接口燒寫第一個程序,就是PMON,借助PMON可以使用網(wǎng)口或者SD卡下載更加復雜的系統(tǒng)程序等。
安裝編譯PMON的依賴工具 makedepend,下載源代碼pmon-ls1x-openloongson.tar.gz,使用交叉編譯工具執(zhí)行編譯命令,生成gzrom.bin。采用編程器,將gzrom.bin文件燒寫進開發(fā)板上的Flash芯片。
該Linux內(nèi)核是要運行在目標開發(fā)板上的內(nèi)核鏡像文件。先下載內(nèi)核源碼包linux-3.0.82-openloongson.tar.gz,并解壓到相應目錄下。由于源碼中已經(jīng)全部配置好,通常不需要進行任何改動。如果需要根據(jù)特殊需求,對內(nèi)核進行重新進行定制化配置,則需要安裝圖形化配置工具Ncurses。運行該軟件進行內(nèi)容定制的配置工作。該工作牽涉面較廣,需要謹慎細致進行。
配置完內(nèi)核后,執(zhí)行編譯命令:make ARCH=mips CROSS_COMPILE=mipsel-linux-。編譯完成后,在當前目錄下生成內(nèi)核鏡像文件 vmlinux(未壓縮)和 vmlinuz(壓縮后),將開發(fā)板進入 PMON(在終端按住空格鍵,開機),先擦除數(shù)據(jù),選擇其中一個內(nèi)核,燒寫入Flash存儲器中即可。
應用在控制板上嵌入式Linux的文件系統(tǒng),可以使用busybox來制作。busybox是一個集成了了一百多個最常用Linux命令和工具的軟件,還集成了一個http服務器和一個telnet服務器,其大小只有1M左右,且大小完全可定制性,提供靈活,宜于擴展的結構??梢缘?http://www.busybox.net/downloads/下載busybox。因為最新版本的busybox要依賴更新版的內(nèi)核頭文件,所以下載的版本不一定要最新,合適即可。
busybox可以重新配置和編譯,安裝到指定路徑下。進入該路徑下的rootfs目錄中,根據(jù)規(guī)則和實際情況,編輯幾個重要的文件 etc/inittab、etc/init.d/rc.sysinit、etc/fstab、etc/profile;復制busyBox文件和動態(tài)編譯要使用的庫文件。最終生成根文件系統(tǒng)rootfs。
下載mtd-utils-1.5.1.tar.bz2制作ubifs文件系統(tǒng)的工具,并安裝。使用mkfs.ubifs命令,將文件夾rootfs制作成UBIFS鏡像。使用ubinize命令可將使用mkfs.ubifs命令制作的UBIFS文件系統(tǒng)鏡像轉(zhuǎn)換成可直接在Flash上燒寫的格式(帶有UBI文件系統(tǒng)鏡像卷標)。將開發(fā)板進入PMON(在終端按住空格鍵,開機),在 PMON中先擦除數(shù)據(jù),再燒寫根文件系統(tǒng)鏡像程序。
在上述控制板嵌入式Linux運行環(huán)境搭建完成的情況下,在開發(fā)用PC機中編寫應用程序,使用交叉編譯器編譯,將可執(zhí)行文件考入控制板Linux中,即可執(zhí)行。