locked
Code about umx sdr brick RRS feed

  • Question

  • Hi, 

    I'm reading about the brick implementation code of umxsdr in sora sdk 1.8. Some details confuse me, dose anyone know the following questions? 

    1. About UMX threads. In umxsdrbrick/dot11main.cpp, StartBaseband11a() and StartBaseband11b(). SoraThreadAlloc() calls SoraThreadAlloc() instead of SoraUThreadAlloc(). SoraThreadAlloc() is not in UMX API, but what is the purpose for that?

    2. In the same file umxsdrbrick/dot11main.cpp, why hTxThread_11a = _beginthread ( Dot11aSendThread, 0, NULL) is created by _beginthread(). In umxsdra/dot11main.cpp, it is created by hTxThread = AllocStartThread ( Dot11aSendProc, NULL)

    3. In umxsdrbrick/dot11main.cpp, the comments in line 25 seems a mistake? RxContext;              // Used by 11a baseband. RxContext is not used in umx brick I guess.

    Thanks

    Wednesday, May 22, 2013 6:44 AM

Answers

    1. They are equivalent in user mode. Sorry for the misleading naming, we plan to refine them in the future release. Recommend use SoraUThreadAlloc in user mode.
    2. Good question. This is by design. AllocStartThread is used to allocate and start a sora thread, which has realtime priority by dedicated CPU cores. If the program use N sora thread, there must be at least N+1 cores in the computer. However, Dot11aSendThread is not a realtime critical thread and it only use normal Windows thread. So umxsdrbrick can run on a 4-core CPU.
    3. Good catch. Yes, it is a mistake. We will remove it in the future release.

    Thanks for your information and questions.

    -Qi

    • Proposed as answer by Qi LuoEditor Thursday, May 23, 2013 8:56 AM
    • Marked as answer by YANG Zhice Thursday, May 23, 2013 2:27 PM
    Thursday, May 23, 2013 8:55 AM
    Answerer

All replies

    1. They are equivalent in user mode. Sorry for the misleading naming, we plan to refine them in the future release. Recommend use SoraUThreadAlloc in user mode.
    2. Good question. This is by design. AllocStartThread is used to allocate and start a sora thread, which has realtime priority by dedicated CPU cores. If the program use N sora thread, there must be at least N+1 cores in the computer. However, Dot11aSendThread is not a realtime critical thread and it only use normal Windows thread. So umxsdrbrick can run on a 4-core CPU.
    3. Good catch. Yes, it is a mistake. We will remove it in the future release.

    Thanks for your information and questions.

    -Qi

    • Proposed as answer by Qi LuoEditor Thursday, May 23, 2013 8:56 AM
    • Marked as answer by YANG Zhice Thursday, May 23, 2013 2:27 PM
    Thursday, May 23, 2013 8:55 AM
    Answerer
  • Thanks for your reply!
    Thursday, May 23, 2013 2:27 PM