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:SYSBIOS 6.46.5.55

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

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/613927/rtos-sysbios-6-46-5-55

Thread 中讨论的其他器件:SYSBIOS

工具/软件:TI-RTOS

您好!

在我的应用程序中、我有一个引导加载程序(不带 SYSBIOS)、在结束 时调用主应用程序(带 SYSBIOS)。

经过一些调试后、我检测 到引导加载程序正在禁用计时器时钟:

 *寄存器 PCLKCR3的 CPUTIMER 2ENCLK、CPUTIMER 1ENCLK 和 CPUTIMER 0ENCLK

在 SYSBIOS c_init 期间(在到达应用程序的 main()之前), SYSBIOS 配置的定时器0和1未使用.cfg 中输入的值进行配置。

您能否确认它符合预期? 是否在访问计时器 CPU 寄存器之前、SYSBIOS 未启用 CPUTIMExENCLK 时钟(因为在加电时、此时钟已启用)?

为了避免出现任何问题, 是否有一个必须保持  SysBIOS 正确行为的加电值的 CPU 寄存器列表?


谢谢、此致、
Mathieu

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

    您使用的是什么器件?

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    看起来是基于您的另一个线程的 F28335。 我已分配了一些人来查看这个。

    Todd
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我可以确认 SYS/BIOS 不会接触定时器时钟启用/禁用寄存器。 我们期望时钟已经由引导加载程序启用。 如果客户希望启用时钟、但不想修改引导加载程序代码、则可以安装复位函数或第一个函数。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    感谢 Todd 的确认。

    关于:

    "如果客户希望启用时钟、但不想修改引导加载程序代码、则可以安装重置函数或第一个函数。"

    我不理解如何在不修改引导加载程序的情况下解决该问题。

    实际上,SysBIOS 计时器初始化是在应用程序的 main()函数之前完成的,因此在主函数之后调用的任何函数都太晚了。

    您能否提供更多详细信息?

    谢谢

    Mathieu

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

    您好、Mathieu、

    这里是一张很好的图片、展示了您可以添加挂钩函数的点。

    这里是.cfg 中用于添加这些挂钩函数的代码

    RESET = xdc.useModule('xdc.runtime.Reset');
    Reset.Fxns[Reset.Fxns.length++]='&myResetFxn'; 
    VAR 启动= xdc.useModule('xdc.runtime.Startup');
    Startup.firstFxns[Startup.firstFxns.length+]]='&myFirstFxn'; 
    VAR 启动= xdc.useModule('xdc.runtime.Startup');
    Startup.lastFxns[Startup.lastFxns.length+]]='&myLastFxn'; 

    此外、在 BIOS_start 函数的开始位置有一个挂钩函数被调用。

    VAR BIOS = xdc.useModule('ti.sysbios.BIOS');
    BIOS.addUserStartupFunction ('&myBiosStartFxn'); 


    我从 http://processors.wiki.ti.com/index.php/SYS/BIOS_for_the_MSP430中抓取了其中的大部分内容

    它更侧重于 MSP430、但大多数主题与所有器件相关。

    Todd