大家好、
以下是客户可能需要您帮助的问题:
客户使用自定义引导加载程序。 引导程序有问题、需要修改。 但产品是密封的、因此他们需要使用应用程序来刷写引导程序。
原始引导和应用程序 cmd 文件如下所示:
引导的指令跳转到应用程序:asm (" mov &0xEDFE、PC;");
由于新的引导程序大于原始的引导程序、因此不能使用该应用程序直接刷新引导、因此设计了两个应用程序:App1和 App2。App1主要用作传输。 程序从原始引导程序跳转到 app1、app1重定向中断矢量、然后跳转到 App2;App2接收数据并将其存储在存储器中(存储器空间是原始 boot+app1)。 相关的 cmd 文件如下所示:
A 到 B:成功
B 到 C:App2接收和存储数据。 当它被存储到0xF400时、程序不起作用(它们在更新引导时使用打印调试信息来监视程序、并且发现程序在程序接收到引导程序数据后无法运行。 它在断电和重新启动后也无法运行)。
他们猜可能是由 INT 区域引起的。 当应用程序刷新引导时、将使用中断。 这可能是因为应用程序刷新时会重写 APP1的 INT 中断矢量、并且无法找到中断、并且中断不起作用。
谢谢、 此致、
耶鲁李