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:在 OMAP-L138上运行 SYS/BIOS 时出现问题

Guru**** 2614265 points
Other Parts Discussed in Thread: OMAP-L138

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/658571/rtos-problems-running-sys-bios-on-omap-l138

主题中讨论的其他器件:OMAP-L138

工具/软件:TI-RTOS

您好、社区

我在这里有一个采用 OMAP-L138的 Mity-DSP、并且在从 SPI-Flash 运行我的应用时遇到了一些困难。

它是 NDK Clientexample wit server。

如果我在复位后使用 mity-dsp gel 文件运行应用程序、则所有操作都正常。

然后、我成功地通过 u-boot 将应用程序刷写到 SPI、并从那里开始。

我的程序如下所示:

主程序

使一些 LED 闪烁

UARTOUT 一些调试信息

BIOSStart()

Aivetask

闪烁 LED

经过一些调查,我发现 SYS/BIOS 未启动。

为了验证我是否排除了 NDK 功能、以便仅保留活动任务。

在 SYS/BIOS 启动之前、我看到 LED 和 UART 通信闪烁。

但即使只有一个任务、SYS/BIOS 也不会启动。

有人能告诉我我我缺少了什么吗?

我们要提前感谢您的任何帮助。

此致 Martin

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

    如何设置 UART? 您是否正在使用中断来输出 main()? 如果是、这是一个问题。 此外、您正在调用 BIOS_start...not BIOSStart...对吗?

    您能否查看 Tools->ROV 以查看系统的状态? 您可能已完成堆栈或发生异常。

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Todd、
    是的,我正在调用 BIOS_start(),BIOSStart()导致未解析的符号。
    UART 未使用中断发送。

    配置如下:
    /*为 UART1启用 PSC。*/
    PSCModuleControl (SOC_PSC_1_regs、HW_PSC_UART1、PSC_POWERDOMAIN_AYS_ON、
    PSC_MDCTL_NEW_ENABLE);
    UARTPinMuxSetup (1、false);
    /*启用发送器和接收器*/
    UARTEnable (SOC_UART_1_regs);
    /* 1个停止位、8位字符、无奇偶校验*/
    CONFIG = UART_wordl_8位;

    /*配置 UART 参数*/
    UARTConfigSetExpClk (SOC_UART_1_regs、SOC_UART_1_MODULE_FREQ、
    BAUD_115200、CONFIG、
    UART_OVER SAMP_RATE 16);
    /*启用 FIFO 并清除 Tx 和 Rx FIFO。*/
    UARTFIFOEnable (SOC_UART_1_regs);

    /*设置 UART 接收器触发级别*/
    UARTFIFOLevelSet (SOC_UART_1_regs、UART_RX_TRIG_LEVEL_1);


    ROV 异常显示"无数据可显示"
    任务模块看到 IdleTask 在我的 Alive_Task 中运行时未达到断点。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Alive_Task 的状态是什么? 您可以选择 CallStack 选项卡以查看其正在执行的操作。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Todd、

    抱歉、CallStack 选项卡完全为空。 即使我加载了我的 app.out…

    此致 Martin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我有一些其他信息:
    在寄存器 CPSR 中、我看到"I"为1表示 IRQ 被禁用。 ALS "F"。
    如果我尝试调用"CPUSchomyToPrivilegedMode();"我跳转到地址0x00?

    这仅在我在 u-boot 后加载并运行应用程序时发生。

    如果我在重置程序工作后直接加载并运行我的应用程序。

    希望这对您有所帮助?
    此致 Martin
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    其他问题:
    BIOS_Start()何时从系统模式切换到中止?
    此致 Martin
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    确定进一步结果:
    我将 startup.c 添加到我的应用程序中,我看到 start_boot()被传递,然后调用 main()。
    活动任务在该 PC 在 loop0 (_CPUAbortHandler)上停止后执行一次。
    CPSR 寄存器中的 MODE 位显示了使用0b10111 (即模式中止)时的情况。
    Todd 您是否有其他提示要做什么?
    非常感谢
    Martin
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    能否在 BIOS_start 函数中设置断点,然后打开 ROV->Task->Detailed 和 ROV->Task->CallStack 并将结果粘贴到线程中?

    然后继续应用、停止目标并再次执行。

    例如:

    此外、请勿使用 CPSR 寄存器。 让我们尽量减少您正在玩的东西的数量。

    Todd

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

    您好 Todd、

    感谢您的回答。 附加后、您可以查看 ROV-Tasks 的详细视图。

    选项卡 CallStack 不可用。 如何实现这一点?

    供参考我使用 CCS V6.2

    此外、在 u-boot 通过 I halt -u-boot 并启动 debugSession 后。

    如下图所示、UART 输出工作正常。

    非常感谢 Todd 的帮助。

    此致 Martin

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您有一个较旧版本的 SYS/BIOS、它在 ROV 中没有 CallStack。

    是否可以将代码附加到 AliveTask? 如果您在其中设置断点并运行、断点是否会被命中?

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    是的、如果我在活动任务中放置一个 BP、它会被命中、但仅在任务生成时才会被命中。
    之后、Programm 会挂起。
    此致 Martin
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好 Todd、

    问题已解决。

    我只需为 BIOS_start()函数放置以下命令:

    asm (" MRC P15、#0、r0、c1、c0、 #0\n\t"
    Orr r0、r0、#0x00002000\n\t"
    MCR P15、#0、r0、c1、c0、 #0\n\t"); 

    此致

    Martin