可更新固件的电子装置及其固件下载方法_3

文档序号:9865258阅读:来源:国知局
具有第一模式参数的固件数据段中的程序码段,依序储存至存储器装置1046,以合并固件数据段DSl?DSN中的程序码段CSl?CSN并构成固件FW。举例而言,周边装置104的控制器1042将具有第一模式参数的第一固件数据段DSI中的程序码段CS I,储存至一第一地址,其中第一地址是固件FW的起始地址。另外,周边装置104的控制器1042将具有第一模式参数的第二固件数据段DS2中的程序码段CS2,储存至一第二地址,其中第二地址是接续于程序码段CSl后的地址,但本发明不限于此。
[0040]在步骤S406中,主机102判断是否有一中断事件发生,其中中断事件可包括周边装置104断电、周边装置104脱离主机102、网络中断等事件,但本发明不限于此。主机102可藉由与周边装置104的连结或者其他机制判断是否有中断事件发生,本发明不限于此。当有中断事件发生时,流程进行至步骤S408,否则,流程回到步骤S400,主机102继续传送接续的固件数据段至周边装置104。
[0041]在步骤S408中,主机102将已传送至周边装置104被写入的固件数据段中的模式参数,改写为第二模式参数。举例而言,当依序传送固件中的多个固件数据段DS I?DSN至周边装置104的过程在第M个固件数据段DSl?DSN被中断时,主机102将第I个至第M-1个固件数据段DSl?DSN中的第一模式参数改写为第二模式参数,其中M小于N,并且M以及N为正整数。值得注意的是,当步骤S408完成后,主机102检测中断事件是否结束以及与周边装置104的连结是否回复,或者判断是否接收到一继续更新的命令。当中断事件结束以及与周边装置104的连结回复或者接收到一继续更新的命令时,流程接着回到步骤S400,主机102在步骤S400中,重新依序传送固件数据段DSl?DSN至周边装置104。换言之,在步骤S408完成后,主机102重新由第一固件数据段DSl开始,依序传送固件数据段至周边装置104,其中重新传送的第I个至第M-1个固件数据段DSl?DSN具有第二模式参数,并且重新传送的第M个至第N个固件数据段DSl?DSN具有第一模式参数。
[0042]图5是本发明的固件下载方法的另一种实施例的流程图。固件下载方法适用于图1所示的电子装置100,用以根据一命令更新周边装置104的固件。流程开始于步骤S500。值得注意的是,在本实施例中,参数段PSl?PSN还可分别包括一固件版本参数、一索引、一控制器版本参数、一数据总量参数以及一校验参数等,但本发明不限于此。
[0043]在步骤S500中,周边装置104自主机102接收多个固件数据段DSl?DSN,其中N个固件数据段DSl?DSN用以构成一固件FW,如图3所示。举例而言,周边装置104自主机102接收第一固件数据段DS1、第二固件数据段DS2、第三固件数据段DS3等等。值得注意的是,在步骤S500中,周边装置104每接收到一个固件数据段,流程即进行至步骤S502。
[0044]接着,在步骤S502中,周边装置104先将所接收的固件数据段暂存于一暂存器1044 中。
[0045]接着,在步骤S504中,控制器1042读取参数段中的控制器版本参数,并根据参数段中的控制器版本参数,判断控制器1042的版本是否正确。换言之,控制器1042可根据控制器版本参数确认所接收的固件数据段的版本与控制器1042的版本是否相符。当控制器版本正确时,流程进行至步骤S506,否则,流程结束于步骤S504,控制器1042停止更新周边装置104。
[0046]在步骤S506中,控制器1042读取参数段中的校验参数,并根据参数段中的校验参数,校验所接收的固件数据段中的程序码段是否正确。举例而言,校验参数可为一校验和(checksum)参数,控制器1042可经由校验和的演算法以及校验和参数检查所接收的校验固件数据段中的程序码段是否正确。当程序码段正确时,流程进行至步骤S508,否则,流程结束于步骤S506,控制器1042停止更新周边装置104。
[0047]在步骤S508中,控制器1042读取参数段中的模式参数,并根据参数段中的模式参数,判断所接收的固件数据段的模式参数为一第一模式参数或者一第二模式参数。当所接收的固件数据段的模式参数为第一模式参数,流程进行至步骤S510。当所接收的固件数据段的模式参数为第二模式参数,流程进行至步骤S518。
[0048]在步骤S510中,控制器1042读取参数段中的固件版本参数,并根据参数段中的固件版本参数,确认所接收的固件数据段所相应的固件FW的版本是否正确。当固件版本正确时,流程进行至步骤S512,否则,流程结束于步骤S510,控制器1042停止更新周边装置104。
[0049]在步骤S512中,控制器1042读取参数段中的索引以及数据总量参数,其中控制器1042根据数据总量参数得知固件FW的长度,并且根据参数段中的索引判断所接收的固件数据段相应的地址。举例而言,控制器1042可根据索引得知目前所接收的固件数据段的顺序,并根据固件数据段的顺序以及程序码段的长度,计算出所接收的固件数据段的地址。因此,控制器1042可依照固件数据段DSl?DSN的地址,依序地将固件数据段DSl?DSN中的程序码段储存至存储器装置1046中所相应的位置,以在存储器装置1046中构成如图3所示的固件FW。值得注意的是,控制器1042可根据数据总量参数以及索引判断所接收的固件数据段是否为最后一个固件数据段DSN。
[0050]在步骤S514中,控制器1042依照在步骤S512中所获得的地址,将所接收的固件数据段的程序码段储存至存储器装置1046。
[0051]接着,在步骤S516中,控制器1042回报主机102,以通知主机102数据写入的状况,但本发明不限于此。在其他实施例中,步骤S516可被省略。
[0052]在步骤S518中,控制器1042读取参数段中的固件版本参数,并根据参数段中的固件版本参数,确认所接收的固件数据段所相应的固件FW的版本是否正确。当固件版本正确时,流程进行至步骤S520,否则,流程结束于步骤S518,控制器1042停止更新周边装置104。
[0053]在步骤S520中,控制器1042读取参数段中的索引以及数据总量参数,其中控制器1042根据数据总量参数得知固件FW的长度,并且根据参数段中的索引判断所接收的固件数据段相应的地址。
[0054]在步骤S522中,控制器1042判断在步骤S520中所获得的地址上是否已写入程序码段。当地址上已被写入程序码段,流程进行至步骤S526。换言之,在步骤S522中,控制器1042判断地址上是否有数据,以确定模式参数为第二模式参数的固件数据段中的程序码段是否已写入存储器装置1046,并在确认程序码段已写入存储器装置1046后,忽略所接收的固件数据段,并且不储存所接收的固件数据段中的程序码段。
[0055]在步骤S524中,控制器1042依照在步骤S520中所获得的地址,将所接收的固件数据段的程序码段储存至存储器装置1046。
[0056]接着,在步骤S526中,控制器1042回报主机102,以通知主机102数据写入的状况,但本发明不限于此。在其他实施例中,步骤S526可被省略。又另一实施例中,步骤S518?S526皆可被省略。换言之,当控制器1042判断模式参数为第二模式参数后,直接忽略所接收的固件数据段,并回到步骤S500,以继续接收并处理下一个固件数据段。
[0057]图6是本发明的固件下载方法的另一种实施例的流程图。固件下载方法适用于图1所示的电子装置100,用以根据一命令更新周边装置104的固件。在本实施例中,模式参数还包括一第三模式参数。流程开始于步骤S600。值得注意的是步骤S600?S606、S610?S626相似于图5所示的步骤S500?S506、S510?S526,故相关说明请参考图5,在此不再赘述。
[0058]在步骤S608中,控制器1042读取参数段中的模式参数,并根据参数段中的模式参数,判断所接收的固件数据段的模式参数为一第一模式参数、一第二模式参数或者一第三模式参数。当所接收的固件数据段的模式参数为第一
当前第3页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1