I’m getting a very frustrating error on a custom target project based on the MAX32630. My colleagues and I are trying to update the BLE UART implementation to function properly with Mbed 6 with limited prior source code and have run into this problem:
++ MbedOS Error Info ++ Error Status: 0x80FF0144 Code: 324 Module: 255 Error Message: Assertion failed: (pin_func < 1) || (pin_func > 3) Location: 0x273FB File: ./mbed-os/targets/TARGET_Maxim/TARGET_MAX32630/pwmout_api.c+61 Error Value: 0x0 Current Thread: main Id: 0x2000207C Entry: 0x3C1F StackSize: 0x1000 StackMem: 0x20001058 SP: 0x20001CFC Next: main State: 0x2 Entry: 0x00003C1F Stack Size: 0x00001000 Mem: 0x20001058 SP: 0x20001DA0 Ready: rtx_idle State: 0x1 Entry: 0x00003D69 Stack Size: 0x00000200 Mem: 0x20000AF0 SP: 0x20000C90 Wait: rtx_timer State: 0x83 Entry: 0x00003ABD Stack Size: 0x00000300 Mem: 0x20000CF0 SP: 0x20000F88 Delay: application_unnamed_thread State: 0x43 Entry: 0x00028B2D Stack Size: 0x00001000 Mem: 0x2000A860 SP: 0x2000B780 For more info, visit: https://mbed.com/s/error?error=0x80FF0144&tgt=1 -- MbedOS Error Info --
It appears that the initialisation sequence is finding one of the pins is already in use, or connected to a special function at startup. The line it appears to be referring to is:
// Check if there is a pulse train already active on this port int pin_func = (MXC_GPIO->func_sel[port] & (MXC_GPIO_FUNC_SEL_FIELD_MASK << (port_pin * MXC_GPIO_FUNC_SEL_FIELD_WIDTH))) >> (port_pin * MXC_GPIO_FUNC_SEL_FIELD_WIDTH); MBED_ASSERT((pin_func < 1) || (pin_func > 3));
My main questions are;
Has anyone encountered this error before? Are my assumptions accurate or am I actually looking in the wrong direction? Are there pitfalls to the BLE UART implementation in Cordio/Mbed I should be wary of?
Thank you in advance for any support you can give.