电子处理装置及存储器控制方法与流程

文档序号:25603059发布日期:2021-06-25 12:39阅读:108来源:国知局
电子处理装置及存储器控制方法与流程

1.本申请有关于存储器管理技术,特别有关于一种适用于电子处理装置的存储器控制方法。


背景技术:

2.相较于个人电脑内部所配置的通用处理器,微控制器(micro control unit,mcu)具有自供应(不用外接硬体)、节约成本、以及体积小等优点,因此更适用于消费性电子、工业控制、汽车电子、以及通信系统等领域。
3.随着技术发展,现今微控制器的效能越来越强大,其应用层面也开始扩展到物联网,通过遍及的网路,各种电子产品甚至可在远端控制下进行软/韧件的更新或系统升级,大幅减少了时间及人力成本。举例来说,传统的路灯若需要更新应用程序(如:软/韧件)时,一般由人力手动拆卸来进行更新,相较之下,经由物联网则可采用空中下载(over the air,ota)的方式来进行更新。
4.然而,以现行做法来说,经由物联网进行更新的方法大致上都包括:需要将更新的应用程序进行两次烧写、需要根据应用程序的签章来判断新旧版本、需要载入程序(loader code)来执行新旧版本的应用程序、以及需要开机程序(boot code)来选择执行载入程序或应用程序等步骤。
5.图1显示现行做法在进行应用程序更新的存储器操作过程。如图1所示,存储器储存空间包括:在线升级(in system programing,isp)只读存储器(isp loader rom,ldrom)、以及应用程序只读存储器(application program read only memory,aprom),其中在线升级只读存储器储存了载入程序(loader code),应用程序只读存储器包括第一记忆库(bank)(在图中标示为bank0)以及第二记忆库(在图中标示为bank1)。
6.首先,在开机后,开机程序(boot code)会执行在线升级只读存储器所储存的载入程序,由载入程序去执行第一记忆库所储存的应用程序app1。
7.接着,当应用程序app1接收到更新请求时,会将更新应用程序app2写入第二记忆库,待更新应用程序app2完全写入第二记忆库时,则触发重新执行程序(或可称为重开机(reboot)),重新由开机程序执行载入程序,载入程序会判断是否有新版的应用程序签章存在,若有,则将更新应用程序app2覆写到第一记忆库。
8.最后,当覆写完成时,再次重新执行程序,此时开机程序执行载入程序后会接着去执行第一记忆库刚被覆写完成的更新应用程序app2。
9.由此可知,现行做法在进行应用程序更新时包含了两次写入应用程序的作业,且需要载入程序来管理应用程序的版本签章。因此,其复杂性将拉长开机时间也拖慢了更新的速度,且应用程序更新期间所涉及的第二次写入需要先将更新应用程序读出,将会有资料外泄或被窜改的风险。


技术实现要素:

