Forums - Improve development environment - build & flash speed

2 posts / 0 new
Last post
Improve development environment - build & flash speed
steven
Join Date: 26 Feb 20
Posts: 14
Posted: Fri, 2020-08-14 01:50

We have quite some difficulty developing on the QCA4020 in terms of speed and debugging, I was windering if some has some suggestions on how to improve the following:

  1. Build speed
    - It always builds all files - can we only build the changed files (including related files)?
    - Generating linker scripts takes about 4 minutes - can this be improved?
  2. Flashing speed - this takes about 3 minutes
    - We flash the device (which is on  using one of the development boards jtag pins, will this be improved by using jtag flasher?
    - it always flashes all onboard chips while the WLAN and BLE/15.4 binary are not changed. Is it possible to only flash the M4F? (and what changes need do be made :)
  3.  Debugging in itself is setup correctly, but it cannot resolve the source files so the breakpoints are not viewable.

The issue with above items is that it decreases the development speed significantly, that we are starting to hassitate if this is usable. As any code change or trying something takes about 7-8 minutes to build and flash.

  • Up0
  • Down0
andreas
Join Date: 21 Oct 19
Posts: 34
Posted: Thu, 2020-09-10 07:15

Hi Steven,

I had the same impression of the build system and was close to disqualify the module for the product due to the same reasons. The good news is that it can be improved a lot. I do not know why QC is not putting more effort into it. Unfortunately it takes some effort that I can not all descripe here in this post. But in principle I did the following:

1. a batch file to build the system is not state of the art. I used the makefile environment and added all of the necessary dependency checking to only build the artefacts that have been changed. That shortens the build time dramatically if only one file has changed.
I also installed pypy instead of python, which also speeds up the python scripts a bit. But the real boost is a good makefile with a good dependency check.

2. for flashing I am using the USB connection which is quite faster than JTAG. Even though the JTAG speed is set quite low and can be improved, which also speeds up the JTAG download. I also got away from openOCD, instead we are using a J-Link device for download and debugging. I did not find a way to not flash the other two images, unfortunately. But this is the smaller issue.

3. debugging via openOCD was also a nightmare for me. As mentioned above I use a J-Link debugger which needs some additional tweaks to get it running.

Our project builds now in 1min 15sec from the scratch. If you change just a couple of files it is a couple of seconds.

I do not know why the build environment is not optimal from the SDK, but there is a solution to that.

Hope this helps a bit

Andreas

  • Up0
  • Down0
or Register

Opinions expressed in the content posted here are the personal opinions of the original authors, and do not necessarily reflect those of Qualcomm Incorporated or its subsidiaries (“Qualcomm”). The content is provided for informational purposes only and is not meant to be an endorsement or representation by Qualcomm or any other party. This site may also provide links or references to non-Qualcomm sites and resources. Qualcomm makes no representations, warranties, or other commitments whatsoever about any non-Qualcomm sites or third-party resources that may be referenced, accessible from, or linked to this site.