snip.scan app halt after first scan

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
lock attach
Attachments are accessible only for community members.
NiUs_2890976
Level 1
Level 1

Hello!


  I ported WICED SDK 6.1 code to the Cortex-A9.

Hardware:

  • my own (ARM Cortex-A9 + Murata 1DX module with BCM4343W)
  • bus SDIO


  I made the changes based on this article:

Bluetooth works fine.


  but:


  I'm trying to run a snip scan.

  The initialization is fine, successfull firmware download 4343WA1.bin and 4343WA1.clm_blob.

It prints a list of access points, but only once.


  The function wiced_scan_result_handler() receives the argument result_ptr = NULL.


  I added an argument NULL check.

...

  if (result_ptr == NULL || *result_ptr == NULL)

  {

     PRINT("[%s] LINE = %d result_ptr 0x%X", __FUNCTION__, __LINE__, result_ptr);

     wwd_print_stats(WICED_FALSE); //TEST

     return;

  }

...


After that it hangs on:

wiced_rtos_get_semaphore(&scan_data.semaphore, WICED_WAIT_FOREVER);

in function application_start()


Log in attached.

I added debug messages like this article.

What could be my problem?


Thanks.

0 Likes
1 Solution
NiUs_2890976
Level 1
Level 1

I found a solution to my problem.

In the folder apps/wwd/scan there is a scanning application and in my case it works fine. I compared it with apps/snip/scan to find any differences. The scan_results_handler() function from wwd checks result_ptr for NULL as follows.

     ...

    if (result_ptr == NULL)

    {

        / * finished * /

        result_buff [result_buff_write_pos] .channel = 0xff;

        host_rtos_set_semaphore (& num_scan_results_semaphore, WICED_FALSE);

        return;

    }

     ...

And in the main thread app_main() in the loop there is a check.

            ...

            / * TODO: change 0xff to a defined flag * /

            if (record-> channel == (uint8_t) 0xff)

            {

                / * Scan completed * /

                break;

            }

            ...

Which is missing from apps/snip/scan app. With this the scan works fine.

Judging by the "TODO ..." comment this code is a workaround. Maybe there is a way to do it right.

View solution in original post

0 Likes
3 Replies