《基于Xilinx FPGA的多核嵌入式系統(tǒng)設計基礎》課件第4章_第1頁
《基于Xilinx FPGA的多核嵌入式系統(tǒng)設計基礎》課件第4章_第2頁
《基于Xilinx FPGA的多核嵌入式系統(tǒng)設計基礎》課件第4章_第3頁
《基于Xilinx FPGA的多核嵌入式系統(tǒng)設計基礎》課件第4章_第4頁
《基于Xilinx FPGA的多核嵌入式系統(tǒng)設計基礎》課件第4章_第5頁
已閱讀5頁,還剩145頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

4.1簡單硬件系統(tǒng)設計4.2添加IP核到硬件系統(tǒng)4.3自定義IP核的設計與添加4.4基本的應用軟件設計4.5使用SDK進行軟件設計

4.6本章小結

■實驗簡介:本實驗可以引導大家通過使用XilinxPlatformStudio(XPS)創(chuàng)建一個基于XUPVirtex-ⅡPro開發(fā)板的簡單的硬核(PPC)處理器系統(tǒng),本實驗將成為本章后續(xù)實驗的基礎。4.1簡單硬件系統(tǒng)設計本次實驗的目的是完成一個處理器系統(tǒng)的設計。每個實驗都是建立在先前實驗的基礎上的。完整的設計模塊圖如圖4.1.1所示。

所有涉及的IP核均用深色背景突出,如圖4.1.2所示。圖4.1.1完整的設計模塊圖圖4.1.2實驗中用到的IP核4.1.1用BSB創(chuàng)建工程

用BSB創(chuàng)建工程的具體步驟如下:

(1)運行XilinxPlatformStudio(XPS),通過BaseSystemBuilder在E:?\Project\embedded\labs\lab1創(chuàng)建一個工程文件。

①選擇“開始”→“程序”→“XilinxISEDesignSuit10.1”→“EDK”→“XilinxPlatformStudio”,運行XPS。

②出現(xiàn)XPS如圖4.1.3所示的界面后,選擇BaseSystemBuilderwizard(recommended)選項并點擊OK按鈕。打開CreateNewXPSProjectUsingBSBWizard對話框。圖4.1.3在XPS窗口選用BSB向導進行工程的新建③定位到E:\Project\embedded\labs\lab1\system.xmp文件夾,點擊OK按鈕,如圖4.1.4所示。

④選擇“Iwouldliketocreateanewdesignoption”選項。

⑤點擊Next按鈕顯示“SelectBoard”對話框如圖4.1.5所示,指定設置如下:

Boardvendor:Xilinx;

Boardname:Virtex-IIProML310EvaluationPlatform;

Boardrevision:D。圖4.1.4工程存放路徑的確定圖4.1.5板型選擇界面⑥點擊Next按鈕,顯示SelectProcessor對話框,如圖4.1.6所示。

⑦選擇PowerPC作為處理器。

⑧點擊Next按鈕顯示ConfigurePowerPCProcessor對話框,如圖4.1.7所示,指定設置如下:

Referenceclockfrequency:100MHz(這是在板上使用的外部時鐘資源,這個時鐘將被用于生成處理器和總線時鐘,它的作用取決于使用的FPGA或開發(fā)板,因為用來執(zhí)行時鐘乘除運算的片上資源是確定的)。圖4.1.6處理器選擇對話框圖4.1.7配置PowerPC處理器的對話框

(2)選擇RS232_Uart_1作為唯一的外部設備,選擇64KbPLB控制器并生成連接腳本。

①點擊Next按鈕顯示ConfigureIOInterfaces對話框,選擇RS232_Uart_1選項,在Peripheral中選擇XPSUARTLITE,在Baudrate中選擇115200,在Parity中選擇NONE,其他的外設全部設置為缺省,如圖4.1.8所示。圖4.1.8IO接口設置對話框②不要選擇Ethernet_MAC選項。

