我已经看了一段时间、但我不确定如何处理这种情况。 我有一个小引导程序、我在0x00000000加载了该程序。 它运行正常、从该程序、我想跳转到0x8000或0x14000的主代码。 想法是、我将始终在器件上拥有已知的良好版本、但可以在另一个组中升级软件、并在启动时使用该版本。 我拥有自己的引导加载程序的主要原因是、我通过专有接口而不是串行接口、USB 等进行更新
我让引导程序选择0x8000处的代码并正确运行。 此主代码已使用.cmd 文件进行编译、告知它正在加载0x8000。 从实际角度来看、假设每个版本在不同的地址加载、则有两个不同的编译版本是没有意义的、尤其是因为我不知道接下来要升级哪个银行。 引导软件将新代码加载到不包含最后已知良好版本的组中。
如何解决这个问题? 我已将相同的主代码加载到0x8000和0x14000中、引导加载程序将运行其中一个、但例如、如果我删除了0x8000处的代码、它将不会在0x14000处运行代码。
这似乎是一个相当常见的用例、因此必须有一种解决方法、我没有找到。
James