LPC1114引导加载程序和用户应用程序使用相同的中断

时间:2014-06-30 18:26:59

标签: bootloader cortex-m

恩智浦LPC1114 / 5的辅助引导加载程序 参考恩智浦应用笔记10995 需要在引导加载程序和用户应用程序中使用相同的中断。

根据恩智浦AN10995,int向量仅在位置0处,并且没有向量偏移reg可用于抵消其他int向量。根据应用笔记,辅助引导加载程序必须将处理器重定向到用户应用程序闪存中的处理程序。

问题/问题我在固件更新期间会覆盖用户应用程序闪存,因此无法在那里找到处理程序。什么是推荐的方法,当引导加载程序和用户应用程序使用中断时。

这是否需要基于运行的应用程序(引导加载程序/用户应用程序)的条件重定向,例如1)如果bootloader运行,则在引导加载程序区域中重定向到int处理程序,2)如果用户应用程序正在运行,则重定向到int。用户应用程序中的处理程序,或3)在引导加载程序和用户应用程序之间使用共享内存?

1 个答案:

答案 0 :(得分:1)

我编写了许多启动加载器/固件升级。如果无法更改中断向量,则需要使用轮询代码,即

  1. 将固件升级程序复制到RAM,或确保它位于FLASH中不会被删除的区域
  2. UART的设置可能已设置为使用中断,您需要重新配置所有必需的硬件以使用轮询方法,即无中断。
  3. 禁用中断!
  4. 跳转到固件升级功能
  5. 固件升级功能不会返回,它将通过UART轮询消息,并根据客户端应用程序的请求擦除,编程,验证闪存部分。 请勿启用中断!
  6. 完成后,您可以使用监视程序重置处理器以重新启动它并执行新代码。