③點擊Next按鈕,直到出現(xiàn)AddInternalPeripherals對話框,如圖4.1.9所示。PLB的時鐘RAM界面控制器可以通過點擊AddPeripheral按鈕來添加附加的內部設備,可以通過對象選擇對已存在的工程添加外部設備。圖4.1.9AddInternalPeripherals對話框④在Memorysize中選擇64KB,然后點擊Next按鈕,會彈出SoftwareSetup對話框,如圖4.1.9所示。

⑤點擊Next按鈕出現(xiàn)存儲測試配置選項,如圖4.1.10所示。點擊Next按鈕,默認圖4.1.11的設置,繼續(xù)點擊Next按鈕。

⑥點擊Next按鈕出現(xiàn)外設測試配置選項,如圖4.1.12所示。

⑦點擊Next按鈕顯示SystemCreated對話框,如圖4.1.13所示,可以查看當前系統(tǒng)的創(chuàng)建概況和各個信息。圖4.1.10SoftwareSetup對話框圖4.1.11ConfigureMemoryTestApplication對話框圖4.1.12ConfigurePeripheralTestApplication界面設置圖4.1.13SystemCreated對話框4.1.2分析已創(chuàng)建的工程

在XPS的ProjectInformationArea窗口下,顯示已創(chuàng)建的工程文件信息,如圖4.1.14所示。圖4.1.14ProjectInformationArea窗口下顯示的信息

(1)重新觀察SystemAssembly窗口,如圖4.1.15所示,觀察設計中使用的各種構成要素。圖4.1.15SystemAssemblyView面板下的信息4.1.3生成硬件IP網(wǎng)表文件

使用PlatGen創(chuàng)建硬件網(wǎng)表的具體步驟如下:

(1)在XPS中,選擇Hardware→GenerateNetlist或者點擊工具欄中的按鈕。

(2)在控制窗口中查看網(wǎng)表的生成過程。

(3)選擇“開始”→“程序”→“附件”→“WindowsExplorer”,打開WindowsExplorer對話框。

(4)瀏覽Lab1文件夾。其中一些文件夾包含了已創(chuàng)建的VHDL網(wǎng)表文件。

列出已經(jīng)生成的目錄。4.1.4下載測試程序

下載測試程序的具體步驟如下:

(1)在Applications欄中,右鍵點擊TestApp_Peripheral工程并選擇“MarktoInitializeBRAM”。

(2)右鍵點擊TestApp_Peripheral工程并讓“MarktoInitializeBRAMs”不被選上。

(3)選擇DeviceConfiguration→UpdateBitstream。

(4)連接啟動XUP開發(fā)板。

(5)打開PuTTY終端仿真工具,如圖4.1.16所示。圖4.1.16PuTTY終端仿真工具當然,也可以打開附件→通訊→超級終端,設置參數(shù)如圖4.1.17所示。

(6)選擇DeviceConfiguration→Downloadbitstream,可以觀察到如圖4.1.18所示的終端輸出結果。圖4.1.17通訊端口設置信息圖4.1.18終端輸出結果本實驗的目的是擴展實驗1中的硬件設計。實驗1中包含了硬核處理器、PLB總線、JTAG_PPC、Proc_sys_reset、DCM、UART、PLBRAMController和PLBBRAM等。本實驗通過添加其他組件來擴展硬件設計,在實驗中,將要用XPS系統(tǒng)對話框模式和文本模式來添加下面的IP核到一個已經(jīng)存在的處理器系統(tǒng)中,如圖4.2.1所示。4.2添加IP核到硬件系統(tǒng)圖4.2.1實驗2的設計模塊圖4.2.1打開工程

創(chuàng)建一個lab2文件夾,復制lab1中的所有內容到lab2中,登錄XPS并從該環(huán)境中打開工程文件或者直接雙擊system.xmp工程圖標。4.2.2擴展硬件系統(tǒng)

XPS提供了兩種方法來添加外設到一個存在的工程中,即:

利用IPCatalog來添加大部分IP核到已存在的工程,如本實驗中的xps_gpio(twoinstances)和xps_bram_if_cntlr、Bramblock;

利用手動編輯MHS文件來添加IP核到處理器系統(tǒng)。

下面介紹利用IPCatalog添加IP核到處理器系統(tǒng),具體步驟如下:

