This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] RTOS/66AK2H12:使用 IPC/GateMP 的 ARM 内核上出现 TI RTOS 错误

Guru**** 2543880 points
Other Parts Discussed in Thread: SYSBIOS

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/717066/rtos-66ak2h12-ti-rtos-errors-on-arm-core-using-ipc-gatemp

器件型号:66AK2H12
Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI-RTOS

我们正在使用的器件

SYS/BIOS (目标内容) 6.46.5.55
IPC (IDE 客户端) 3.46.2.04
XDCtools 内核更新功能 3.32.2.25

在 IPC_START()之后,我们立即得到 ROV"BIOS/扫描错误"选项卡中列出的 BIOS 错误:

,ti.sdo.ipc.gatemp, Gate resources,N/A,N/A,在 View init 代码中捕获异常:获取 remoteSystemInUseJavaException 时出现问题:java.lang.exception:目标内存读取失败,地址为0x86000200,长度为32根据应用程序的段映射,此读取位于无效地址。 应用程序可能未初始化或已损坏

,ti.sdo.ipc.notifyDrivers.NotifyDriverCirc,Events,remoteProcId = 1 lineId = 0,N/A,在 View init 代码中捕获到异常:错误:从共享存储器提取 putWriteIndex 结构时出错

OUT CFG 将 IPC 共享存储器区域 SR0定义为0x86000000:

IPC.hostProId = MultiProC.getIdMeta ("主机");

//共享区域配置
var SR0 = Program.cpu.memoryMap["SR0"];
//print ("SRO.base ="+SR0");

var SharedRegion = xdc.useModule('ti.sdo.ipc.SharedRegion');
SharedRegion.setEntryMeta(0、
new SharedRegion.entry ({
name: "sr0"、
base: sr0.base
、len: sr0.len、
ownerPropId:MultiProc.getIdMeta ("host")、
IsValid: true,
cacheEnable: true
})
;

在调试器中、我们可以清楚地看到内存位置0x86000200是可访问的、看起来没有损坏。

这意味着什么、为什么会发生这种情况?

谢谢、
Bruce

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Bruce、

    我们将对此进行研究。 同时、可以快速尝试以下几项操作:

    增加系统堆栈大小和任务堆栈大小。 如果可以、请转至 ROV 中的任务并检查是否有任何错误。 也尝试增大堆大小。

    如果您可以共享项目、至少可以共享映射和 cfg 文件以便我们查看、这也会有帮助。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Sahin、

    很遗憾、由于地图文件或工程包含的信息、我无法提供这些文件或工程。 我尝试附加 cfg 文件和 ipc.cfg.xs、但界面显示"只能附加某些类型的文件..." 尽管我将它们都更改为.txt 文件。

    需要注意的一个重要事项是,我忘记提到:这些错误在运行 main()时立即出现,恰好在运行 IPC_start()之后,这是 main 中的第一个操作,早在 BIOS_start 之前。 明天,我将尝试再次运行,看看它们是否在 IPC_START()之前出现,但我对此表示怀疑。 因此、我严重怀疑增大系统或任务堆栈大小是否有用、因为此时甚至不存在任何任务。

    谢谢、

    Bruce

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Bruce、

    cfg 文件应该会有所帮助。 如果您将它们压缩、您应该能够连接它们。

    我现在没有 K2H 板、因此我使用运行 MessageQ 示例的 AM572x 板对其进行了测试。 我观察到与您相同的 ROV 错误、但该示例运行正常、因此我想知道它是否是 ROV 的错误。 我将看到我是否可以让 CCS 团队的某个人来看看这一点。

    您能否说明您在运行应用程序时是否遇到任何问题?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    我们发现了一些崩溃、当我们研究这些崩溃的性质时、我们在 ROV BIOS 部分看到了这些错误消息以及其他错误消息。 我们修复了其他错误、但现在想知道这些错误是什么。 根据我们的经验、如果 TI RTOS 产生任何错误、则应用程序可能会崩溃。

    我要附上 cfgs 供您参考。

    谢谢、
    Brucee2e.ti.com/.../cfgs.zip

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Bruce、
    下面是一个解决方案:

    e2e.ti.com/.../697185

    我使用的是 DSP C6670。 我的 MSMCSRAM 内存有问题。 我添加了以下代码:

    /*检索 MemoryImage Java 对象。 *
    VAR 模型= XDC.MODULE ("XDC.ROV.Model");
    var memReader = Model.getMemoryImageInst();


    /*检索分区列表并添加新的分区*/
    var sections = memReader.getSecations();
    sections.addSection (0x0C000000、0x0C200000);

    在 package.xs 文件中的 if (Xdc.om.$name ="ROV")条件中。
    例如、在 SYS BIOS 6.46.4.53 package.xs 文件中:
    C:\ti\BIOS_6_46_04_53\packages/ti\SYSBIOS\堆

    此致、
    Lukas。