- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Solved! Go to Solution.
- Labels:
-
Debug
-
Wifi+Bluetooth
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.