(1)在XPS界面中的ProjectInformationArea下選擇IPCatalog,如圖4.2.2所示。圖4.2.2IPCatalog下可選用的各個IP核列表

(2)選擇所需要的外設,通過右擊“AddIP”選項或者直接雙擊可添加外設到工程文件中。

(3)在SystemAssemblyView面板下通過左擊各個IP核的Name,可以修改其實例名稱,按表4.2.1給實例重命名。表4.2.1給實例重命名最后在SystemAssembly面板下顯示修改的實例名如圖4.2.3所示,其中在BusInterfaces窗口下顯示了各個IP核與總線的連接關系,而所有的重命名IP核也均在圖中圈出來了。

(4)為這兩個IP核設置正確的總線連接,如圖4.2.4所示。圖4.2.3修改實例名圖4.2.4IP核的總線連接

(5)雙擊dip1,為該實例設置公共參數(shù),如圖4.2.5和圖4.2.6所示。

(6)以同樣的方式雙擊push1,對其公共參數(shù)進行相應的設置,如圖4.2.7、圖4.2.8所示,設置完畢后點擊OK按鈕。圖4.2.5dip1在Common下的設置(1)圖4.2.6dip1在Channel1下的設置(2)圖4.2.7push1實例在Common下的設置(1)圖4.2.8push1實例在Channel1下的設置(2)

(7)增加額外的端口到外設并連接它們,這些端口必須要與內部的Net名相一致。選擇SystemAssemblyView面板下的Ports界面,對其設置,如圖4.2.9所示。

(8)輸入上述步驟的端口連接后,在同一個下拉框中選擇將DIP和PUSH內部連接信號“MakeExternal”分別連接到FPGA的I/O引腳上,如圖4.2.10所示。設置之后會在上述的ExternalPorts項中出現(xiàn)這兩個聲明端口。圖4.2.9設置新的端口連接信號圖4.2.10將其內部信號連接進行“MakeExternal”設置

(9)進入Address界面,為新增加的各個IP核進行地址分配。最后的分配結果如圖4.2.11所示。地址分配也有兩種模式,分別是:

將其他地址“LOCK”,然后點擊按鈕,讓XPS自動為其分配不沖突的地址空間,內存大小可以手動設定;

進行手動的地址分配,注意分配的時候不要讓地址之間出現(xiàn)沖突。圖4.2.11為新增IP核分配地址

(10)增加代碼來執(zhí)行dip1開關和push1按鈕的功能,具體步驟包括:

①點擊Application選項并雙擊TestApp_Memory.c文件,如圖4.2.12所示。

②刪除源文件中main下的所有代碼,添加如圖4.2.13所示的代碼進入本文件。

③注意需要加上頭文件“xgpio.h”。圖4.2.12TestApp_Memory.c文件位置圖4.2.13源代碼的片段圖4.2.14UCF文件編輯4.2.3分析MHS文件

(1)打開system.mhs文件(如果沒有打開system.mhs文件,則雙擊system.mhs文件來打開),觀察外部端口部分并完成以下的問題:

Numberofexternalports: ____________

Numberofexternalportsthatareoutput:

____________

Numberofexternalportsthatarebidirectional:

____________

(2)觀察整個MHS文件,列出與sys_clk_s相連接的所有實例:

列出被連接到PLB總線的所有設備:

4.2.4下載比特流

配置和打開一個超級終端窗口,生成比特流并通過EDK下載,檢驗在XUPVirtex-ⅡPro板上的操作,具體步驟如下:

(1)將開發(fā)板與電腦相連接。

(2)在PC機上打開一個超級終端窗口,或利用Putty工具,設置波特率為115200,流控制為none,然后點擊連接按鈕。

(3)點擊按鈕下載比特流到開發(fā)板上。

(4)超級終端上的顯示結果如圖4.2.15所示。

(5)推動按鈕改變開關狀態(tài),觀察超級終端上的變化。圖4.2.15終端的顯示結果本實驗中,可以使用XilinxPlatformStudio(XPS)的CreateandImportPeripheral向導從HDL組件中創(chuàng)建一個用戶外圍設備,增加一個輸入設備實例,并通過修改system.ucf文件來為板上的LED模塊提供接口。本次工程設計中的添加模塊如圖4.3.1所示。4.3自定義IP核的設計與添加圖4.3.1工程設計中即將添加的IP核模塊4.3.1新建一個自定義IP核

