Hello everyone.
I am a PhD student and my research focuses on collecting CIR data. My goal is to build a custom firmware for the DWM3001CDK board that runs a simple example to capture raw CIR data (similar to ex_02k_simple_rx_cir from the DW3xxx API).
Tools used: “I am using DW3_QM33_SDK_1.1.1 on a Windows 11 machine. I set up the environment according to the DWM3001CDK developer guide (Python, Anaconda, ARM Toolchain, make, etc.).”
Steps I took: “I successfully built a standard CLI project using the standalone build method (CreateTarget.py followed by make -j). This works perfectly.” However, I’m still having difficulty building a firmware that contains only a specific example.
Specific Issue: “My main issue is that I’m not sure of the correct procedure for building a single example from the Drivers/API/Src/Examples folder. I tried modifying example_selection.h and then rebuilding the CLI project, but I’m not sure this is the correct method. I also tried running CreateTarget.py from different folders, but I encountered errors like ModuleNotFoundError or No such file or directory.”
Direct Question: “What is the official step-by-step procedure for building a single standalone example (e.g., ex_02k_simple_rx_cir) for the DWM3001CDK?”
Thank you for any help.
Thank you so much for this help.
I have successfully modified the firmware on the Responder board to read the CIR data from the accumulator. Specifically, within the mcps_rx_cb callback function, I am calling dwt_readaccdata() to get the full CIR (approx. 4KB) and then printing it to the UART.
The Problem:
While I can successfully read and print the CIR data, I am facing a significant bottleneck. The system exhibits the following behavior:
It prints a few CIR data blocks in a quick burst.
It then completely freezes for a long period (approximately 15-17 seconds).
After the long pause, the cycle repeats.
This behavior prevents me from achieving the continuous, high-frequency data stream required for my research.
Troubleshooting Steps Already Taken:
Based on my investigation and similar issues reported in the forums, I have already tried the following, which did not solve the long pause issue:
Increased UART Baud Rate: I modified the UART initialization code to operate at 1,000,000 baud and confirmed the setting in Tera Term.
Increased Task Stack Size: Suspecting a stack overflow, I significantly increased the MCPS_TASK_STACK_SIZE_BYTES to 8192 bytes.
My Core Question:
Given that printing 4KB of data, even over a fast UART, is a relatively slow operation, what is the recommended architectural approach to continuously stream the full CIR data from the DWM3001CDK without causing the entire system to halt or reset (likely due to a watchdog timer)?
Is there a specific configuration, a more efficient printing method (e.g., DMA with RTT), or a fundamental flaw in my approach of trying to stream the entire CIR at a high frequency?
Any guidance, code examples, or pointers to relevant application notes would be immensely appreciated.
Thank you for your time and support.
Best regards,