我有一个 Cortex-M3 芯片,我正在运行一个使用 eCos 的引导加载程序。引导加载程序在检查固件更新等后,跳转到实际应用程序所在的 ROM 上的另一个位置(BASE_ADDRESS_OF_APP + 0x19)(也使用 eCos 编译)。
现在,我不想运行普通固件,而是想运行为 Cortex-M3 目标编译的 CppUTests。因此,我能够使用 ecos glibc 编译和链接目标平台的测试,而不是实际的操作系统。但是当我使用 JTAG 将它加载到我的板上时,它不会运行。
在使用 arm-eabi-objdump 进行一些调查后,我发现 CppUTest 固件的重置向量位于 0x490 的偏移量处,而普通固件的偏移量为 0x18。我怀疑这就是为什么永远不会执行测试的原因。这个对吗?
当我将它们与相同的链接描述文件链接时,这两个固件怎么可能有不同的起始地址?
如何确保测试程序的起点与应用程序的起点相同?