主题中讨论的其他器件:UNIFLASH、 TIDM-02011
尊敬的社区:
我使用 F283888D 进行产品开发。 我需要将 CM 内核的可用闪存分为3个部分- APP1、APP2和 APP3、并根据需要在它们之间进行跳转。
可能发生在 CM - APP2为 Hung 且 WWD 被触发的情况下、在 NMI 中、我们将跳转到 APP3、而在 APP3中、我们要去初始化一些东西(例如外设/IPC 取消寄存器等)。
然后跳回到 APP-2、必要时也可以跳转到 APP1。
存储在闪存扇区1-3中的 APP-1、
存储在闪存扇区4-7中的 App2、剩余内容用于 APP3。
每当我们执行 POR 时、将首先引导 AP1、并从 APP1调用 APP2。
我们的实现可从 APP2对 APP3/APP1进行编程、并在需要时跳转到 APP3/APP1。
我看到、我可以使用 UNIFLASH 将固件操作码写入和读取到所需的闪存扇区。
因此、我将通过从 UniFlash 读取 APP3和 APP1的各自扇区(首先写入、然后读取)和从 APP-2写入的数据、对闪存扇区操作码进行比较。
我看到没有区别,因此我得出结论,数据是正确的写。
但这里来了主要的问题,我所面临的... 每当我们从 APP-3跳回 APP2... 重复分支几次、我看到执行卡住了几个地方、如果我使用目标配置文件进行读取、它会为我提供0x1816、如 FIG1值、根据 TRM、它显示为 FIG2:在等待引导模式下等待引导命令。 并且执行过程一直停留在此处。
请检查 program_flsh_read_data.zip 文件中是否有写入和读取的文件。
问题1 ::为什么引导命令出现在这里?
图1:

图2

此外、我能够从 APP2写入 APP1、但无法从 APP2跳转到 APP1。 由于 APP1是 POR 期间第一条指令被执行、因此从 APP2写入 APP1后、我正在执行 POR、但我看到 APP1似乎没有重新启动。 我添加了 LED 以了解它是否被跳过,但我看不到 LED 闪烁。 我看到在本例中它也卡在0x1816。 有什么原因呢?
Q2:在从一个应用程序跳转到另一个应用程序之前需要执行的任何操作?
我接下来的问题如下:
问题3:我们是否可以从一个闪存扇区来回跳转至另一个闪存扇区? 如果不是,为什么和如何克服?
Q4: 什么和所有的注意应该采取跳前?
Q5:从主固件跳转到次级固件(例如、从 SSBL 到应用固件)之前、应执行任何操作
Q6 :任何像清除 PC,SP,LR 或主寄存器重置这样的指令都应该在我们从应用程序 FW 跳到 SSBL 之前完成? 如果是、您可以与我分享示例源代码或路径以查找它们。
我使用的是 C2000 SDK 4.03和4.00。
如果需要与他人分享任何其他内容、
Vivek Singh /@ Hareesh Janakiraman 您能帮我吗?
e2e.ti.com/.../program_5F00_flsh_5F00_read_5F00_data.zip
谢谢。
普拉奈



