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.

[参考译文] TM4C1294NCPDT:在 TIRTOS 中发布后、等待的信号量应该需要花费时间运行。

Guru**** 2524550 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/998640/tm4c1294ncpdt-time-it-should-take-a-pending-semaphore-to-run-once-it-s-posted-in-tirtos

器件型号:TM4C1294NCPDT

您好!

我将 Timer1设置为20us。  我在计时器函数中发布一个信号量、并在测试时切换端口引脚。  挂起的信标处于高优先级任务中。  从发布信标到任务中的待处理信标停止阻断、所花费的时间几乎为13us。  这似乎是一段很长的时间。  我预计只有几微秒。  这是正常现象吗?

静态空 Timer1 (UARg 参数)

 HWREG (GPIO_PORTN_BASE +((GPIO_PIN_2 <<2)))= 4;
 HWREG (GPIO_PORTN_BASE +((GPIO_PIN_2 <<2)))= 0;
 Semaphore_post (sem1);

静态空 mainTaskFxn (UARg arg0、UARg arg1)

  while (1)
  {
    Semaphore_pend (sem1、BIOS_wait_forever);  //布置后用13us 解除阻断


    HWREG (GPIO_PORTN_BASE +((GPIO_PIN_2 <<2)))= 4;
    HWREG (GPIO_PORTN_BASE +((GPIO_PIN_2 <<2)))= 0;
  }   

  

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

    您好!

     您能否尝试 在 Timer1()和  mainTaskFxn 之间使用不同的引脚? 例如,在 mainTaskFxn 中使用 PN3,而在 Timer1()中使用 PN2。 我想它应该产生相同的结果、但我想确保测量 PN2的上升沿到 PN3的上升沿时得到相同的结果。  您正在运行的系统时钟是什么?  如果更改任务的优先级会怎样? 如果您更改计时器的周期该怎么办? 如果您更改其中的任何一个、则会有所不同。 很抱歉、我不是 TI-RTOS 的专家。 我主要了解 MCU、而不是操作系统。 如果您更改我提到的参数、但仍然测量相同的延迟、那么我想我必须相信您的测量结果、这就是它的样子。  

     只是想给你一个抬头。 我将在本周的剩余时间内离开办公室。 如果您有后续问题、我将请我的同事为您提供帮助。 如果您的帖子丢失、我建议您打开一个新主题、以便主持人可以为您提供帮助。