參數(shù)傳遞方法、單板加載器、單板和單板仿真器的制造方法【專利摘要】本發(fā)明實施例提出了一種參數(shù)傳遞方法、單板加載器、單板及單板仿真器,該方法包括:調(diào)用命令行參數(shù),其中,該命令行參數(shù)攜帶可執(zhí)行程序標(biāo)識及該可執(zhí)行程序的運行參數(shù);解析該命令行參數(shù)以獲取該可執(zhí)行程序的標(biāo)識及該可執(zhí)行程序的運行參數(shù);根據(jù)該可執(zhí)行程序的標(biāo)識加載該可執(zhí)行程序,其中,該可執(zhí)行程序包含參數(shù)數(shù)據(jù)段;將該可執(zhí)行程序的運行參數(shù)寫入已加載的該可執(zhí)行程序的參數(shù)數(shù)據(jù)段;將已加載的該可執(zhí)行程序發(fā)送給遠程單板。本發(fā)明實施例中,通過將可執(zhí)行程序的運行參數(shù)寫入可執(zhí)行程序的參數(shù)數(shù)據(jù)段,以便單板能夠根據(jù)可執(zhí)行程序的參數(shù)數(shù)據(jù)段的信息初始化可執(zhí)行程序的運行參數(shù),從而實現(xiàn)在單板中支持Main函數(shù)的參數(shù)傳遞?!緦@f明】參數(shù)傳遞方法、單板加載器、單板和單板仿真器【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及計算機領(lǐng)域,更具體的,涉及一種參數(shù)傳遞方法、單板加載器、單板和單板仿真器?!?br>背景技術(shù):
】[0002]與PC上直接運行可執(zhí)行程序不同,單板上為了應(yīng)用程序需要從本地loader加載應(yīng)用程序,本地loader按照標(biāo)準(zhǔn)可執(zhí)行文件格式解析應(yīng)用程序,然后通過串口或者JTAG通道將應(yīng)用程序拷貝至遠程單板,然后單板從規(guī)定好的入口地址開始執(zhí)行可執(zhí)行程序。通用PC上應(yīng)用程序可以解析命令行獲取運行參數(shù),而單板上直接從程序入口地址開始執(zhí)行,無法獲取命令行參數(shù)。[0003]Tensilica公司提供了一套方案支持在單板仿真器上支持Main函數(shù)傳參。Tensilica公司的解決方案是提供與單板仿真器配套的另外一套libc,通過偽指令(真實硬件中不存在的指令)的方式支持應(yīng)用程序Main函數(shù)傳參。此方案需要維護兩套需要維護兩套libc,不統(tǒng)一,維護復(fù)雜,并且要求單板仿真器實現(xiàn)偽指令,真實硬件環(huán)境下的單板不支持運行參數(shù)傳遞。[0004]如何實現(xiàn)在真實硬件環(huán)境下的單板中支持運行參數(shù)傳遞,是本發(fā)明所要解決的問題。【
發(fā)明內(nèi)容】[0005]本發(fā)明提供一種參數(shù)傳遞方法、單板加載器、單板及單板仿真器,能夠?qū)崿F(xiàn)在在單板中支持Main函數(shù)的參數(shù)傳遞。[0006]第一方面,提出了一種單板加載器,該單板加載器包括:調(diào)用單元,用于調(diào)用命令行參數(shù),其中,該命令行參數(shù)攜帶可執(zhí)行程序標(biāo)識及該可執(zhí)行程序的運行參數(shù);解析單元,用于解析該命令行參數(shù)以獲取該可執(zhí)行程序的標(biāo)識及該可執(zhí)行程序的運行參數(shù);載入單元,用于根據(jù)該可執(zhí)行程序的標(biāo)識加載該可執(zhí)行程序,其中,該可執(zhí)行程序包含參數(shù)數(shù)據(jù)段;數(shù)據(jù)寫入單元,用于將該可執(zhí)行程序的運行參數(shù)寫入已加載的該可執(zhí)行程序中的參數(shù)數(shù)據(jù)段;輸出單元,用于將已加載的該可執(zhí)行程序發(fā)送給遠程單板。[0007]結(jié)合第一方面,在第一種可能的實現(xiàn)方式中,具體實現(xiàn)為:該可執(zhí)行程序的格式為ELF。[0008]結(jié)合第一方面或第一方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,具體實現(xiàn)為:該輸出單元具體用于通過聯(lián)合測試行為組織JTAG接口或串口將已加載的該可執(zhí)行程序發(fā)送給遠程單板。[0009]第二方面,提出了一種單板,該單板包括:輸入單元,用于接收遠程的單板加載器發(fā)送的可執(zhí)行程序,該可執(zhí)行程序的參數(shù)數(shù)據(jù)段中攜帶該可執(zhí)行程序的運行參數(shù);初始化單元,用于根據(jù)該可執(zhí)行程序的參數(shù)數(shù)據(jù)段,初始化該可執(zhí)行程序的運行參數(shù)。[0010]結(jié)合第二方面,在第一種可能的實現(xiàn)方式中,該輸入單元具體用于通過JTAG接口或串口接收該可執(zhí)行程序。[0011]結(jié)合第二方面或第二方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,該初始化單元還用于初始化該可執(zhí)行程序中運行參數(shù)以外的其它相關(guān)值;該單板還包括:執(zhí)行單元,用于執(zhí)行該可執(zhí)行程序。[0012]第三方面,提出了一種單板仿真器,該單板仿真器包括:調(diào)用單元,用于調(diào)用命令行參數(shù),其中,該命令行參數(shù)攜帶可執(zhí)行程序標(biāo)識及該可執(zhí)行程序的運行參數(shù);解析單元,用于解析該命令行參數(shù)以獲取該可執(zhí)行程序的標(biāo)識及該可執(zhí)行程序的運行參數(shù);載入單元,用于根據(jù)該可執(zhí)行程序的標(biāo)識加載該可執(zhí)行程序,其中,該可執(zhí)行程序包含參數(shù)數(shù)據(jù)段;數(shù)據(jù)寫入單元,用于將該可執(zhí)行程序的運行參數(shù)寫入已加載的該可執(zhí)行程序中的參數(shù)數(shù)據(jù)段;初始化單元,用于根據(jù)已加載的該可執(zhí)行程序中的參數(shù)數(shù)據(jù)段,初始化該可執(zhí)行程序的運行參數(shù)。[0013]結(jié)合第三方面,在第一種可能的實現(xiàn)方式中,具體實現(xiàn)為:該可執(zhí)行程序的格式為ELF。[0014]結(jié)合第三方面或第三方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,該初始化單元還用于初始化該可執(zhí)行程序中運行參數(shù)以外的其它相關(guān)值;該單板仿真器還包括:執(zhí)行單元,用于執(zhí)行該可執(zhí)行程序。[0015]第四方面,提出了一種參數(shù)傳遞方法,該方法包括:調(diào)用命令行參數(shù),其中,該命令行參數(shù)攜帶可執(zhí)行程序標(biāo)識及該可執(zhí)行程序的運行參數(shù);解析該命令行參數(shù)以獲取該可執(zhí)行程序的標(biāo)識及該可執(zhí)行程序的運行參數(shù);根據(jù)該可執(zhí)行程序的標(biāo)識加載該可執(zhí)行程序,其中,該可執(zhí)行程序包含參數(shù)數(shù)據(jù)段;將該可執(zhí)行程序的運行參數(shù)寫入已加載的該可執(zhí)行程序的參數(shù)數(shù)據(jù)段;將已加載的該可執(zhí)行程序發(fā)送給遠程單板。[0016]結(jié)合第四方面,在第一種可能的實現(xiàn)方式中,具體實現(xiàn)為:該可執(zhí)行程序的格式為ELF。[0017]結(jié)合第四方面或第四方面的第一種可能的實現(xiàn)方式,在第二種可能的實現(xiàn)方式中,將已加載的該可執(zhí)行程序發(fā)送給遠程單板具體實現(xiàn)為:通過聯(lián)合測試行為組織JTAG接口或串口將已加載的該可執(zhí)行程序發(fā)送給遠程單板。[0018]第五方面,提出了一種參數(shù)傳遞方法,該方法包括:接收遠程的單板加載器發(fā)送的可執(zhí)行程序,該可執(zhí)行程序的參數(shù)數(shù)據(jù)段中攜帶該可執(zhí)行程序的運行參數(shù);根據(jù)該可執(zhí)行程序的參數(shù)數(shù)據(jù)段,初始化該可執(zhí)行程序的運行參數(shù)。[0019]第六方面,提出了一種參數(shù)傳遞方法,該方法包括:調(diào)用命令行參數(shù),其中,該命令行參數(shù)攜帶可執(zhí)行程序標(biāo)識及該可執(zhí)行程序的運行參數(shù);解析該命令行參數(shù)以獲取該可執(zhí)行程序的標(biāo)識及該可執(zhí)行程序的運行參數(shù);根據(jù)該可執(zhí)行程序的標(biāo)識加載該可執(zhí)行程序,其中,該可執(zhí)行程序包含參數(shù)數(shù)據(jù)段;將該可執(zhí)行程序的運行參數(shù)寫入已加載的該可執(zhí)行程序中的參數(shù)數(shù)據(jù)段;根據(jù)已加載的該可執(zhí)行程序中的參數(shù)數(shù)據(jù)段,初始化該可執(zhí)行程序的運行參數(shù)。[0020]基于以上技術(shù)方案,本發(fā)明通過在加載階段將可執(zhí)行程序的運行參數(shù)寫入到可執(zhí)行程序的參數(shù)數(shù)據(jù)段,并在運行階段根據(jù)可執(zhí)行程序的參數(shù)數(shù)據(jù)段的信息初始化可執(zhí)行程序的運行參數(shù),從而實現(xiàn)在單板中支持Main函數(shù)的參數(shù)傳遞?!緦@綀D】【附圖說明】[0021]為了更清楚地說明本發(fā)明實施例的技術(shù)方案,下面將對本發(fā)明實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面所描述的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。[0022]圖1是本發(fā)明實施例參數(shù)傳遞方法流程圖。[0023]圖2是本發(fā)明實施例另一參數(shù)傳遞方法流程圖。[0024]圖3是本發(fā)明實施例再一參數(shù)傳遞方法流程圖。[0025]圖4是本發(fā)明實施例再一參數(shù)傳遞方法流程圖。[0026]圖5是本發(fā)明實施例再一參數(shù)傳遞方法流程圖。[0027]圖6是本發(fā)明實施例單板加載器的結(jié)構(gòu)示意圖。[0028]圖7是本發(fā)明實施例單板的結(jié)構(gòu)示意圖。[0029]圖8是本發(fā)明實施例單板仿真器的結(jié)構(gòu)示意圖。[0030]圖9是本發(fā)明實施例另一單板加載器的結(jié)構(gòu)示意圖。[0031]圖10是本發(fā)明實施例另一單板的結(jié)構(gòu)示意圖。[0032]圖11是本發(fā)明實施例另一單板仿真器的結(jié)構(gòu)示意圖?!揪唧w實施方式】[0033]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明的一部分實施例,而不是全部實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實施例,都應(yīng)屬于本發(fā)明保護的范圍。[0034]為了方便理解本發(fā)明實施例,首先在此介紹本發(fā)明實施例描述中會引入的幾個要素。[0035]運行參數(shù)傳遞:所謂運行參數(shù)傳遞指的是C/C++等編程語言中的Main函數(shù),經(jīng)常帶有參數(shù)argc,argv,例如,Main函數(shù)intMain(intargc,char**argv)及intMain(intargc,char*argv[])中,參數(shù)argc,argv的作用包括:argc用于存儲命令行輸入?yún)?shù)的個數(shù)(以空白符分隔),argv用于存儲所有的命令行參數(shù)。不妨假設(shè)可執(zhí)行程序是hello,exe,如果在命令行運行該程序,且運行目錄為該程序所在目錄,運行命令為:“hell0.exehelloworld”,則此時argc的值是3,argv[O]是"hell0.exe〃,argv[I]是"hello",argv[2]是〃world〃。[0036]仿真器:(simulator),其軟件稱為模擬軟件,是指主要通過軟件模擬硬件處理器的功能和指令系統(tǒng)的程序使計算機或者其他多媒體平臺(掌上電腦,手機)能夠運行其他平臺上的軟件。[0037]Libc:Libc是Linux下的ANSIC的函數(shù)庫。ANSIC是基本的C語言函數(shù)庫,包含了C語言最基本的庫函數(shù)。[0038]串口(SerialPort):串行端口,一個輸入/輸出端口(通道),它可以以每次一位的方式從計算機的CPU或通信設(shè)備上接收數(shù)據(jù)或是向它們發(fā)送數(shù)據(jù)。串行端口用于串行數(shù)據(jù)通信以及許多外圍設(shè)備的接口,如:鼠標(biāo)和打印機。[0039]聯(lián)合測試行為組織(JointTestAct1nGroup,JTAG):一個由幾家主要的電子制造商組成的組織,目的在于制定印制電路板(PrintedCircuitBoard,PCB)板和集成電路(IntegratedCircuit,IC)標(biāo)準(zhǔn)。JTAG通常用來表示該組織提出的國際標(biāo)準(zhǔn)測試協(xié)議,主要用于芯片內(nèi)部測試。[0040]可執(zhí)行連接格式(ExecutableandLinkableFormat,ELF):為x86架構(gòu)上的類Unix操作系統(tǒng)的二進制文件格式標(biāo)準(zhǔn)。因其可擴展性與靈活性,也可應(yīng)用在其它處理器、計算機系統(tǒng)架構(gòu)的操作系統(tǒng)上。Elf文件中包含一些存儲程序和數(shù)據(jù)的部分,稱為段。其中程序段保存二進制程序,數(shù)據(jù)段用于保存程序的全局變量和靜態(tài)變量。[0041]當(dāng)前一些基帶單板需要支持多模(UMTS,LTE等網(wǎng)絡(luò)),在啟動單板時需要通過應(yīng)用程序傳參的方式指定啟動何種網(wǎng)絡(luò)。例如通過-LTE選項指定啟動LTE網(wǎng)絡(luò)。[0042]在對單板應(yīng)用程序和單板進行測試時,需要針對不同場景進行測試。如果不支持應(yīng)用程序main函數(shù)傳參,需要對每種測試場景進行編譯,構(gòu)建對應(yīng)單板應(yīng)用測試程序。[0043]支持單板應(yīng)用程序參數(shù)傳遞之后,可以通過單板應(yīng)用程main函數(shù)參數(shù)靈活控制測試場景,只需要編譯一次,之后就可以通過命令行參數(shù)控制測試的應(yīng)用場景,而且可以對測試場景進行靈活參數(shù)配置。[0044]圖1是本發(fā)明實施例參數(shù)傳遞的方法流程圖。圖1的方法由單板加載器執(zhí)行。[0045]101,調(diào)用命令行參數(shù)。[0046]其中,該命令行參數(shù)攜帶可執(zhí)行程序標(biāo)識及該可執(zhí)行程序的運行參數(shù)。[0047]應(yīng)理解,可執(zhí)行程序的運行參數(shù),是指可執(zhí)行程序的主函數(shù)的參數(shù)。一般情況下,單板的可執(zhí)行程序的主函數(shù)為main函數(shù),可執(zhí)行程序的運行參數(shù)即為可執(zhí)行程序的main函數(shù)的參數(shù)。當(dāng)然,如果可執(zhí)行程序使用其它函數(shù)作為主函數(shù),則運行參數(shù)所指的即為該主函數(shù)的參數(shù)。[0048]本發(fā)明實施例的一個具體例子,單板加載器加載可執(zhí)行程序的調(diào)用命令具體如下:loaderHelloword-argument“argvOargvl,,。[0049]其中,loader為單板加載器,Helloword-argument“argvOargvl”為命令行參數(shù)的內(nèi)容,攜帶可執(zhí)行程序的標(biāo)識Helloword及其運行參數(shù)argvO、argvl。[0050]另外,在具體的應(yīng)用中,可執(zhí)行程序的標(biāo)識,可以是可執(zhí)行程序的一個絕對地址,或者是可執(zhí)行程序的一個相對地址。例如,當(dāng)單板加載器loader加載文件夾“C:\app\”下的名為Helloword的可執(zhí)行程序時,可將當(dāng)前目錄設(shè)置為Helloword所在的目錄“C:\app\”,然后運行命令loaderHe11oword-argument^argvOargvl”,這是相對地址調(diào)用的方式?;蛘?,還可直接執(zhí)行命令loaderC:\app\HeIloword_argument“argvOargvl”,這是絕對地址調(diào)用的方式。[0051]另外,單板加載器調(diào)用命令行參數(shù)時,可在運行界面中手工輸入調(diào)用命令,也可在可執(zhí)行腳本中編輯調(diào)用命令,然后執(zhí)行可執(zhí)行腳本。例如,在批處理文件中輸入調(diào)用命令等。[0052]102,解析該命令行參數(shù)以獲取該可執(zhí)行程序的標(biāo)識及該可執(zhí)行程序的運行參數(shù)。[0053]具體的,單板加載器通過解析命令行參數(shù),可得到該可執(zhí)行程序的標(biāo)識及該可執(zhí)行程序的運行參數(shù)。例如,根據(jù)命令行參數(shù)Helloword-argument“argvOargvl”,單板加載器loader可確定可執(zhí)行程序的標(biāo)識為Helloword,并確定可執(zhí)行程序的運行參數(shù)argvO、argvlο[0054]103,根據(jù)該可執(zhí)行程序的標(biāo)識加載該可執(zhí)行程序。[0055]其中,該可執(zhí)行程序包含參數(shù)數(shù)據(jù)段。[0056]可選地,可執(zhí)行程序的格式為ELF。[0057]不妨本發(fā)明實施例的一個鏈接腳本對Helloword內(nèi)存段定義具體如下:[0058]MEMORY[0059]{[0060]sram0_seg:org=0x38000000,Ien=0x40[0061]sraml—seg:org=0x38000040,Ien=0x40[0062]sram2_seg:org=0x38000080,Ien=0x40[0063]sram3_seg:org=0x380000c0,Ien=0x40[0064]sram4_seg:org=0x38000100,Ien=0x40[0065]sram5_seg:org=0x38000140,Ien=0x40[0066]sraml4_seg:org=0x38000180,Ien=0x7fe80[0067]sraml5_seg:org=0x40000000,Ien=0xffff980[0068]sraml6_seg:org=0x4ffff980,Ien=0x100[0069]sraml7_seg:org=0x4ffffa80,Ien=0x300[0070]sraml8_seg:org=0x4ffffd80,Ien=0x100[0071]sraml9_seg:org=0x4ffffe80,Ien=0x180[0072]......[0073]arg—data—seg:org=0x38201000,Ien=0xl000/*user_defineddatasegmentusedforargumentsstore氺/[0074]}其中,參數(shù)數(shù)據(jù)段為arg_data_seg。[0075]104,將該可執(zhí)行程序的運行參數(shù)寫入已加載的該可執(zhí)行程序中的參數(shù)數(shù)據(jù)段。[0076]首先,可通過段名查找到存放運行參數(shù)的參數(shù)數(shù)據(jù)段arg_data_seg。[0077]然后,將運行參數(shù)的個數(shù)、參數(shù)值、參數(shù)指針等信息記錄到arg_data_seg中。[0078]以loaderC:\app\Helloword_argument“argvOargvl,,的調(diào)用命令為例。一段實現(xiàn)的偽代碼及其步驟說明具體如下:[0079]//定義數(shù)據(jù)指針指向自定義數(shù)據(jù)段[0080]char氺ptr—mem=arg—data—seg—addr;[0081]//備注:內(nèi)存中參數(shù)數(shù)據(jù)段前三個長整型分別保存argc,argv[0]地址,argv[I]地址[0082]//1.內(nèi)存參數(shù)數(shù)據(jù)段首地址保存argc的值[0083]((long*)ptr_mem)[0]=(long)2;[0084]//2.保存argv[0]的地址[0085]((long*)ptr_mem)[I]=ptr_mem+sizeof(long)*3;[0086]//3.保存argv[0]的地址[0087]((long*)ptr_mem)[2]=ptr_mem+sizeof(long)*3+length(argv[0]);[0088]//4.保存argv[0]的值[0089]strcpy(ptr_mem+sizeof(long)*3,argv[0]);[0090]//5.保存argv[I]的值[0091]strcpy(ptr_mem+sizeof(long)*3+length(argv[0]),argv[I]);[0092]當(dāng)然,在具體的實現(xiàn)中,由于參數(shù)個數(shù)是不確定地,參數(shù)數(shù)據(jù)段的寫入可通過for循環(huán)、while循環(huán)等來實現(xiàn)。本領(lǐng)域的技術(shù)人員可以很容易的實現(xiàn),本發(fā)明實施例不再贅述。[0093]105,將已加載的該可執(zhí)行程序發(fā)送給遠程單板。[0094]具體地,單板加載器loader可通過JTAG接口或串口將該可執(zhí)行程序發(fā)送給遠程單板。[0095]當(dāng)然,也不排除使用其它接口發(fā)送的可能。[0096]本發(fā)明實施例中,通過將可執(zhí)行程序的運行參數(shù)寫入可執(zhí)行程序的參數(shù)數(shù)據(jù)段,以便單板能夠根據(jù)可執(zhí)行程序的參數(shù)數(shù)據(jù)段的信息初始化可執(zhí)行程序的運行參數(shù),從而實現(xiàn)在單板中支持Main函數(shù)的參數(shù)傳遞。[0097]圖2是本發(fā)明實施例參數(shù)傳遞的方法流程圖。圖2的方法由單板執(zhí)行。[0098]201,接收遠程的單板加載器發(fā)送的可執(zhí)行程序。[0099]其中,該可執(zhí)行程序的參數(shù)數(shù)據(jù)段中攜帶該可執(zhí)行程序的運行參數(shù)。[0100]具體地,單板可通過JTAG接口或串口接收遠程的單板加載器發(fā)送的可執(zhí)行程序。當(dāng)然,也不排除使用其它接口接收的可能。[0101]202,根據(jù)該可執(zhí)行程序的參數(shù)數(shù)據(jù)段,初始化該可執(zhí)行程序的運行參數(shù)。[0102]在具體的應(yīng)用中,單板可通過函數(shù)庫Iibc來實現(xiàn)可執(zhí)行程序的運行參數(shù)的初始化操作。具體地,可修改函數(shù)庫libc,使之能夠從參數(shù)數(shù)據(jù)段解析main函數(shù)的參數(shù),并通過修改main函數(shù)棧設(shè)置main函數(shù)的參數(shù)argc和argv。[0103]不妨假設(shè)單板以圖1所示的實施例發(fā)送可執(zhí)行程序。[0104]此時,單板從可執(zhí)行程序Helloword的參數(shù)數(shù)據(jù)段中,得到可執(zhí)行程序Helloword的運行參數(shù)argvO和argvl,然后初始化Helloword的Main函數(shù)的參數(shù)。[0105]本發(fā)明實施例中,通過接收單板加載器發(fā)送的可執(zhí)行程序,并根據(jù)可執(zhí)行程序中的參數(shù)數(shù)據(jù)段的信息初始化可執(zhí)行程序的運行參數(shù),從而實現(xiàn)在單板中支持Main函數(shù)的參數(shù)傳遞。[0106]可選地,如圖3所示,該方法還可包括:[0107]203,初始化該可執(zhí)行函數(shù)中運行參數(shù)以外的其它相關(guān)值。[0108]204,執(zhí)行該可執(zhí)行程序。[0109]圖4是本發(fā)明實施例參數(shù)傳遞的方法流程圖。圖4的方法由單板仿真器執(zhí)行。[0110]401,調(diào)用命令行參數(shù)。[0111]其中,該命令行參數(shù)攜帶可執(zhí)行程序標(biāo)識及該可執(zhí)行程序的運行參數(shù)。[0112]應(yīng)理解,可執(zhí)行程序的運行參數(shù),是指可執(zhí)行程序的主函數(shù)的參數(shù)。一般情況下,可執(zhí)行程序的主函數(shù)為main函數(shù),可執(zhí)行程序的運行參數(shù)即為可執(zhí)行程序的main函數(shù)的參數(shù)。當(dāng)然,如果可執(zhí)行程序使用其它函數(shù)作為主函數(shù),則運行參數(shù)所指的即為該主函數(shù)的參數(shù)。[0113]本發(fā)明實施例的一個具體例子,單板仿真器加載可執(zhí)行程序的調(diào)用命令具體如下:simulatorHelloword-argument“argvOargvl,,。[0114]其中,simulator為單板仿真器,Helloword-argument“argvOargvl”為命令行參數(shù)的內(nèi)容,攜帶可執(zhí)行程序的標(biāo)識Helloword及其運行參數(shù)argvO、argvl。[0115]另外,在具體的應(yīng)用中,可執(zhí)行程序的標(biāo)識,可以是可執(zhí)行程序的一個絕對地址,或者是可執(zhí)行程序的一個相對地址。例如,當(dāng)單板仿真器simulator加載文件夾“C:\app\”下的名為HellowOTd的可執(zhí)行程序時,可將當(dāng)前目錄設(shè)置為HellowOTd所在的目錄“C:\app\”,然后運行命令simulatorHelloword-argument“argvOargvl”,這是相對地址調(diào)用的方式?;蛘撸€可直接執(zhí)行命令simulatorC:\app\HeIloword_argument“argvOargvl”,這是絕對地址調(diào)用的方式。[0116]另外,單板仿真器調(diào)用命令行參數(shù)時,可在運行界面中手工輸入調(diào)用命令,也可在可執(zhí)行腳本中編輯調(diào)用命令,然后執(zhí)行可執(zhí)行腳本。例如,在批處理文件中輸入調(diào)用命令等。[0117]402,解析該命令行參數(shù)以獲取該可執(zhí)行程序的標(biāo)識及該可執(zhí)行程序的運行參數(shù)。[0118]具體的,單板仿真器通過解析命令行參數(shù),可得到該可執(zhí)行程序的標(biāo)識及該可執(zhí)行程序的運行參數(shù)。例如,根據(jù)命令行參數(shù)Helloword-argument“argvOargvl”,單板仿真器simulator可確定可執(zhí)行程序的標(biāo)識為Helloword,并確定可執(zhí)行程序的運行參數(shù)argvO、argvlο[0119]403,根據(jù)該可執(zhí)行程序的標(biāo)識加載該可執(zhí)行程序。[0120]其中,該可執(zhí)行程序包含參數(shù)數(shù)據(jù)段。[0121]可選地,可執(zhí)行程序的格式為ELF。[0122]不妨本發(fā)明實施例的一個鏈接腳本對Helloword內(nèi)存段定義具體如下:[0123]MEMORY[0124]{[0125]sramO—seg:org=0x38000000,Ien=0x40[0126]sraml—seg:org=0x38000040,Ien=0x40[0127]sram2_seg:org=0x38000080,Ien=0x40[0128]sram3_seg:org=0x380000c0,Ien=0x40[0129]sram4_seg:org=0x38000100,Ien=0x40[0130]sram5_seg:org=0x38000140,Ien=0x40[0131]sraml4_seg:org=0x38000180,Ien=0x7fe80[0132]sraml5_seg:org=0x40000000,Ien=0xffff980[0133]sraml6_seg:org=0x4ffff980,Ien=0x100[0134]sraml7_seg:org=0x4ffffa80,Ien=0x300[0135]sraml8_seg:org=0x4ffffd80,Ien=0x100[0136]sraml9_seg:org=0x4ffffe80,Ien=0x180[0137]......[0138]arg—data—seg:org=0x38201000,Ien=0xl000/*user_defineddatasegmentusedforargumentsstore氺/[0139]}其中,參數(shù)數(shù)據(jù)段為arg_data_seg。[0140]404,將該可執(zhí)行程序的運行參數(shù)寫入已加載的該可執(zhí)行程序中的參數(shù)數(shù)據(jù)段。[0141]首先,可通過段名查找到存放運行參數(shù)的參數(shù)數(shù)據(jù)段arg_data_Seg。[0142]然后,將運行參數(shù)的個數(shù)、參數(shù)值、參數(shù)指針等信息記錄到arg_data_seg中。其實現(xiàn)的偽代碼可參考圖1的步驟104中的偽代碼,本發(fā)明實施例在此不再贅述。[0143]405,根據(jù)已加載的該可執(zhí)行程序中的參數(shù)數(shù)據(jù)段,初始化該可執(zhí)行程序的運行參數(shù)。[0144]單板仿真器從已加載的可執(zhí)行程序Helloword的參數(shù)數(shù)據(jù)段中,可得到可執(zhí)行程序Helloword的運行參數(shù)argvO和argvl,然后初始化Helloword的Main函數(shù)的參數(shù)。[0145]本發(fā)明實施例中,通過將可執(zhí)行程序的運行參數(shù)寫入可執(zhí)行程序的參數(shù)數(shù)據(jù)段中,并在模擬運行可執(zhí)行程序時根據(jù)可執(zhí)行程序中的參數(shù)數(shù)據(jù)段的信息初始化可執(zhí)行程序的運行參數(shù),從而實現(xiàn)對單板中支持Main函數(shù)的參數(shù)傳遞的仿真模擬。[0146]另外,本發(fā)明實施例的方法,只需要一套libc,且不需要在單板仿真器的Iibc中實現(xiàn)偽指令。[0147]可選地,如圖5所示,該方法還包括:[0148]406,初始化可執(zhí)行函數(shù)中運行參數(shù)以外的其它相關(guān)值。[0149]407,執(zhí)行該可執(zhí)行程序。[0150]圖6是本發(fā)明實施例單板加載器600的結(jié)構(gòu)示意圖。單板加載器600可包括:調(diào)用單元601,解析單元602,載入單元603,數(shù)據(jù)寫入單元604,和輸出單元605。[0151]調(diào)用單元601,用于調(diào)用命令行參數(shù),其中,該命令行參數(shù)攜帶可執(zhí)行程序標(biāo)識及該可執(zhí)行程序的運行參數(shù);[0152]解析單元602,用于解析該命令行參數(shù)以獲取該可執(zhí)行程序的標(biāo)識及該可執(zhí)行程序的運行參數(shù);[0153]載入單元603,用于根據(jù)該可執(zhí)行程序的標(biāo)識加載該可執(zhí)行程序,其中,該可執(zhí)行程序包含參數(shù)數(shù)據(jù)段;[0154]數(shù)據(jù)寫入單元604,用于將該可執(zhí)行程序的運行參數(shù)寫入已加載的該可執(zhí)行程序中的參數(shù)數(shù)據(jù)段;[0155]輸出單元605,用于將已加載的該可執(zhí)行程序發(fā)送給遠程單板。[0156]本發(fā)明實施例中,單板加載器600通過將可執(zhí)行程序的運行參數(shù)寫入可執(zhí)行程序的參數(shù)數(shù)據(jù)段,以便單板能夠根據(jù)可執(zhí)行程序的參數(shù)數(shù)據(jù)段的信息初始化可執(zhí)行程序的運行參數(shù),從而實現(xiàn)在單板中支持Main函數(shù)的參數(shù)傳遞。[0157]可選地,該可執(zhí)行程序的格式為ELF。[0158]可選地,該輸出單元具體用于通過JTAG接口或串口將該可執(zhí)行程序發(fā)送給遠程單板。[0159]單板加載器600還可執(zhí)行圖1的方法,并具備單板加載器或loader在圖1所示實施例的功能,本發(fā)明實施例在此不再贅述。[0160]圖7是本發(fā)明實施例單板700的結(jié)構(gòu)示意圖。單板700可包括:輸入單元701和初始化單元702。[0161]輸入單元701,用于接收遠程的單板加載器發(fā)送的可執(zhí)行程序。[0162]其中,該可執(zhí)行程序的參數(shù)數(shù)據(jù)段中攜帶該可執(zhí)行程序的運行參數(shù)。[0163]初始化單元702,用于根據(jù)該可執(zhí)行程序的參數(shù)數(shù)據(jù)段,初始化該可執(zhí)行程序的運行參數(shù)。[0164]本發(fā)明實施例中,單板700通過接收單板加載器發(fā)送的可執(zhí)行程序,并根據(jù)可執(zhí)行程序中的參數(shù)數(shù)據(jù)段的信息初始化可執(zhí)行程序的運行參數(shù),從而實現(xiàn)在單板中支持Main函數(shù)的參數(shù)傳遞。[0165]可選地,輸入單元701具體用于通過JTAG接口或串口接收該可執(zhí)行程序。[0166]可選地,初始化單元702還用于初始化該可執(zhí)行程序中運行參數(shù)以外的其它相關(guān)值。另外,如圖7所示,單板700還可包括:執(zhí)行單元703,用于執(zhí)行該可執(zhí)行程序。[0167]單板700還可執(zhí)行圖2的方法,并具備單板在圖2、圖3所示實施例的功能,本發(fā)明實施例在此不再贅述。[0168]圖8是本發(fā)明實施例單板仿真器800的結(jié)構(gòu)示意圖。單板仿真器800可包括:調(diào)用單元801、解析單元802、載入單元803、數(shù)據(jù)寫入單元804和初始化單元805。[0169]調(diào)用單元801,用于調(diào)用命令行參數(shù)。[0170]其中,該命令行參數(shù)攜帶可執(zhí)行程序標(biāo)識及該可執(zhí)行程序的運行參數(shù)。[0171]解析單元802,用于解析該命令行參數(shù)以獲取該可執(zhí)行程序的標(biāo)識及該可執(zhí)行程序的運行參數(shù);[0172]載入單元803,用于根據(jù)該可執(zhí)行程序的標(biāo)識加載該可執(zhí)行程序。[0173]其中,該可執(zhí)行程序包含參數(shù)數(shù)據(jù)段。[0174]數(shù)據(jù)寫入單元804,用于將該可執(zhí)行程序的運行參數(shù)寫入已加載的該可執(zhí)行程序中的參數(shù)數(shù)據(jù)段。[0175]初始化單元805,用于根據(jù)已加載的該可執(zhí)行程序中的參數(shù)數(shù)據(jù)段,初始化該可執(zhí)行程序的運行參數(shù)。[0176]本發(fā)明實施例中,單板仿真器800通過將可執(zhí)行程序的運行參數(shù)寫入可執(zhí)行程序的參數(shù)數(shù)據(jù)段中,并在模擬運行可執(zhí)行程序時根據(jù)可執(zhí)行程序中的參數(shù)數(shù)據(jù)段的信息初始化可執(zhí)行程序的運行參數(shù),從而實現(xiàn)對單板中支持Main函數(shù)的參數(shù)傳遞的仿真模擬。[0177]可選地,該可執(zhí)行程序的格式為ELF。[0178]可選地,該初始化單元805還用于初始化該可執(zhí)行程序中運行參數(shù)以外的其它相關(guān)值。另外,如圖8所示,該單板仿真器還包括:執(zhí)行單元806,用于執(zhí)行該可執(zhí)行程序。[0179]單板仿真器800還可執(zhí)行圖4的方法,并具備單板仿真器在圖4、圖5所示實施例的功能,本發(fā)明實施例在此不再贅述。[0180]圖9是本發(fā)明實施例單板加載器900的結(jié)構(gòu)示意圖。單板加載器900可包括通道接口901、處理器902和存儲器903。[0181]通道接口901、處理器902和存儲器903通過總線904系統(tǒng)相互連接。總線904可以是ISA總線、PCI總線或EISA總線等。所述總線可以分為地址總線、數(shù)據(jù)總線、控制總線等。為便于表示,圖9中僅用一個雙向箭頭表示,但并不表示僅有一根總線或一種類型的總線。[0182]存儲器903,用于存放程序。具體地,程序可以包括程序代碼,所述程序代碼包括計算機操作指令。存儲器903可以包括只讀存儲器和隨機存取存儲器,并向處理器902提供指令和數(shù)據(jù)。存儲器903可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatilememory),例如至少一個磁盤存儲器。[0183]處理器902,執(zhí)行存儲器903所存放的程序,并具體用于執(zhí)行以下操作:[0184]調(diào)用命令行參數(shù),其中,該命令行參數(shù)攜帶可執(zhí)行程序標(biāo)識及該可執(zhí)行程序的運行參數(shù);[0185]解析該命令行參數(shù)以獲取該可執(zhí)行程序的標(biāo)識及該可執(zhí)行程序的運行參數(shù);[0186]根據(jù)該可執(zhí)行程序的標(biāo)識加載該可執(zhí)行程序,其中,該可執(zhí)行程序包含參數(shù)數(shù)據(jù)段;[0187]將該可執(zhí)行程序的運行參數(shù)寫入已加載的該可執(zhí)行程序中的參數(shù)數(shù)據(jù)段;[0188]通過通道接口901將已加載的該可執(zhí)行程序發(fā)送給遠程單板。[0189]上述如本發(fā)明圖1中任一實施例揭示的單板加載器或loader執(zhí)行的方法可以應(yīng)用于處理器902中,或者由處理器902實現(xiàn)。處理器902可能是一種集成電路芯片,具有信號的處理能力。在實現(xiàn)過程中,上述方法的各步驟可以通過處理器902中的硬件的集成邏輯電路或者軟件形式的指令完成。上述的處理器902可以是通用處理器,包括中央處理器(CentralProcessingUnit,簡稱CPU)、網(wǎng)絡(luò)處理器(NetworkProcessor,簡稱NP)等;還可以是數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)成可編程門陣列(FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件??梢詫崿F(xiàn)或者執(zhí)行本發(fā)明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。結(jié)合本發(fā)明實施例所公開的方法的步驟可以直接體現(xiàn)為硬件譯碼處理器執(zhí)行完成,或者用譯碼處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領(lǐng)域成熟的存儲介質(zhì)中。該存儲介質(zhì)位于存儲器903,處理器902讀取存儲器903中的信息,結(jié)合其硬件完成上述方法的步驟。[0190]本發(fā)明實施例中,單板加載器900通過將可執(zhí)行程序的運行參數(shù)寫入可執(zhí)行程序的參數(shù)數(shù)據(jù)段,以便單板能夠根據(jù)可執(zhí)行程序的參數(shù)數(shù)據(jù)段的信息初始化可執(zhí)行程序的運行參數(shù),從而實現(xiàn)在單板中支持Main函數(shù)的參數(shù)傳遞。[0191]可選地,該可執(zhí)行程序的格式為ELF。[0192]可選地,通道接口901可以是JTAG接口或串口。在用于通過通道接口901將已加載的該可執(zhí)行程序發(fā)送給遠程單板的過程中,處理器902具體用于通過JTAG接口或串口將該可執(zhí)行程序發(fā)送給遠程單板。[0193]單板加載器900還可執(zhí)行圖1的方法,并具備單板加載器或loader在圖1所示實施例的功能,本發(fā)明實施例在此不再贅述。[0194]圖10是本發(fā)明實施例單板1000的結(jié)構(gòu)示意圖。單板1000可包括通道接口1001、處理器1002和存儲器1003。[0195]通道接口1001、處理器1002和存儲器1003通過總線1004系統(tǒng)相互連接??偩€1004可以是ISA總線、PCI總線或EISA總線等。所述總線可以分為地址總線、數(shù)據(jù)總線、控制總線等。為便于表示,圖10中僅用一個雙向箭頭表示,但并不表示僅有一根總線或一種類型的總線。[0196]存儲器1003,用于存放程序。具體地,程序可以包括程序代碼,所述程序代碼包括計算機操作指令。存儲器1003可以包括只讀存儲器和隨機存取存儲器,并向處理器1002提供指令和數(shù)據(jù)。存儲器1003可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatilememory),例如至少一個磁盤存儲器。[0197]處理器1002,執(zhí)行存儲器1003所存放的程序,并具體用于執(zhí)行以下操作:[0198]通過通道接口1001接收遠程的單板加載器發(fā)送的可執(zhí)行程序,其中,該可執(zhí)行程序的參數(shù)數(shù)據(jù)段中攜帶該可執(zhí)行程序的運行參數(shù);[0199]根據(jù)該可執(zhí)行程序的參數(shù)數(shù)據(jù)段,初始化該可執(zhí)行程序的運行參數(shù)。[0200]上述如本發(fā)明圖2-3中任一實施例揭示的單板執(zhí)行的方法可以應(yīng)用于處理器1002中,或者由處理器1002實現(xiàn)。處理器1002可能是一種集成電路芯片,具有信號的處理能力。在實現(xiàn)過程中,上述方法的各步驟可以通過處理器1002中的硬件的集成邏輯電路或者軟件形式的指令完成。上述的處理器1002可以是通用處理器,包括中央處理器(CentralProcessingUnit,簡稱CPU)、網(wǎng)絡(luò)處理器(NetworkProcessor,簡稱NP)等;還可以是數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)成可編程門陣列(FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件??梢詫崿F(xiàn)或者執(zhí)行本發(fā)明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。結(jié)合本發(fā)明實施例所公開的方法的步驟可以直接體現(xiàn)為硬件譯碼處理器執(zhí)行完成,或者用譯碼處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領(lǐng)域成熟的存儲介質(zhì)中。該存儲介質(zhì)位于存儲器1003,處理器1002讀取存儲器1003中的信息,結(jié)合其硬件完成上述方法的步驟。[0201]本發(fā)明實施例中,單板1000通過接收單板加載器發(fā)送的可執(zhí)行程序,并根據(jù)可執(zhí)行程序中的參數(shù)數(shù)據(jù)段的信息初始化可執(zhí)行程序的運行參數(shù),從而實現(xiàn)在單板中支持Main函數(shù)的參數(shù)傳遞。[0202]可選地,通道接口1001可以是JTAG接口或串口。在用于通過通道接口1001接收遠程的單板加載器發(fā)送的可執(zhí)行程序的過程中,處理器902具體用于通過JTAG接口或串口接收該可執(zhí)行程序。[0203]可選地,處理器1002還用于初始化該可執(zhí)行程序中運行參數(shù)以外的其它相關(guān)值,并執(zhí)行該可執(zhí)行程序。[0204]單板1000還可執(zhí)行圖2的方法,并具備單板在圖2、圖3所示實施例的功能,本發(fā)明實施例在此不再贅述。[0205]圖11是本發(fā)明實施例單板仿真器1100的結(jié)構(gòu)示意圖。單板仿真器1100可包括通道接口1101、處理器1102和存儲器1103。[0206]通道接口1101、處理器1102和存儲器1103通過總線1104系統(tǒng)相互連接??偩€1104可以是ISA總線、PCI總線或EISA總線等。所述總線可以分為地址總線、數(shù)據(jù)總線、控制總線等。為便于表示,圖11中僅用一個雙向箭頭表示,但并不表示僅有一根總線或一種類型的總線。[0207]存儲器1103,用于存放程序。具體地,程序可以包括程序代碼,所述程序代碼包括計算機操作指令。存儲器1103可以包括只讀存儲器和隨機存取存儲器,并向處理器1102提供指令和數(shù)據(jù)。存儲器1103可能包含高速RAM存儲器,也可能還包括非易失性存儲器(non-volatilememory),例如至少一個磁盤存儲器。[0208]處理器1102,執(zhí)行存儲器1103所存放的程序,并具體用于執(zhí)行以下操作:[0209]調(diào)用單元1101,用于調(diào)用命令行參數(shù),其中,該命令行參數(shù)攜帶可執(zhí)行程序標(biāo)識及該可執(zhí)行程序的運行參數(shù);[0210]解析該命令行參數(shù)以獲取該可執(zhí)行程序的標(biāo)識及該可執(zhí)行程序的運行參數(shù);[0211]根據(jù)該可執(zhí)行程序的標(biāo)識加載該可執(zhí)行程序,其中,該可執(zhí)行程序包含參數(shù)數(shù)據(jù)段;[0212]將該可執(zhí)行程序的運行參數(shù)寫入已加載的該可執(zhí)行程序中的參數(shù)數(shù)據(jù)段;[0213]根據(jù)已加載的該可執(zhí)行程序中的參數(shù)數(shù)據(jù)段,初始化該可執(zhí)行程序的運行參數(shù)。[0214]上述如本發(fā)明圖4-5中任一實施例揭示的單板仿真器執(zhí)行的方法可以應(yīng)用于處理器1102中,或者由處理器1102實現(xiàn)。處理器1102可能是一種集成電路芯片,具有信號的處理能力。在實現(xiàn)過程中,上述方法的各步驟可以通過處理器1102中的硬件的集成邏輯電路或者軟件形式的指令完成。上述的處理器1102可以是通用處理器,包括中央處理器(CentralProcessingUnit,簡稱CPU)、網(wǎng)絡(luò)處理器(NetworkProcessor,簡稱NP)等;還可以是數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)成可編程門陣列(FPGA)或者其他可編程邏輯器件、分立門或者晶體管邏輯器件、分立硬件組件??梢詫崿F(xiàn)或者執(zhí)行本發(fā)明實施例中的公開的各方法、步驟及邏輯框圖。通用處理器可以是微處理器或者該處理器也可以是任何常規(guī)的處理器等。結(jié)合本發(fā)明實施例所公開的方法的步驟可以直接體現(xiàn)為硬件譯碼處理器執(zhí)行完成,或者用譯碼處理器中的硬件及軟件模塊組合執(zhí)行完成。軟件模塊可以位于隨機存儲器,閃存、只讀存儲器,可編程只讀存儲器或者電可擦寫可編程存儲器、寄存器等本領(lǐng)域成熟的存儲介質(zhì)中。該存儲介質(zhì)位于存儲器1103,處理器1102讀取存儲器1103中的信息,結(jié)合其硬件完成上述方法的步驟。[0215]本發(fā)明實施例中,單板仿真器1100通過將可執(zhí)行程序的運行參數(shù)寫入可執(zhí)行程序的參數(shù)數(shù)據(jù)段中,并在模擬運行可執(zhí)行程序時根據(jù)可執(zhí)行程序中的參數(shù)數(shù)據(jù)段的信息初始化可執(zhí)行程序的運行參數(shù),從而實現(xiàn)對單板中支持Main函數(shù)的參數(shù)傳遞的仿真模擬。[0216]可選地,該可執(zhí)行程序的格式為ELF。[0217]可選地,處理器1102還用于初始化該可執(zhí)行程序中運行參數(shù)以外的其它相關(guān)值,并執(zhí)行該可執(zhí)行程序。[0218]單板仿真器1100還可執(zhí)行圖4的方法,并具備單板仿真器在圖4、圖5所示實施例的功能,本發(fā)明實施例在此不再贅述。[0219]本領(lǐng)域普通技術(shù)人員可以意識到,結(jié)合本文中所公開的實施例中描述的各方法步驟和單元,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各實施例的步驟及組成。這些功能宄竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。本領(lǐng)域普通技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。[0220]結(jié)合本文中所公開的實施例描述的方法或步驟可以用硬件、處理器執(zhí)行的軟件程序,或者二者的結(jié)合來實施。軟件程序可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或【
技術(shù)領(lǐng)域:
】內(nèi)所公知的任意其它形式的存儲介質(zhì)中。[0221]盡管通過參考附圖并結(jié)合優(yōu)選實施例的方式對本發(fā)明進行了詳細(xì)描述,但本發(fā)明并不限于此。在不脫離本發(fā)明的精神和實質(zhì)的前提下,本領(lǐng)域普通技術(shù)人員可以對本發(fā)明的實施例進行各種等效的修改或替換,而這些修改或替換都應(yīng)在本發(fā)明的涵蓋范圍內(nèi)?!緳?quán)利要求】1.一種單板加載器,其特征在于,包括:調(diào)用單元,用于調(diào)用命令行參數(shù),其中,所述命令行參數(shù)攜帶可執(zhí)行程序標(biāo)識及所述可執(zhí)行程序的運行參數(shù);解析單元,用于解析所述命令行參數(shù)以獲取所述可執(zhí)行程序的標(biāo)識及所述可執(zhí)行程序的運行參數(shù);載入單元,用于根據(jù)所述可執(zhí)行程序的標(biāo)識加載所述可執(zhí)行程序,其中,所述可執(zhí)行程序包含參數(shù)數(shù)據(jù)段;數(shù)據(jù)寫入單元,用于將所述可執(zhí)行程序的運行參數(shù)寫入已加載的所述可執(zhí)行程序中的參數(shù)數(shù)據(jù)段;輸出單元,用于將已加載的所述可執(zhí)行程序發(fā)送給遠程單板。2.如權(quán)利要求1所述的單板加載器,其特征在于,所述可執(zhí)行程序的格式為可執(zhí)行連接格式ELF。3.如權(quán)利要求1或2所述的單板加載器,其特征在于,所述輸出單元具體用于通過聯(lián)合測試行為組織JTAG接口或串口將已加載的所述可執(zhí)行程序發(fā)送給遠程單板。4.一種單板,其特征在于,包括:輸入單元,用于接收遠程的單板加載器發(fā)送的可執(zhí)行程序,所述可執(zhí)行程序的參數(shù)數(shù)據(jù)段中攜帶所述可執(zhí)行程序的運行參數(shù);初始化單元,用于根據(jù)所述可執(zhí)行程序的參數(shù)數(shù)據(jù)段,初始化所述可執(zhí)行程序的運行參數(shù)。5.如權(quán)利要求4所述的單板,其特征在于,所述輸入單元具體用于通過聯(lián)合測試行為組織JTAG接口或串口接收所述可執(zhí)行程序。6.如權(quán)利要求4或5所述的單板,其特征在于,所述初始化單元還用于初始化所述可執(zhí)行程序中運行參數(shù)以外的其它相關(guān)值;所述單板還包括:執(zhí)行單元,用于執(zhí)行所述可執(zhí)行程序。7.一種單板仿真器,其特征在于,包括:調(diào)用單元,用于調(diào)用命令行參數(shù),其中,所述命令行參數(shù)攜帶可執(zhí)行程序標(biāo)識及所述可執(zhí)行程序的運行參數(shù);解析單元,用于解析所述命令行參數(shù)以獲取所述可執(zhí)行程序的標(biāo)識及所述可執(zhí)行程序的運行參數(shù);載入單元,用于根據(jù)所述可執(zhí)行程序的標(biāo)識加載所述可執(zhí)行程序,其中,所述可執(zhí)行程序包含參數(shù)數(shù)據(jù)段;數(shù)據(jù)寫入單元,用于將所述可執(zhí)行程序的運行參數(shù)寫入已加載的所述可執(zhí)行程序中的參數(shù)數(shù)據(jù)段;初始化單元,用于根據(jù)已加載的所述可執(zhí)行程序中的參數(shù)數(shù)據(jù)段,初始化所述可執(zhí)行程序的運行參數(shù)。8.如權(quán)利要求7所述的單板仿真器,其特征在于,所述可執(zhí)行程序的格式為可執(zhí)行連接格式ELF。9.如權(quán)利要求7或8或所述的單板仿真器,其特征在于,所述初始化單元還用于初始化所述可執(zhí)行程序中運行參數(shù)以外的其它相關(guān)值;所述單板仿真器還包括:執(zhí)行單元,用于執(zhí)行所述可執(zhí)行程序。10.一種參數(shù)傳遞方法,其特征在于,包括:調(diào)用命令行參數(shù),其中,所述命令行參數(shù)攜帶可執(zhí)行程序標(biāo)識及所述可執(zhí)行程序的運行參數(shù);解析所述命令行參數(shù)以獲取所述可執(zhí)行程序的標(biāo)識及所述可執(zhí)行程序的運行參數(shù);根據(jù)所述可執(zhí)行程序的標(biāo)識加載所述可執(zhí)行程序,其中,所述可執(zhí)行程序包含參數(shù)數(shù)據(jù)段;將所述可執(zhí)行程序的運行參數(shù)寫入已加載的所述可執(zhí)行程序的參數(shù)數(shù)據(jù)段;將已加載的所述可執(zhí)行程序發(fā)送給遠程單板。11.如權(quán)利要求10所述的方法,其特征在于,所述可執(zhí)行程序的格式為可執(zhí)行連接格Self。12.如權(quán)利要求10或11所述的方法,其特征在于,所述將已加載的所述可執(zhí)行程序發(fā)送給遠程單板包括:通過聯(lián)合測試行為組織JTAG接口或串口將已加載的所述可執(zhí)行程序發(fā)送給遠程單板。13.—種參數(shù)傳遞方法,其特征在于,包括:接收遠程的單板加載器發(fā)送的可執(zhí)行程序,所述可執(zhí)行程序的參數(shù)數(shù)據(jù)段中攜帶所述可執(zhí)行程序的運行參數(shù);根據(jù)所述可執(zhí)行程序的參數(shù)數(shù)據(jù)段,初始化所述可執(zhí)行程序的運行參數(shù)。14.一種參數(shù)傳遞方法,其特征在于,包括:調(diào)用命令行參數(shù),其中,所述命令行參數(shù)攜帶可執(zhí)行程序標(biāo)識及所述可執(zhí)行程序的運行參數(shù);解析所述命令行參數(shù)以獲取所述可執(zhí)行程序的標(biāo)識及所述可執(zhí)行程序的運行參數(shù);根據(jù)所述可執(zhí)行程序的標(biāo)識加載所述可執(zhí)行程序,其中,所述可執(zhí)行程序包含參數(shù)數(shù)據(jù)段;將所述可執(zhí)行程序的運行參數(shù)寫入已加載的所述可執(zhí)行程序中的參數(shù)數(shù)據(jù)段;根據(jù)已加載的所述可執(zhí)行程序中的參數(shù)數(shù)據(jù)段,初始化所述可執(zhí)行程序的運行參數(shù)?!疚臋n編號】G06F9/455GK104503738SQ201410710191【公開日】2015年4月8日申請日期:2014年11月28日優(yōu)先權(quán)日:2014年11月28日【發(fā)明者】李書旭,曾建江申請人:華為技術(shù)有限公司