You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.3 KiB
1.3 KiB
How to profile ardupilot binary on ESP32 and use result to place critical functions to the IRAM
Prepare source
- Configure project with
--enable-profile
option:./waf configure --board=esp32diy --enable-profile
- Rebuild binaries
Run program with profiling enabled
- Flash and run binary
- Try to use mode silimiar to real flight. I.E. compass/gps connected, armed state, and so no
- It will write profile stat to the
/APM/APM/PROF000.TXT
files on the sdcard every one minute
Use profile info to optimize program
- Copy
PROF*.TXT
file from sd card - Copy file
arducopter.map
from build directory - Use them to produce
functions.list
by the scriptLinkerScriptGenerator.kt
(modify paths and limits inside) - Place file
functions.list
to thetarget/copter/main
folder
how to build LinkerScriptGenerator.kt
$ sudo snap install --classic kotlin
build
kotlinc LinkerScriptGenerator.kt -d generator.jar
collect up profiling file into this folder... as per above.
files that the kotlin tool expects to find in this folder:
"ardusub.map",
"PROF000.TXT",
file/s it will create in this folder:
"functions.list"
cp ../../../build/esp32buzz/idf-plane/arduplane.map ardusub.map touch PROF000.TXT
#run: java -jar generator.jar