欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

電子裝置及其程序更新方法

文檔序號:6511703閱讀:179來源:國知局
專利名稱:電子裝置及其程序更新方法
技術(shù)領(lǐng)域
本發(fā)明涉及一電子裝置及其程序更新方法,特別涉及一在程序所包含的一子模塊中的固定地址設(shè)置多個中繼函式以分別對應(yīng)該子模塊所包含的多個函數(shù)的地址,使得該程序的一子模塊可以單獨(dú)更新而不需與其余子模塊一起連結(jié)及下載的電子裝置及其程序更新的方法。
背景技術(shù)
一般來說,目前電子裝置如手機(jī)或其它便攜式電子裝置所使用的程序往往包含分別存于存儲器中的各區(qū)塊中的多個子模塊(sub-module);各子模塊又各自包含多個函數(shù)(function),其中各個函數(shù)的程序代碼長度不一,在程序中的進(jìn)入點(diǎn)(entry point)地址也不固定。而當(dāng)欲更新該程序的某一子模塊所包含的一函數(shù)時,更新后的函數(shù)的程序代碼長度可能又有所改變,這將使得位于該更新后的函數(shù)之后的其它函數(shù)的進(jìn)入點(diǎn)地址也發(fā)生變動。因此若僅以更新后的該子模塊替換原子模塊,會使得執(zhí)行該程序而需呼叫該經(jīng)更新的子模塊所包含的各函數(shù)時,將連結(jié)至錯誤的地址而導(dǎo)致執(zhí)行失敗。
請參閱圖1。圖1為一已知的電子裝置的存儲器100的示意圖。110為程序所包含的各子模塊經(jīng)連結(jié)后產(chǎn)生的執(zhí)行碼(target image),共包含N個子模塊,其中各子模塊存儲于存儲器100內(nèi)的各區(qū)固定位置。121為程序執(zhí)行碼110所包含的第一子模塊,共包含多個函數(shù)1211、1212與1213,依序存于存儲器100中。假設(shè)子模塊121所包含的函數(shù)1的進(jìn)入點(diǎn)地址為0x1100,函數(shù)2的進(jìn)入點(diǎn)地址為0x1200,而函數(shù)3的進(jìn)入點(diǎn)地址為0x1300;其中函數(shù)1與函數(shù)2的數(shù)據(jù)長度皆為0x100字節(jié)(bytes)。當(dāng)欲更新子模塊1所包含的函數(shù)1時,假設(shè)更新后的函數(shù)1的數(shù)據(jù)長度增加為0x180字節(jié),則函數(shù)2、函數(shù)3及后續(xù)的其它函數(shù)的進(jìn)入點(diǎn)地址皆會因而被影響而更動。請參閱圖2。圖2為依已知技術(shù)更新后的第一子模塊221的示意圖。根據(jù)上述,更新后的函數(shù)1的數(shù)據(jù)長度由0x100字節(jié)增長為0x180字節(jié);因此函數(shù)2與函數(shù)3的進(jìn)入點(diǎn)地址分別改變?yōu)?x1280與0x1380,后續(xù)其它函數(shù)的進(jìn)入點(diǎn)地址也將跟著改變。由此可知,雖然只有第一子模塊的一個函數(shù)的程序代碼經(jīng)過更新,但在已知技術(shù)中,該更新后的子模塊必須與其余所有未更新的子模塊全部一起重新連結(jié)(re-link)而產(chǎn)生新的執(zhí)行碼,再將該連結(jié)后所產(chǎn)生的執(zhí)行碼下載至該電子裝置上,才能使得程序中各處需要呼叫執(zhí)行該子模塊所包含的函數(shù)的程序代碼能連結(jié)到該被呼叫的函數(shù)的正確進(jìn)入點(diǎn)地址。否則,當(dāng)程序110欲呼叫函數(shù)2時,其仍會到地址0x1200去呼叫函數(shù)2,而函數(shù)2卻已因函數(shù)1的長度加長而改到地址0x1280,因此程序110將找不到函數(shù)2而執(zhí)行失敗。因此,不論所欲更新的程序代碼占總程序篇幅為何,已知中皆需要將完整的程序全部重新連結(jié)后再全部下載至電子裝置中,而這不論是對于一般的使用者或是正在產(chǎn)品研發(fā)測試過程中的工程師來說,都將形成很大的時間成本的負(fù)擔(dān)。

