I too have hit this same issue today, I am using the LPC55S69 and code that worked fine on a previous project was hanging on my new project, I finally tracked it down to the change in SDK, and sure enough, that breaking code change - Its not even mentioned in the SDK release notes.
I have a while loop that kept retrieving results until the LPADC_GetConvResult returned false, at which point I knew the FIFO was empty. Now my code hits that call and hangs.
As mentioned by someone else, the code change means the function doesn't even operate as per the embedded documentation anymore:
/*!
* brief Get the result in conversion FIFOn.
*
* param base LPADC peripheral base address.
* param result Pointer to structure variable that keeps the conversion result in conversion FIFOn.
* param index Result FIFO index.
*
* return Status whether FIFOn entry is valid.
*/
bool LPADC_GetConvResult(ADC_Type *base, lpadc_conv_result_t *result, uint8_t index)
{
assert(result != NULL); /* Check if the input pointer is available. */
uint32_t tmp32 = 0;
while (0U == (ADC_RESFIFO_VALID_MASK & tmp32))
{
/* while loop until FIFO is not empty */
tmp32 = base->RESFIFO[index];
}
Quite how it got through a code review I don't know...
@danielholala - You mentioned "according to github" - where is the github for the SDK code, and who contributes? - Thanks.