新建一個自定義IP核的具體步驟如下:

(1)創(chuàng)建文件夾lab3,并將lab2中的內容復制到lab3文件夾中,以繼續(xù)前一個實驗中的設計,打開CreateorImportPeripheral向導,將外設命名為my_led并且連接到PLB總線。①在原工程目錄下新建一個lab3文件夾,并將lab2文件夾下的所有內容拷貝到其中,打開system.xmp工程;

②點擊Hardware→CreateorImportPeripheralWizard;

③點擊Next按鈕;

④在PeripheralFlow面板中選擇“CreatetemplatesforanewPeripheral”,然后點擊Next按鈕;

⑤在RepositoryorProject面板中,選擇ToanXPSproject,然后點擊Next按鈕,如圖4.3.2所示。圖4.3.2RepositoryorProject界面⑥在NameandVersion面板中,輸入my_led作為外部設備名稱,接受默認版本然后點擊Next按鈕,如圖4.3.3所示。

⑦在BusInterfaces面板中,選擇ProcessorLocalBus(PLBv4.6),并點擊Next按鈕。

(2)繼續(xù)使用向導,選擇Softwarereset和Userlogicsoftwareregister,選擇只有一個32位的軟件可控的寄存器,建立模板驅動文件,選擇路徑為E:\work\embedded\lab3,在整個步驟的最后回答相關的問題。

①在IPIF(IPInterface)Services平臺中,選擇Softwarereset和Userlogicsoftwareregister,如圖4.3.4所示,然后點擊Next按鈕。圖4.3.3自定義IP核的命名與版本界面圖4.3.4IPIF(IPInterface)Sevices對話框②在UserS/WRegister窗口中,Numberofsoftwareaccessibleregisters的個數(shù)選擇1,點擊Next按鈕。

③瀏覽IPInterconnect(IPIC)界面,上面顯示了默認的IPIC信號,如圖4.3.5所示,這些是在之前的步驟中選擇的,是用戶邏輯可以使用的。點擊Next按鈕繼續(xù)。圖4.3.5IPIC內部連接信號界面④在(OPTIONAL)PeripheralSimulationSupport對話框中,如果什么都不選,就不生成任何BFM仿真關聯(lián)文件和目錄,因為BFM仿真需要ModelSim仿真工具,而這一第三方開發(fā)工具并未安裝,直接點擊Next按鈕。

⑤在(OPTIONAL)PeripheralImplementationSupport界面中,不選GenerateISEandXSTprojectfilestohelpyouimplementtheperipheralusingXSTflow,只選擇Generatetemplatedriverfilestohelpyouimplementsoftwareinterface,如圖4.3.6所示。圖4.3.6PeripheralImplementationSupport對話框⑥點擊Next按鈕將會看到如圖4.3.7所示的對話框,核對創(chuàng)建信息,點擊Finish按鈕即可。

(3)在向導生成的my_led_v2_1_0.mpd文件中添加LED端口,路徑為E:\work\embedded\lab3\pcores\my_led_v1_00_a\data。圖4.3.7Congratulations對話框

(4)利用編輯器打開my_led.vhd和user_logic.vhd文件,路徑為E:\work\embedded\lab3\Pcores\my_led_v1_00_a\hdl\vhdl,在這兩個文件中添加必要的聲明和邏輯。

①瀏覽E:\work\embedded\lab3\pcores\my_led_v1_00_a\hdl\vhdl目錄。

②利用UltraEdit工具打開my_led.vhd文件。

③在USERportsaddedhere標記處添加LED端口,如圖4.3.8所示。

④搜索下一個USER添加端口映射聲明,如圖4.3.9所示。圖4.3.8LED端口的聲明代碼圖4.3.9添加映射聲明代碼⑤在vhdl文件夾下打開user_logic.vhd文件,在Userports區(qū)域添加端口LED的定義,如圖4.3.10所示。

⑥搜索下一個USER,并為user_logic定義內部信號,如圖4.3.11所示。

