提出了关于在微控制器上实现远程更新功能的新思路:介绍了ARM Cortex Core LM3S系列微控制器和μC/ OS-II操作系统上实现的具体问题。要用于片上RAM,基于微控制器的非托管嵌入式系统可确保在更新失败时可以重复更新以恢复正常的系统操作。决这个问题的主要思想是将应用程序存储在芯片上,将启动程序和更新程序存储在不同的部分中,并使用微控制器寄存器来保持预先的状态。位后重置或内存驱动的启动程序启动不同的程序。方法使用简单,不需要对初始项目进行任何重大修改。
程更新;集成微控制器ARM; μC/OSII;以太网中图分类号:TP301文献标识码:A文章编号:16727800(2012)007000801作者:王虎(1990-),湖北武汉,大学本科,计算机科学学院武汉信息安全研究部主任。介嵌入式系统的当前远程更新方案通常与现有应用程序系统相关联。更新故障中恢复通常需要手动操作。基于微控制器的集成系统通过仅使用闪存和芯片上集成的存储器,以及芯片上的存储器很小,不再可能缓冲完整的固件,然后写。以看出,有必要为没有微控制器的嵌入式系统设计特殊的远程更新解决方案。法远程更新的想法微控制器的片上存储器很小,完整的升级映像无法缓冲,设备不受监控,网络传输不是可靠且中断升级会使设备上的固件不完整。些问题表明,基于无人值守微控制器的集成系统必须能够防止更新失败。过将应用程序和更新程序分成两个独立的部分,每个更新只清除对应于应用程序的闪存区域,启动和片上更新程序仍然是可行的解决方案。存中的固件结构如图1所示。
于ARM处理器的中断向量处于最低级别,因此引导加载程序位于内存的最低级别,程序更新被放置在与引导加载程序相邻的存储器单元中,并且应用程序被放置在剩余的存储器区域中以便由于增加的功能而适应固件大小。改实际上,可以完全集成引导和更新程序:每个内存区域必须是Flash块大小的倍数,恒温阀芯并且第一个地址与块大小对齐,以便更新。请和更新计划的一天。新程序的运行方式与应用程序不同,因此应用程序的更新程序不占用RAM空间,仍然可以在应用程序之后运行升级失败。位微控制器后,启动启动程序,启动程序通过内部寄存器检测到当前复位为上电复位,然后执行更新程序;更新程序在一定时间内阻止等待更新请求。
用户发送固件数据时执行更新。新结束或结束后,寄存器处于复位前状态或复位后存储器中的特定位(此位为1表示自上次更新后是否已进入更新复位)。序,0表示在应用程序的最后一次复位期间,设置1然后触发热复位,下一个粘性存储器代表这些寄存器或此存储器)。统重置后,将重新进入引导程序。

导程序检测到当前复位的原因是软复位,然后检测非易失性存储器中的该位。位等于1,表示最近已输入更新程序。切换到应用程序之前,应用程序必须将此位设置为0,以便下一次软复位可以重新进入更新。实现相关问题控制算法由于更新过程不记得更新镜像中的所有数据,最常见的远程更新方案使用TFTP,即然后使用不受信任的UDP协议进行封装。了保证正常情况下网络更新的成功率,应该在段发送的数据部分中添加验证机制。证机制主要是一种验证算法。证算法必须具有能够容易地检测网络中发生的常见错误,易于计算和算法简单的特殊性。合适的算法主要是循环冗余校验(CRC)算法。CRC算法可以通过选择合适的生成多项式来满足应用的要求。ErFlash擦除由于Nor Flash具有单独的地址线和数据线,因此Nor Flash代码可以直接由ARM处理器执行而无需复制到存储器中。此,许多微控制器制造商直接使用Nor Flash作为程序代码。存闪存的读取速度不及Nand Flash,但写入速度很慢,大多数都需要在写入之前删除。Nor Flash集成微控制器的这些特征导致解决上述解决方案的实现中的一些问题。先,接收一些正常镜像数据并将其直接写入Flash,并且必须在写入之前清除Flash。合适的方法是在传输升级数据之前首先清空Flash中应用程序中存储的区域。可以防止擦除和写入操作花费太长时间并且接收升级数据的缓冲区已满,从而导致删除新到达的升级镜像数据。更新程序大小。
新程序必须占用Flash中的存储空间作为应用程序。了确保更新过程足够小,您可以采用以下两种方案:使用uC / OS-II操作系统和uC / TCP-IP协议栈并配置协议栈这样只有UDP协议才能在上层实现简单的TFTP客户端。

户设计的简单协议栈,仅支持IP和UDP。结论提出了一种在具有小型无人值守内存的微控制器上执行远程更新功能的方法,如果更新无法更新,则无需人工干预即可执行自动重新更新。离。个想法是远程更新小型存储器微控制器的可行解决方案,可以减少升级偏远地区嵌入式设备所需的人力和资源。
本文转载自
恒温阀芯 https://www.wisdom-thermostats.com
