Wi-Fi Combo Forum Discussions
Hi,
Can you please send us an ARM64 compiled driver for the CYW43438 WLAN+Bluetooth combo (found in the Raspberry Pi 3) for Windows 10 (ARM64 version)?
Windows IoT Core has the "bcmhd63.sys" driver, but it is compiled for ARM32 and it doesn't work in Windows 10 ARM64.
Thanks!
Show LessHello,
this is not a question but a hint for those who are also struggling building cpp files.
I always got the error message "undefined reference to application_start" when I wanted to compile a cpp file for a the platform BCM4343W_AVN.
I solved it with adding extern void application_start(void); in the file 43xxx_Wi-Fi/include/wiced_rtos.h
maybe one of the developers sees this and adds this in the next release.
Best regards
Show LessHello,
I have tried to download the program using olimex debugger.
It is working good in wicedSDK 3.7,but when I have moved my application from 3.7 to 6.2 latest sdk ,it is not working.
below error message showing.
********************************************************************************************************************************
Downloading Bootloader ...
"**** OpenOCD failed - ensure you have installed the driver from the drivers directory, and that the debugger is not running **** In Linux this may be due to USB access permissions. In a virtual machine it may be due to USB passthrough settings. Check in the task list that another OpenOCD process is not running. Check that you have the correct target and JTAG device plugged in. ****"
Downloading DCT ...
"**** OpenOCD failed - ensure you have installed the driver from the drivers directory, and that the debugger is not running **** In Linux this may be due to USB access permissions. In a virtual machine it may be due to USB passthrough settings. Check in the task list that another OpenOCD process is not running. Check that you have the correct target and JTAG device plugged in. ****"
Downloading Application ...
"**** OpenOCD failed - ensure you have installed the driver from the drivers directory, and that the debugger is not running **** In Linux this may be due to USB access permissions. In a virtual machine it may be due to USB passthrough settings. Check in the task list that another OpenOCD process is not running. Check that you have the correct target and JTAG device plugged in. ****"
Resetting target
make.exe[1]: *** [run] Error 1
tools/makefiles/standard_platform_targets.mk:205: recipe for target 'run' failed
make: *** [main_app] Error 2
Makefile:351: recipe for target 'main_app' failed
12:14:34 Build Finished (took 30s.930ms)
********************************************************************
In device manager ,I can see the olimex debugger still showing above error.
I have attached openocd_log.txt file for both wiced IDE.(3.7 and 6.2).(for wiced IDE 3.7 it is working fine.)
5kb file for wiced IDE 6.2
63kb file for wiced IDE 63kb
Please help me regarding this.
Your help will be appreciated.
Message was edited by: Bhavna Harani
Show LessI am working on a project that is attempting to incorporate the IoTivity-constrained library into WICED WiFi.
Due to WICED using it's own primitives, I am having trouble figuring out exactly how to do this.
While digging through the WICED sample code, I found several references to Multicast, but there are no tutorials on how to use these functions.
Can a WICED board connected to an AP as a Client use Multicast functions to discovery other WICED boards connected to the same AP as Servers, without knowing their IP Addresses beforehand, i.e. Dynamic Discovery?
If this is possible, how is it done?
Show LessHi all,
Does anyone have the orCad part library created for the CYW43455 and/or a recommended reference design for using the 2g/5g/bt SoC ?
Thanks
Show LessHi,
I am trying to use SPI Slave library in WICED 6.2. I want to implement SPI using DMA for micro STM32F412.
Do we have any example app or document that could show how to implement it?
While going through the library I came across following code in spi_slave.c:
I have two questions about it,
1) where does the variable device->quit value is changed to either WICED_TRUE or WICED_FALSE?
2) once the device->quit value changes to WICED_FALSE, the WICED_END_OF_CURRENT_THREAD( ) is executed. So how does the spi_slave_thread_main is called again? or do we have to call 'spi_slave_init()' for every SPI transaction?
static void spi_slave_thread_main( uint32_t arg )
{
spi_slave_t* device = (spi_slave_t*)arg;
while ( device->quit != WICED_TRUE )
{
const spi_slave_register_t* current_register = NULL;
wiced_spi_slave_command_t command;
wiced_result_t result;
uint32_t a;
/* Wait for command indefinitely */
result = wiced_spi_slave_receive_command( device->config->spi, &command, WICED_NEVER_TIMEOUT );
if ( result != WICED_SUCCESS )
{
continue;
}
/* Command has been received. Search for register */
for ( a = 0; a < device->config->register_count; a++ )
{
if ( command.address == device->config->register_list.address )
{
current_register = &device->config->register_list;
}
}
if ( current_register == NULL )
{
wiced_spi_slave_send_error_status( device->config->spi, SPI_SLAVE_TRANSFER_ADDRESS_UNAVAILABLE );
continue;
}
/* Check for register access */
if ( command.direction == SPI_SLAVE_TRANSFER_READ && current_register->access == SPI_SLAVE_ACCESS_WRITE_ONLY )
{
wiced_spi_slave_send_error_status( device->config->spi, SPI_SLAVE_TRANSFER_READ_NOT_ALLOWED );
continue;
}
if ( command.direction == SPI_SLAVE_TRANSFER_WRITE && current_register->access == SPI_SLAVE_ACCESS_READ_ONLY )
{
wiced_spi_slave_send_error_status( device->config->spi, SPI_SLAVE_TRANSFER_WRITE_NOT_ALLOWED );
continue;
}
/* Check for correct data length */
if ( command.data_length != current_register->data_length )
{
wiced_spi_slave_send_error_status( device->config->spi, SPI_SLAVE_TRANSFER_LENGTH_MISMATCH );
continue;
}
/* All conditions have been satisfied. Call read callback before transfer */
if ( current_register->read_callback != NULL && command.direction == SPI_SLAVE_TRANSFER_READ )
{
current_register->read_callback( device, device->buffer->data );
}
/* If data type is static, copy data from static data pointer to buffer.
* If data type is dynamic, user is expected to fill in data in the access start callback.
*/
if ( current_register->data_type == SPI_SLAVE_REGISTER_DATA_STATIC )
{
memset( device->buffer, 0, device->buffer_size );
memcpy( device->buffer->data, current_register->static_data, current_register->data_length );
}
device->buffer->data_length = current_register->data_length;
/* Read/write data from/to the SPI master */
result = wiced_spi_slave_transfer_data( device->config->spi, command.direction, device->buffer, WICED_NEVER_TIMEOUT );
/* Call read callback after transfer */
if ( result == WICED_SUCCESS && current_register->write_callback != NULL && command.direction == SPI_SLAVE_TRANSFER_WRITE )
{
current_register->write_callback( device, device->buffer->data );
}
}
WICED_END_OF_CURRENT_THREAD( );
}
Show LessCould use some insight into an occasional error we are seeing in our http server application (WICED 6.2), specifically the WICED API “wiced_http_response_stream_write”. When we call this API to write chunks of a web page up to the browser the API will occasionally return the value 4, which from below WICED code is defined generically as “ERROR” (appears a macro is used to expand to “WICED_TCPIP_ERROR” so at least we can search the WICED code for that string). When this error occurs our web page is obviously not rendered correctly. The error is not easily reproducible nor is there any pattern to its occurrence. It is not a “hard” error, our application will continue to function following this error, meaning the user can navigate to another page which will be served and rendered correctly. When the API fails as described our application will retry the API several more times but those retries fail as well, with the same error code.
The generality of this error code makes it difficult to debug. Can you provide some insight into what “Error” may indicate, what may cause this situation, possibly WICED debugging options that can be enabled?
Another error that same library function will sometime return under the same conditions is “socket closed”. When this is seen the current page does not render correctly but typically can back to the previous page which will then be rendered fine. I retry the library function when it returns that error but that did not help. I’m not quite sure what this error may be implying, as the the connection is fine.
#define TCPIP_RESULT_LIST( prefix ) \
RESULT_ENUM( prefix, SUCCESS, 0 ), /**< Success */ \
RESULT_ENUM( prefix, PENDING, 1 ), /**< Pending */ \
RESULT_ENUM( prefix, TIMEOUT, 2 ), /**< Timeout */ \
RESULT_ENUM( prefix, PARTIAL_RESULTS, 3 ), /**< Partial results */ \
RESULT_ENUM( prefix, ERROR, 4 ), /**< Error */ \
RESULT_ENUM( prefix, BADARG, 5 ), /**< Bad Arguments */ \
RESULT_ENUM( prefix, BADOPTION, 6 ), /**< Mode not supported */ \
RESULT_ENUM( prefix, UNSUPPORTED, 7 ), /**< Unsupported function */ \
RESULT_ENUM( prefix, INVALID_PACKET, 7008 ), /**< Invalid packet */ \
RESULT_ENUM( prefix, INVALID_SOCKET, 7009 ), /**< Invalid socket */ \
RESULT_ENUM( prefix, WAIT_ABORTED, 7010 ), /**< Wait aborted */ \
RESULT_ENUM( prefix, PORT_UNAVAILABLE, 7011 ), /**< Port unavailable */ \
RESULT_ENUM( prefix, IN_PROGRESS, 7012 ), /**< Action in progress */ \
RESULT_ENUM( prefix, IP_ADDRESS_IS_NOT_READY, 7013 ), /**< IP_ADDRESS_IS_NOT_READY */ \
RESULT_ENUM( prefix, SOCKET_CLOSED, 7014 ), /**< Socket closed */
Show LessI use MXCHIP EMW3162 Module,it is STM32F205RGT6 + CYW43362.
This module only leads to the SWD pin
I have an error when I download the program with jlink-swd
"**** OpenOCD failed - ensure you have installed the driver from the drivers directory, and that the debugger is not running **** In Linux this may be due to USB access permissions. In a virtual machine it may be due to USB passthrough settings. Check in the task list that another OpenOCD process is not running. Check that you have the correct target and JTAG device plugged in. ****"
Downloading DCT ...
"**** OpenOCD failed - ensure you have installed the driver from the drivers directory, and that the debugger is not running **** In Linux this may be due to USB access permissions. In a virtual machine it may be due to USB passthrough settings. Check in the task list that another OpenOCD process is not running. Check that you have the correct target and JTAG device plugged in. ****"
Downloading resources filesystem ... build/snip.tcp_server-BCM943362WCD4-FreeRTOS-LwIP-SDIO/filesystem.bin at sector 1 size 52...
tools/makefiles/wiced_apps.mk:334: recipe for target 'FILESYSTEM_IMAGE_DOWNLOAD' failed
make.exe[1]: *** [FILESYSTEM_IMAGE_DOWNLOAD] Error 1
make.exe[1]: *** Waiting for unfinished jobs....
Makefile:351: recipe for target 'main_app' failed
make: *** [main_app] Error 2
open openocd_log.txt file
Show LessOpen On-Chip Debugger 0.10.0+dev-00227-g0d15c62 (2018-03-27-15:19)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
jtag_ntrst_delay: 100
Warn : target name is deprecated use: 'cortex_m'
jtag_init
Info : J-Link ARM-OB STM32 compiled Aug 22 2012 19:52:04
Info : Hardware version: 7.00
Info : VTarget = 3.300 V
Info : clock speed 1000 kHz
Error: BUG: can't assert SRST
in procedure 'init' called at file "./tools/OpenOCD/stm32f2x-flash-app.cfg", line 32
in procedure 'ocd_bouncer'
Open On-Chip Debugger 0.10.0+dev-00227-g0d15c62 (2018-03-27-15:19)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
jtag_ntrst_delay: 100
Warn : target name is deprecated use: 'cortex_m'
jtag_init
Info : J-Link ARM-OB STM32 compiled Aug 22 2012 19:52:04
Info : Hardware version: 7.00
Info : VTarget = 3.300 V
Info : clock speed 1000 kHz
Error: BUG: can't assert SRST
in procedure 'init' called at file "./tools/OpenOCD/stm32f2x-flash-app.cfg", line 32
in procedure 'ocd_bouncer'
Open On-Chip Debugger 0.10.0+dev-00227-g0d15c62 (2018-03-27-15:19)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
jtag_ntrst_delay: 100
Warn : target name is deprecated use: 'cortex_m'
jtag_init
Info : J-Link ARM-OB STM32 compiled Aug 22 2012 19:52:04
Info : Hardware version: 7.00
Info : VTarget = 3.300 V
Info : clock speed 1000 kHz
Error: BUG: can't assert SRST
in procedure 'init' called at file "./tools/OpenOCD/stm32f2x-flash-app.cfg", line 32
in procedure 'ocd_bouncer'
Open On-Chip Debugger 0.10.0+dev-00227-g0d15c62 (2018-03-27-15:19)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
jtag_ntrst_delay: 100
Warn : target name is deprecated use: 'cortex_m'
jtag_init
Info : J-Link ARM-OB STM32 compiled Aug 22 2012 19:52:04
Info : Hardware version: 7.00
Info : VTarget = 3.300 V
Info : clock speed 1000 kHz
Error: BUG: can't assert SRST
in procedure 'init' called at file "./tools/OpenOCD/stm32f2x-flash-app.cfg", line 32
in procedure 'ocd_bouncer'
Open On-Chip Debugger 0.10.0+dev-00227-g0d15c62 (2018-03-27-15:19)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.org/doc/doxygen/bugs.html
adapter speed: 1000 kHz
adapter_nsrst_delay: 100
Info : auto-selecting first available session transport "jtag". To override use 'transport select <transport>'.
jtag_ntrst_delay: 100
Warn : target name is deprecated use: 'cortex_m'
jtag_init
post_init_psoc6_setup
Info : J-Link ARM-OB STM32 compiled Aug 22 2012 19:52:04
Info : Hardware version: 7.00
Info : VTarget = 3.300 V
Info : clock speed 1000 kHz
Error: BUG: can't assert SRST
in procedure 'sflash_write_file'
in procedure 'sflash_init' called at file "apps/waf/sflash_write/sflash_write.tcl", line 261
in procedure 'init' called at file "apps/waf/sflash_write/sflash_write.tcl", line 155
in procedure 'ocd_bouncer'
Hello,
I need some help. I've connect my device to a website successfully using HTTP.
I start receiving the first data in my callback successfully but quickly I've stop receiving data.
After some debug, I figure out the issue was over these lines:
http_client.c::client_receive_handler()
wiced_packet_get_data( packet, 0, &data, &fragment_available_data_length, &total_available_data_length );
if ( fragment_available_data_length < total_available_data_length )
{
WPRINT_LIB_ERROR( ("Unable to handle fragmented packets\n") );
wiced_packet_delete( packet );
return WICED_ERROR;
}
Is there a way to manage fragmented packets ?
Thanks for your help
Clément
Show LessHi,
[ WICED-Studio-6.2.1 (Linux 64-bit) ]
I´ve two issues about Wiced using rtos:
First
Typedef wiced_thread_t isn't known even after included wiced_rtos.h in the code.
Second
According to API Reference Guide v6.2.0 - page 95
but in the wiced_rtos.h we found
Maybe is only the prototype name.
Best regards,
Show Less