CN101957761B - 更新程序区段的方法 - Google Patents
更新程序区段的方法 Download PDFInfo
- Publication number
- CN101957761B CN101957761B CN 200910158079 CN200910158079A CN101957761B CN 101957761 B CN101957761 B CN 101957761B CN 200910158079 CN200910158079 CN 200910158079 CN 200910158079 A CN200910158079 A CN 200910158079A CN 101957761 B CN101957761 B CN 101957761B
- Authority
- CN
- China
- Prior art keywords
- driver
- section
- application program
- program section
- refresh routine
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供一种更新程序区段的方法。具体地,一种更新程序区段的方法,用于一电子系统,包括一处理器及一储存装置,其中该处理器与该储存装置电性连接,该储存装置包括一程序区段,该程序区段包括一应用程序区段及一启动区段,该更新程序区段的方法包括下列步骤:在该应用程序区段具有一第一启动加载程序,其中该第一启动加载程序包括执行一第一驱动程序;连接一数据来源装置,该数据来源装置包括一更新数据;判断该第一驱动程序是否可驱动该数据来源装置;以及当该第一驱动程序可驱动该数据来源装置,则根据该更新数据执行一更新程序。本发明所公开的更新程序区段的方法,可利用应用程序区段的储存空间以改善启动区段的储存空间过小的缺点。
Description
技术领域
本发明涉及一种更新程序区段的方法,特别涉及一种使启动加载程序可支持更多数据来源装置的更新程序区段的方法。
背景技术
现有电子产品上的微处理器上的启动区段的储存空间因配置的限制而无法放入太多功能以及硬件驱动程序。
如图1所示,图1为先前技术中,一储存装置的程序区段30a的配置,程序区段30a包括应用程序区段31a及启动区段32a,在先前技术的设定下,应用程序区段31a在进行更新的期间是无法执行其他程序,故总是将启动程序设置在启动区段中。由于启动区段32a的储存空间极小(通常为数Kbytes),因此启动区段32a只能储存很少的程序或数据。举例来说,若启动区段32a上的剩余的储存空间已无法储存如USB装置的驱动程序或其他文件系统的驱动程序时,当使用者须将电子产品做应用程序区段31a的升级,则无法使用USB的装置或通过网络来升级,使用者必须将电子产品送至维修店家,请维修店家代为处理,对一般的使用者而言是非常不方便的事。
然而,应用程序区段31a的储存空间常常配置较大的储存空间(通常为数Mbytes),却没有充份使用,因此,有必要提供一种更新程序区段的方法,利用应用程序区段的储存空间以改善启动区段的储存空间过小的缺点。
发明内容
本发明的主要目的在于提供一种更新程序区段的方法,特别是利用应用程序区段的储存空间使启动加载程序可驱动更多数据来源装置。
为达成上述目的,本发明提供一种更新程序区段的方法,用于电子系统,电子系统包括处理器及储存装置,其中处理器与储存装置电性连接,储存装置包括程序区段,程序区段包括应用程序区段及启动区段,应用程序区段具有第一启动加载程序及应用程序数据,第一启动加载程序包括执行第一驱动程序。更新程序区段的方法包括下列步骤:连接数据来源装置,数据来源装置包括更新数据;判断第一驱动程序是否可驱动数据来源装置;以及当第一驱动程序可驱动数据来源装置时,则利用第一驱动程序根据更新数据执行更新程序。
为达成上述的目的,本发明还提供一种更新程序区段的方法,用于电子系统,电子系统包括处理器及储存装置,其中处理器与储存装置电性连接,储存装置包括程序区段,程序区段包括应用程序区段及启动区段,启动区段包括初始启动加载程序,应用程序区段具有第一启动加载程序及应用程序数据,第一启动加载程序包括执行第一驱动程序。更新程序区段的方法包括下列步骤:连接数据源装置,数据来源装置包括更新数据;判断初始驱动程序及第一驱动程序中是否至少其中之一可驱动数据来源装置;并且当初始驱动程序及第一驱动程序中至少其中之一可驱动数据来源装置时,则读取更新数据及执行更新程序。
根据本发明的一个方面,提供一种更新程序区段的方法,用于一电子系统,该电子系统包括一处理器及一储存装置,其中该处理器与该储存装置电性连接,该储存装置包括一程序区段,该程序区段包括一应用程序区段及一启动区段,该更新程序区段的方法包括下列步骤:在该应用程序区段具有一第一启动加载程序,其中该第一启动加载程序包括执行一第一驱动程序;连接一数据来源装置,该数据来源装置包括一更新数据;判断该第一驱动程序是否可驱动该数据来源装置;以及当该第一驱动程序可驱动该数据来源装置,则根据该更新数据执行一更新程序。
根据本发明的另一个方面,提供一种更新程序区段的方法,用于一电子系统,该电子系统包括一处理器及一储存装置,其中该处理器与该储存装置电性连接,该储存装置包括该程序区段,该程序区段包括一应用程序区段及一启动区段,该启动区段包括一初始启动加载程序,该初始启动加载程序包括一初始驱动程序,该更新程序区段的方法包括下列步骤:在该应用程序区段具有一第一启动加载程序,其中该第一启动加载程序包括执行一第一驱动程序;接受一数据来源装置,该数据来源装置包括一更新数据;判断该初始驱动程序及该第一驱动程序中是否至少其中之一可驱动该数据来源装置;以及当该初始驱动程序及该第一驱动程序中至少其中之一可驱动该数据来源装置,则读取该更新数据及执行一更新程序。
本发明所公开的更新程序区段的方法,可利用应用程序区段的储存空间以改善启动区段的储存空间过小的缺点。
附图说明
图1为关于本发明的更新程序区段的方法的一相关先前技术的示意图。
图2为关于本发明的更新程序区段的方法的一实施例的电子系统的系统架构图。
图3为关于本发明的更新程序区段的方法的第一实施例的使用第一驱动程序的更新程序的示意图。
图4为关于本发明的更新程序区段的方法的一实施例的程序区段的示意图。
图5为关于本发明的更新程序区段的方法的第一实施例的步骤流程图。
图6为关于本发明的更新程序区段的方法的一实施例的程序区段的示意图。
图7为关于本发明的更新程序区段的方法的第一实施例的步骤流程图。
图8为关于本发明的更新程序区段的方法的第一实施例的使用初始驱动程序的更新程序的示意图。
图9为关于本发明的更新程序区段的方法的第二实施例的步骤流程图。
主要组件符号说明:
电子系统1 启动区段32、32a、32b、32c
处理器10 初始启动加载程序321、321a、321b、
储存装置20 321c
程序区段30、30a、30b、30c 启动向量3211、3211b、3211c
应用程序区段31、31a、31b、31c 写入储存装置应用程序接口3212、
第一启动加载程序311、311b、311c 3212b、3212c
第一驱动程序3111、3111b、3111c 初始驱动程序3213、3213b
第二驱动程序3112b 主程序3214、3214b、3214c
第三驱动程序3113b 缓冲存储器40
应用程序数据312、312b、312c 数据来源装置50
中断向量位置313、313b、313c
具体实施方式
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举出较佳实施例,并配合所附附图,作详细说明如下。
以下请参考图2至图8关于本发明的更新程序区段的方法的第一实施例。此处需注意的是,以下虽以图2所示的电子系统1(譬如卫星收音机及其微控制器)为例进行说明,但本发明的更新程序区段的方法并不以使用电子系统1为限。
如图2所示,在本发明的一实施例中,电子系统1包括处理器10、储存装置20及缓冲存储器40。其中处理器10与储存装置20及缓冲存储器40电性连接,储存装置20包括程序区段30。
如图3所示,程序区段30包括应用程序区段31及启动区段32,其中应用程序区段31具有第一启动加载程序311及应用程序数据312。应用程序区段31在程序区段30上的结束位置是中断向量位置313。
其中第一启动加载程序311至少包括执行第一驱动程序3111。须注意的是,如图4所示,在本发明的另一实施例中,第一启动加载程序311b并不限于包括只执行第一驱动程序3111b,可视实际需求,第一启动加载程序311b可包括执行第二驱动程序3112b及第三驱动程序3113b。
如图3,启动区段32包括初始启动加载程序321,初始启动加载程序321包括启动向量(boot vector)3211、写入储存装置应用程序接口(write flash application programminginterface,write flash API)3212、初始驱动程序3213及主程序3214。在本发明的一实施例中,写入储存装置应用程序接口3212用以控制第一驱动程序3111或初始驱动程序3213驱动数据来源装置50,并且可将数据来源内的数据储存于缓冲存储器40中。须注意的是,启动向量并非初始启动加载程序的必要组件,在本发明的一实施例中,启动向量亦可独立存在于启动区段。
在本发明的一实施例中,电子系统1为微控制器(Micro Controller Unit,MCU)(譬如卫星收音机的微控制器),但本发明不以此为限。在本发明的一实施例中,储存装置20为快闪存储器(flash),但本发明不以此为限。须注意的是,缓冲存储器可以非为本发明的电子系统的必要组件,缓冲存储器亦可为与电子系统外接的组件。
以下将说明关于本发明的更新程序区段的方法的第一实施例的实施步骤。
如图5所示,本发明的第一实施例首先进行步骤S71:连接数据来源装置。
在本发明的一实施例中,电子系统1与数据来源装置50电性连接(如图2所示)后,电子系统1接着重新上电(power on)或重置(reset)。其中,数据来源装置50包括更新数据,更新数据用以更新应用程序数据312。在本发明的一实施例中,数据来源装置50为通用串行总线装置(Universal Serial Bus device,USB device),但本发明不以此为限。举例来说,数据来源装置50亦可为通用异步收发传输器(Universal AsynchronousReceiver/Transmitter,UART)或记忆卡(譬如安全数据(secure digital)记忆卡)。
接着进行步骤S72:判断初始驱动程序是否可驱动数据来源装置。
在本发明的一实施例中,在电子系统1重新上电或重置后,主程序3214判断初始驱动程序3213是否可驱动数据来源装置50,进一步地来说,主程序3214用以判断初始驱动程序3213是否可驱动数据来源装置50及读取其更新数据的格式。
须注意的是,步骤S72并非本发明的一必要步骤。举例来说,在本发明的另一实施例中,可使用如图6所示的程序区段30c配置,初始启动加载程序321c不具有初始驱动程序,则在步骤S71之后,可省略步骤S72,而接着进行步骤S73。
如图5所示,若主程序3214判断初始驱动程序3213可驱动数据来源装置50,则进行步骤S75:初始驱动程序根据更新数据执行更新程序。若主程序3214判断初始驱动程序3213不可驱动数据来源装置50,则进行步骤S73:判断第一驱动程序是否可驱动数据来源装置。
若主程序3214判断第一驱动程序3111可驱动数据来源装置50,则进行步骤S74:利用第一驱动程序根据更新数据执行更新程序。
藉此,本发明的更新程序区段的方法为提供利用应用程序区段的储存空间,达到使启动加载程序可驱动更多数据来源装置的目的。此外,判断启动区段或应用程序区段内的驱动程序何者可以驱动数据来源装置的顺序,可视需要任意安排,不需以此实施例中所举的顺序为限。
在本发明的一实施例中,主程序并不限于位于初始启动加载程序中,举例来说,主程序亦可位于第一启动加载程序中,但本发明不以此为限。
请一并参考图3及图7,在本发明的一实施例中,以第一驱动程序3111执行的更新程序包括下列步骤。
如图7所示,步骤S741:第一驱动程序读取更新数据。
步骤S742:第一驱动程序将更新数据传输至缓冲存储器。
须注意的是,若更新数据所占用的储存空间超过缓冲存储器40的储存空间,则第一驱动程序3111仅将部分的更新数据传输至缓冲存储器40。
步骤S743:将应用程序区段设定成可写入且不可执行状态。
在本发明的一实施例中,写入储存装置应用程序接口3212是将应用程序区段31设定成可写入且不可执行状态。
步骤S744:将储存在缓冲存储器的更新数据写入应用程序区段。
在本发明的一实施例中,因为在进行写入应用程序区段31时,应用程序区段31无法执行程序(只能被写入),因此在进行更新数据时,须以写入储存装置应用程序接口3212将储存在缓冲存储器40的更新数据写入应用程序区段31。
步骤S745:将应用程序区段设定成可执行且不可写入状态。
在本发明的一实施例中,当储存在缓冲存储器40的更新数据写入应用程序区段31后,则写入储存装置应用程序接口3212将应用程序区段31设定成可执行且不可写入状态。
最后进行步骤S746:判断应用程序区段是否更新完毕。
在本发明的一实施例中,若尚有未更新的更新数据,则重复步骤S741至步骤S746。
若主程序3214判断初始驱动程序3213可驱动数据来源装置50,则进行步骤S75:初始驱动程序根据更新数据执行更新程序。
如图8所示,在本发明的一实施例中,初始驱动程序3213读取更新数据,并将更新数据传输至缓冲存储器40。惟须注意的是,若更新数据所占用的储存空间超过缓冲存储器40的储存空间,则初始驱动程序3213仅将部分的更新数据传输至缓冲存储器40。
接着写入储存装置应用程序接口3212将应用程序区段31设定成可写入且不可执行状态,接着写入储存装置应用程序接口3212将储存在缓冲存储器40的更新数据写入应用程序区段31。若尚有更新数据未传输至缓冲存储器40,则初始驱动程序3213继续将剩余的更新数据传输至缓冲存储器40,且写入储存装置应用程序接口3212将储存在缓冲存储器40的更新数据写入应用程序区段31。当所有更新数据更新完毕时,写入储存装置应用程序接口3212将应用程序区段31设定成可执行且不可写入状态。在本发明的一实施例中,写入储存装置应用程序接口3212将储存在缓冲存储器40的更新数据写入并更新应用程序数据312,但本发明不以此为限。
惟须注意的是,本发明所属技术领域技术人员当能了解本发明上述步骤可调换次序或同时执行,如此仍能达成本发明的功效。
以下请参考图2、图3及图7至图9关于本发明的更新程序区段的方法的第二实施例。
本发明的更新程序区段的方法的第二实施例与第一实施例最大的不同在于主程序3214用以直接判断初始驱动程序3213或第一驱动程序3111是否可驱动数据来源装置50。
如图9所示,本发明的第二实施例首先进行步骤S81:连接数据来源装置。
连接数据来源装置50的实施说明则如前所述,在此不再赘述。
接着进行步骤S82:判断初始驱动程序及第一驱动程序中是否至少其中之一可驱动数据来源装置。
在本发明的一实施例中,主程序3214用以判断初始驱动程序3213或第一驱动程序3111是否可驱动数据来源装置50,但本发明不以此为限。举例来说,如图4所示,若第一启动加载程序311b还包括执行第二驱动程序3112b及第三驱动程序3113b,则主程序3214b用以判断初始驱动程序3213b、第一驱动程序3111b、第二驱动程序3112b及第三驱动程序3113b是否可驱动数据来源装置。
如图9所示,当初始驱动程序3213及第一驱动程序3111中至少其中之一可驱动数据来源装置50,则进行步骤S83:读取更新数据及执行更新程序。
须注意的是,关于利用第一驱动程序3111或初始驱动程序3213根据更新数据执行更新程序执行的实施方式已在第一实施例中举例说明,故不在此赘述。
综上所述,本发明所公开的更新程序区段的方法,可利用应用程序区段的储存空间以改善启动区段的储存空间过小的缺点。
综上所陈,本发明无论就目的、手段及功效,均显示其迥异于公知技术的特征,恳请审查员明察,早日赐准专利,俾嘉惠社会,实感德便。惟应注意的是,虽然本发明已以较佳实施例公开如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,因此本发明的保护范围当视前述的权利要求书所界定者为准。
Claims (4)
1.一种更新程序区段的方法,用于一电子系统,所述电子系统包括一处理器及一储存装置,其中所述处理器与所述储存装置电性连接,所述储存装置包括一程序区段,所述程序区段包括一应用程序区段及一启动区段,其中所述启动区段包括一初始启动加载程序,所述初始启动加载程序包括一初始驱动程序,所述更新程序区段的方法包括下列步骤:
在所述应用程序区段具有一第一启动加载程序,其中所述第一启动加载程序包括执行一第一驱动程序;
连接一数据来源装置,所述数据来源装置包括一更新数据;
判断所述初始驱动程序是否可驱动所述数据来源装置;
当所述初始驱动程序可驱动所述数据来源装置,则根据所述更新数据执行一更新程序;以及
当所述初始驱动程序不可驱动所述数据来源装置,则进行判断所述第一驱动程序是否可驱动所述数据来源装置的步骤,当所述第一驱动程序可驱动所述数据来源装置,则利用所述第一驱动程序根据所述更新数据执行所述更新程序。
2.如权利要求1所述的更新程序区段的方法,其中所述电子系统包括一缓冲存储器,所述缓冲存储器与所述处理器电性连接,当所述第一驱动程序根据所述更新数据执行所述更新程序,则所述更新程序还包括下列步骤:
1)藉由所述第一驱动程序读取所述更新数据;
2)将所述更新数据传输至所述缓冲存储器;
3)将所述应用程序区段设定成一可写入且不可执行状态;
4)将储存在所述缓冲存储器的所述更新数据写入所述应用程序区段;
5)将所述应用程序区段设定成一可执行且不可写入状态;
6)判断所述应用程序区段是否更新完毕;以及
7)若所述应用程序区段尚未更新完毕,则进行1)-6)的步骤。
3.一种更新程序区段的方法,用于一电子系统,所述电子系统包括一处理器及一储存装置,其中所述处理器与所述储存装置电性连接,所述储存装置包括所述程序区段,所述程序区段包括一应用程序区段及一启动区段,所述启动区段包括一初始启动加载程序,所述初始启动加载程序包括一初始驱动程序,所述更新程序区段的方法包括下列步骤:
在所述应用程序区段具有一第一启动加载程序,其中所述第一启动加载程序包括执行一第一驱动程序;
接受一数据来源装置,所述数据来源装置包括一更新数据;
判断所述初始驱动程序及所述第一驱动程序中是否至少其中之一可驱动所述数据来源装置;以及
当所述初始驱动程序及所述第一驱动程序中至少其中之一可驱动所述数据来源装置,则读取所述更新数据及执行一更新程序。
4.如权利要求3所述的更新程序区段的方法,其中所述电子系统包括一缓冲存储器,所述缓冲存储器与所述处理器电性连接,当所述第一驱动程序根据所述更新数据执行所述更新程序,则所述更新程序还包括下列步骤:
1)所述第一驱动程序读取所述更新数据;
2)所述第一驱动程序将所述更新数据传输至所述缓冲存储器;
3)将所述应用程序区段设定成一可写入且不可执行状态;
4)将储存在所述缓冲存储器的所述更新数据写入所述应用程序区段;
5)将所述应用程序区段设定成一可执行且不可写入状态;
6)判断所述应用程序区段是否更新完毕;以及
7)若所述应用程序区段尚未更新完毕,则进行1)-6)的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910158079 CN101957761B (zh) | 2009-07-20 | 2009-07-20 | 更新程序区段的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910158079 CN101957761B (zh) | 2009-07-20 | 2009-07-20 | 更新程序区段的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101957761A CN101957761A (zh) | 2011-01-26 |
CN101957761B true CN101957761B (zh) | 2013-03-20 |
Family
ID=43485105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910158079 Active CN101957761B (zh) | 2009-07-20 | 2009-07-20 | 更新程序区段的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101957761B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1526090A (zh) * | 2001-07-17 | 2004-09-01 | �Ҵ���˾ | 驱动器分区方案能适应应用增长的功能服务器 |
CN1801092A (zh) * | 2006-01-19 | 2006-07-12 | 北京中星微电子有限公司 | 一种嵌入式芯片及其程序空间扩展的方法 |
-
2009
- 2009-07-20 CN CN 200910158079 patent/CN101957761B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1526090A (zh) * | 2001-07-17 | 2004-09-01 | �Ҵ���˾ | 驱动器分区方案能适应应用增长的功能服务器 |
CN1801092A (zh) * | 2006-01-19 | 2006-07-12 | 北京中星微电子有限公司 | 一种嵌入式芯片及其程序空间扩展的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101957761A (zh) | 2011-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1938200B1 (en) | Initialization of flash storage via an embedded controller | |
US7676640B2 (en) | Flash memory controller controlling various flash memory cells | |
US20030088868A1 (en) | Implementation of in system programming to update firmware on memory cards | |
US20080195833A1 (en) | Systems, methods and computer program products for operating a data processing system in which a file system's unit of memory allocation is coordinated with a storage system's read/write operation unit | |
EP0743597A1 (en) | Programming memory devices through the parallel port of a computer system | |
KR101555210B1 (ko) | 휴대용 단말기에서 내장 대용량 메모리를 이용한 컨텐츠 다운로드 방법 및 장치 | |
US20060224821A1 (en) | System for parallel updating flash memory and method for the same | |
CN105718281A (zh) | 一种触摸屏固件升级方法及装置 | |
CN111897743B (zh) | 数据储存装置及逻辑至物理地址映射表的载入方法 | |
CN108694052B (zh) | 一种固件升级方法、固件升级装置及固件升级系统 | |
EP1205845B1 (en) | Microcomputer and method of controlling the same | |
CN104428751A (zh) | 程序数据的更新方法及设备 | |
CN102043638A (zh) | 计算机系统以及计算机启动设定方法 | |
CN101788946B (zh) | Cpld上连接有e2prom设备的固件烧结方法及装置 | |
CN114816491A (zh) | 用于多系统移动终端的系统升级方法、装置及终端 | |
TW594474B (en) | Upgrade method of BIOS in notebook computer | |
CN101957761B (zh) | 更新程序区段的方法 | |
CN103617063A (zh) | 一种移动终端的软件更新方法和装置 | |
KR20150072963A (ko) | 다중시스템 및 이의 부팅 방법 | |
TWI387926B (zh) | 更新程式區段之方法 | |
CN111338700B (zh) | 加载fpga版本的方法及装置、存储介质 | |
CN101562007A (zh) | 可自动更新韧件的显示控制装置及其更新方法 | |
US20060015661A1 (en) | Visual display for USB storage key | |
US20100274828A1 (en) | Electronic Device, Storage Area Allocation Method for File System, and Computer Product | |
CN1540497A (zh) | Usb装置韧体程式可更新的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |