灵活更新固件——IoT设备的关键.PDFVIP

  • 0
  • 0
  • 约8.04千字
  • 约 10页
  • 2019-11-13 发布于天津
  • 举报
灵活更新固件——IoT 设备的关键 Microchip Technology Inc. 存储器产品部 主任应用工程师 Hardik Patel 物联网(IoT)设备正迅速引入各大市场,从家用电器到医疗设备、再到汽车,应用 范围十分广泛;制造商必须通过不断创新和灵活地采用或集成新技术来领先于竞争对手。 为了满足新功能的需求和新法规的要求,设计人员必须将灵活性纳入其产品中,以适应不 断发展的IoT 生态系统。固件更新不仅能够在客户现场的初始部署期间进行定制,还可以 在产品部署到现场后添加新功能/特性,并且支持在使用过程中修复任何固件问题。NOR 闪存等非易失性存储器件具有可重复编程能力且可靠性极高,通常可用作固件代码存储介 质。通过重新编写器件固件代码(位于器件使用的非易失性存储器中)的一部分,制造商 可轻松更新器件功能。想要更新固件时,有三件事情需要考虑:更新哪些/多少代码、更 新频率以及执行更新所需的时间(速度)。 更新哪些/多少固件代码 在IoT 设备的初始设计阶段,必须考虑更新哪些/多少固件代码。相对于不可更新部 分,固件的可更新部分必须存储在NOR 闪存器件的独立区域中。更新NOR 闪存的任何 片段都需要先擦除存储器的这一部分,然后将新信息编程到该部分中。NOR 闪存分为称 为扇区和块的多个部分,它们的大小各有不同。NOR 闪存器件(如采用SST SuperFlash®技术的器件(部件编号SST26VF064B (64 Mb )))分为多个均一的4 KB 扇区,各个扇区可单独擦除和重新编程(4 KB = 4 * 1024 * 8 位= 32,762 位)。它还可 分为更大的8 KB、32 KB 和64 KB 块,这些块也可单独擦除。因此,一个8 KB 块有2 个扇区,一个32 KB 块有8 个扇区,一个64 KB 块有16 个扇区。图1 给出了采用8 KB/32 KB/64 KB 块的SST26VF064B 的存储器构成。各个块也可以单独进行保护。在对 闪存的任何部分执行任何更新前,必须取消保护该部分中的块,以允许擦除和编程操作。 完成更新后,谨慎地再次对这些块进行保护,以避免意外写入或擦除这些区域。固件的可 更新部分必须以足够灵活的方式划分为扇区和块,以便同时支持有限数量和最大数量的特 性/功能更新。由于执行更新的速度由需要擦除和重新编程的扇区和块数决定,因此在组 织固件的可更新部分时,最好同时考虑速度和灵活性。图2 给出了将存储器组织为可更 新和不可更新部分的示例。引导代码等不可更新部分存储在受保护区域中。固件的可更新 部分(如特性/功能)根据灵活性要求分为较小的块或较大的块。可更新的镜像文件存储 在较大的块中,可更新的变量/参数存储在较小的块中。 Flexibility to Update Firmware 灵活更新固件存储器映射 Memory Map Top of Memory Block 存储器块顶部 2 Sectors for 8 KB Blocks 8 Sectors 8 KB 块对应2 个扇区,32 KB 块对应 for 32 KB Blocks 16 Sectors for 64 KB 8 个扇区,64 KB 块对应16 个扇区 Blocks Bottom of Memory Block 存储器块底部 图1:SST26VF064B 的存储器构成(映射)——由8 个 8 KB 块、2 个32 KB 块和 126 个 64 KB 块组成 Organizing the memory in non- 将存储器组织为多个不可更新部分 updatable portions Non-updatable area e.g. boot code 不可更新区域,例如引导代码(进行 (keep it protected)

文档评论(0)

1亿VIP精品文档

相关文档