⑦搜索USERlogicimplementation,添加如圖4.3.12所示的代碼。圖4.3.10添加LED端口定義圖4.3.11user_logic內部信號的定義圖4.3.12添加代碼4.3.2添加自定義IP核

在XPS中使用IPCatalog,添加my_led到工程中,并連接到總線上,為my_led實例生成地址,在實例中添加必要的端口,定義合適的名稱和輸出數(shù)據(jù)端口,添加下列代碼到UCF文件中:

Netled<0>LOC=AC4;

Netled<1>LOC=AC3;

Netled<2>LOC=AA6;

Netled<3>LOC=AA5;

(1)在XPS中打開實驗3的工程文件system.xmp。

(2)在IPCatalog區(qū)域中展開工程庫,如圖4.3.13所示,添加自定義設備MY_LED到硬件系統(tǒng)中。圖4.3.13IPCatalog中用戶創(chuàng)建的外部IP核

(3)轉換到BusConnections部分,添加my_led_0到PLB總線上,如圖4.3.14所示。一旦連接到總線上,左側總線上的空心圈會變?yōu)閷嵭娜?,讀者也可以通過這一步驗證外設是否正確連接了。

(4)選擇Addresses區(qū)域,鎖定除my_led_0實例外所有設備的地址。

(5)選擇my_led_0外設的Size為512,然后點擊GenerateAddresses按鈕,如圖4.3.15所示。圖4.3.14連接已創(chuàng)建的外部設備到PLB總線圖4.3.15為my_led_0分配地址(6)打開system.mhs文件并且加入以下一行代碼,如圖4.3.16所示。圖4.3.16system.mhs文件中的添加代碼4.3.3在硬件系統(tǒng)中開發(fā)應用測試程序

生成并且下載比特流,驗證先前實驗的設計,并在下個實驗中修改LED的軟件程序。

(1)點擊DeviceConfiguration→UpdateBitstream生成比特流文件。

(2)將比特流文件下載到開發(fā)板上。

(3)撥動按鈕和開關,超級終端上將有相應的反應。4.4.1打開一個工程

創(chuàng)建一個lab4文件夾,將lab3中所有內容全部復制到該文件夾下,運行XPS,打開位于E:\work\embedded\lab4目錄下的工程文件。4.4基本的應用軟件設計4.4.2創(chuàng)建一個BSP

詳細說明PPC405內核時鐘頻率和驅動接口等級。

(1)選擇Software→SoftwarePlatformSettings,如圖4.4.1所示。

(2)選擇Processor,DriverParameters和InterruptHandlers,然后核實圖4.4.2中的參數(shù)設置。圖4.4.1SoftwarePlatformSettings對話框圖4.4.2ppc405_0實例的軟件平臺參數(shù)設置①選擇Library/OSParameters標簽,校驗RS232_Uart_1被設置為stdin和stdout,按照圖4.4.3來校驗選擇其余部分。

②驅動部分選擇my_led作為my_led外圍設備的驅動,確認設置與圖4.4.4中的設置相匹配。圖4.4.3OS配置參數(shù)4.4.3升級基本的C文件

更新實驗3(見4.3節(jié))的my_led外圍設備的C代碼來顯示DIP轉換設置。

(1)打開TestApp_Memory.c文件。增加函數(shù)的頭文件,與這個項目有關的所有頭文件位于ppc405_0/include和/drivers目錄下。

(2)添加一個將DIP轉換設置值到my_led外圍設備中的函數(shù),即將該函數(shù)加到C文件中:#include“my_led.h”。

(3)打開位于E:\work\embedded\lab4\drivers\my_led_v1_00_a\src下的頭文件my_led.h。

(4)找出頭文件MY_LED_mWriteReg函數(shù)的細節(jié)描述。

(5)在應用程序的標簽中,在TestApp_Memory工程中的ppc405_0實例下,雙擊GeneratedHeader:

ppc405_0/include/xparameters.h進入,如圖4.4.5所示。圖4.4.5雙擊GeneratedHeader文件

(6)增加如下函數(shù),以便dip_switch設置被寫入LEDs中:

