前言:一篇好文章的誕生,需要你不斷地搜集資料、整理思路,本站小編為你收集了豐富的c語言開發(fā)主題范文,僅供參考,歡迎閱讀并收藏。
關(guān)鍵詞:DSP;嵌入式系統(tǒng);C語言開發(fā)
中圖分類號:TP311文獻(xiàn)標(biāo)識碼:A文章編號:1009-2374 (2010)12-0037-02
隨著信息處理技術(shù)的飛速發(fā)展,DSP在電子信息、通信、軟件無線電、自動(dòng)控制、儀器儀表、信息家電等高科技領(lǐng)域獲得了越來越廣泛的應(yīng)用。
以往開發(fā)DSP嵌入式產(chǎn)品時(shí)首先會(huì)想到用控制器的匯編語言編寫軟件,主要原因有:(1)控制器問世時(shí),只配有相應(yīng)的匯編語言開發(fā)工具,沒有相應(yīng)的高級語言開發(fā)工具可供使用;(2)匯編語言生成的程序?qū)?yīng)的二進(jìn)制代碼少,執(zhí)行速度較快;(3)存儲(chǔ)器尋址空間和價(jià)格的限制。隨著技術(shù)的發(fā)展,上述問題已基本解決。而且用C語言開發(fā)DSP嵌入式系統(tǒng),具有開發(fā)周期段、可移植性好、調(diào)試和維護(hù)方便等優(yōu)點(diǎn)。目前在許多應(yīng)用領(lǐng)域,大家已經(jīng)逐漸開始用C語言開發(fā)嵌入式產(chǎn)品。
現(xiàn)在,世界上的DSP芯片有300多種,生產(chǎn)DSP的公司有80多家,主要廠家有TI公司、AD公司、Lucent公司和Motorola公司。TI公司作為DSP生產(chǎn)廠商的代表,品種最多,大約占60%的市場份額。TI公司還推出了與其生產(chǎn)的DSP配套的軟件集成開發(fā)環(huán)境Code Composer,用戶可在該環(huán)境下用匯編語言和C語言進(jìn)行軟件開發(fā)。TMS320VC33作為TI公司第二代芯片的高速低功耗改進(jìn)型浮點(diǎn)型TMS320VC33,在工業(yè)控制領(lǐng)域得到了廣泛應(yīng)用。目前,很少見到DSP系統(tǒng)下的C語言開發(fā)資料,本文以TMS320VC33為例,在TI公司提供的軟件集成開發(fā)環(huán)境Code Composer下(版本4.10.36),向大家介紹如何用C語言開發(fā)DSP嵌入式系統(tǒng)。
一、TMS320VC33芯片的C語言開發(fā)過程
整個(gè)過程主要分為以下4個(gè)步驟:編輯C語言源程序;編譯和鏈接;在線仿真;固化程序。
在Code Composer下,新建一個(gè)工程CSRJ.MAK;新建一個(gè)C源代碼文件CSRJ.C(其內(nèi)容為C語言源程序)和一個(gè)頭文件VC33.H(程序設(shè)計(jì)中用到的TMS320VC33寄存器的定義),將這兩個(gè)文件添加進(jìn)CSRJ.MAK工程。
(二)編譯和鏈接
1.TI公司的COFF文件格式。Code Composer的匯編器和編譯器建立的目標(biāo)文件格式為公共目標(biāo)文件格式COFF(Common Object File Format)。這種格式易于進(jìn)行模塊化編程,增強(qiáng)程序的可讀性和可移植性,為代碼段和存儲(chǔ)器的管理提供了更有力和靈活的方法,也為高級語言和匯編語言程序的編寫提供了極大的便利。
在COFF目標(biāo)文件格式中,最關(guān)鍵的概念便是段(SECTION)。段是COFF目標(biāo)文件格式中的最小單位,在存儲(chǔ)器中占據(jù)連續(xù)空間的代碼或數(shù)據(jù)塊。一個(gè)目標(biāo)文件中的每一個(gè)段都是分開的和各不相同的。所有的段分為兩大類:已初始化段和未初始化段。已初始化段包含程序代碼或數(shù)據(jù),未初始化段為未初始化的數(shù)據(jù)保留存儲(chǔ)空間。C編譯器對C程序編譯后產(chǎn)生已初始化段(如:.text段、.cinit段)和未初始化段 (如:.bss段)。
2.鏈接器對段的處理。鏈接器對段的處理任務(wù)有兩個(gè):一是將COFF目標(biāo)文件中的塊用來建立程序塊和數(shù)據(jù)塊,并將這些塊組合成可以被DSP芯片執(zhí)行的COFF輸出模塊;二是為各輸出塊指定存儲(chǔ)地址。
鏈接器有兩條命令支持上述任務(wù):MEMORY和SECTIONS。MEMORY命令定義目標(biāo)系統(tǒng)的存儲(chǔ)器各部分命名并指定起始地址和長度;SECTIONS命令用于指定如何組織輸入段以及在存儲(chǔ)器何處存放輸出段。若不用這兩個(gè)命令,則鏈接器采用缺省分配算法。推薦使用這兩個(gè)命令,一般在鏈接器命令文件 (擴(kuò)展名為.CMD)中確定。
下面分析一個(gè)TMS320VC33芯片的典型CMD文件(文件名為CSRJ.CMD)。
csrj.obj/* 源程序編譯后對應(yīng)的目標(biāo)文件 */
-l Rts30.lib/* 鏈接Rts30.lib庫*/
-stack 0x800/* 設(shè)定系統(tǒng)堆棧2K大小 */
MEMORY /* MEMORY命令規(guī)定系統(tǒng)的存儲(chǔ)器配置*/
{
STACKRAM: origin = 0x00807000, length = 0x00001000 /* 內(nèi)部RAM*/
RAM: origin = 0x00800000, length = 0x00007000 /* 內(nèi)部RAM*/
VECTORS: origin = 0x00809fc1, length = 0x63/* 中斷向量表區(qū)間*/
}
SECTIONS/* SECTIONS命令規(guī)定程序中段的具體分配分配方法*/
{
.text: { } > RAM/* 系統(tǒng)程序存放位置 */
.cinit: { } > RAM/* C初始化表存放位置 */
.bss: { } > RAM /* 未初始化數(shù)據(jù)存放位置 */
.stack: { } > STACKRAM /* 堆棧存放位置 */
vectors: { } > VECTORS /* 中斷向量表存放位置*/
}
程序若要使用中斷,可按如下方法在csrj.c中進(jìn)行定義。
asm(" .sect \"vectors\" "); /* 中斷向量表定義*/
asm(" br _c_int01 ");
asm(" br _c_int02 ");
asm(" br _c_int03 ");
asm(" br _c_int04 ");
asm(" br _c_int05 ");
asm(" br _c_int06 ");
asm(" br _c_int07 ");
asm(" br _c_int08 ");
asm(" br _c_int09 ");
asm(" br _c_int10 ");
interrupt void c_intX() /* 中斷處理函數(shù),其中X為01~10之一*/
{
中斷處理程序語句
}
3.編譯選項(xiàng)等設(shè)置。(1)添加前述命令文件CSRJ.CMD和庫文件RTS30.LIB到CSRJ工程中;(2)選擇“Project”下的“Option”選項(xiàng),在“Compiler”菜單下設(shè)置“Target Processor”為“C33”;在“Assembler”菜單下設(shè)置“Target Processor”為“C3X”(其它選項(xiàng)根據(jù)需要設(shè)置);(3)單擊界面“Rebuild All”按鈕,即可編譯鏈接,生成CSRJ.OUT文件。
(三)在線仿真
將仿真器與目標(biāo)板連接,打開“Option”菜單下的“Program Load…”選項(xiàng)菜單,選擇所有選項(xiàng)后單擊界面“Rebuild All”按鈕,可編譯鏈接生成CSRJ.OUT文件并將該文件載入;點(diǎn)擊界面按鈕“Run”,即可仿真運(yùn)行。
(四)固化程序
TMS320VC33芯片一般外掛FLASH或EPROM來存儲(chǔ)固化程序,因此程序固化前要根據(jù)外掛的FLASH或EPROM的具體要求,將CSRJ.OUT文件轉(zhuǎn)換成相應(yīng)格式后寫入FLASH或EPROM。
二、DSP系統(tǒng)下的C語言編程應(yīng)注意的問題
(一)內(nèi)存依賴關(guān)系
為了最大化代碼性能,編譯器盡可能將指令并行處理。但是要做到這一點(diǎn),就要確定指令間的關(guān)系。如果一條指令需在另一條指令執(zhí)行后才能執(zhí)行,那么這兩條指令就存在依賴關(guān)系。當(dāng)編譯器不能識別指令間是否獨(dú)立時(shí),就要告訴編譯器他們之間的關(guān)系,可以通過關(guān)鍵字“restrict”聲明變量或優(yōu)化命令選項(xiàng)來通知編譯器。
Code Composer提供了四個(gè)優(yōu)化命令選項(xiàng):Level 0寄存器級別、Level 1局部級別、Level 2函數(shù)級別、Level 3文件級別。從表面看,直接使用Level 3最簡捷,可以一步到位。然而在實(shí)際中,選擇時(shí)應(yīng)根據(jù)系統(tǒng)實(shí)際情況而定。一般較大的系統(tǒng)軟件不宜采用Level 3級優(yōu)化,因?yàn)檫@樣一般容易造成系統(tǒng)死循環(huán)。在實(shí)際工作中,一般根據(jù)系統(tǒng)實(shí)時(shí)性要求,對于關(guān)鍵處的函數(shù)選用Level 2級,對于次要的可以選用Level 1級、Level 0級或不選,這樣不會(huì)造成系統(tǒng)程序不執(zhí)行或程序混亂的現(xiàn)象。
(二)變量的聲明
函數(shù)調(diào)用時(shí),盡可能使用全局變量,這樣可以減少對變量的堆棧處理,同時(shí)也節(jié)省了寄存器的使用。
另外,在 Code Composer環(huán)境下全局變量的聲明和初始化要占用約雙倍的存儲(chǔ)區(qū)域。因此,為了節(jié)省資源,對于數(shù)據(jù)量較大的查表常數(shù)數(shù)據(jù),要采用特殊方法定義,使其只占用自身大小的存儲(chǔ)資源。對表1所示數(shù)據(jù)的全局定義進(jìn)行舉例。
表1
1.22 3.55 4.67 9.53 8.11
6.97 9.45 7.54 8.16 1.08
若用常規(guī)方法如下定義:
biao_xyx[2][5]={1.22,3.55,4.67,9.53,8.11,6.97,9.45,7.54,8.16,1.08};
編譯后查看.map文件,發(fā)現(xiàn)該數(shù)據(jù)在.cinit段占用12個(gè)字,在.bss段占用了10個(gè)字。
若用如下特殊方法定義
asm(" .global _biao_xyx ");
asm(" .sect \".data_chabiao\" ");
asm("_biao_xyx : .float 1.22, 3.55, 4.67, 9.53, 8.11 ");
asm(" .float 6.97, 9.45, 7.54, 8.16, 1.08 ");
extern float biao_xyx[2][3];
編譯后查看map文件,發(fā)現(xiàn)該數(shù)據(jù)在只在.data_chabiao段占用了10個(gè)字。
(三)多調(diào)用TI提供的固有函數(shù)和功能函數(shù)
TI基于C語言開發(fā)提供了很多實(shí)際有效的固有函數(shù)。如果采用一般C語言自己編的函數(shù),可能會(huì)需要更多語句,耗時(shí)可能增加。
(四)合理編寫循環(huán)體
在數(shù)據(jù)處理過程中,循環(huán)體用得較多,處理量較大,壞的編程風(fēng)格會(huì)浪費(fèi)不必要的時(shí)間。一般應(yīng)注意:在循環(huán)體內(nèi)不要包含調(diào)用;循環(huán)體不要有過多指令;對于多重循環(huán),如果內(nèi)層循環(huán)體較短,可以考慮打破該循環(huán)體,與外部循環(huán)結(jié)合;將與循環(huán)變量無關(guān)的判斷語句移到循環(huán)體外。
(五)注意浮點(diǎn)格式轉(zhuǎn)換
為使硬件獲得更高的效率,TMS320VC33芯片采用了不同與IEEE標(biāo)準(zhǔn)的浮點(diǎn)格式。在開發(fā)DSP系統(tǒng)通信軟件模塊時(shí),若采用浮點(diǎn)格式進(jìn)行數(shù)據(jù)傳輸,一定要注意外部系統(tǒng)使用的哪種格式,必要時(shí)要進(jìn)行相應(yīng)的格式轉(zhuǎn)換。
三、結(jié)語
本文以TMS320VC33芯片的開發(fā)為例,介紹了用C語言開發(fā)DSP嵌入式系統(tǒng)的過程和注意事項(xiàng),希望能對讀者有所幫助。
參考文獻(xiàn)
[1]杜普選,馬慶龍.實(shí)時(shí)DSP技術(shù)及浮點(diǎn)處理器的應(yīng)用[M].北京:清華大學(xué)出版社,2007.
[2]汪安名,程笠,徐寶根.DSP嵌入式系統(tǒng)開發(fā)典型案例[M].北京:人民郵電出版社,2007.
[3]TMS320C3x/C4x Assembly Language Tools User’s Guide[S].Texas Instruments,1997.
摘要:近些年來,隨著時(shí)代經(jīng)濟(jì)的飛速發(fā)展以及科技的進(jìn)步,當(dāng)下主流的編程語言中,C++語言作為一種特殊的編程語言,主要來源于C語言的演化,同時(shí)C++語言跨平臺軟件開發(fā)的如何設(shè)計(jì)始終是當(dāng)前軟件開發(fā)行業(yè)領(lǐng)域研究的熱點(diǎn)之一。本文在對基于C++語言的跨平臺軟件開發(fā)設(shè)計(jì)研究時(shí),首先分析了C++語言,其次分析了跨平臺軟件開發(fā)環(huán)境,最后探討總結(jié)了C++語言的跨平臺軟件開發(fā)設(shè)計(jì)過程。
關(guān)鍵詞 :C++語言;跨平臺;軟件開發(fā);設(shè)計(jì)研究
現(xiàn)如今計(jì)算機(jī)語言中C++語言使用頻率和次數(shù)最多,同時(shí)編程速度較高,進(jìn)而廣泛的應(yīng)用于跨平臺軟件的開發(fā)設(shè)計(jì)中??缙脚_作為軟件開發(fā)中的重要概念之一,不僅僅依賴于實(shí)際的操作系統(tǒng),結(jié)合跨平臺開發(fā)的實(shí)際需求,逐漸推動(dòng)了現(xiàn)代化軟件工程的蓬勃發(fā)展。因此本文對基于C++語言的跨平臺軟件開發(fā)設(shè)計(jì)進(jìn)行研究有一定的經(jīng)濟(jì)價(jià)值和現(xiàn)實(shí)意義。
1、C++語言的相關(guān)概述
C++語言主要是由C語言演化而來的,C語言開發(fā)演化過程中,逐漸注重系統(tǒng)軟件開發(fā)的特性,并伴隨著C++語言的興起,其新特性逐漸增加。當(dāng)前C++語言和其它相對高級的語言相比較而言,有著特殊的運(yùn)行性能,在實(shí)際的運(yùn)行過程中,并不需要借助于虛擬機(jī)將其作為中介,進(jìn)而將C++語言的運(yùn)行效率顯著提高。
同時(shí)C++語言在實(shí)際的開發(fā)過程中,往往有著相對較低的開發(fā)成本,C++語言應(yīng)用的過程中,逐漸被引入各種各樣的特性,將其在泛型編程拓展過程中,對于高層次的軟件工程問題有著一定的積極作用。
總之,C++語言有著相對根本性的優(yōu)勢,不僅僅可以用于高級系統(tǒng)程序的設(shè)計(jì)和3D游戲的開發(fā)應(yīng)用,同時(shí)也可用于數(shù)值科學(xué)計(jì)算以及通用程序設(shè)計(jì)等。
2、跨平臺軟件開發(fā)環(huán)境
2.1 跨平臺的相關(guān)概念
跨平臺作為現(xiàn)代化軟件開發(fā)中相對重要的一種概念,不僅僅對操作系統(tǒng)沒有一定的依賴性,同時(shí)對于硬件環(huán)境也沒有一定的依賴性,而在實(shí)際的開發(fā)應(yīng)用程序過程中,更要將其在另一個(gè)操作系統(tǒng)下保持有著正常性的運(yùn)行,基于跨平臺的實(shí)際需求,就要結(jié)合現(xiàn)代軟件工程的發(fā)展,對各種不同的平臺加以支持,進(jìn)而將其帶給市場的潛力充分發(fā)揮。
2.2 跨平臺軟件開發(fā)需要的環(huán)境
一般而言,開發(fā)環(huán)境構(gòu)成的過程中,往往需要有著一定的軟件編輯器、程序調(diào)試器以及程序編譯器三種,但是就其實(shí)質(zhì)性而言,Sandbox這種軟件不僅僅可以實(shí)現(xiàn)代碼的編譯,同時(shí)也可實(shí)現(xiàn)代碼的調(diào)試,其內(nèi)部同樣各種各樣的平臺中往往需要有著各種各樣的代碼庫和依賴庫。開發(fā)程序中,同樣也存在多種類型的源代碼,在C++語言的軟件開發(fā)和編譯中,就要做好最終結(jié)果質(zhì)量的控制,并有最好的代碼產(chǎn)生,在對錯(cuò)誤捕捉和調(diào)試過程中往往需要一定的支持。
跨平臺軟件開發(fā)主要是將抽象實(shí)現(xiàn)的一種重要因素,往往需要將抽象以及相關(guān)的一些設(shè)計(jì)逐漸的借助于新的開發(fā)手段進(jìn)行開發(fā)研究,實(shí)現(xiàn)在不同平臺上都能實(shí)現(xiàn)特殊的編譯。
3、C++語言的跨平臺軟件開發(fā)設(shè)計(jì)
C++語言跨平臺軟件開發(fā)設(shè)計(jì)過程中,更要做好各個(gè)環(huán)節(jié)的綜合設(shè)計(jì),就其實(shí)質(zhì)性而言,C++語言的跨平臺軟件開發(fā)設(shè)計(jì)可以從以下幾個(gè)環(huán)節(jié)做起:
3.1 將語言的擴(kuò)展特性避免
一般而言,任何語言在編程的過程中,往往都是對相對較老的程序以及文件進(jìn)行選擇。這些相對較老的程序包含一些原有的程序和基本公式,相對來說這些程序和公式不僅僅有著規(guī)范性,同時(shí)也有著標(biāo)準(zhǔn)型,而當(dāng)前現(xiàn)代化的新程序庫相對來說是雜亂無章的,在跨平臺上產(chǎn)生過程中,常常面臨各種各樣的故障,雖然會(huì)獲得一定的支持,同時(shí)也會(huì)有不精確定義的事故存在。
C++語言的跨平臺軟件開發(fā)設(shè)計(jì)過程中,就要避免語言存在一定的擴(kuò)展特性,這種跨平臺開發(fā)過程中往往有著相對較高的異常靈敏度,無限度的對新特性利用中,就要借助于C++語言標(biāo)準(zhǔn)函數(shù)的基本模型,并保證開發(fā)軟件和產(chǎn)品有著相對較強(qiáng)的穩(wěn)定性。
3.2 將動(dòng)態(tài)處理實(shí)現(xiàn)
C++語言跨平臺軟件開發(fā)中,就要對多種環(huán)境運(yùn)行的可移植代碼庫加以編寫,在實(shí)際的項(xiàng)目開發(fā)過程中,就要對可能存在的問題加以避免,并處理好一個(gè)平臺在另一個(gè)平臺上沒有特性這一問題,進(jìn)而實(shí)現(xiàn)動(dòng)態(tài)性的處理。
3.3 借助于腳本文件實(shí)現(xiàn)管理
就C++語言的跨平臺軟件開發(fā)設(shè)計(jì)而言,就要做好腳本文件的基本管理工作,保證編寫的程序代碼不僅僅有著簡單易懂的特點(diǎn),同時(shí)也要有著一定的簡潔性,對合理的軟件結(jié)構(gòu)進(jìn)行構(gòu)建,將和平臺相關(guān)的一些文件以及數(shù)據(jù)庫充分的分隔,在實(shí)際的開發(fā)過程中借助于腳本文件進(jìn)行某種程度上的編譯,將其在各個(gè)部位合理的分配。對應(yīng)用程序使用的過程中,就要將配置文件中的相關(guān)配置選項(xiàng)調(diào)出來,進(jìn)而將里面的程序讀取,并在跨平臺軟件開發(fā)過程中,盡可能的保證平臺相關(guān)聯(lián)的文件進(jìn)行全部的分離,借助于特殊的手段將該功能充分實(shí)現(xiàn)。
3.4 對安全的數(shù)據(jù)串行化使用
現(xiàn)如今,C++語言的跨平臺軟件開發(fā)設(shè)計(jì)過程中,對于如何保證跨平臺數(shù)據(jù)存儲(chǔ)的安全性和可靠性這一問題,始終是當(dāng)前軟件開發(fā)設(shè)計(jì)的核心問題之一,而C++語言的跨平臺軟件開發(fā)設(shè)計(jì)過程中,可以借助于軟件的fread指令,做好對每個(gè)編譯器和單一目標(biāo)平臺的綜合性處理,并在實(shí)際的跨平臺操作環(huán)境中,借助于實(shí)際方法對數(shù)據(jù)進(jìn)行不同程度上的存儲(chǔ)和加載,進(jìn)而對平臺的獨(dú)立性加以保障,借助于跨平臺將數(shù)據(jù)在目標(biāo)文件進(jìn)行存儲(chǔ)過程中,一般而言,不同的平臺間往往有著一定的差異,在實(shí)際的處理過程中,同樣也將會(huì)有著多樣性的結(jié)果特征。
3.5 C++語言跨平臺開發(fā)中的編譯和測試
C++語言跨平臺開發(fā)變異和測試過程中,更要做好科學(xué)化的編譯和測試,在實(shí)際的跨平臺軟件開發(fā)過程中,盡可能的保證相關(guān)聯(lián)的一些代碼在長時(shí)間的使用過程中,保證其代碼可以在另外的平臺上加以檢測,并借助于不同的平臺進(jìn)行測試,進(jìn)而將bug及時(shí)的發(fā)現(xiàn)。
3.6 實(shí)現(xiàn)抽象
一般而言,實(shí)現(xiàn)抽象主要是對跨平臺應(yīng)用程序中被移植過程中有著一定的有效性,通過對這種方式加以借用,進(jìn)而實(shí)現(xiàn)軟件的單獨(dú)性開發(fā),并將具有獨(dú)立性和簡潔性的程序拿出,在實(shí)際的跨平臺開發(fā)設(shè)計(jì)過程中,往往需要對多種函數(shù)進(jìn)行利用,進(jìn)而在實(shí)際的開發(fā)過程中,并不用對所有的函數(shù)進(jìn)行變異,而C++語言跨平臺軟件設(shè)計(jì)過程中,主要是對封裝方法加以采用,進(jìn)而將抽象的過程實(shí)現(xiàn),這種封裝方法相對來說,需要視情況而定,一旦存在相對特殊的情況時(shí),就要借助于其它的方式做好程序的基本調(diào)用工作,并做好對該功能的基礎(chǔ)命名工作。實(shí)現(xiàn)抽象的過程中,一旦對該程序及其公式使用之后,就要將該功能的主要程序直接調(diào)用,并將該功能充分實(shí)現(xiàn)。
3.7 C++語言跨平臺軟件開發(fā)的實(shí)現(xiàn)過程
C++語言跨平臺軟件設(shè)計(jì)開發(fā)的實(shí)現(xiàn)過程中,首先就要做好功能模塊實(shí)現(xiàn)過程和非功能模塊實(shí)現(xiàn)過程,在代碼編寫之前,就要對源代碼在文本編寫過程中的相關(guān)編輯策略加以規(guī)定,對\t格式加以統(tǒng)一,并使得代碼的結(jié)構(gòu)盡可能有著簡單化的基本特點(diǎn)。
C++語言跨平臺軟件開發(fā)實(shí)現(xiàn)過程,同樣也要對統(tǒng)一的工程寶建立,并對跨平臺的代碼庫加以建立,借助于平臺依賴庫對平臺相關(guān)代碼進(jìn)行封裝,做好對處理器差異、編譯器差異的合理控制,保證有著對齊的內(nèi)存和有著順序的字節(jié),并將平臺無關(guān)的代碼實(shí)現(xiàn),做好內(nèi)存的管理。
操作系統(tǒng)和接口庫實(shí)現(xiàn)的過程中,往往不同的操作系統(tǒng)將會(huì)存在各種各樣的系統(tǒng)限制,在實(shí)際的開發(fā)設(shè)計(jì)過程中,更要對限制的參數(shù)進(jìn)行適當(dāng)?shù)恼{(diào)整,并做好對文件描述符的基本限制,尤其是在Unix系統(tǒng)中,就要借助于文件的描述符這種系統(tǒng)性的資源,提高程序的通用性和靈活性。網(wǎng)絡(luò)程序開發(fā)過程中,任何一個(gè)網(wǎng)絡(luò)連接將會(huì)對一個(gè)文件描述符占用,一旦程序?qū)⒑芏嗟腟ocket連接打開,其程序在實(shí)際的運(yùn)行過程中借助于fopen將難以打開文件。對這一問題如何加以解決呢?可以將其系統(tǒng)逐漸的升級為64位系統(tǒng),同時(shí)還可以采用64位方式編譯程序,對sys/io.h中的函數(shù)操作文件加以使用,并對文件池技術(shù)加以采用,將一部分文件描述符預(yù)留。進(jìn)程和線程在實(shí)際的限制過程中,就要對線程數(shù)進(jìn)行創(chuàng)建,并將符的數(shù)量以及進(jìn)程線大小的限制加以描述,其操作系統(tǒng)抽象層中操作系統(tǒng)函數(shù)不能直接的被調(diào)用,更應(yīng)該將其在一個(gè)操作系統(tǒng)抽象層中包裝的庫中實(shí)現(xiàn),將其在底層的操作系統(tǒng)中直接的脫離出來,并保證系統(tǒng)調(diào)試有著相對有效的起點(diǎn)。
用戶界面的實(shí)現(xiàn)過程中,就要做好跨平臺軟件圖形界面的基礎(chǔ)設(shè)計(jì)工作,將程序基礎(chǔ)的邏輯代碼和數(shù)據(jù)構(gòu)成,金可的借助于跨平臺的開發(fā)工具包,借助于C++語言實(shí)現(xiàn),進(jìn)而開發(fā)利用C++語言跨平臺應(yīng)用程序的一種用戶界面,進(jìn)而做好相關(guān)界面的控制。
結(jié)語
總而言之,本文在對C++語言的跨平臺設(shè)計(jì)進(jìn)行研究時(shí),通過對C++語言和跨平臺需要的環(huán)境進(jìn)行分析,進(jìn)而對C++語言跨平臺設(shè)計(jì)做了主要的探討,進(jìn)而總結(jié)出,C++語言跨平臺設(shè)計(jì)過程中,不僅僅要有著相對豐富的經(jīng)驗(yàn),同時(shí)更要在開發(fā)的軟件中將更多的功能和實(shí)際的操作容積加入,借助于相對優(yōu)越的設(shè)計(jì),綜合性的提高軟件的額功能。本文研究分析C++語言的跨平臺設(shè)計(jì)時(shí),希望其中的設(shè)計(jì)思路以及相關(guān)的理論基礎(chǔ)為更多的跨平臺開發(fā)設(shè)計(jì)工程師給予一定的幫助,同時(shí)本文中存在的不足之處還望更多相關(guān)研究人員給予指正。
參考文獻(xiàn):
[1] 張馳. 基于C++語言的跨平臺軟件開發(fā)的設(shè)計(jì)與實(shí)現(xiàn)[D]. 北京交通大學(xué),2010.
[2] 侯成杰. 航天器C語言軟件常見編程錯(cuò)誤分析及檢測方法研究[J].空間控制技術(shù)與應(yīng)用,2013,06:53-57.
[3] 楊波,沈承舒. 面向嵌入式軟件開發(fā)的C語言程序設(shè)計(jì)課程改革探索[J]. 計(jì)算機(jī)教育,2014,05:105-107.
[4] 吳興華. 基于C語言軟件開發(fā)的效率、移植及調(diào)試[J]. 數(shù)字技術(shù)與應(yīng)用,2013,12:172.
[5] 楊鵬. 基于C++語言的跨平臺軟件開發(fā)的設(shè)計(jì)[J]. 硅谷,2014,04:19+21.
[6] 徐巍. 跨平臺移動(dòng)開發(fā)框架的比較分析與實(shí)例開發(fā)[D]. 吉林大學(xué),2014.
[7] 謝東來. C語言軟件設(shè)計(jì)中的主要問題分析[J]. 計(jì)算機(jī)光盤軟件與應(yīng)用,2013,04:235-236.
【關(guān)鍵詞】精品課程;Web;應(yīng)用開發(fā);B/S
0 前言
傳統(tǒng)的課堂教學(xué)中,存在教學(xué)任務(wù)重,教學(xué)課時(shí)緊張的特點(diǎn)。作為公共基礎(chǔ)課的《C語言程序設(shè)計(jì)》,是培養(yǎng)學(xué)生計(jì)算機(jī)編程能力的入門課,在課程教學(xué)中課時(shí)與教學(xué)任務(wù)之間的矛盾更加突出。精品課程網(wǎng)站的出現(xiàn),為學(xué)生在課下學(xué)習(xí)和復(fù)習(xí)提供了一個(gè)有效的平臺,可以彌補(bǔ)課堂教學(xué)的不足,同時(shí),優(yōu)質(zhì)教學(xué)資源也可以通過精品課程得到更為廣泛的共享,極大的提高了其教學(xué)價(jià)值。
如何設(shè)計(jì)一個(gè)功能穩(wěn)定、內(nèi)容豐富、界面美觀、使用方便的精品課程網(wǎng)站,對于《C語言程序設(shè)計(jì)》的教學(xué)是一個(gè)極具探討價(jià)值且亟待解決的問題。
1 《C語言程序設(shè)計(jì)》精品網(wǎng)站建設(shè)需求與功能分析
《C語言程序設(shè)計(jì)》精品課程網(wǎng)站要求能夠方便用戶在線資源共享及教師管理者資源的有效。網(wǎng)站平臺要具有界面美觀,操作方便,穩(wěn)定性與安全性好的特點(diǎn)。在網(wǎng)站內(nèi)容方面,要結(jié)合該課程較強(qiáng)的實(shí)踐性的特點(diǎn),實(shí)現(xiàn)學(xué)生與教師的有效互動(dòng)。因此,在功能上應(yīng)實(shí)現(xiàn)用戶注冊、課程資源,資源管理,資源瀏覽,留言及回復(fù),公告管理,用戶管理等功能。課程資源包括課件、習(xí)題、參考資料、教學(xué)大綱、教案、教學(xué)視頻、演示動(dòng)畫等的。資源管理實(shí)現(xiàn)上述資源的修改與刪除。用戶管理實(shí)現(xiàn)用戶賬號信息的管理、密碼修改與重置等。
2 《C語言程序設(shè)計(jì)》精品網(wǎng)站開發(fā)技術(shù)
本網(wǎng)站采用JSP作為網(wǎng)站網(wǎng)頁開發(fā)技術(shù),MYSQL作為存儲(chǔ)數(shù)據(jù)信息的后臺數(shù)據(jù)庫。JSP是Sun公司推出的構(gòu)建在Servlet規(guī)范提供的功能之上的動(dòng)態(tài)網(wǎng)頁技術(shù)。MYSQL是一個(gè)開放源碼的關(guān)系數(shù)據(jù)庫管理系統(tǒng),目前已經(jīng)被廣泛地應(yīng)用在中小型網(wǎng)站中。
網(wǎng)站平臺的開發(fā),采用目前最流行的SSH(Struts+Spring+Hibernate)框架及MVC(模型Model-視圖View-控制器Controller)設(shè)計(jì)模式,充分考慮了平臺的可擴(kuò)充性和安全性及穩(wěn)定性的要求。平臺的實(shí)現(xiàn)包含了表示層、業(yè)務(wù)邏輯層、數(shù)據(jù)持久層和域模塊層的設(shè)計(jì)與開發(fā)。該開發(fā)模型,不僅實(shí)現(xiàn)了視圖、控制器與模型的徹底分離,而且還實(shí)現(xiàn)了業(yè)務(wù)邏輯層與持久層的分離,是的系統(tǒng)具有很好的可維護(hù)性。在表示層中,首先通過JSP頁面實(shí)現(xiàn)交互界面,負(fù)責(zé)接收請求(Request)和傳送響應(yīng)(Response),然后Struts根據(jù)配置文件將ActionServlet接收到的Request委派給相應(yīng)的Action處理。在業(yè)務(wù)層中,由Spring IOC容器負(fù)責(zé)向Action提供業(yè)務(wù)模型(Model)組件和該組件的協(xié)作對象數(shù)據(jù)處理(DAO)組件完成業(yè)務(wù)邏輯,并提供緩沖池、事務(wù)處理等容器組件以提升系統(tǒng)性能和保證數(shù)據(jù)的完整性。在持久層中,將依賴于Hibernate的對象化映射和數(shù)據(jù)庫交互,處理DAO組件請求的數(shù)據(jù),然后返回處理結(jié)果。同時(shí),平臺在網(wǎng)頁刷新方面采用了Ajax (Asynchronous JavaScript and XML,異步JavaScript和XML)技術(shù)完成頁面的局部刷新。在資源上傳方面,采用SmanUpload組件實(shí)現(xiàn)了文件的上傳。采用FlashPaper實(shí)現(xiàn)文檔到FLASH動(dòng)畫的轉(zhuǎn)換。在線編輯則使用了開源的在線HTML編輯器KindEditor。
3 精品網(wǎng)站主要功能模塊設(shè)計(jì)與實(shí)現(xiàn)
結(jié)合《C語言程序設(shè)計(jì)》精品課程網(wǎng)站的建設(shè)需求,下面對該平臺的一些主要功能模塊的設(shè)計(jì)與實(shí)現(xiàn)進(jìn)行介紹。
3.1 系統(tǒng)功能建模設(shè)計(jì)
系統(tǒng)用戶主要包括學(xué)生用戶、教師用戶及管理員,可以依據(jù)三者各自的功能,采用用例圖實(shí)現(xiàn)其功能的模型化概要設(shè)計(jì),并且利用活動(dòng)圖、狀態(tài)圖及類圖實(shí)現(xiàn)其細(xì)化,實(shí)現(xiàn)平臺主要功能模塊的詳細(xì)設(shè)計(jì)。下面是教師用戶角色的用例圖。
圖1 教師用戶角色用例圖
3.2 系統(tǒng)主要功能實(shí)現(xiàn)
根據(jù)詳細(xì)設(shè)計(jì)階段的成果,進(jìn)行程序代碼的編寫,完成預(yù)期的功能模塊。開發(fā)實(shí)現(xiàn)過程中注意了代碼書寫的規(guī)范化及可重用性,對于界面,采用了一些精美的圖片與動(dòng)畫,使得實(shí)現(xiàn)的網(wǎng)站平臺在可用性、界面友好性方面有好的體現(xiàn)。同時(shí),按照預(yù)期的需求對其進(jìn)行相應(yīng)的黑盒測試與白盒測試,檢驗(yàn)其是否滿足實(shí)際的要求。
4 課程精品網(wǎng)站的
本精品網(wǎng)站在在WINDOWS平臺或LINUX平臺下,下面以在WINDOWS平臺的過程來進(jìn)行說明:
4.1 安裝WINDOWS SERVER服務(wù)器版操作系統(tǒng)
由于《C語言程序設(shè)計(jì)》精品課程完整有著大量的用戶,存在較大的并發(fā)訪問情況和安全性需求,因此網(wǎng)站需要在性能穩(wěn)定,安全性高的服務(wù)器平臺。我們首先需要安裝WINDOWS 2000 SERVER以上的服務(wù)器版本,本網(wǎng)站的服務(wù)器為WINDOWS 2008 SERVER。
4.2 安裝JDK并進(jìn)行配置
JDK是JAVA開發(fā)及運(yùn)行的環(huán)境,網(wǎng)站的運(yùn)行需要JDK的支持,下載JDK的WINDOWS版本安裝包進(jìn)行安裝,然后配置相應(yīng)的環(huán)境變量,包括java_home,path和classpath三個(gè)部分。
4.3 安裝Tomcat WEB服務(wù)器
下載并安裝Tomcat,Tomcat是Apache的一個(gè)JSP常用的WEB應(yīng)用服務(wù)器,具有很好的穩(wěn)定性。
4.4 安裝MYSQL數(shù)據(jù)庫管理系統(tǒng)
網(wǎng)站采用MYSQL作為數(shù)據(jù)庫管理系統(tǒng),下載并安裝MYSQL,然后創(chuàng)建網(wǎng)站所需要的數(shù)據(jù)庫和用戶。
4.5 安裝JDBC驅(qū)動(dòng)
JDBC(Java Database Connectivity)是一種可以執(zhí)行SQL語句的Java API,提供了程序訪問數(shù)據(jù)庫的接口。平臺對數(shù)據(jù)庫的訪問需要安裝JDBC驅(qū)動(dòng)。
4.6 網(wǎng)站到TOMCAT(下轉(zhuǎn)第13頁)
(上接第15頁)將精品網(wǎng)站的JSP程序放置在直接放到Webapps目錄下或者自己建立的目錄下,修改配置server.xml,實(shí)現(xiàn)網(wǎng)站的最終??梢酝ㄟ^修改server.xml文件,在Host標(biāo)簽內(nèi)建一個(gè)Context實(shí)現(xiàn),內(nèi)容如下:
其中path是虛擬路徑,docBase是JSP應(yīng)用程序的物理路徑,workDir是這個(gè)應(yīng)用的工作目錄,存放運(yùn)行是生成的于這個(gè)應(yīng)用相關(guān)的文件。
這些步驟完成后,就可以瀏覽器里直接訪問該網(wǎng)站。
5 結(jié)束語
作為學(xué)生自學(xué)重要途徑的精品課程資源建設(shè),是對優(yōu)質(zhì)課程資源共享的一個(gè)重要途徑,同時(shí)也彌補(bǔ)了課堂教學(xué)的不足。本文分析了《C語言程序設(shè)計(jì)》精品課程網(wǎng)站的需求,討論了精品課程網(wǎng)站的開發(fā)技術(shù)和開發(fā)思想。設(shè)計(jì)和實(shí)現(xiàn)了精品課程網(wǎng)站的開發(fā),并且給出了網(wǎng)站的方法。精品課程網(wǎng)站的建設(shè)和其合理應(yīng)用,對于學(xué)生的學(xué)習(xí)有較好的效果,為進(jìn)一步促進(jìn)教學(xué)質(zhì)量的提升打下堅(jiān)實(shí)的基礎(chǔ)。
【參考文獻(xiàn)】
[1]鄭偉平,范冰冰,胡遵華,田杰.多租戶精品課程網(wǎng)站系統(tǒng)的研究與實(shí)現(xiàn)[J].東北師大學(xué)報(bào):自然科學(xué)版,2013(02).
[2]周玉芬,柯和平,陳銳浩.基于績效技術(shù)的精品課程網(wǎng)站建設(shè)研究[J].中國電化教育,2012(07).
關(guān)鍵詞:Coco2d-x;動(dòng)態(tài)更新;Lua;跨平臺開發(fā)
中圖分類號:TP368.1 文獻(xiàn)標(biāo)識碼:A
Abstract:The Lua scripting language technology has brought the new heaven and earth for the development of Coco2d-x.Through the Lua scripting language development Cocos2d-x application,get rid of the tedious code of C/C++ development,makes the development of fast and efficient and can run on multiple platforms at the same time,the Lua scripting language can expand sex,can make it a good integration in the application.At the same time the Lua language become controller in development.Control the application logic and Coco2d-providing display functions of x and cross-platform features.Such development can dynamically modify the client not only bugs,but also dynamic update application content to avoid the update of customer churn.Free,small,fast,easy to transplant the Lua language reduces the development cost and guarantee the application performance.
Keywords:Cocos2d-x;dynamic updating;Lua;cross-platform development
1 引言(Introduction)
Cocos2d-x是基于C++語言的移動(dòng)端應(yīng)用程序開發(fā)的開源框架。Cocos2d-iPhone項(xiàng)目的C++版本[1]。Cocos2d-x開發(fā)框架用C++語言重寫了Cocos2d開發(fā)框架從而實(shí)現(xiàn)應(yīng)用開發(fā)跨平臺,在跨平臺移動(dòng)端應(yīng)用開發(fā)中Cocos2d-x框架被大量使用[2]。其開發(fā)的手機(jī)應(yīng)用,可以在C++或者Lua中編寫。Cocos2d-x項(xiàng)目能夠兼容iOS操作系統(tǒng),Android操作系統(tǒng),黑莓Blackberry操作系統(tǒng)等。在PC端Cocos2d-x開發(fā)框架支持的操作系統(tǒng)包括Linux操作系統(tǒng)、Mac操作系統(tǒng)和Windows操作系統(tǒng)等PC端操作系統(tǒng),因此,Cocos2d-x能夠在PC端操作系統(tǒng)中可以進(jìn)行編輯和調(diào)試使得其在開發(fā)中變得高效快捷[3]。
2 基于Lua動(dòng)態(tài)腳本語言Coco2d-x應(yīng)用開發(fā)的關(guān)鍵技術(shù)(The key technology of Cocos2d-x application development based on the dynamic scripting language Lua)
(1)Lua技術(shù)
Lua是一個(gè)小巧的動(dòng)態(tài)語言。Lua動(dòng)態(tài)語言的設(shè)計(jì)初衷,為應(yīng)用程序開發(fā)提供訂制功能與靈活的拓展。作為腳本語言它具有輕量、可拓展、簡潔等特點(diǎn)[4]。因?yàn)镃++語言與Lua腳本語言具有良好交互能力??梢詮?fù)雜繁瑣的C++開發(fā)變?yōu)楹唵慰旖莸腖ua語言開發(fā)。
(2)Lua與C++交互技術(shù)
Lua動(dòng)態(tài)腳本語言與C++語言的通訊分為兩部分,首先是Lua動(dòng)態(tài)語言通過Lua Binding訪問C++語言中的類庫或者函數(shù)以及傳遞參數(shù),其次分是C++語言回調(diào)Lua C API訪問Lua的函數(shù)以及傳遞參數(shù)。
(3)Cocos2d-x開發(fā)手機(jī)應(yīng)用技術(shù)
在實(shí)際開發(fā)中,使用Cocos2d-x框架進(jìn)行移動(dòng)端應(yīng)用程序開發(fā),依賴其可以和平美兼容,使其項(xiàng)目可以做到多個(gè)平臺一套代碼,多個(gè)平臺一個(gè)版本避免了多平臺版本不統(tǒng)一的尷尬。通過與之相配套的CocosStdioUI編輯快速生成plist文件可視化進(jìn)行界面布局提高實(shí)際項(xiàng)目中的開發(fā)效率,讓應(yīng)用開發(fā)變得更加迅捷高效開發(fā)。
3 基于Lua動(dòng)態(tài)腳本語言Coco2d-x應(yīng)用開發(fā)的應(yīng)用
與實(shí)現(xiàn)(The use and implementation of Cocos2d-x
application development based on the dynamic
scripting language Lua)
3.1 Lua與C++的交互技術(shù)實(shí)現(xiàn)
在C++中初始化Lua:
Lua_State * L=lua_open(); //初始化Lua環(huán)境
void CCinitLua() {
lua_openlibs(L); //載入Lua全部標(biāo)準(zhǔn)庫
}
完成在C++來執(zhí)行Lua文件。Lua被嵌入到C++程序中,起到一個(gè)黏合作用。而Cocos2d-x框架其強(qiáng)大的功能分別來自于不同的類庫。Lua動(dòng)態(tài)語言在程序開發(fā)中作為整個(gè)應(yīng)用程序的邏輯控制器,在開發(fā)中Lua腳本語言充當(dāng)大腦而開發(fā)框架充當(dāng)肢體。以消息機(jī)制為例,通過調(diào)用C++語言的函數(shù)達(dá)到,回調(diào)Lua動(dòng)態(tài)語言函數(shù)。以C++繪制函數(shù)為例,C++通過繪制函數(shù)傳輸一個(gè)消息給Lua語言,當(dāng)繪制函數(shù)進(jìn)行重繪時(shí)也就在Lua語言中執(zhí)行相同的函數(shù)。這樣就可以在書法簡練沒有類型的Lua中編寫C++代碼,省去了C++的復(fù)雜語法從而有擁有了C++的強(qiáng)大功能。通過這個(gè)方式就能夠?qū)崿F(xiàn)其他事件機(jī)制。
動(dòng)態(tài)腳本語言Lua調(diào)用C++接口時(shí),進(jìn)行參數(shù)傳遞,回調(diào)結(jié)果的獲取。需要把C++中函數(shù)位置通過指定的方式傳達(dá)給Lua語言。在Lua調(diào)用C++,C++從棧中找到交互的棧,從而獲取其中的參數(shù),調(diào)用結(jié)束后將返回結(jié)果信息放入棧中。在當(dāng)Lua語言中繪制函數(shù)被調(diào)用時(shí),同時(shí)也調(diào)用了C++中做相應(yīng)處理的函數(shù),這樣動(dòng)態(tài)語言Lua與C++的交互就是實(shí)現(xiàn)的。
3.2 Lua與Cocos2d-x交互
Cocos2d-x具體來說更像是一個(gè)類庫的合集其中把圖形渲染和多媒體播放甚至物理引擎,分解集合成一個(gè)lib。通過C++調(diào)用這個(gè)lib中的具體方法而實(shí)現(xiàn)快速的手機(jī)應(yīng)用開發(fā)的框架。通過Lua動(dòng)態(tài)語言嵌入到Cocos2d-x開發(fā)框架中,并與其良好的結(jié)合。達(dá)到了在腳本中開發(fā)跨平臺手機(jī)應(yīng)用。
3.3 利用Cocos2d-x開發(fā)應(yīng)用
目前移動(dòng)端操作系統(tǒng)主要有iOS操作系統(tǒng),Android操作系統(tǒng)。移動(dòng)應(yīng)用程序開發(fā)需要使用Cocos2d-x進(jìn)行開發(fā)可以避免一款程序多套代碼的尷尬。
(1)利用Lua+Coco2d-x開發(fā)Android應(yīng)用
通過Native Development Toolkit(NDK)我們可以在eclipse里面集成外部庫(比如Cocos2d-x),使用C/C++來編寫Android程序。這些庫被編譯成動(dòng)態(tài)庫通過JNI(Java Native Interface)與Java Android體系程序進(jìn)行交互。下面有兩種使用方法:
①獨(dú)立模式:直接在makefile中使用arm-linux-androideabi-g++。
②集成模式:使用$NDKROOT/ndk-build shell工具,它是一種高度可定制的makefile,專門為NDK庫所設(shè)計(jì)的。
首先修改Anroid/jni/Android.mk中文件如下:
LOCAL_PATH:=$(callmy-dir)include$(CLEAR_VARS)subdirs:=$(addprefix $(LOCAL_PATH)/http:///../,$(addsuffix /Android.mk, \
cocos2dx\CocosDenshion/android\lua/proj.android/jni\))subdirs+= $(LOCAL_PATH)/pyramid/Android.mk
include $(subdirs)
修改jni\Application.mk文件:
APP_MODULES:=cocos2d cocosdenshion lua game
在android\src\org\cocos2dx\xx\x\.java中修改:
static {
System.loadLibray("cocos2d");
System.loadLibrary("cocosdenshion");
System.loadLibrary("lua");
System.loadLibrary("game");
}
(2)利用Lua+Coco2d-x開發(fā)iOS應(yīng)用
在Mac操作系統(tǒng)終端中填入:
cd $COCOS2DX_HOME
sud./install-templates-xcode.sh-u
在Cocos2d-x框架安裝成功以后在Xcode中會(huì)出現(xiàn)新的Cocos2d-x模板選擇即可創(chuàng)建新的工程。由于lua語言不能直接與Objective-C交互,所以我們使用Lua Bingding和C/C++交互。同時(shí)C++和Objective-C可以混編,使用C++可以直接調(diào)用Objective-C,讓C++作為Lua和Objective-C交互的橋梁(圖1)。
(3)Lua開發(fā)應(yīng)用
我們通過用Lua動(dòng)態(tài)語言創(chuàng)建場景、層、精靈來實(shí)現(xiàn)應(yīng)用中的一個(gè)通過用戶觸摸圖片跟隨用戶手指移動(dòng)的功能。
Mc_Scene=cocos2d.CCScene.node()
Mc_Layer=cocos2d.CCLayer.node()
Mc_Scene:addChild(Mc_Layer)
Mc_Sprite=cocos2d.CCSprite:SpriteWithFile
("machao.png")
Mc_Layer:addChild(Mc_Sprite)
SceneSize=cocos2d.CCDirector:shareDirector:getWinSize()
Mc_Sprite:setPosition(cocos2d.CCPoint(SceneSize.width*0.5,SceneSize.height*0.5))
Mc_Layer.__CCTouchDelegate__:registerScriptTouchHandler(cocos2d.CCTOUCHBEGAN,"btnTouchBegin")
Mc_Layer.__CCTouchDelegate__:registerScriptTouchHandler(cocos2d.CCTOUCHMOVED,"btnTouchMove")
Mc_Layer.__CCTouchDelegate__:registerScriptTouchHandler(cocos2d.CCTOUCHEND,"btnTouchEnd")
Pointbegin=nil
Function btnTouchBegin(e)
Local v=e[1]
Local pointMove=v:locationInView(v:view())
pointMove= cocos2d:CCDirector:sharedDirector():covertoGL(pointMove)
Mc_sprite:setPosition(cocos2d.CCPoint(pointMove.x,pointMove.y))
End
Function btnTouchMove(e)
Local v=e[1]
Local pointMove=v:locationInView(v:view())
pointMove= cocos2d:CCDirector:sharedDirector():covertoGL(pointMove)
Mc_sprite:setPosition(cocos2d.CCPoint(pointMove.x,pointMove.y
End
Function btnTochMove(e)
Cocos2d.CCLuaLog("T_end")
end
CocoDenshion.SimpleAudioEngine:shareEngine():playBackgroundmusic("background3.mp3",true)
CocoDenshion.SimpleAudioEngine:shareEngine():preloadEffect("effect1.wav")
Cocos2d.CCDirector:shareDirector():runwithScnen
(Mc_Scene)
Cocos2d.CCLuaLog("腳本運(yùn)行結(jié)束")
4 結(jié)論(Conclusion)
本文使用Lua動(dòng)態(tài)語言進(jìn)行移動(dòng)應(yīng)用程序的設(shè)計(jì)與開發(fā),把靈活高效的腳本語言應(yīng)用到移動(dòng)端應(yīng)用程序開發(fā),通過其良好的嵌入能力與Android平臺和iOS平臺結(jié)合,利用Cocos2d-x進(jìn)行應(yīng)用開發(fā)。Lua動(dòng)態(tài)語言能使應(yīng)用程序的邏輯和與前端視圖完全剝離開,不僅大大減少的應(yīng)用程序的開發(fā)周期還使其具有客戶端動(dòng)態(tài)更新的功能,又通過Cocos2d-x開發(fā)框架與多平臺相兼容,降低了開發(fā)成本。同時(shí)也降低了應(yīng)用程序的復(fù)雜程度,增加了代碼的可復(fù)用性。
參考文獻(xiàn)(References)
[1] Jayant Varma.Lua實(shí)戰(zhàn):IOS游戲開發(fā)[M].北京:人民郵電出版社,2014:77-78.
[2] 劉劍卓.Cocos2D-X游戲開發(fā)技術(shù)精解[M].北京:人民郵電出版社,2013:53-54.
[3] 滿碩泉.Cocos2D-X權(quán)威指南[M].北京:機(jī)械工業(yè)出版社,2010:26-27.
[4] Ierusalimschy R.Progarmming in Lua[M].北京:電子工業(yè)出版社,2006:141-143.
作者簡介:
關(guān)鍵詞:20CrMnTiH;齒輪鋼;開發(fā)
引言
20CrMnTiH齒輪鋼是我國用于制造各種汽車以及工程機(jī)械等傳動(dòng)齒輪以及齒輪軸的材料所使用最為廣泛的一種鋼種,在齒輪鋼總量中占有重要的比重。齒輪是比較關(guān)鍵的機(jī)械零件,它在實(shí)際的應(yīng)用過程中承受著交變載荷以及沖擊載荷等,所以對鋼的性能要求較為嚴(yán)格。
1.20CrMnTiH齒輪鋼的基本概述
1.1 20CrMnTiH齒輪鋼關(guān)鍵技術(shù)分析
在我國的20CrMnTiH齒輪鋼產(chǎn)業(yè)的長期發(fā)展過程中,在生產(chǎn)的工藝上已經(jīng)逐漸的成熟,形成了一套有著我國特色的齒輪鋼生產(chǎn)工藝,在對這些技術(shù)進(jìn)行應(yīng)用的過程中能夠在很大的程度上提高生產(chǎn)的效率。其中,通過電爐少渣出鋼的工藝能夠有效的降低脫氧的負(fù)擔(dān),并對鋼中所夾雜的一些雜質(zhì)含量起到了有效的控制作用;在無氧化保護(hù)澆注這一關(guān)鍵技術(shù)的應(yīng)用基礎(chǔ)上,對鋼中的氧含量得到了有效降低;通過對結(jié)晶器電磁攪拌這一關(guān)鍵技術(shù)的有效應(yīng)用,大大減少了鑄坯化學(xué)成分的偏析;另外,在快速白渣這一關(guān)鍵技術(shù)的應(yīng)用過程中,對鋼中的氧含量也得到了有效的降低[1]。
1.2 20CrMnTiH齒輪鋼的性能分析
這一產(chǎn)品有著高碳的耐磨表層以及低碳的高強(qiáng)韌性心部,這樣能夠?qū)薮蟮臎_擊載荷以及磨損等得以承受,在其性能方面主要有可加工性以及使用性能。在可加工性能這一方面,傳統(tǒng)的齒輪加工大多是采取插齒以及車削加工等,在隨著我國的科學(xué)技術(shù)的發(fā)展以及齒輪加工自動(dòng)化的形成,在生產(chǎn)效率方面有了很大的提高,通過數(shù)控技術(shù)進(jìn)行綠色加工已經(jīng)得以實(shí)現(xiàn)[2]。一般常見的輪齒失效就是吃面點(diǎn)蝕以及折斷等,而在疲勞失效這一方面主要就是鋼中的雜質(zhì)所導(dǎo)致的,隨著我國在新技術(shù)方面的引進(jìn),對其使用的性能已經(jīng)大大的得到了提高,齒輪鋼的純潔度得到了保障。
2.20CrMnTiH齒輪鋼的開發(fā)流程及技術(shù)創(chuàng)新探究
2.1 20CrMnTiH齒輪鋼的開發(fā)流程分析
在我國實(shí)際的20CrMnTiH齒輪鋼的開發(fā)內(nèi)容方面涉及的較為廣泛,其中在開發(fā)的過程中需要通過專業(yè)的技術(shù)人員對鋼的質(zhì)量以及工藝的要求進(jìn)行把控,并結(jié)合企業(yè)自身的發(fā)展特點(diǎn),然后才能夠?qū)?0CrMnTiH齒輪鋼的開發(fā)路線以及相關(guān)的設(shè)備配備進(jìn)行確定。然后就是依據(jù)著相關(guān)的工藝要求以及企業(yè)的現(xiàn)階段設(shè)備以及外購的檢測設(shè)備基礎(chǔ)上,對鋼的相關(guān)工藝特點(diǎn)以及操作水平、生產(chǎn)的現(xiàn)狀等進(jìn)行整合成對實(shí)際有著指導(dǎo)作用的指導(dǎo)書,接著對初步的開發(fā)進(jìn)行審核,并形成試驗(yàn)方案。
然后經(jīng)過相關(guān)的評審之后要能夠?qū)﹂_發(fā)的要求滿足情況加以確認(rèn),不符合實(shí)際開發(fā)要求的要能夠進(jìn)行積極的改善。在這些完成之后就要進(jìn)行初步的開發(fā)生產(chǎn),在開發(fā)的過程中對出現(xiàn)的問題要進(jìn)行及時(shí)的解決應(yīng)對,避免失控情況的發(fā)生,同時(shí)還要能夠?qū)﹂_發(fā)的要求得以滿足。在試驗(yàn)開發(fā)的階段一定要嚴(yán)格的按照標(biāo)準(zhǔn)進(jìn)行實(shí)施,在物理檢驗(yàn)以及化學(xué)檢驗(yàn)方面都要能夠得以加強(qiáng),從而滿足對20CrMnTiH齒輪鋼開發(fā)設(shè)計(jì)的要求達(dá)到標(biāo)準(zhǔn)。另外,對20CrMnTiH齒輪鋼開發(fā)過程中要進(jìn)行多次的試驗(yàn),確保鋼中的雜質(zhì)最大化的清除,要對影響這一開發(fā)的因素進(jìn)行積極的排除,從而形成適合這一工藝開發(fā)的最佳參數(shù)。
2.2 20CrMnTiH齒輪鋼的技術(shù)創(chuàng)新探究
在20CrMnTiH齒輪鋼的開發(fā)中,對其技術(shù)要能夠進(jìn)行創(chuàng)新,首先就是在快速白渣工藝這一創(chuàng)新技術(shù)方面,在經(jīng)過對精煉爐操作得以優(yōu)化之后,對其造渣的工藝也進(jìn)行了有效的改善。在具體的操作過程當(dāng)中就是對精煉爐的堿度進(jìn)行適當(dāng)?shù)目刂?,將其控制?.0―3.0之間,這一技術(shù)不僅有著較有效的脫氧效果,同時(shí)在流動(dòng)性方面也比較的優(yōu)良。
另外,在少渣出鋼這一工藝的創(chuàng)新點(diǎn)最為主要的就是電爐用擋渣錐進(jìn)行的擋渣,同時(shí)又加入了擋渣車,這樣在定位上就相對來說比較的準(zhǔn)確,擋渣的效果能夠得以完善的呈現(xiàn)出來,從而對少渣多鋼得到了實(shí)現(xiàn)。然后就是在連鑄無氧化澆鑄這一創(chuàng)新技術(shù)方面對低過熱澆注有了保障,同時(shí)也對高的中間包液位澆注有了保證,在液面的穩(wěn)定性方面也有了保障,避免了中包液面的大波動(dòng)所造成的鋼液卷渣現(xiàn)象[3]。
在深脫氧這一創(chuàng)新技術(shù)的應(yīng)用過程中,也在很大的程度上對鋼中的氧含量有了降低,在對電爐出鋼進(jìn)行了有效控制之后,實(shí)現(xiàn)了少渣出鋼,這樣就有效的對脫氧的負(fù)擔(dān)有了降低,從而對精煉爐中的A1含量得到了有效控制。在過熱度過高的情況下就會(huì)使得柱狀晶過于發(fā)達(dá)以及中心碳的偏析較為嚴(yán)重等情況的出現(xiàn),所以將過熱度控制在二十?dāng)z氏度到三十?dāng)z氏度之間是比較適宜的,而在拉速這一方面將其控制在1.1到1.3m/min這一范圍內(nèi)是較為合適的。
而在電磁攪拌以及氬氣攪拌的技術(shù)創(chuàng)新應(yīng)用過程中,不只是將鋼中的一些有害氣體得以減少了,并對剩余的一些雜質(zhì)進(jìn)行了改性的處理,在雜物的含量級別方面有了很大程度上的降低,這一創(chuàng)新技術(shù)的應(yīng)用在質(zhì)量水平方面和技術(shù)協(xié)議中的脆性夾物以及塑性夾物小于三級的規(guī)定是相契合的。
3.結(jié)語
總而言之,在20CrMnTiH齒輪鋼的開發(fā)過程中會(huì)遇到諸多的問題,故此要能夠找到問題的根源所在,有針對性的加以解決。隨著我國的科學(xué)技術(shù)的進(jìn)步,對20CrMnTiH齒輪鋼的開發(fā)以及研究方面定將會(huì)迎來一個(gè)新的發(fā)展局面。
參考文獻(xiàn):
[1]楊躍標(biāo),鄧深,朱超云,周漢全,江學(xué)德.20CrMnTi齒輪鋼方坯連鑄工藝的研究與應(yīng)用[J].柳鋼科技,2012,(04).
關(guān)鍵詞:SuperMapObjects,電子地圖,十堰市
1 引言
傳統(tǒng)的地圖制圖理論已經(jīng)基本成熟,但是任何一門學(xué)科的發(fā)展都是和現(xiàn)代科學(xué)技術(shù)的發(fā)展分不開的,現(xiàn)代科學(xué)技術(shù)的發(fā)展促進(jìn)學(xué)科的發(fā)展,所以地圖制圖學(xué)也不例外[2]。計(jì)算機(jī)技術(shù)、多媒體技術(shù)、網(wǎng)絡(luò)技術(shù)以及其它相關(guān)的或可能相關(guān)的技術(shù)正在影響或可能影響地圖制圖學(xué)的發(fā)展,因此電子地圖信息研究與實(shí)踐是對地圖制圖學(xué)新技術(shù)和新理論的補(bǔ)充和完善,這是本論文的意義之一[1]。電子地圖相對獨(dú)立,可以根據(jù)需要方便快捷的轉(zhuǎn)化為紙制地圖;電子地圖中掛接的多媒體信息內(nèi)容具有動(dòng)態(tài)性,可以方便的對信息內(nèi)容進(jìn)行補(bǔ)充和更新,同時(shí)內(nèi)容組織更加靈活;在電子地圖上可以方便的進(jìn)行量算和相關(guān)分析,同時(shí)借助于多媒體技術(shù)使信息的表達(dá)形式更加豐富多彩;隨著信息化的發(fā)展,電子地圖作為空間信息的主要載體和傳播工具在國民經(jīng)濟(jì)建設(shè)中發(fā)揮著不可替代的作用。因此研究電子地圖具有十分重要的現(xiàn)實(shí)意義。
2 SuperMapObject簡介
SuperMap組件式GIS以標(biāo)準(zhǔn)的ActiveX組件的方式,嵌入流行的可視化高級開發(fā)語言環(huán)境中進(jìn)行開發(fā)。充分發(fā)揮VisualBasic, Delphi, Visual C++, C++ Builder, PowerBuilder, C,C#等高級開發(fā)工具在面向?qū)ο缶幊?、可視化程序設(shè)計(jì)環(huán)境中體現(xiàn)的新一代程序設(shè)計(jì)語言的優(yōu)勢,結(jié)合各種第三方ActiveX組件,對GIS功能進(jìn)行無限擴(kuò)展。。
SuperMapObjects組件開發(fā)平臺以一系列ActiveX組件形式提供GIS基本功能,包括核心組件庫(工作空間控件和地圖控件)、布局組件、三維組件、拓?fù)浣M件、圖例組件庫(圖例控件、圖例列表控件和圖例組合列表框控件)、屬性表格組件、工作空間管理組件、加密鎖信息組件等多個(gè)可分拆的組件.SuperMap Objects組件之間既互相聯(lián)系,也保持相對獨(dú)立性.其中核心組件庫(工作空間控件和地圖控件)是基礎(chǔ)的、必選的組件,其他組件全都是可選的。
3 系統(tǒng)設(shè)計(jì)
該系統(tǒng)設(shè)計(jì)的目的是讓人們通過這個(gè)系統(tǒng)對十堰市的環(huán)境和旅游景點(diǎn)有更好的了解,為一些旅游人士提供公交搭乘的指導(dǎo),并可以查詢一些單位的資料。
3.1 系統(tǒng)總體設(shè)計(jì)
根據(jù)系統(tǒng)建設(shè)目標(biāo)和原則,系統(tǒng)開發(fā)將采用如下步驟:
第一步:完成城市基礎(chǔ)地理信息等的輸入、分層管理,建立各類對象的屬性數(shù)據(jù)庫;
第二步:數(shù)字化十堰市城區(qū)全圖;
第三步:實(shí)現(xiàn)電子地圖的基本功能;
第四步:網(wǎng)上查找十堰市城區(qū)主要地物和自然的圖片或影像資料,并建立其與相應(yīng)對象的關(guān)連;
第五步:電子地圖的測試與完善。
3.2系統(tǒng)功能設(shè)計(jì)
系統(tǒng)的總體功能結(jié)構(gòu)如下圖:
圖1 電子地圖功能的總體結(jié)構(gòu)圖
3.2.1地圖的基本操作
通過放大、縮小、漫游、自由縮放、全幅顯示等操作實(shí)現(xiàn)對地圖顯示的控制。
3.2.2公交換乘查詢(圖2)
通過該功能把起點(diǎn)和終點(diǎn)選中后,就可以查詢出你可以乘坐的公交車次。
3.2.3圖上量算
圖上量算是GIS最常用的功能之一。在圖中新建線或多邊形,在多邊形中有area面積屬性,在線中有l(wèi)ength屬性,可以讀取兩者屬性得到面積和距離。。
3.2.4屬性查詢(圖3)
用戶可以利用鼠標(biāo)選取或直接輸入單位名稱,就可以查詢到相關(guān)資料。
圖2 電子地圖公交換乘圖3 電子地圖屬性查詢
4 結(jié)語
本系統(tǒng)從設(shè)計(jì),編碼到實(shí)現(xiàn)的過程中,是以軟件工程和地理信息系統(tǒng)工程原理為指導(dǎo),利用現(xiàn)有的地理信息系統(tǒng)平臺提供的開發(fā)平臺,進(jìn)行平臺應(yīng)用和二次GIS 開發(fā)的實(shí)踐性教學(xué)。全面分析了電子地圖的理論基礎(chǔ),包括電子地圖的概念和特點(diǎn),以及電子地圖的研究現(xiàn)狀,同時(shí)結(jié)合地理信息系統(tǒng)的發(fā)展特點(diǎn),總結(jié)了電子地圖研發(fā)方式;分析了地理信息系統(tǒng)的發(fā)展現(xiàn)狀并詳細(xì)敘述了地理信息系統(tǒng)開發(fā)的三種形式。電子地圖的地理信息和多媒體信息數(shù)據(jù)量大,有效的數(shù)據(jù)組織與數(shù)據(jù)管理是系統(tǒng)高效運(yùn)行的關(guān)鍵。本文研究了電子地圖數(shù)據(jù)的組織和管理方法。。多媒體電子地圖仍然處于發(fā)展中,尚有很多問題值得我們?nèi)ヌ剿骱烷_發(fā)。
參考文獻(xiàn)
[1] 張家坤, 林亞平. 基于SuperMap IS的電子地圖信息服務(wù)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 長沙通信職業(yè)技術(shù)學(xué)院學(xué)報(bào) ,2006,5(3):47-51
[2] 李曙光,荊便順,尹如軍等. 交通電子地圖設(shè)計(jì)和制作[J]. 西安公路交通大學(xué)學(xué)報(bào),2001.20(1):78-80.
關(guān)鍵詞:JTBC;網(wǎng)站開發(fā);管理系統(tǒng)
中圖分類號:TP311.52 文獻(xiàn)標(biāo)識碼:A文章編號:1007-9599 (2011)05-0000-02
JTBC-based Development of Mongolian Web Content Management System
Ta Na
(Inner Mongolia Autonomous Region Hulunbeir College,Institute of Computer Science and Technology,Hulunbeier,021008,China)
Abstract:In this paper,based on the "language/code/procedures"
between two separate JTBC system Mongolian secondary development web content management system thought to Mongolian web content management system development critical problems such as the display of Mongolian fonts,special layout requirements,WYSIWYG editing,the background was compared,and the overall solution of system development were discussed.
Keywords:JTBC;Website development;Management system
一、引言
蒙古民族具有悠久的歷史和燦爛的文化,目前蒙古學(xué)的研究,已經(jīng)不只局限于語言文字、文學(xué)、歷史等傳統(tǒng)學(xué)科的范圍,而向縱與橫的方面全面展開,產(chǎn)生了許多相關(guān)學(xué)科,如蒙古族哲學(xué)及社會(huì)思想史、蒙古族經(jīng)濟(jì)及經(jīng)濟(jì)史、蒙古族風(fēng)俗、蒙古族藝術(shù)以及蒙古族醫(yī)學(xué)等等,蒙古學(xué)研究逐漸形成了一個(gè)較完整的體系。隨著互聯(lián)網(wǎng)的發(fā)展與普及,蒙古文化迫切需要通過網(wǎng)絡(luò)平臺進(jìn)行傳播與交流。
網(wǎng)站作為信息交流的主要平臺,其建設(shè)、管理與維護(hù)主要依靠網(wǎng)站內(nèi)容管理系統(tǒng)來實(shí)現(xiàn)。近年來,中英文網(wǎng)站內(nèi)容管理系統(tǒng)的發(fā)展已比較完善,然而因?yàn)槊晒盼脑谡Z言、文字方面的特殊性,蒙古文網(wǎng)站內(nèi)容管理系統(tǒng)的發(fā)展比較緩慢,蒙古文在瀏覽器中的顯示、排版等關(guān)鍵的技術(shù)問題仍沒有完美的解決方案。本文提出了基于JTBC系統(tǒng)進(jìn)行二次開發(fā)蒙古文網(wǎng)站內(nèi)容管理系統(tǒng)的思路,并對如何實(shí)現(xiàn)蒙古文字體的顯示,蒙古文特殊的排版要求及所見即所得的后臺編輯等關(guān)鍵問題進(jìn)行研究,提出了又一種整體解決方案。
二、系統(tǒng)開發(fā)的關(guān)鍵問題
(一)蒙古文字體的顯示問題。蒙古文字體的顯示是蒙古文網(wǎng)站建設(shè)的關(guān)鍵問題之一,從蒙古文網(wǎng)站的發(fā)展歷程上,蒙古文的顯示大致采用了如下幾種方法:
1.圖片法:直接在需要顯示文字的位置用處理好的圖片來代替顯示。這種方式顯示效果穩(wěn)定,但不能動(dòng)態(tài)顯示內(nèi)容,適合于標(biāo)題等相對固定的顯示方案,不適合用于正文。
2.Flash法:利用Flash內(nèi)建的嵌入字體機(jī)制來輔助實(shí)現(xiàn)。這種方法能夠適應(yīng)內(nèi)容的動(dòng)態(tài)變化,具有較好的顯示效果,但實(shí)現(xiàn)較為復(fù)雜,一般用于利用Flash、Flex開發(fā)的站點(diǎn)。
3.ActiveX控件法:頁面嵌入ActiveX控件實(shí)現(xiàn)蒙古文顯示、編輯、字體集成等功能。這種方法不僅可以解決蒙古文字體的顯示還可以解決蒙古文的排版問題,但實(shí)現(xiàn)較為復(fù)雜,并且需要用戶下載安裝控件,一般用在蒙古文的后臺編輯方面。
4.字體嵌入法:使用網(wǎng)頁嵌入字體(Web Embed Font)技術(shù)。目前主流瀏覽器都已支持CSS的 @font-face屬性在頁面中嵌入OpenType字體。這種方法不需要用戶介入字體問題,最為人性化,實(shí)現(xiàn)起來也相對簡單。
(二)蒙古文的排版問題。蒙古文的書寫格式為自上而下、從左到右,目前主流瀏覽器都不支持這種文字布局格式。如何遵從蒙古文的書寫格式在網(wǎng)頁中正確顯示是蒙古文網(wǎng)站需要解決的重點(diǎn)問題之一。當(dāng)前網(wǎng)頁的排版大多使用CSS(Cascading Style Sheet,可譯為“層疊樣式表”)來進(jìn)行控制,而主流瀏覽器所支持的CSS2版本對豎排文字的布局規(guī)則只有tb-rl(toptobutton-righttoleft,從上到下-從右到左),可喜的是W3C在CSS3中添加了tb-lr(toptobutton-lefttoright,從上到下-從左到右)的書寫方向,并明確說明tb-lr的書寫方向是針對蒙古文的書寫方向,但瀏覽器對于CSS3的全面支持可能還需要一段時(shí)間。
(三)后臺所見即所得的編輯問題。作為內(nèi)容管理系統(tǒng),后臺內(nèi)容的編輯是最重要的一個(gè)管理模塊。中英文網(wǎng)站的后臺編輯模塊發(fā)展已比較成熟,開源的Web編輯器也很多。在蒙古文網(wǎng)站內(nèi)容管理系統(tǒng)的后臺編輯模塊中,需要對蒙古文信息進(jìn)行錄入、編輯、排版、。目前所有的Web編輯器都不支持蒙古文自上而下、從左至右的特殊排版格式,要想實(shí)現(xiàn)所見即所得的編輯,同時(shí)具備文本的復(fù)制、粘貼、插入等編輯功能,目前一般的方法是采用ActiveX控件的方式來實(shí)現(xiàn)。
利用ActiveX控件需要用戶進(jìn)行一次控件的注冊,但對于網(wǎng)站的管理員這項(xiàng)操作比較明確,為實(shí)現(xiàn)蒙古文的多項(xiàng)編輯功能,這種方案較為合理。
三、基于JTBC開發(fā)蒙古文網(wǎng)站內(nèi)容管理系統(tǒng)的整體解決方案
JTBC網(wǎng)站內(nèi)容管理系統(tǒng)是一套可對現(xiàn)有模塊進(jìn)行擴(kuò)充與克隆的網(wǎng)站系統(tǒng)核心,采取語言/代碼/程序 兩兩分離的技術(shù)模式,全面使用了模板包與語言包結(jié)構(gòu),特別適合多語種網(wǎng)站的開發(fā)。JTBC系統(tǒng)具有完備的后臺管理功能,前臺頁面的組織主要通過調(diào)用模板來實(shí)現(xiàn),語種的變換由語言包來實(shí)現(xiàn)?;贘TBC系統(tǒng)開發(fā)蒙古文網(wǎng)站內(nèi)容管理系統(tǒng)主要的工作有:蒙古文語言包的配置、蒙古文調(diào)用模板的制作、后臺管理系統(tǒng)蒙古文化的實(shí)現(xiàn)以及蒙古文后臺編輯系統(tǒng)的實(shí)現(xiàn)。
(一)蒙古文語言包的配置。JTBC系統(tǒng)中所有文字的使用都是通過調(diào)用語言包中的標(biāo)簽來實(shí)現(xiàn)的,因此實(shí)現(xiàn)蒙古文的調(diào)用只要在語言包中配置相應(yīng)的蒙古文標(biāo)簽即可,涉及的配置文件主要有三個(gè)方面:
mon/language/sel_lng.jtbc文件語系配置文件,添加語系首先要在此文件中進(jìn)行配置。此文件為XML格式,需要在及標(biāo)記中配置蒙古文選擇標(biāo)簽。
2.Admin/common/language/guide.jtbc文件:此文件為后臺管理系統(tǒng)的語言文件,其中有語系選擇項(xiàng),需要在及中添加蒙古文語系選項(xiàng)。
3.各模塊的語言文件:后臺所有模塊的語言文件,都是XML格式,存儲(chǔ)在后臺系統(tǒng)及各模塊的common/language/目錄下,后綴名為.jtbc。
關(guān)于配置文件的具體配置方法可參看JTBC系統(tǒng)幫助。
(二)蒙古文調(diào)用模板的制作。JTBC系統(tǒng)的頁面組織主要是通過調(diào)用模板來實(shí)現(xiàn),網(wǎng)站內(nèi)容根據(jù)調(diào)用模板的規(guī)則進(jìn)行顯示。制作蒙古文調(diào)用模板的關(guān)鍵問題是蒙古文的顯示和如何按照蒙古文的書寫格式進(jìn)行排版。建議標(biāo)題、logo等靜態(tài)內(nèi)容可以采用圖片法,動(dòng)態(tài)文本內(nèi)容采用字體嵌入法。蒙古文的排版問題鑒于目前主流瀏覽器尚不支持CSS3的writing-mode:tb-lr屬性,因此采用CSS+JavaScript相結(jié)合的方式進(jìn)行處理。其中CSS樣式使用writing-mode:tb-rl屬性使蒙古文從右到左顯示,然后利用JavaScript程序?qū)⑽谋咀笥一Q,實(shí)現(xiàn)蒙古文自上而下、從左到右的顯示。JavaScript程序算法思想為:逐一讀取文本內(nèi)容,遇換行符截取進(jìn)行左右互換。
(三)后臺管理系統(tǒng)蒙古文化。JTBC系統(tǒng)的后臺管理系統(tǒng)采用模塊化設(shè)計(jì),進(jìn)入相應(yīng)的管理系統(tǒng)則調(diào)用該系統(tǒng)模塊的模板包及語言包呈現(xiàn)管理界面。后臺管理系統(tǒng)蒙古文化只要修改各模塊的模板包及語言包即可。模板文件存儲(chǔ)于后臺系統(tǒng)及各模塊的common/template/目錄下,后綴名為.jtbc。JTBC系統(tǒng)的模板多以表格方式制作,為了便于布局,建議采用了Div+CSS方式進(jìn)行了改寫。利用writing-mode:tb-rl屬性進(jìn)行豎排。此項(xiàng)工作涉及多個(gè)模板文件,工作量較大,但只要掌握了語言標(biāo)簽與鏈接方式,就可以按照自己的意愿進(jìn)行個(gè)性化的修改了。語言包的配置之前已經(jīng)介紹,這里不再重復(fù)。
(四)蒙古文后臺編輯系統(tǒng)的實(shí)現(xiàn)。在JTBC系統(tǒng)中,Web編輯器采用的是TinyMce,TinyMce是一個(gè)輕量級的基于瀏覽器的編輯器,由JavaScript寫成。TinyMce不支持蒙古文自上而下、從左到右的書寫格式,因此,想要實(shí)現(xiàn)蒙古文所見即所得的后臺編輯本文采用結(jié)合ActiveX控件的方式。TinyMce支持插件開發(fā),本文提出由ActiveX控件實(shí)現(xiàn)蒙古文所見即所得的編輯,而后以調(diào)用插件的方式將TinyMce與ActiveX控件進(jìn)行結(jié)合。基于ActiveX控件的蒙古文編輯目前研究已比較成熟,這里不過多討論。
Web編輯器與蒙古文控件的交互主要指蒙古文文本信息的相互傳遞??丶械拿晒盼奈谋拘枰獋鬟f到Web編輯器中顯示、保存,Web編輯器中的蒙古文文本需要傳遞到控件中進(jìn)行編輯。TinyMce通過插件調(diào)用ActiveX蒙古文編輯控件,控件運(yùn)行在客戶端,其屬性值不能直接提交給服務(wù)器,我們利用表單進(jìn)行數(shù)據(jù)傳遞。ActiveX控件屬性通過表單的ONSUBMIT事件,賦值給表單的某一域后再提交給服務(wù)器。在TinyMce插件的顯示頁面中我們創(chuàng)建表單,定義一隱含域。在表單的ONSUBMIT事件中利用腳本將控件的文本屬性值傳遞給服務(wù)器了。在服務(wù)器端我們利用JavaScript腳本進(jìn)行蒙古文的豎顯。對于控件獲取Web編輯器的蒙古文信息,直接利用變量賦值就可以了。
四、結(jié)束語
本文針對基于JTBC系統(tǒng)開發(fā)蒙古文網(wǎng)站內(nèi)容管理系統(tǒng)的各個(gè)問題進(jìn)行論述,提出利用字體嵌入技術(shù)解決蒙古文的字體顯示;利用CSS結(jié)合JavaScript技術(shù)實(shí)現(xiàn)蒙古文的布局;利用ActiveX控件結(jié)合TinyMceWeb編輯器實(shí)現(xiàn)蒙古文所見即所得的后臺編輯以及通過語言包、模板包實(shí)現(xiàn)JTBC后臺管理系統(tǒng)的蒙古文化的整體解決方案。為蒙古文網(wǎng)站內(nèi)容管理系統(tǒng)的開發(fā)提出了又一種思路。隨著信息技術(shù)的發(fā)展,相信對蒙古文的支持會(huì)越來越完善,蒙古族悠久的文明、燦爛的文化也會(huì)越來越多的為世人所知。
參考文獻(xiàn):
[1]蒙古族簡史.北京:民族出版社[M],2009
關(guān)鍵詞:MVC NHibernate 開發(fā)框架
中圖分類號:TN 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9416(2012)02-0088-02
1、引言
軟件在開發(fā)過程中,如果沒有一個(gè)好的設(shè)計(jì)模式和開發(fā)框架,則需要編寫大量的基礎(chǔ)代碼,這無疑降低了開發(fā)效率;同時(shí),從基礎(chǔ)源代碼著手開發(fā)的套裝軟件或定制軟件往往都具有較高的耦合度,維護(hù)困難。因此,開發(fā)人員逐漸把軟件開發(fā)的重點(diǎn)從數(shù)據(jù)結(jié)構(gòu)和算法轉(zhuǎn)向設(shè)計(jì)模式和開發(fā)框架上。
MVC(Model-View-Controller)是目前軟件開發(fā)中廣泛采用的一種設(shè)計(jì)模式。它把一個(gè)Web應(yīng)用分離為模型、視圖和控制器三個(gè)部分,使得系統(tǒng)結(jié)構(gòu)清晰,利于維護(hù)和擴(kuò)展。NHibernate是Microsoft .NET的ORM持久化框架,從Java的Hibernate項(xiàng)目移植而來。NHibernate框架從數(shù)據(jù)庫底層來持久化.Net對象到關(guān)系型數(shù)據(jù)庫,使軟件代碼僅僅和對象關(guān)聯(lián),從而擺脫了SQL、和事務(wù)、緩存等底層開發(fā)。本文在分析目前主流開發(fā)框架的基礎(chǔ)上,將MVC設(shè)計(jì)模式與NHibernate框架有效整合,來降低系統(tǒng)總體架構(gòu)的藕合度和業(yè)務(wù)模型的開發(fā)難度。
2、主流的開發(fā)框架
2.1 SSH開發(fā)框架
SSH開發(fā)框架是指在J2EE平臺下融合了Struts、Spring和Hibernate的開發(fā)框架,其體系結(jié)構(gòu)如圖1所示。
其中,Struts是典型的基于MVC設(shè)計(jì)模式的框架,主要用于表示層的構(gòu)建,具體實(shí)現(xiàn)是通過控制器將表現(xiàn)邏輯和業(yè)務(wù)邏輯解藕,以提高系統(tǒng)的可維護(hù)性、可擴(kuò)展性和可重用性;Spring是一個(gè)模塊化的框架,主要負(fù)責(zé)業(yè)務(wù)邏輯層的構(gòu)建,允許開發(fā)人員自由選擇適合的模塊進(jìn)行開發(fā);Hibernate是一個(gè)開放源代碼的對象關(guān)系映射框架,主要負(fù)責(zé)持久層的構(gòu)建,對JDBC進(jìn)行了輕量級的對象封裝,支持開發(fā)人員使用對象編程來操縱數(shù)據(jù)庫。
2.2 WebForm三層開發(fā)框架
在.NET平臺下,本身就是一個(gè)基于事件響應(yīng)的Web開發(fā)框架,但是結(jié)構(gòu)單一、層次不夠分明。因此,在客戶端與數(shù)據(jù)庫之間加入一個(gè)“中間層”(即組件層),出現(xiàn)了三層開發(fā)框架,如圖2所示。
其中,表示層是展現(xiàn)給用戶的界面,即用戶在使用一個(gè)系統(tǒng)時(shí)的所見所得;業(yè)務(wù)邏輯層實(shí)現(xiàn)對數(shù)據(jù)層的操作,完成對數(shù)據(jù)業(yè)務(wù)的邏輯處理;數(shù)據(jù)訪問層直接操作數(shù)據(jù)庫,實(shí)現(xiàn)數(shù)據(jù)的增加、刪除和更新等。
2.3 MVC開發(fā)框架
MVC是微軟開發(fā)的一個(gè)實(shí)現(xiàn)MVC設(shè)計(jì)模式的Web開發(fā)框架,由Castle的Monorail(一種MVC Web開發(fā)框架)演變而來,其結(jié)構(gòu)如圖3所示。
其中視圖可以通過在ASPX頁面中開發(fā)用戶接口來實(shí)現(xiàn);控制器的功能在邏輯功能代碼中實(shí)現(xiàn);模型通常與應(yīng)用系統(tǒng)的業(yè)務(wù)部分和數(shù)據(jù)庫對應(yīng)。
以上三種主流開發(fā)框架中,J2EE平臺的SSH開發(fā)框架在大型項(xiàng)目開發(fā)過程中比.NET平臺的開發(fā)框架具有更大的優(yōu)勢:
(1)易于進(jìn)行單元測試和測試驅(qū)動(dòng)開發(fā);
(2)避免了WebForm中大量視圖狀態(tài)所導(dǎo)致的頁面反應(yīng)緩慢;
(3)模塊化結(jié)構(gòu),易于大型項(xiàng)目的團(tuán)隊(duì)化開發(fā)。
因此,本文借鑒SSH開發(fā)框架的優(yōu)勢,對.NET平臺下的開發(fā)框架進(jìn)行擴(kuò)充,設(shè)計(jì)實(shí)現(xiàn)了一個(gè).NET平臺下的多層開發(fā)框架。
3、.NET平臺下基于MVC和NHibernate的開發(fā)框架
3.1 總體框架
該開發(fā)框架利用NHibernate框架構(gòu)建了持久層,并借鑒了WebForm開發(fā)框架分層結(jié)構(gòu)設(shè)計(jì),在持久層與控制器之間增加了中間層,對數(shù)據(jù)和功能組件進(jìn)行了封裝,提供了統(tǒng)一接口供控制器調(diào)用。其體系結(jié)構(gòu)如圖4所示。
3.2 分層描述
3.2.1 模塊管理層
由于該框架是主要針對大型項(xiàng)目的開發(fā),因此,各功能模塊之間要求一定的解耦。本層主要實(shí)現(xiàn)各粗粒度模塊間的相互調(diào)用以及對外提供接口。
3.2.2 表示層
表示層用于呈現(xiàn)客戶端的用戶視圖,負(fù)責(zé)從用戶接收命令,請求和數(shù)據(jù)傳遞給控制器,并最終將結(jié)果封裝后呈現(xiàn)給用戶。
該框架為視圖提供了自定義的視圖引擎、模板和CSS樣式表。根據(jù)視圖引擎和視圖對象的不同,視圖可以呈現(xiàn)不同的頁面類型和內(nèi)容。同時(shí),框架還可以應(yīng)用JQuery技術(shù),用來實(shí)現(xiàn)頁面的異步顯示和美化。
3.2.3 控制器
Controller調(diào)用應(yīng)用接口層接口對數(shù)據(jù)進(jìn)行操作;同時(shí),調(diào)用相應(yīng)的組件功能,執(zhí)行用戶通過視圖傳遞的相關(guān)指令,并將封裝后的視圖類傳遞給視圖。
3.2.4 應(yīng)用接口層
該層針對數(shù)據(jù)訪問接口和業(yè)務(wù)邏輯接口,將其封裝后供控制器進(jìn)行調(diào)用,本身不包含任何業(yè)務(wù)邏輯。
3.2.5 業(yè)務(wù)邏輯層
系統(tǒng)的核心層,所有與數(shù)據(jù)訪問無關(guān)的業(yè)務(wù)邏輯都內(nèi)聚在該層,并向應(yīng)用接口層提供業(yè)務(wù)邏輯接口。
3.2.6 數(shù)據(jù)訪問層
該層通過持久層提供的NHibernate API函數(shù)或者SQL語句,直接操作持久化類,對數(shù)據(jù)進(jìn)行增添、刪除、修改、更新、查找等操作,并向應(yīng)用接口層提供數(shù)據(jù)訪問接口。
3.2.7 持久層
所謂持久化,即把數(shù)據(jù)保存到可永久保存的存儲(chǔ)設(shè)備中。該開發(fā)框架在持久層中建立一個(gè)持久化類,它是數(shù)據(jù)庫表的一個(gè)映射。持久化類和NHibernate API(指Session類)關(guān)聯(lián)后,就具有了持久化能力。持久化類通過Session類進(jìn)行裝載、保存、創(chuàng)建或查詢(可采用HQL或其他方式以面向?qū)ο蠓绞綄Τ志没愡M(jìn)行查詢)。對持久化類做的任何修改都會(huì)在Session刷新(flush)時(shí)被持久化到對應(yīng)數(shù)據(jù)庫表中。
3.2.8 數(shù)據(jù)源
開發(fā)框架除了支持常用的關(guān)系型數(shù)據(jù)庫,如SQL Server,Oracle,DB2等,還支持對其他系統(tǒng)模塊接口和數(shù)據(jù)源的調(diào)用。
4、結(jié)語
綜上所述,MVC設(shè)計(jì)模式使軟件開發(fā)過程更加規(guī)范和精煉,能產(chǎn)生易復(fù)用、易擴(kuò)展、易維護(hù)的程序代碼。NHibernate框架使開發(fā)人員從枯燥的SQL語句中解放出來,將更多的精力投入到業(yè)務(wù)邏輯的實(shí)現(xiàn)上。本文將MVC設(shè)計(jì)模式和NHibernate框架進(jìn)行整合,提出了一個(gè).NET平臺下的多層開發(fā)框架,并詳細(xì)設(shè)計(jì)了框架中各層的功能??梢园l(fā)現(xiàn),該開發(fā)框架增加了模型(Model)部分的重用性,降低了層與層之間耦合度,提高了系統(tǒng)的可維護(hù)性、可擴(kuò)充性和可移植性。
參考文獻(xiàn)
[1]陳龍.基于.NET平臺ORM技術(shù)-NHibernate的研究與應(yīng)用[D].長春:長春理工大學(xué),2006.
[2]趙廣利.基于NHibernate的數(shù)據(jù)持久化方案[J].計(jì)算機(jī)工程,2009,35(20).
[3]沈桂群.基于的MVC設(shè)計(jì)模式及實(shí)現(xiàn)[J].軟件開發(fā)與設(shè)計(jì),2009(10).
關(guān)鍵詞:TMS320C5402;最小系統(tǒng);McBSP;人機(jī)接口
中圖分類號:TN929.1 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-2374(2009)01-0120-02
TMS320C5402是TI公司54系列DSP芯片的典型代表,也是目前國內(nèi)DSP教材上介紹最多的芯片,本文所研制的實(shí)驗(yàn)系統(tǒng)就是建立在TMS320C5402的基礎(chǔ)上。本文的研究目的是為大專院校特別是高職院校提供一個(gè)功能完備、價(jià)格低廉、技術(shù)流行、能滿足教學(xué)和開發(fā)雙重需求的DSP課程教學(xué)實(shí)驗(yàn)系統(tǒng)。
一、總體設(shè)計(jì)
本文的研究工作,考察了國內(nèi)外DSP技術(shù)在教學(xué)科研領(lǐng)域的應(yīng)用,認(rèn)真分析了TMS320C54x系列DSP課程實(shí)驗(yàn)教學(xué)的主要內(nèi)容,結(jié)合信號信息處理的新特點(diǎn),制定了基于TMS320C5402芯片的DSP實(shí)驗(yàn)開發(fā)系統(tǒng)功能方框圖,如圖1所示:
本實(shí)驗(yàn)開發(fā)系統(tǒng)以TI公司的DSP芯片TMS320C5402為核心,電路的選擇充分考慮了進(jìn)行DSP實(shí)驗(yàn)和開發(fā)的需要。整個(gè)系統(tǒng)按照功能可以劃分為以DSP芯片為核心的最小系統(tǒng)電路和應(yīng)用電路兩大部分進(jìn)行設(shè)計(jì),最小系統(tǒng)電路主要包括電源電路、時(shí)鐘電路、復(fù)位電路、片外存儲(chǔ)器,自舉加載器及JTAG仿真電路等;應(yīng)用電路主要包括MCBSP串行通信(A/D和D/A)模塊,I/O端口應(yīng)用(液晶顯示和鍵盤)模塊等。通過硬件設(shè)計(jì)和軟件設(shè)計(jì),并把以上電路連接在一起使其成為一個(gè)完整的系統(tǒng),使該系統(tǒng)能開設(shè)出DSP課程的常用實(shí)驗(yàn)和實(shí)訓(xùn)項(xiàng)目,并可以作為基本的開發(fā)系統(tǒng)。
二、最小系統(tǒng)電路
最小系統(tǒng)模塊是使得DSP芯片TMS320C5402能夠工作的最精簡模塊,它主要包括電源電路、復(fù)位電路、時(shí)鐘電路和存儲(chǔ)器接口電路。
(一)電源電路
本系統(tǒng)中除了DSP以外其他器件工作電壓為5V或3.3V,所以我們采用5V電源供電。VC5402所要的工作電壓分別是1.8V內(nèi)核電壓(CVDD)和3.3V I/O 電壓(DVDD),并且DSP對這兩種電源加電次序也有要求,理想情況下兩個(gè)電源同時(shí)加電,但是一般場合很難做到,這時(shí)應(yīng)先對CVDD加電,然后對DVDD上電。鑒于噪聲的簡單性,我們通過TI公司提供的DSP專用電源芯片TPS73HD318來構(gòu)建電源電路,實(shí)現(xiàn)5V向3.3V和1.8V的電壓轉(zhuǎn)換,同時(shí)也避免了上電次序的問題。
(二)復(fù)位電路
C5402的復(fù)位分為軟件復(fù)位和硬件復(fù)位,軟件復(fù)位是通過執(zhí)行指令實(shí)現(xiàn)芯片的復(fù)位,硬件復(fù)位是通過硬件電路實(shí)現(xiàn)芯片的復(fù)位,硬件復(fù)位有上電復(fù)位、手動(dòng)復(fù)位和自動(dòng)復(fù)位三種。本系統(tǒng)中,由于我們選擇了DSP專用的電源管理芯片TPS73HD318,該芯片本身可以提供寬度為200ms的低電平上電復(fù)位脈沖,為了使系統(tǒng)電路簡單,所以不再設(shè)計(jì)自動(dòng)復(fù)位電路,手動(dòng)復(fù)位電路與與其他微機(jī)復(fù)位方法一樣,只是參數(shù)選擇要保證提供200ms左右的負(fù)脈沖。
(三)時(shí)鐘電路
為了實(shí)現(xiàn)DSP系統(tǒng)實(shí)時(shí)處理信號的效果,希望系統(tǒng)頻率越快越好。C5402最高可達(dá)1OOMHz工作頻率,如果仍采用傳統(tǒng)的2分頻或4分頻的方式,勢必要求外部頻率很高,這里我們采用了更加靈活的可編程PLL(Programmable Phase-Locked Loop)方式。
本系統(tǒng)中,外接晶體頻率為1OMHz,為了得到倍頻系數(shù)10,需設(shè)置時(shí)鐘模式寄存器CLKMD的值為9007h,引腳CLKMD1~CLKKMD3設(shè)計(jì)成001,則復(fù)位后VC5402的工作頻率是10×10=1OOMHz。
(四)片外存儲(chǔ)器
C5402的存儲(chǔ)空間可達(dá)192K×16bits,64K程序空間,64K數(shù)據(jù)空間,64KI/O空間。C5402片內(nèi)具有4K×16bits的ROM和16K×16bits的RAM。片內(nèi)POM和RAM可以根據(jù)PMST寄存器中的DROM、OVLY來靈活設(shè)置,使其映像在程序空間和數(shù)據(jù)空間。程序空間和數(shù)據(jù)空間未被映像的部分和64K的I/O空間全部在片外,用片外存儲(chǔ)器來補(bǔ)充。在實(shí)際的應(yīng)用中,應(yīng)該根據(jù)程序量的大小來選擇作為片外空間的存儲(chǔ)芯片的容量,以免造成不必要的浪費(fèi),本文選擇IS61LV25616AL(256K×16bits)作為程序存儲(chǔ)器的片外存儲(chǔ)芯片,選擇SST39LF200A(128K×16bits)的Flash作為數(shù)據(jù)存儲(chǔ)器的片外存儲(chǔ)芯片,以實(shí)現(xiàn)自舉加載,使C5402自成獨(dú)立系統(tǒng),圖2為硬件連接圖。
(五)JTAG仿真接口
在做實(shí)驗(yàn)時(shí),需要一個(gè)DSP仿真器,把在計(jì)算機(jī)上編譯并生成的執(zhí)行代碼下載到C5402芯片上,實(shí)現(xiàn)在線調(diào)試DSP硬件和軟件。仿真器有兩端接口,其中一端與計(jì)算機(jī)的并行口或USB口相連,這取決于仿真器的類型,另一端與DSP芯片的JTAG接口相連,這是一個(gè)14針的接口,需注意EMUO和EMU1腳應(yīng)接上拉電阻,推薦阻值為4.7k或10k。
三、應(yīng)用電路
(一)中斷模塊
DSP的中斷包括不可屏蔽中斷 和 ,外部中斷 ~
和軟中斷。中斷響應(yīng)實(shí)際是特殊的程序調(diào)用過程。當(dāng)滿足中斷響應(yīng)條件時(shí),相應(yīng)的中斷服務(wù)程序被調(diào)用。中斷的使用包括中斷設(shè)置和中斷服務(wù)程序設(shè)計(jì)。本系統(tǒng)只使用了 一個(gè)中斷管腳,其他外部中斷管腳都接高電平。在做中斷實(shí)驗(yàn)時(shí),可以通過按鈕開關(guān)使腳接高電平或低電平,以給出中斷申請信號。
(二)McBSP模塊
在DSP應(yīng)用系統(tǒng)設(shè)計(jì)中必不可少的是各種數(shù)據(jù)傳輸接口的設(shè)計(jì)。與并行接口相比,串行接口的最大特點(diǎn)是減少了器件引腳數(shù)目,降低了接口設(shè)計(jì)復(fù)雜性。多數(shù)DSP芯片提供的是同步串口,TMS320C5402提供的多通道緩沖串口(McBSP)可以很方便地與編解碼芯片(CODEC)或串行ADC直接連接,使得電路的設(shè)計(jì)更加簡捷。
TMS320C5402與TLC320AD50C硬件接口電路如圖3所示[1]。將TLC320AD50C的數(shù)字電源端DVDD接到3.3V電源,AVDD接到5V電源;管腳M/S經(jīng)過10K電阻上拉,將TLC320AD50C設(shè)置成主動(dòng)工作模式;選擇INP和INM作為ADC的輸入,將AUXP和AUXM接至模擬地;DAC的正相輸出經(jīng)過一階低通濾波后送給模擬設(shè)備,反相輸出不用;管腳FC接地,系統(tǒng)只能采用軟件方式申請觸發(fā)次通信模式;數(shù)據(jù)格式為15+1比特模式。輸入主時(shí)鐘MCLK為8.192MHz,采樣頻率選擇為8KHz,內(nèi)部PLL使能(控制寄存器4中的N=8)。通過寄存器設(shè)置,將TMS320C5402的FSX、FSR、CLKR、CLKX配置為外部輸人,TLC320AD50C的SCLK配置為內(nèi)部產(chǎn)生[2]。這樣數(shù)據(jù)接收/發(fā)送幀同步信號、移位時(shí)鐘信號均由TLC320AD50C產(chǎn)生。串行口的接收/發(fā)送過程受TLC320AD50C的控制。
(三)人機(jī)接口模塊
由于DSP并不具備人機(jī)界面,在實(shí)際使用過程中,需要為它提供一個(gè)人機(jī)界面,以便于觀察運(yùn)行結(jié)果或傳遞必要的控制信息。目前,DSP芯片的人機(jī)接口模塊大多數(shù)都用單片機(jī)來完成,這樣既增加開發(fā)成本又使系統(tǒng)更加復(fù)雜。本系統(tǒng)的人機(jī)接口的成功實(shí)現(xiàn)為DSP芯片直接開發(fā)人機(jī)借口模塊提供了可能。
本系統(tǒng)選用字符液晶顯示模塊LCM1602和同相三態(tài)雙向總線收發(fā)器74LS245,通過TMS320C5402的I/O口功能擴(kuò)展直接構(gòu)建DSP的晶顯示模塊;相應(yīng)的I/O操作口地址有兩種:讀狀態(tài)、寫指令為0000H,讀數(shù)據(jù)、寫數(shù)據(jù)為0001H。通過74HC573鎖存器擴(kuò)展的鍵盤由行鎖存器、列鎖存器和3×5矩陣式鍵盤組成[2];該鍵盤占用兩個(gè)I/O端口,分別為:行鎖存器為輸出口,作為寫鍵盤端口;列鎖存器為輸入口,作為讀鍵盤端口,兩端口的地址分別為:讀鍵盤端口地址RKEYP=7FFFH,寫鍵盤端口地址WKEYP=BFFFH。
(四)實(shí)驗(yàn)項(xiàng)目
本實(shí)驗(yàn)系統(tǒng)可以開設(shè)出基礎(chǔ)實(shí)驗(yàn)和綜合實(shí)驗(yàn),還可以通過功能擴(kuò)展進(jìn)行簡單產(chǎn)品開發(fā)實(shí)訓(xùn)。通過基礎(chǔ)性實(shí)驗(yàn),可以讓學(xué)生進(jìn)行編程練習(xí),熟悉集成開發(fā)環(huán)境CCS,掌握調(diào)試程序的一般方法,加深學(xué)生對TMS320C5402芯片的認(rèn)識;通過綜合性實(shí)驗(yàn),可以加強(qiáng)學(xué)生對TMS320C5402芯片的全面了解,讓學(xué)生掌握外設(shè)和接口的使用方法,提高學(xué)生的綜合應(yīng)用能力,為開發(fā)產(chǎn)品打下良好基礎(chǔ);通過產(chǎn)品開發(fā)實(shí)例的訓(xùn)練,可以讓學(xué)生了解開發(fā)產(chǎn)品的基本過程和基本方法,培養(yǎng)學(xué)生分析問題解決問題的能力,為今后從事產(chǎn)品開發(fā)打下良好基礎(chǔ)。
本系統(tǒng)的實(shí)驗(yàn)項(xiàng)目主要包括:外部標(biāo)志輸出引腳(XF)實(shí)驗(yàn)、轉(zhuǎn)移控制輸入引腳實(shí)驗(yàn)、Boot及flash讀寫實(shí)驗(yàn)、定時(shí)器實(shí)驗(yàn)、中斷實(shí)驗(yàn)、FIR實(shí)驗(yàn)、IIR實(shí)驗(yàn)、語音通信實(shí)驗(yàn)、數(shù)據(jù)采集實(shí)驗(yàn)、正弦波產(chǎn)生實(shí)驗(yàn)、LCD 顯示實(shí)驗(yàn)、鍵盤驅(qū)動(dòng)實(shí)驗(yàn)等實(shí)驗(yàn)項(xiàng)目。這些實(shí)驗(yàn)項(xiàng)目完全能夠滿足DSP這門課程的實(shí)驗(yàn)教學(xué),同時(shí),還可以利用本系統(tǒng)進(jìn)行相關(guān)的產(chǎn)品開發(fā)。
四、結(jié)語
本文所介紹的DSP實(shí)驗(yàn)開發(fā)系統(tǒng),接口電路簡單,編程方便,且該實(shí)驗(yàn)開發(fā)系統(tǒng)已經(jīng)通過硬件和軟件調(diào)試,系統(tǒng)工作穩(wěn)定,所以,本系統(tǒng)有一定的推廣應(yīng)用價(jià)值。
參考文獻(xiàn)
[1]李利.DSP原理及應(yīng)用[M].北京:中國水利水電出版社,2004.