發(fā)明內(nèi)容
因此本發(fā)明的主要目的在于提供一電子裝置以及其程序更新方法,在程序所包含的一子模塊中的固定地址設(shè)置多個中繼函式以分別對應(yīng)該子模塊所包含的多個函數(shù)的地址,使得該程序的一子模塊可以單獨(dú)更新而不需與全部程序一起連結(jié)及下載,以克服上述已知技術(shù)中的問題。
本發(fā)明披露了一程序更新方法,適用于一電子裝置內(nèi)的一程序的更新,其中該程序具有多個子模塊。該方法包括選擇一第一子模塊;設(shè)定多個中繼函式于該第一子模塊內(nèi),該多個中繼函式分別對應(yīng)于該第一子模塊內(nèi)所包含多個函數(shù)的地址;以及呼叫該多個函數(shù)中的一第一函數(shù)時,是由該多個中繼函式中選擇一第一中繼函式以取得該第一函數(shù)的地址,執(zhí)行該第一函數(shù)。
本發(fā)明還披露了一電子裝置。該電子裝置包括一存儲器,分割為多個存儲區(qū)塊;以及一程序,具有多個子模塊,每一子模塊對應(yīng)存儲于該多個存儲區(qū)塊,任一子模塊具有多個中繼函式與多個函數(shù),其中該多個中繼函式分別對應(yīng)于該多個函數(shù)的地址;其中,呼叫該多個函數(shù)中的一第一函數(shù)時,由該多個中繼函式中選擇一第一中繼函式以取得該第一函數(shù)的地址,執(zhí)行該第一函數(shù)。