10.为了解决上述问题,本申请提出一种电子处理装置及存储器控制方法,在应用程序更新时不需要管理应用程序的版本签章,因此不需要载入程序,也不需要二次写入,将可改善整体流程的复杂性并提升开机速度,同时,也能降低资料外泄或被窜改的风险。
11.本申请的一实施例提供了一种电子处理装置,包括一存储器以及一微控制器。上述存储器包括一第一存储器区块、以及一第二存储器区块。上述微控制器执行上述第一存储器区块所储存的一第一代码以将一更新代码写入上述第二存储器区块,于上述更新代码写入上述第二存储器区块完成时,设定将重新执行程序的起始位置从上述第一存储器区块重新映射到上述第二存储器区块,以及触发重新执行程序以执行上述第二存储器区块所储存的上述更新代码。
12.较佳的情况是,上述存储器还包括一储存空间用以储存一配置(configuration),上述微控制器根据上述配置来决定重新执行程序的起始位置。
13.上述微控制器于上述配置为一第一数值时,执行上述第一存储器区块所储存的上述第一代码,以及上述重新映射的步骤还包括:将上述配置设定为一第二数值以触发重新执行程序时执行上述第二存储器区块所储存的上述更新代码。
14.上述微控制器还将上述第一存储器区块的全部或部份设置为仅限执行存储器(execute only memory,xom),并且将上述第二存储器区块的相应位置也设置为仅限执行存储器,以保护上述第一代码以及上述更新代码中的关键代码。
15.上述存储器为一应用程序只读存储器、或一串行外设接口(serial peripheral interface,spi)快闪存储器(flash memory)。
16.本申请的另一实施例提供了一种存储器控制方法,适用于包括一微控制器以及一存储器的一电子处理装置。上述存储器控制方法包括以下步骤:执行上述存储器的一第一存储器区块所储存的一第一代码以将一更新代码写入上述存储器的一第二存储器区块;于上述更新代码写入上述第二存储器区块完成时,设定将重新执行程序的起始位置从上述第一存储器区块重新映射到上述第二存储器区块;以及触发重新执行程序以执行上述第二存储器区块所储存的上述更新代码。
17.较佳的情况是,上述存储器还包括一储存空间用以储存一配置,上述存储器控制方法还包括:根据上述配置来决定重新执行程序的起始位置。
18.上述第一代码执行于上述配置为一第一数值时,上述重新映射的步骤还包括:将上述配置设定为一第二数值,以触发重新执行程序时执行上述第二存储器区块所储存的上述更新代码。
19.上述存储器控制方法还包括:将上述第一存储器区块的全部或部份设置为仅限执行存储器;以及将上述第二存储器区块的相应位置也设置为仅限执行存储器,以保护上述第一代码以及上述更新代码中的关键代码。
20.上述存储器为一应用程序只读存储器、或一串行外设接口快闪存储器。
21.关于本申请其他附加的特征与优点,本领域技术人员,在不脱离本申请的精神和范围内,当可根据本案实施方法中所揭露的电子处理装置以及存储器控制方法做些许的更动与润饰而得到。
附图说明
22.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:
23.图1是显示现行做法在进行应用程序更新的存储器操作过程;
24.图2是根据本申请一实施例所述的电子处理装置的示意图;
25.图3是根据本申请一实施例所述进行应用程序更新的存储器操作过程;
26.图4是根据本申请另一实施例所述进行应用程序更新的存储器操作过程;
27.图5是根据本申请又一实施例所述进行应用程序更新的存储器操作过程;
28.图6是根据本申请一实施例所述的存储器控制方法的流程图。
29.100~电子处理装置;
30.110~微控制器;
31.120~存储器;
32.121、122~存储器单元;
33.130~输入输出接口;
34.app1、app2~应用程序;
35.bank0、bank1~记忆库;
36.xom0、xom1、new xom0、new xom1~仅限执行存储器;
37.s610、s620、s630~步骤。
具体实施方式
38.本章节所叙述的是实施本申请的较佳方式,目的在于说明本申请的精神而非用以限定本申请的保护范围,当可理解的是,使用于本说明书中的「包含」、「包括」等词,用以表示存在特定的技术特征、数值、方法步骤、作业处理、元件以及/或组件,但并不排除可加上更多的技术特征、数值、方法步骤、作业处理、元件、组件,或以上的任意组合。
39.图2根据本申请一实施例所述的电子处理装置的示意图。
40.如图2所示,电子处理装置100包括:微控制器110、存储器120、以及输入输出(input/output,i/o)接口130,其中微控制器110分别耦接至存储器120及输入输出接口130,用以对存储器120进行操作管理(如:执行及更新应用代码)、以及通过输入输出接口130接收及输出数字信号(如:接收要更新的应用代码)。
41.在一实施例,电子处理装置100可以是指单晶片微控制器(single chip micro-controller),也就是将微控制器、存储器、以及输入输出接口整合在同一个晶片中。
42.在其他实施例,微控制器110也可以是微处理器(micro processing unit,mpu)、或数字信号处理器(digital signal processor,dsp)等其他具有数据运算功能的微型处理单元。
43.进一步说明,存储器120可划分为不同的储存区域、或可由不同的存储器单元所组成,其中每个存储器单元可以是相同或不同的存储器类型,例如:快闪存储器(flash memory)。此外,每个存储器单元可属于同一个存储器晶片(如:同位属于一个微处理器快闪
存储器)、或属于不同的存储器晶片(如:分别属于微处理器快闪存储器、以及串行外设接口(serial peripheral interface,spi)快闪存储器)。
44.如图2所示,存储器120包括:存储器单元121、以及存储器单元122。
45.存储器单元121用以储存各种设定,其至少包括:一第一配置,用以决定重新执行程序的起始位置。举例来说,当第一配置为第一数值(如:0)时,重新执行程序的起始位置为存储器单元122的第一存储器区块(在图中标示为bank0);当第一配置为第二数值(如:1)时,重新执行程序的起始位置为存储器单元122的第二存储器区块(在图中标示为bank1)。
46.在一实施例,存储器单元121可以是任一储存空间,例如:一字组(word)或一暂存器(register)。
47.存储器单元122至少包括两个存储器区块,每个存储器区块可储存一应用程序的代码。
48.在一实施例,存储器单元122可以是应用程序只读存储器,而每个存储器区块为一记忆库(bank),且微控制器110可选择性地将存储器区块中的全部或部份设置为仅限执行存储器(execute only memory,xom),使得该区域内的资料无法被读取,避免资料外泄或被窜改。
49.在另一实施例,存储器单元122可以是串行外设接口(serial peripheral interface,spi)快闪存储器。
50.输入输出接口130可包括一或多个通讯埠、按钮、以及/或喇叭等,用以接收及输出数字信号(如:接收要更新的应用代码)。
51.当可理解的是,图2所示的元件仅用以提供一说明的范例,并非用以限制本申请的保护范围。举例来说,电子处理装置100还可包括其他元件,例如:更多硬件资源。同样的,存储器120还可包括其他存储器单元,例如:在线升级只读存储器、以及/或资料储存存储器(data flash),其中在线升级只读存储器用以储存一些特殊的代码(如:载入程序、以及/或韧件升级所需的在线升级码),资料储存存储器则可用于储存用户资料。
52.图3是根据本申请一实施例所述进行应用程序更新的存储器操作过程。
53.如图3所示,本申请的存储器控制方法在进行应用程序更新时仅需要用到包括两个记忆库的应用程序只读存储器(如:存储器单元122),而无需在线升级只读存储器及其所储存的载入程序。
54.在此实施例,所述的存储器单元为应用程序只读存储器,而每个存储器区块为一记忆库。
55.首先,在开机后,微控制器110可根据第一配置的数值(如:初始化为0)而去执行第一记忆库所储存的应用程序app1,并且由应用程序app1去处理应用程序的更新请求,将更新应用程序app2写入第二记忆库。
56.接着,当更新应用程序app2写入完成时,则设定将重新执行程序的起始位置从上述第一记忆库重新映射到上述第二记忆库。
57.明确来说,微控制器110可将第一配置的数值设为不同数值(如:重设为1),从而实现上述记忆库的重新映射。
58.当可理解的是,在图3中,记忆库的重新映射完成后虽然显示为第二记忆库在第一记忆库之上,但其并非用以表示第一及第二记忆库进行了实质的储存空间调换,而是通过
第一配置的数值重设让微处理器所认为的重新执行程序的起始位置有所改变。
59.之后,微控制器110可再触发重新执行程序,并根据第一配置的数值而去执行第二记忆库所储存的更新应用程序app2。
60.图4是根据本申请另一实施例所述进行应用程序更新的存储器操作过程。
61.相较于图3的实施例,本实施例一样仅需要用到包括两个记忆库的应用程序只读存储器,然而,本实施例还可将记忆库中的全部或部份设置为仅限执行存储器,使得该区域内的资料无法被读取,进一步达到避免资料外泄或被窜改的效果。
62.首先,在开机后,微控制器110可根据第一配置的数值(如:初始化为0)而去执行第一记忆库所储存的应用程序app1,并且由应用程序app1去处理应用程序的更新请求,将更新应用程序app2写入第二记忆库。
63.特别是,在处理应用程序的更新请求之前或在处理的过程中,微控制器110可将第一记忆库的部份区域(在图中标示为xom0、xom1)设为仅限执行存储器,该区域可以是储存演算法、以及/或关键代码等机密数据的部分。或者,微控制器110亦可选择将第一记忆库全部都设为仅限执行存储器。
64.相应地,当第一记忆库的全部或部份被设置为仅限执行存储器时,微控制器110也会将第二记忆库的相应部分(在图中标示为new xom0、new xom1)设置为仅限执行存储器,使得更新应用程序的机密部分也会获得保护。
65.接着,当更新应用程序app2写入完成时,则设定将重新执行程序的起始位置从上述第一记忆库重新映射到上述第二记忆库。
66.明确来说,微控制器110可将第一配置的数值设为不同数值(如:重设为1),从而实现上述记忆库的重新映射。
67.当可理解的是,在图4中,记忆库的重新映射完成后虽然显示为第二记忆库在第一记忆库之上,但其并非用以表示第一及第二记忆库进行了实质的储存空间调换,而是通过第一配置的数值重设让微处理器所认为的重新执行程序的起始位置有所改变。
68.之后,微控制器110可再触发重新执行程序,并根据第一配置的数值而去执行第二记忆库所储存的更新应用程序app2。
69.图5是根据本申请又一实施例所述进行应用程序更新的存储器操作过程。
70.在此实施例,所述的存储器单元为串行外设接口快闪存储器,此情形特别适用于当应用代码的尺寸较大而无法储存在微处理器内建的快闪存储器时。此时所述的每个存储器区块可以是指串行外设接口快闪存储器中的任意区块,尺寸可依应用代码的尺寸而定。举例来说,可将存储器位址0x8000000~0x8ffffff设定为第一存储器区块、将存储器位址0x9000000~0x9ffffff设定为第二存储器区块,但不限制于此。
71.首先,在开机后,微控制器110可根据第一配置的数值(如:初始化为0)而去执行第一存储器区块所储存的应用程序app1,并且由应用程序app1去处理应用程序的更新请求,将更新应用程序app2写入第二存储器区块。
72.接着,当更新应用程序app2写入完成时,则设定将重新执行程序的起始位置从上述第一存储器区块重新映射到上述第二存储器区块。
73.明确来说,微控制器110可将第一配置的数值设为不同数值(如:重设为1),从而实现上述存储器区块的重新映射。
74.当可理解的是,在图5中,存储器区块的重新映射完成后虽然显示为第二存储器区块在第一存储器区块之上,但其并非用以表示第一及第二存储器区块进行了实质的储存空间调换,而是通过第一配置的数值重设让微处理器所认为的重新执行程序的起始位置有所改变。
75.之后,微控制器110可再触发重新执行程序,并根据第一配置的数值而去执行第二存储器区块所储存的更新应用程序app2。
76.图6是根据本申请一实施例所述的存储器控制方法的流程图。
77.在此实施例,存储器控制方法适用于包括微控制器(如:微控制器110)以及存储器(如:存储器120)的电子处理装置(如:电子处理装置100),并且由微控制器执行以操作存储器。
78.首先,执行存储器的第一存储器区块所储存的第一代码(如:app1)以将更新代码(如:app2)写入存储器的第二存储器区块(步骤s610)。
79.接着,于更新代码写入第二存储器区块完成时,设定将重新执行程序的起始位置从第一存储器区块重新映射到第二存储器区块(步骤s620)。
80.明确来说,上述存储器区块的重新映射可以通过设定一特定配置值来实现,而每次重新执行程序即根据该特定配置值来决定起始位置是第一存储器区块、或第二存储器区块。
81.在一实施例,上述特定配置值可以是一字组或一暂存器,当被设置为0时,表示重新执行程序的起始位置是第一存储器区块;当被设置为1时,表示重新执行程序的起始位置是第二存储器区块。
82.之后,触发重新执行程序以执行第二存储器区块所储存的更新代码(步骤s630),流程结束。
83.在一实施例,上述存储器可以是应用程序只读存储器(如图3至图4的范例)、或串行外设接口快闪存储器(如图5的范例)。然而,图3至图5所示的存储器类型仅用以提供说明的范例,并非用以限制本申请的保护范围,其他类型的存储器亦可适用于本申请的存储器控制方法。
84.根据上述实施例,当可理解的是,本申请的存储器控制方法仅需一次写入,且不需要载入程序来管理应用程序的版本签章。因此,有效地改善了整体流程的复杂性并提升了开机速度。此外,由于不需要二次写入,所以不会将更新应用程序读出,此将可有效能避免资料外泄或被窜改的风险。
85.本申请虽以各种实施例揭露如上,然而其仅为范例参考而非用以限定本申请的范围,任何熟习此项技艺者,在不脱离本申请的精神和范围内,当可做些许的更动与润饰。因此上述实施例并非用以限定本申请的范围,本申请的保护范围当视权利要求保护范围所界定者为准。
86.于申请专利范围中所使用的「第一」、「第二」等词是用来修饰权利要求中的元件,并非用来表示之间具有优先权顺序,先行关系,或者是一个元件先于另一个元件,或者是执行方法步骤时的时间先后顺序,仅用来区别具有相同名字的元件。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1