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.

How does HWI work well with NDK2.0?



Hi all,

I am using NDK 2.0 for my work,but it seems that HWI task can‘t wok with NDK.

I create a hwi task for uart1(RS232) receive interrupt .It works well without NDK,so I think my HWI task is OK.

But once NDK task is created,the interrupt hadler function was not executed. 

From the view of Registers,I found the interrupt  was trigged.

Dose anyone know the reason for this?

thanks for your reply.

  • Hi Xie,

              I have the same problem like yours. Did you solve the problem? If so, how did you do to confront that ?

             Thank you for your reply.

    Sincerely,

    Yuan.

  • Hi,

    Can you please let me know the following information?

    • which version of BIOS are you using?
    • which version of XDCtools are you using?
    • which hardware platform are you using?
    • Are you also using NDK 2.0 or a different version?

    Thanks,

    Steve

  • Hi Steve,

              There is another thing that I use RJ45(ethernet) to receive instead of RS232.

              And I use........

              BIOS 5.33.05

              hardware platform OMAPL137

              NDK 2.0.0.0

    Thanks,

    Yuan

     

  • It's possible that you have a conflict with your interrupts.  The NDK uses interrupt vectors 6 and 7 for RX and TX EMAC functions, respectively.

    Is your program using these interrupt vectors by chance?

    Steve

    P.S. you can see more about this issue on the NDK FAQ: http://processors.wiki.ti.com/index.php/Network_Developers_Kit_FAQ#Q:_It_seems_that_the_NSP_for_OMAPL137_EVM_is_incompatible_with_the_EDMA3_LLD._How_can_I_fix_it.3F

     

  • Hi Steve,

        I use my interrupt service routine with HWI_INT8.

        It seems not to conflict with 6 & 7.

        Or I get wrong with some things?

        Thank you for your reply.

    Sincerely,

    Yuan

  • Can you put a break point at hardware interrupt 8?  And see if your program hits that break point?

    You can do this by typing "hwi8" into the disassembly window.  Then you can right click and select "add break point"

    Steve

  • Hi Steven,

        When I set a break point at my ISR of hwi8. It can hit the break point, but the network doesn't build up successfully.

        Can you indicate that how is the program written with the network part roughly? If I want to send a simple sequence (like "123456") with the ISR.

        Thank for your reply.

    Sincerely,

    Yuan

  • Hi Yang HsiYuan,

    The Ethernet driver has 2 different ISR - one for receiving packets, and the other for transmitting packets.  These use vector 6 and 7 respectively.

    Yang HsiYuan said:
    If I want to send a simple sequence (like "123456") with the ISR.

    Can you explain this a bit more? Do you mean that you want to send "123456" via a network transfer?

    Also, regarding the breakpoint at HWI8, I meant if you just run your program with just the networking part enabled, without your other additions, do you hit the break point at HWI8?  I'm wondering if something else is using HWI8.

    You can set a breakpoint at HWI8 (not at the ISR mapped to it) similar to the following screenshot:

    Steve