Upcoming maintenance
Dear Customers and Partners.
This website will be undergoing scheduled maintenance on June 14, 2023. Please be aware there may be disruption to the developer portal website and associated services during the scheduled maintenance period.
This upgrade is essential to ensure the continued performance, reliability, and security of Developer World.
We apologize for any inconvenience.
up_assert: Assertion failed at file:manager/audio_manager.cpp line: 649 task: init
-
still working on relatively simple audio recording looper with files named by GNSS - it records 6 or 7 times - never a fixed amount then throws this error:
up_assert: Assertion failed at file:manager/audio_manager.cpp line: 649 task: init
i'll post the full snippet below
up_assert: Assertion failed at file:manager/audio_manager.cpp line: 649 task: init up_dumpstate: sp: 0d0509bc up_dumpstate: IRQ stack: up_dumpstate: base: 0d047d00 up_dumpstate: size: 00000800 up_dumpstate: used: 000000f0 up_dumpstate: User stack: up_dumpstate: base: 0d050c58 up_dumpstate: size: 00001fec up_dumpstate: used: 00000690 up_stackdump: 0d0509a0: 0d0509cc 00000000 0d050a10 0d045a00 0d03e388 00000000 00000000 0d03e388 up_stackdump: 0d0509c0: 00000000 0d0133d1 000fd080 000fd8e4 000fd040 0d01bac5 0d050a50 0d011fbd up_stackdump: 0d0509e0: 0d050a30 000fd040 0001e006 00008000 00000000 00000000 0d045a00 0d045a00 up_stackdump: 0d050a00: 0d03e388 0d000b1f c0000000 0d04e9ac 00000007 00000001 00000000 00000000 up_stackdump: 0d050a20: 00000000 0d007ab1 0d04ebd7 0d005367 02330000 00000007 0d04e9ac 0d020241 up_stackdump: 0d050a40: 00000007 0d005427 0d036c06 0a041204 0d045a08 0d045a00 0d045a08 0d000497 up_stackdump: 0d050a60: 0d08d460 0000000a 0000000a 0d050b40 00000020 0d050b48 00000020 0d050b50 up_stackdump: 0d050a80: 00000020 0d04e6c0 00000000 0d000000 0d03e388 00000000 00000000 00000000 up_stackdump: 0d050aa0: 00000000 ffffffe9 00000000 00000000 00000000 00000000 00000000 00000000 up_stackdump: 0d050ac0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 up_stackdump: 0d050ae0: 00000000 00000000 00000001 0d050b54 0d04e6c0 00000020 000fd7b4 0d006fd7 up_stackdump: 0d050b00: 0d020938 01000000 00000000 00000000 00000000 00000000 00000000 00000000 up_stackdump: 0d050b20: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 up_stackdump: 0d050b40: 00000000 00000000 00000000 0d006fc5 00000000 0d050c28 00000000 0d03e3a0 up_stackdump: 0d050b60: 0d045a00 0d000000 0d03e388 00000000 00000000 00000000 00000000 ffffffe9 up_stackdump: 0d050b80: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 up_stackdump: 0d050ba0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 up_stackdump: 0d050bc0: 00000000 0d045a08 005dba00 005dbfff 000fd7b4 0d001fd1 0d00047e 01000000 up_stackdump: 0d050be0: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 up_stackdump: 0d050c00: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 up_stackdump: 0d050c20: 00000000 00000000 0d03e3a0 0d03e3a0 0d000000 0d001fd1 0d01a5b3 00000101 up_stackdump: 0d050c40: 00000000 00000000 00000000 0d002bab 00000000 00000000 deadbeef 0d050c64 up_taskdump: Idle Task: PID=0 Stack Used=0 of 0 up_taskdump: hpwork: PID=1 Stack Used=584 of 2028 up_taskdump: lpwork: PID=2 Stack Used=352 of 2028 up_taskdump: lpwork: PID=3 Stack Used=352 of 2028 up_taskdump: lpwork: PID=4 Stack Used=352 of 2028 up_taskdump: init: PID=5 Stack Used=1680 of 8172 up_taskdump: cxd56_pm_task: PID=6 Stack Used=320 of 996 up_taskdump: <pthread>: PID=7 Stack Used=704 of 1020 up_taskdump: AMNG: PID=8 Stack Used=648 of 2028 up_taskdump: PLY_OBJ: PID=9 Stack Used=320 of 3052 up_taskdump: SUB_PLY_OBJ: PID=10 Stack Used=320 of 3044 up_taskdump: OMIX_OBJ: PID=11 Stack Used=328 of 3044 up_taskdump: RENDER_CMP_DEV0: PID=12 Stack Used=312 of 2020 up_taskdump: RENDER_CMP_DEV1: PID=13 Stack Used=312 of 2020 up_taskdump: FED_OBJ: PID=14 Stack Used=544 of 2028 up_taskdump: REC_OBJ: PID=15 Stack Used=600 of 2028 up_taskdump: CAPTURE_CMP_DEV0: PID=16 Stack Used=560 of 2012
which references this function in the audio_manager.cpp file
int AS_ReceiveAudioResult(FAR AudioResult *packet) { err_t err_code; FAR MsgQueBlock *que; FAR MsgPacket *msg; err_code = MsgLib::referMsgQueBlock(s_appMid, &que); F_ASSERT(err_code == ERR_OK); err_code = que->recv(TIME_FOREVER, &msg); F_ASSERT(err_code == ERR_OK); F_ASSERT(msg->getType() == MSG_AUD_MGR_RST); *packet = msg->moveParam<AudioResult>(); err_code = que->pop(); F_ASSERT(err_code == ERR_OK); return AS_ERR_CODE_OK; }
it crashes no matter how long i try and record for - 10 second loops or 1 minute loops
b
-
Hi @Ben-eaton
In the folder
sdk/tools/
you will find a script calledcallstack.py
You can use this tool to analyze your stack dumps.spresense/sdk/tools$ ./callstack.py Usage: python ./callstack.py <System.map> <stackdump.log>
What code are you running?
-
hi @TE-KarlKomierowski
a variant on the code for the previous issue i posted about freezing audio at 192khz but using the recorderSize instead of millis to determine the size of the audio chunks i'm writing to filethanks
b
-
Have you tried to isolate and verify the functions alone?
Audio without GNSS, GNSS without Audio etc? -
yeah - so i built this up from the recorder example - in my sketch in the other issue i posted (sorry i know i've spread my issues accross two posts but they felt like they could be separate things) i don't get this crash the main difference between the two is using a timer with millis() rather than the size of the recorder to chunk the audio - am in the process of stripping it back to individual functions - - just trying to trace using the python script -
but my main issue at the moment is that the board seems to freeze up when running in highRes mode as the recorder seems to be running happily at 48khz without the above crashcheers
best
ben
-
so ran the sketch with no gnss - ran the sketch at 192khz audio
got the same error - but as it crashes on the board after 20 minutes or so of running - i don't seem to get a log file to use the python script with
thanks
best
b
-
@Ben-eaton
is there an explanation of how to better understand what is happening in a crashi am still receiving 'assertion failed' and then a whole bunch of error stuff underneath and no real way to work out what is causing this
best
b
-
Hi @Ben-eaton,
To analyze a stack dump the Spresense full SDK provide a tool where you can specify two files as arguments. One is your saved log file, and the other one is the system map file. Doing that you should be able to get the stack trace. If you have build your software with the Arduino IDE you should be able to find where your map file is located in the Arduino IDE log window. Go to File -> Preferences -> Settings -> Show verbose output during and select compilation and when you build your sketch you should be able to find where your build folder is. Normally this folder would be located in /tmp and look something like this:
/tmp/arduino_build_724727/
Fetch the full SDK from github:
git clone --recursive git@github.com:sonydevworld/spresense.git
Change directory to the SDK:
$cd spresense/sdk spresense/sdk$ ./tools/callstack.py -h Usage: python ./tools/callstack.py <System.map> <stackdump.log>
Now just specify the location of your files:
./tools/callstack.py /tmp/arduino_build_724727/output.map stackoverflow.log
Best regards,
Kamil Tomaszewski