圖1為一已知的電子裝置的存儲器的示意圖。
圖2為已知技術(shù)的更新后的第一子模塊的示意圖。
圖3為本發(fā)明的電子裝置的存儲器的示意圖。
圖4為本發(fā)明的更新后的第一子模塊的示意圖。
圖5為本發(fā)明的程序更新方法的流程圖。
附圖符號說明100,300 存儲器110,310 程序執(zhí)行碼121,122,123,221,321,322,323,421 子模塊1211,1212,1213,2211,2212,2213 函數(shù)3211,3212,3213,4211,4212,421332111,32121,32131,42111,42121,42131 中繼函式500,510,520,530,540,550,560步驟具體實施方式
在本發(fā)明中,我們在各子模塊中采用了多個中繼函式(stub function)以分別對應(yīng)于該子模塊所包含的多個函數(shù),使得程序在呼叫一函數(shù)時先呼叫該函數(shù)所對應(yīng)的中繼函式,再根據(jù)該中繼函式所記錄的函數(shù)的進(jìn)入點(diǎn)地址,呼叫該函數(shù)。其中該中繼函式僅用來記錄相對應(yīng)的函數(shù)的進(jìn)入點(diǎn)地址,因此數(shù)據(jù)長度為固定,所以在各子模塊中,即使函數(shù)內(nèi)容被更新,該更新后函數(shù)所相對應(yīng)的中繼函式的進(jìn)入點(diǎn)仍得以保持固定,因而能解決已知技術(shù)中的問題,不需將整個程序都重新連結(jié)后產(chǎn)生的執(zhí)行碼下載至電子裝置中,大幅節(jié)省了連結(jié)(link)與下載程序代碼的時間。
請參閱圖3。圖3為本發(fā)明的電子裝置的存儲器300的示意圖。310為程序所包含的各子模塊經(jīng)連結(jié)后產(chǎn)生的執(zhí)行碼(target image),共包含N個子模塊。與已知技術(shù)相同,本發(fā)明的程序310的各子模塊存儲于存儲器300內(nèi)的固定位置。321為程序執(zhí)行碼310所包含的第一子模塊,共包含多個函數(shù)3211、3212與3213,以及相對應(yīng)的中繼函式32111、32121與32131。如圖3所示,中繼函式1、中繼函式2與中繼函式3分別為與函數(shù)1、函數(shù)2與函數(shù)3相對應(yīng)的中繼函式,用來存儲函數(shù)1、函數(shù)2與函數(shù)3的進(jìn)入點(diǎn)地址。如圖3所示,中繼函式1、中繼函式2與中繼函式3的進(jìn)入點(diǎn)分別為0x1000、0x1010與0x1020,而函數(shù)1、函數(shù)2與函數(shù)3的進(jìn)入點(diǎn)則分別為0x1100、0x1200與0x1300。在本發(fā)明中,當(dāng)執(zhí)行程序310而呼叫第一子模塊321所包含的函數(shù)2時,先呼叫與該函數(shù)2相對應(yīng)的中繼函式2,再由中繼函式2根據(jù)其所記錄的函數(shù)2的進(jìn)入點(diǎn)地址去呼叫函數(shù)2。當(dāng)欲更新第一子模塊321所包含的函數(shù)1時,假設(shè)更新后的函數(shù)1的數(shù)據(jù)長度增加為0x180字節(jié),則函數(shù)2、函數(shù)3及后續(xù)的其它函數(shù)的地址同樣會如已知般被影響而更動。
請參閱圖4。圖4為本發(fā)明的更新后的第一子模塊421的示意圖。根據(jù)上述,更新后的函數(shù)1的數(shù)據(jù)長度由0x100字節(jié)增長為0x180字節(jié);因此函數(shù)2與函數(shù)3的進(jìn)入點(diǎn)分別改變?yōu)?x1280與0x1380,整個第一子模塊的總數(shù)據(jù)長度也因而改變。然而,與已知技術(shù)不同的是,在本發(fā)明中,當(dāng)更新第一子模塊的函數(shù)1而重新連結(jié)(re-link)第一子模塊時,中繼函式2與中繼函式3中所記錄的函數(shù)2與函數(shù)3的進(jìn)入點(diǎn)地址也會一并被更新。而中繼函式本身因為僅記錄其所對應(yīng)的函數(shù)的進(jìn)入點(diǎn)地址,故其數(shù)據(jù)長度不變,亦即中繼函式本身的進(jìn)入點(diǎn)地址不變;在圖4的例子中,即中繼函式1、中繼函式2與中繼函式3的進(jìn)入點(diǎn)地址分別固定在0x1000、0x1010與0x1020,與圖3中的更新前的第一子模塊321相同。因此,在本發(fā)明中,僅需將被更新的第一子模塊421本身重新連結(jié)后即可下載至電子裝置300的存儲器310中,而不需將整個程序包括其它未更新的子模塊一起連結(jié)后再下載。當(dāng)執(zhí)行程序而需呼叫第一子模塊421所包含的函數(shù)2時,其是先于0x1010呼叫中繼函式2,再根據(jù)中繼函式2中所記錄的函數(shù)2的進(jìn)入點(diǎn)地址0x1280正確呼叫函數(shù)2。由此可見,本發(fā)明利用中繼函式的技術(shù)以對應(yīng)記錄各函數(shù)的進(jìn)入點(diǎn)地址,而且中繼函式本身的進(jìn)入點(diǎn)地址為固定,不會因為函數(shù)的更新或函數(shù)數(shù)據(jù)長度的變動而改變,使得執(zhí)行程序時可于固定的進(jìn)入點(diǎn)地址連結(jié)到中繼函式,再通過該中繼函式正確呼叫各函數(shù)。
請參閱圖5。圖5為本發(fā)明的程序更新方法的流程圖。
步驟500開始;步驟510選擇一第一子模塊;步驟520設(shè)定多個中繼函式于該第一子模塊內(nèi),該多個中繼函式分別對應(yīng)于該第一子模塊內(nèi)所包含多個函數(shù)的地址;步驟530更新該第一子模塊所包含的一第一函數(shù);步驟540重新連結(jié)(re-link)該第一子模塊;步驟550更新該第一子模塊內(nèi)所包含的中繼函式所記錄的各函數(shù)的地址;步驟560結(jié)束。
其中步驟550為步驟540執(zhí)行重新連結(jié)該第一子模塊時會自動執(zhí)行的流程。而當(dāng)執(zhí)行本發(fā)明所更新的程序代碼時,將包含于執(zhí)行程序的多個子模塊中的一第三子模塊時,以該第三子模塊呼叫該第一函數(shù)。
本發(fā)明在各子模塊內(nèi)利用了多個中繼函式以分別記錄對應(yīng)的函數(shù)的進(jìn)入點(diǎn)位置,而中繼函式本身的進(jìn)入點(diǎn)地址與數(shù)據(jù)長度維持固定,因此使得程序所包含的一子模塊被更新時,其它未更新的子模塊不需要一起重新連結(jié)后一起重新下載,而僅需連結(jié)該被更新的子模塊即可更新該被更新的子模塊的各中繼函式中所記錄的函數(shù)的地址,再下載該被更新的子模塊至電子裝置中,即能正確地呼叫與執(zhí)行該被更新的子模塊所包含的各函數(shù)。本發(fā)明的優(yōu)點(diǎn)為大幅節(jié)省使用者或程序開發(fā)者于更新程序時,連結(jié)與下載程序代碼的時間,使得如更新電子裝置的輸入法,增加游戲程序,更新手機(jī)屏幕驅(qū)動程序或更新電子裝置的接口版本等更有效率。除此之外,本發(fā)明的方法可與已知已存在的程序撰寫方法兼容。舉例來說,當(dāng)需更新一依已知的方法撰寫而成的程序時,本發(fā)明不需要更新該程序的每一子模塊而加入多個與函數(shù)相對應(yīng)的中繼函式,而僅需將待更新的子模塊改寫為本發(fā)明的格式,即在固定地址存儲中繼函式以記錄相對應(yīng)的函數(shù)的位置,即可正確地在執(zhí)行該程序時呼叫各函數(shù)。由此可見本發(fā)明已以一有效率而簡潔地方式,革新了電子裝置所使用的程序的更新方法,縮短了連結(jié)與下載程序代碼的時間,方便使用者更新程序并且使得程序開發(fā)者能更有效率地進(jìn)行研發(fā)。
以上所述僅為本發(fā)明的較佳實施例,凡依本發(fā)明的權(quán)利要求所做的均等變化與修飾,皆應(yīng)屬本發(fā)明的涵蓋范圍。
權(quán)利要求
1.一種程序更新方法,適用于一電子裝置內(nèi)的一程序的更新,該程序具有多個子模塊,其方法包含選擇一第一子模塊;設(shè)定多個中繼函式于該第一子模塊內(nèi),該多個中繼函式分別對應(yīng)于該第一子模塊內(nèi)所包含多個函數(shù)的地址;以及呼叫該多個函數(shù)中的一第一函數(shù)時,是由該多個中繼函式中選擇一第一中繼函式以取得該第一函數(shù)的一地址,根據(jù)該地址執(zhí)行該第一函數(shù)。
2.如權(quán)利要求1所述的方法,該電子裝置還包括一存儲器用以存放該程序,該方法還包含存放該第一子模塊于該存儲器的一第一存儲區(qū)塊,該多個中繼函式存儲于該第一存儲區(qū)塊中的固定地址。
3.如權(quán)利要求2所述的方法,該第一存儲區(qū)塊具有固定尺寸且大于該第一子模塊的尺寸。
4.如權(quán)利要求3所述的方法,還包含選擇一第二子模塊用以更新該第一子模塊,該第二子模塊小于該第一存儲區(qū)塊;以該第二子模塊取代該第一子模塊;以及連結(jié)該第二子模塊。
5.如權(quán)利要求4所述的方法,該方法還包含于該第一存儲區(qū)塊起始處存儲該第二子模塊的該多個中繼函式。
6.如權(quán)利要求2所述的方法,于該第一存儲區(qū)塊起始處存儲該多個中繼函式,以及于該多個中繼函式后存放該多個函數(shù)。
7.如權(quán)利要求1所述的方法,該電子裝置還包括一存儲器用以存放該程序,該方法還包含分割該存儲器為多個存儲區(qū)塊;以及存放該多個子模塊于對應(yīng)的該多個存儲區(qū)塊,任一存儲區(qū)塊大于對應(yīng)的該子模塊。
8.如權(quán)利要求1所述的方法,該方法還包含設(shè)定一第二子模塊具有多個中繼函式與該多個函數(shù),該多個中繼函式分別對應(yīng)于該第二子模塊內(nèi)所包含多個函數(shù)的地址;以及以該第二子模塊更新該第一子模塊。
9.如權(quán)利要求1所述的方法,該方法還包含自多個子模塊中執(zhí)行一第三子模塊,該第三子模塊呼叫該第一函數(shù)。
10.一種電子裝置,其包含一存儲器,分割為多個存儲區(qū)塊;以及一程序,具有多個子模塊,每一子模塊對應(yīng)存儲于該多個存儲區(qū)塊,任一子模塊具有多個中繼函式與多個函數(shù),其中該多個中繼函式分別對應(yīng)于該多個函數(shù)的地址;其中,呼叫該多個函數(shù)中的一第一函數(shù)時,是由該多個中繼函式中選擇一第一中繼函式以取得該第一函數(shù)的一地址,依據(jù)該地址執(zhí)行該第一函數(shù)。
11.如權(quán)利要求10所述的電子裝置,其中該程序的一第一子模塊存放該于該存儲器的一第一存儲區(qū)塊,該第一模塊的多個中繼函式存儲于該第一存儲區(qū)塊中的固定地址。
12.如權(quán)利要求11所述的電子裝置,其中該第一存儲區(qū)塊具有固定尺寸且大于該第一子模塊的尺寸。
13.如權(quán)利要求12所述的電子裝置,該電子裝置使用一第二子模塊用以更新該第一子模塊,其中該第二子模塊具有多個中繼函式與多個函數(shù),該多個中繼函式分別對應(yīng)于該第二子模塊內(nèi)所包含多個函數(shù)的地址,以及該第二子模塊小于該第一存儲區(qū)塊。
14.如權(quán)利要求13所述的電子裝置,其中該第二子模塊的多個中繼函式存儲于該第一存儲區(qū)塊起始處。
15.如權(quán)利要求11所述的電子裝置,其中該多個中繼函式存儲于該第一存儲區(qū)塊起始處,以及該多個函數(shù)存儲于該多個中繼函式后。
16.如權(quán)利要求11所述的電子裝置,其中該多個存儲區(qū)塊中的任一存儲區(qū)塊的尺寸大于所對應(yīng)的該子模塊的尺寸。
17.如權(quán)利要求11所述的電子裝置,其中該程序的多個子模塊中的一第三子模塊可呼叫該第一函數(shù)。
全文摘要
本發(fā)明提供一電子裝置及其程序更新方法。該電子裝置包括一存儲器;以及一程序,具有多個子模塊,其中任一子模塊具有多個中繼函式與多個函數(shù),該多個中繼函式分別對應(yīng)于該多個函數(shù)的地址。該程序更新方法包括設(shè)定多個中繼函式于一第一子模塊以分別對應(yīng)于該第一子模塊所包含多個函數(shù)的地址;以及呼叫該多個函數(shù)中的一第一函數(shù)時,是由該多個中繼函式中選擇一第一中繼函式以取得該第一函數(shù)的地址,執(zhí)行該第一函數(shù)。
文檔編號G06F9/445GK1801089SQ200510003958
公開日2006年7月12日 申請日期2005年1月5日 優(yōu)先權(quán)日2005年1月5日
發(fā)明者李務(wù)誠 申請人:明基電通股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
农安县| 望江县| 竹北市| 施秉县| 和顺县| 本溪市| 阿城市| 冷水江市| 南川市| 嵊泗县| 宜宾县| 义乌市| 仙桃市| 定西市| 宁夏| 平定县| 广水市| 凭祥市| 泉州市| 建平县| 忻城县| 商南县| 道真| 潮州市| 孟连| 教育| 巢湖市| 内江市| 阳江市| 烟台市| 汉寿县| 淮阳县| 寿光市| 许昌县| 高淳县| 仁寿县| 广安市| 潍坊市| 阿拉尔市| 新郑市| 凤凰县|