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.

Can I get a calling context table for IPC v1.25 APIs?

Hi Champs,

The calling context table for IPC v1.25 APIs is really necessary for my customer support.
So, could you please let me know where I can get it?

Your kind attention to the above would be highly appreciated.

Best regards,
j-breeze

  • Hi,

    I think so, there is no support for "calling context" tables in the IPC.
    You can find this similar support on SYS/BIOS Module.
    Please refer this E2E post for your reference. And also you got it early.
    http://e2e.ti.com/support/embedded/tirtos/f/355/p/73365/267050.aspx#267050
    http://e2e.ti.com/support/embedded/tirtos/f/355/p/221065/778800.aspx#778800

  • Hi Pubesh,

    Thank you for reminding me, but I'd like to ask about the calling context again.

    How dose the IPC user know whether the IPC APIs are callable from the threads or not?

    I'd appreciaste if you could advise me.

    Best regards,
    j-breeze  

  • j-breeze,

    Unfortunately, IPC does not have calling context tables like those provided by SYS/BIOS. Not to make excuses, but it's a little harder to document for IPC because users might configure different drivers.

    In general, MessageQ_put() can be called from any context and Notify_sendEvent() can be called from Hwi and Swi context if waitClear=FALSE. The general rule is that function calls from Task context are allowed to block, but those called from Swi or Hwi context are not allowed to block.

    In the end, you would have to inspect the final configuration used by each executable to determine the valid calling context for each function.

    ~Ramsey

  • Hi Ramsey,

    Thank you for your e-mail.

    However I'm a bit confused.  The other E2E post said that MessageQ_alloc and MessageQ_put should not be called within a Hwi context in IPC.  I refred the E2E post below.

      http://e2e.ti.com/support/embedded/tirtos/f/355/p/73365/267050.aspx#267050

    So, could you please let me clarify the IPC calling context spec?

    Thanks in advance for your cooperation.

    Best regards,
    j-breeze

  • Hi Ramsey,

    I'd like to call GateMP, HeapBufMP, and MessageQ from Hwi.
    So, could you please let me know what I should configure, at least?   

    Best regards,
    j-breeze

  • j-breeze,

    Can you be more specific on which APIs you want to call from Hwi?

    In general, you should keep your Hwi's small and do most of the work in a Swi or Task.  A typical example would be to have a Swi or Task do the work and a Hwi simply post a Swi or a Semaphore (which the Task is blocked on).

    Judah

  • Hi Judah,

    Thank you for your cooperation.  I'm planning to call APIs below from Hwi.

      - GateMP_enter
      - GateMP_leave
      - HeapBuf_alloc
      - HeapBuf_free
      - HeapBufMP_getExtendedStats

    I'm not sure whether it's better to call the APIs from Hwi or not.  If you have any, please let me know.

    Best regards,
    j-breeze

  • j-breeze,

    GateMP_enter - Only if the local protection of the GateMP is of type GateMP_LocalProtect_INTERRUPT or NONE.
    GateMP_leave - same as GateMP_enter.

    HeapBuf_alloc - This is a BIOS API and yes it can be called from a Hwi.
    HeapBuf_free - Same as HeapBuf_alloc

    Did you mean HeapBufMP_alloc/HeapBufMP_free instead?  For these, yes you can but only if the GateMP that you passed it meets the requirement above.

    HeapBufMP_getExtendedStats - Same requirements as HeapBufMP_alloc/HeapBufMP_free.

    If you simply use the defaultRemote GateMP, it does not support GateMP_enter/leave from Hwi.  It does support enter/leave from a Swi.

    Judah

     

  • Judah,

    Thank you for your continued help.

    Best regards,
    j-breeze