Debugging DSP Application Remotly With GDB and QT Creator - debugging

I have an image processing application which uses QT and TI Video Decoder example, it runs on TI DaVinci, DM6446.
I am using QT Creator and compile process gives me two binaries, one for the ARM core, one for the DSP. The DSP binary has the extension of ".x64p".
There is no problem if i start the app directly from the target board.But if I start it using gdb on the host, i can see the debug messages on the arm side, however, it crashes immediately, because it is not able to open DSP binary.
Is there any way to debug ARM+DSP application without using TI CCS or a JTAG device ?

Ok i can see that you have 3 "apps" here
Main app for the arm side
The codec
The server for the dsp side
if i am right you can use Linux Os (if you have the virtual machine known as child and parent has ubuntu which you can find at ti website)
so run this vm and
Build the codec (make all command)
Build the server (make build_server command)
Build the app (make all command)
hope this help
but I wanna ask you how can I make this using ccs, I can build a separate project for the dsp or arm but I wanna build the whole system..
help me if you can
...Regards

Related

How to debug debugging using Clion -> armgdb -> J-link gdb server

I am trying to use Clion IDE to debug various NXP ARM M MCUs using J-link.
In case when program is only in RAM it works fine but but in case of flash targets after program load IDE often slows down for a while and then I will get timeout. Some click on pause button in right moment pauses program somewhere and allows me to debug...
My question is there any way how to see interactions of IDE with armgdb client or armgdb and j-link gdb server?
I tried to capture communication with gdb server using wire shark but it seems to be a binary protocol...
Thank you.
I found there is possibility to let gdb echo commands which showed me what is going on.
Unfortunately in case of Clion the only way is to put it into .gdbinit file in the root of project.
set trace-commands on
It showed me warning
warning: A handler for the OS ABI "Windows" is not built into this configuration
of GDB.
Which leads me to comment of this question gdb-multiarch (MINGW64) cannot determine architecture from executable?
Well I am not sure what caused Clion to hang but having .gdbinit with just set osabi none in it solved it.

Jump to PIC32MZ FreeRTOS application using bootloader

I have made a custom board with a PIC32MZ2048EMF100 and a LAN8720, ATWINC1500 ....
I wrote a program that works very well on this board and uses FreeRTOS (because of ATWINC1500), now I'm trying to do OTA using bootloader (I need the swapping between banks). (MPLAB + Harmony 3)
when I use bootloader as loadable project with the application (using hexmate to merge the two hex), I setted a led after SYS_Initialize(), the led blinks (I can run the app using the bootloader) but the app crashes in the SYS_Tasks() ( in prvCheckTasksWaitingTermination() function)
I need some modifications in linker scripts ?? is something specific to the FreeRTOS ??
Thanks

Can I create NodeMCU projects within VS Code using the PlatformIO extension?

I am attempting to use a ESP-32 dev kit to control WS2812 LED stripes. Discovered there is some firmware called NodeMCU for these dev kits which uses LUA scripts from what I can tell. There is an extension called PlatformIO for VS Code. I had used this to program a Arduino board to flash an LED.
I was wondering if it is possible to use PlatformIO to build the NodeMCU firmware and the LUA scripts then using PlatformIO to download everything to the ESP-32 dev kit. Is that possible?
I am thinking this can't be done since there are only two Framework selections, "Arduino" and "ESP-IDF", when I create a project which doesn't list NodeMCU.
Thanks
With ESP-IDF you would write C-code directly against the SDK. This can be done in Platform IO. This has its advantages but the major downside of course is that a development roundtrip takes some time. The complete build & install (flashing binary) cycle is run for every bit you turn in your source code.
With NodeMCU you build & install the firmware once and then only transfer the Lua files that changed. The downside here is that you need separate tools for separate tasks. See https://nodemcu.readthedocs.io/en/dev-esp32/ for details.
Build the firmware, either on Linux dev env, on a Linux VM (e.g. on Windows) or with Docker (quite simple, by yours truly).
Flash the firmware. Use esptool.py or the self-contained standalone GUI tool NodeMCU PyFlasher (by yours truly).
Upload Lua code from host to device. Use ESPlorer (very basic editor), NodeMCU Tool or the ChiliPeppr ESP32 Web IDE.

How to flash openthread for EFR32 without JLink

I am trying to build OpenThread(NCP mode) and upload program to EFR32 without JLink.
EFR32 can support OTA upload method and supported format is "ebl".
My propose is:
Adding cstartup-common.c into compile script
Build to "axf" format by adding "-gdwarf-2" option on arm-none-eabi-gcc.
Using "arm-none-eabi-objcopy.exe --srec-forceS3 -O srec ot-ncp-ftd.axf ot-ncp-ftd.s37" to convert "axf" -> "s37"
Using Silabs' tool "commander.exe" to convert "s37" -> "ebl"
Using "flash_firmware" tool to upload "ebl" file from host chip to EFR32 by UART
I meet the following error log when runing "wpantund" on host chip
- "The NCP is
misbehaving: Repeatedly unable to initialize NCP. Entering fault state."
Is there any one know this?
Unless you have loaded something onto your part before, Silicon Labs chips don't come with a bootloader from the factory. The initial programming of an EFR32 must come via J-Link or the Silicon Labs WSTK.
How are you interfacing this chip? You mention UART, but via what interface?

executing a c file on Zynq through ethernet?

I have designed a firmware on zedboard and I want to use some language(say C) to write the program for my firmware and transfer this file through Ethernet and then compile -> execute it.
I will be grateful, if someone can help with this issue!
Thank you in advance for your kind help!!
Regards
If you run some flavor of Linux on your Zedboard, then you can interact with it and send files to it over ethernet. This is extremely convenient.
Xilinx supports Petalinux, which will enable you to connect to your board over ethernet using ssh.
If your Linux installation is complete enough, you can run the C compiler on the zedboard. For example, you can install Ubuntu and install gcc that way.
I find it easier to run a cross compiler on my desktop machine or a server and develop and compile the files there and send the resulting executables to the Zedboard.
In the Connectal project (http://www.connectal.org) we compile hardware and software on a development machine, link the bitstream into the application executable, and program the logic when the application runs. This ensures that the application and firmware stay in sync.
We have a web-hosted development environment that enables you to build any open source project using the Connectal framework and run it on a local zedboard, without installing any development tools.

Resources