MY_LED_mWriteReg(XPAR_MY_LED_0_BASEADDR,0,dip_check);

C代碼具體如圖4.4.6所示。圖4.4.6完成的部分C文件

(7)保存文件,編譯源代碼。

(8)選擇Applications標簽來觀察當前的工程編譯器選項和來源。

(9)在工程TestApp_Memory的應用標簽中,雙擊CompilerOptions。

(10)選擇Environment標簽,并且改變StackSize和HeapSize為0x100,如圖4.4.7所示,點擊OK按鈕保存。圖4.4.7指定堆棧段大小4.4.4連接器腳本

打開CygwinShell,執(zhí)行powerpc-eabi-objdump–hexecutable.elf命令,分析輸出結果。

(1)選擇Project→LaunchEDKShell來啟動CygwinShell。

(2)用cd命令輸入路徑E:\work\embedded\lab4\TestApp_Memory,讀者可以通過pwd命令確認自己的文件路徑,如圖4.4.8所示。圖4.4.8EDKShell

(3)鍵入powerpc-eabi-objdump–hexecutable.elf,在CygwinShell窗口中的快速啟動欄中列出根據(jù)啟動地址和每一個部分的大小劃分的程序的不同部分,讀者將會看到如圖4.4.9所示的結果。圖4.4.9ObjectDumpResults

(4)雙擊工程TestApp_Memory的Applications標簽的CompilerOptions,刪除stackandheap區(qū)域的值。

(5)右擊工程TestApp_Memory的Applications標簽,然后選擇GenerateLinkerScript,如圖4.4.10所示。

選擇xps_bram_if_cntlr_2作為指令的存儲區(qū)域(.textsection),如圖4.4.11所示。圖4.4.10GenerateLinkerScript選項圖4.4.11GenerateLinkerScript對話框

(6)確保輸出連接腳本路徑被設置為TestApp_Memory/src目錄,然后點擊OK按鈕。

(7)重新編譯程序,運行Cygwinshell下的powerpc-eabi-objdump命令。運行界面如圖4.4.12所示。

(8)生成和下載位流來核實功能。輕擊DIP開關,核實LEDs,將按照開關設置點亮LEDs。

(9)關閉工程文件。圖4.4.12重新打開EDKShell對話框本實驗在實驗1、實驗2和實驗3的基礎上擴展了硬件設計,在本實驗中可以添加一個PLB定時器和中斷處理器;通過修改軟件使用定時器模塊,產(chǎn)生在實驗2中添加的周期事件;然后加入中斷機制計算定時器比較事件發(fā)生的次數(shù)。

本實驗中添加的IP核如圖4.5.1所示,實驗由多個步驟組成。4.5使用SDK進行軟件設計圖4.5.1實驗5的設計模塊圖4.5.1打開工程

如果希望繼續(xù)前一次實驗中的設計,那么可以創(chuàng)建一個實驗5(見4.5節(jié))的文件夾并將實驗4(見4.4節(jié))中的所有內容復制到新文件夾下。執(zhí)行XPS并打開system.xmp工程文件,其路徑為E:\work\embedded\lab5。4.5.2添加定時器和中斷控制器

從IPCatalog中選擇XPS定時器和XPS_INTC添加到設計中,并按照以下要求給出系統(tǒng)連接和相關配置:

(1)從IPCatalog的DMAandTimer中添加xps_timer,并重命名為delay。

(2)從IPCatalog的Clock、ResetandInterrupt中添加xps_intc。

(3)連接Timer和Interrupt控制器作為“s”(slave)到PLB總線上,如圖4.5.2所示。圖4.5.2Timer和Interrupt的總線連接

(4)在Addresses下,鎖定可以鎖定的所有地址;選擇Size為512B并點擊GenerateAddress,最后生成的地址如圖4.5.3所示。

(5)在Ports下,將delay的Interrupt中的Net名以timer1作為輸入,另外將其CaptureTrig0的Net名改為net_gnd,如圖4.5.4所示。圖4.5.3Timer與Interrupt的地址分配圖圖4.5.4delay的Net設置

(6)在Ports下,將xps_intc_0的Irq的Net連接到Interrupt上,點擊Intr出現(xiàn)對話框,先選中左邊的timer1,然后點擊后再選擇OK按鈕,如圖4.5.5所示。圖4.5.5設置xps_intc_0的Intr

(7)將ppc405_0的EICC405EXTINPUTIRQ的Net連接到Interrupt上。

(8)雙擊delay打開參數(shù)表,選中OnlyOneTimerispresent,點擊OK按鈕,如圖4.5.6所示。圖4.5.6delay的參數(shù)配置表4.5.3配置BSP

在SoftwarePlatformSettings下將timer_int_handler作為delay中斷處理函數(shù),生成庫并更新xparameters.h文件。

(1)?EDK10.1已經(jīng)在SoftwarePlatformSetting中取消InterruptHandler的界面圖形設置,需要手動將中斷處理函數(shù)在MSS文件中聲明,如圖4.5.7所示。圖4.5.7中斷處理函數(shù)的聲明4.5.4運行SDK

選擇Software→LaunchPlatformStudioSDK,打開SDK。如果是第一次打開SDK,將會出現(xiàn)帶有5個圖標的Welcome窗口。

ImportXPSDesign:導入XPS設計并為其創(chuàng)建一個新的軟件工程;

Overview:認識Eclipse;

Tutorials:Eclipse詳細指南;

Samples:通過代碼樣本研究Eclipse開發(fā);

What’sNew:版本更新信息。4.5.5創(chuàng)建一個C工程

為已選擇的PlatformStudio設計創(chuàng)建一個新的C應用程序工程。

(1)選擇CreateanewSDKApplicationProject并點擊Next按鈕;

(2)當要求輸入工程名的窗口彈出時,鍵入“sdk_lab”作為工程名,這個SDK工程將被保存到\lab5\SDK_projects\sdk_lab。

(3)點擊Finish按鈕。4.5.6管理編譯配置

工程的管理編譯配置的具體步驟:

(1)點擊左側的“C/C++Projects”面板,如圖4.5.8所示。

(2)右擊sdk_lab并選擇Properties,打開屬性對話框(或在主菜單選擇Project→Properties)。

(3)在Propertiesforsdk_lab窗口中,選擇C/C++Build項目。

(4)選擇并觀察應用程序構建的不同配置,這些配置將在生成makefile的時候發(fā)揮作用,如圖4.5.9所示。圖4.5.8C/C++窗口界面圖4.5.9sdk_lab的屬性設置4.5.7添加源程序

在SDK工程中導入system_timer.c源代碼的具體步驟如下:

(1)選擇File→Import,雙擊FileSystem并瀏覽E:\work\embedded\xupvpro\sources路徑,然后選擇system_timer.c源文件并點擊Finish按鈕,將文件加入到工程中。

(2)在Navigator中,雙擊system_timer.c文件,在編輯器中打開文件并進行編譯。當文件在編譯和保存的時候,工程將自動進行編譯和保存。在Problems窗口中,雙擊顯示錯誤的紅色×,它會找到對應的出錯行,如圖4.5.10所示,這時為count添加缺失的全局變量聲明,類型為unsignedint,并設置其初始值為1;為one_second_flag添加缺失的全局變量聲明,類型為int并設置其初始值為0,這些行的出錯提示將會消失。圖4.5.10Navigator界面4.5.8編寫中斷程序并編譯代碼

編寫中斷程序并編譯代碼的具體步驟如下:

(1)在聲明其他全局變量的中斷處理程序代碼中創(chuàng)建一個新的全局變量:unsignedintj=0。

(2)保存文件,注意,不論什么時候保存,源文件都將被編譯,此時未聲明變量的錯誤將會消失。

(3)找到源文件中的中斷處理函數(shù)(一種快速的方法是在outline視圖中雙擊該函數(shù))。

(4)為timer_int_handler創(chuàng)建本地變量:unsignedintcsr。

(5)通過連接參數(shù)添加XTmrCtr_mGetControlStatusReg函數(shù)到代碼。32位返回值應儲存在變量csr中。當輸入函數(shù)名時,在XTmrCtr處停止并點擊Ctrl+空格鍵,將打

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論