Wi-Fi Combo Forum Discussions
My ota2 project is not building when I add the debug option to the build config.
InVue.RTD-InVue_RTD-FreeRTOS-LwIP-debug ota2_manuf_download will not build but InVue.RTD-InVue_RTD-FreeRTOS-LwIP ota2_manuf_download will and InVue.RTD-InVue_RTD-FreeRTOS-LwIP-debug download will not build but InVue.RTD-InVue_RTD-FreeRTOS-LwIP download will.
The error is related to the memory location defines in the OTA2_image_defines.mk.
Is this normal? How can I debug my project with the added OTA code?
Build Console
Show Less
18:04:24 **** Build of configuration Default for project AWS_WIFI_RTD ****
"C:\\Firmware\\F1679_WIFI_RTD\\AWS_V2\\make.exe" -j8 InVue.RTD-InVue_RTD-FreeRTOS-LwIP-debug ota2_manuf_download
MAKEFILE MAKECMDGOALS=InVue.RTD-InVue_RTD-FreeRTOS-LwIP-debug ota2_manuf_download OTA2_SUPPORT is enabled
make.exe[1]: warning: -jN forced in submake: disabling jobserver mode.
Building Bootloader waf.ota2_bootloader-NoOS-NoNS-InVue_RTD-P103-SoC.43909
Building Serial Flash Loader App
Finished Building Serial Flash Loader App
prgm hdr cnt=3
total_size = 15756, entry_point = 0x688000
Loadsegment_offset = 0xA0 segment_size = 15520, segment_pad = 0
Loadsegment_offset = 0x3D40 segment_size = 32, segment_pad = 0
Loadsegment_offset = 0x3D60 segment_size = 204, segment_pad = 0
Finished Building Bootloader
apps/InVue/RTD/../../../libraries/filesystems/ota2/wiced_ota2_image.c: In function 'wiced_ota2_image_copy_uncompressed_component':
apps/InVue/RTD/../../../libraries/filesystems/ota2/wiced_ota2_image.c:577:19: error: 'OTA2_IMAGE_FLASH_BASE' undeclared (first use in this function); did you mean 'NORMAL_IMAGE_FLASH_BASE'?
dst_offset = (OTA2_IMAGE_FLASH_BASE + component_header->destination);
^~~~~~~~~~~~~~~~~~~~~
NORMAL_IMAGE_FLASH_BASE
apps/InVue/RTD/../../../libraries/filesystems/ota2/wiced_ota2_image.c:577:19: note: each undeclared identifier is reported only once for each function it appears in
apps/InVue/RTD/../../../libraries/filesystems/ota2/wiced_ota2_image.c: In function 'wiced_ota2_image_write_data':
apps/InVue/RTD/../../../libraries/filesystems/ota2/wiced_ota2_image.c:1290:28: error: 'OTA2_IMAGE_STAGING_AREA_SIZE' undeclared (first use in this function); did you mean 'NORMAL_IMAGE_APPS_AREA_BASE'?
if ( (offset + size) > OTA2_IMAGE_STAGING_AREA_SIZE)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
NORMAL_IMAGE_APPS_AREA_BASE
apps/InVue/RTD/../../../libraries/filesystems/ota2/wiced_ota2_image.c: In function 'wiced_ota2_get_boot_type':
apps/InVue/RTD/../../../libraries/filesystems/ota2/wiced_ota2_image.c:1590:14: warning: implicit declaration of function 'wiced_dct_ota2_read_saved_copy'; did you mean 'wiced_dct_read_with_copy'? [-Wimplicit-function-declaration]
result = wiced_dct_ota2_read_saved_copy( &ota2_header, DCT_OTA2_CONFIG_SECTION, 0, sizeof(platform_dct_ota2_config_t));
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
wiced_dct_read_with_copy
apps/InVue/RTD/../../../libraries/filesystems/ota2/wiced_ota2_image.c: In function 'wiced_ota2_image_get_offset':
apps/InVue/RTD/../../../libraries/filesystems/ota2/wiced_ota2_image.c:1796:26: error: 'OTA2_IMAGE_FACTORY_RESET_AREA_BASE' undeclared (first use in this function); did you mean 'NORMAL_IMAGE_DCT_2_AREA_BASE'?
ota_offset = OTA2_IMAGE_FACTORY_RESET_AREA_BASE;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
NORMAL_IMAGE_DCT_2_AREA_BASE
apps/InVue/RTD/../../../libraries/filesystems/ota2/wiced_ota2_image.c:1799:26: error: 'OTA2_IMAGE_STAGING_AREA_BASE' undeclared (first use in this function); did you mean 'NORMAL_IMAGE_APPS_AREA_BASE'?
ota_offset = OTA2_IMAGE_STAGING_AREA_BASE;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
NORMAL_IMAGE_APPS_AREA_BASE
tools/makefiles/wiced_elf.mk:232: recipe for target 'build/InVue.RTD-InVue_RTD-FreeRTOS-LwIP-debug/Modules/apps/InVue/RTD/../../../libraries/filesystems/ota2/wiced_ota2_image.o' failed
make.exe[1]: *** [build/InVue.RTD-InVue_RTD-FreeRTOS-LwIP-debug/Modules/apps/InVue/RTD/../../../libraries/filesystems/ota2/wiced_ota2_image.o] Error 1
make.exe[1]: *** Waiting for unfinished jobs....
Makefile:351: recipe for target 'main_app' failed
make: *** [main_app] Error 2
18:04:29 Build Finished (took 5s.190ms)
I understand that I am supposed to use PSoC Creator to develop the PSoC 6 functionality and WICED for the Wi-Fi + BT functionality. What I don't understand is how a project like this should be structured. How do you create a project that you can be used in PSoC Creator and WICED interchangeably?
(I am using the CY8CKIT-062)
Show LessI am a MCU engineer. WICED's engineering structure and makefile are not very familiar. I don't know how to use it. I want to port it to the IDE. How can I achieve this?
Show LessThere is a USB device that does not belong to any public classes (such as HID、CDC..).
The USB device has been tested successfully through the libusb library in linux(PC).Just read and write usb endpoint will be ok.
Now I need use CYW943907AEVAL1F to control the USB device.
But I found that only a few common classes have been implemented in wiced
and a series of function like _ux_host_stack* are provided in ux_host_stack.h.
I would like to refer to the example of STORAGE and HID, but only binary, no source code is provided.
I don't know how to use these functions, nor am I familiar with the USB protocol.
So, if anyone could share with me some examples or useful documents, I would be very grateful .
thank you
Show Lesswhat are the general WI-FI(802.11) automation testing using python scripting based on WI-FI 802.11 WICED functions and boundaries of framework design on WICED functions and commands for automation testing.in WICED SDK where we can get commands.
Show LessI have a CY8CKIT-062. I know that I can use PSoC Creator to make projects for the PSoC 6 chip. However, my project requires Wi-Fi and Bluetooth. When you create a project in PSoC Creator for the 062 kit there are no Wi-Fi or Bluetooth components to use. So, how should I go about developing my project? Should I use PSoC Creator for the microcontroller portion and WICED for the Wi-Fi/Bluetooth connectivity part? If yes, How do I make a project that can be developed in both IDE's? I'm still learning and want to make sure I create the proper structure for my project.
Show LessI'm working on a project where I need to use a certificate and device authentication to join a wireless network. Does wiced support this and are there examples of this?
I also have a .pfx that I have exported to a .pem file. Trying to figure out how to use it.
Show LessI am completely new to this: Is there any step by step description, how to establish a WiFi-direct connection between my WICED device and an Adroid smartphone?
I think our WICED Smart device will be in group owner roll.
Can I start the WiFi-direct connection with "wiced_network_up(WICED_AP_INTERFACE,...)" or is this the wrong strarting point?
To be more specific according our environement:
We are using WICED Studio 6.2 and are developing on a Murata module with STM32F412 CYW 43438.
Our goal is to exchange data between our WICED device and an android Smartphone over WiFi-direct. (The Data will be in JSON format).
Any help or hint is greatly appreciated
Best regards
Mic
Show Lessrroy
Per our previous closed discussion here: CYW43907 SDIO Slave
Is it possible to receive 43907 Programmers Guide, and Register Map/Definitions with NDA agreement to implement SDIO slave by myself?
I try to implement driver by pieces of info in library, but get stuck in several things.
I`ve defined some structures for SDIO device (as analog of sdioh_info_t) and start to initialize structures like in sdioh_attach in bcmsdstd.c
I have add info to core info
{
.curmap = (void*)PLATFORM_SDIOD_REGBASE(0x0),
.curwrap = (void*)PLATFORM_SDIOD_MASTER_WRAPPER_REGBASE(0x0),
.coreid = SDIOD_CORE_ID,
.corerev = SDIOD_CORE_REV,
},
then Ive copy some function for reading and writing registers.
static uint8 read_sdiod_reg8(sdio_device_info_t *sd, uint reg)
{
volatile uint8 data = *(volatile uint8 *) (sd->mem_space + reg);
dsd_ctrl(("8: R Reg 0x%02x, Data 0x%x\n", reg, data));
return data;
}
static void write_sdiod_reg8(sdio_device_info_t *sd, uint reg, uint8 data)
{
*(volatile uint8 *)(sd->mem_space + reg) = (uint8) data;
dsd_ctrl(("8: W Reg 0x%02x, Data 0x%x\n", reg, data));
}
Then I`ve implement function for os allocation and free (sdiod_mos_init,sdiod_mos_free) and try to read and write registers, defined in sdio.h
void application_start(void)
{
wiced_init();
sdiod_init(0);
while(1)
{
printf("hi\r\n");
wiced_rtos_delay_milliseconds(10000);
}
}
int sdiod_init( void *cb_func)
{
sdio_device_info_t *dsd;
dsd_trace(("%s\n", __FUNCTION__));
if ((dsd = (sdio_device_info_t *) malloc(sizeof(sdio_device_info_t))) == 0){
dsd_err(("sdioh_attach: out of memory, malloced %d bytes\n", MALLOCED(0)));
return 0;
}
memset((char*)dsd,0, sizeof(sdio_device_info_t));
sdiod_mos_init(dsd);
osl_core_enable(SDIOD_CORE_ID);
dsd->mem_space = (volatile char *)PLATFORM_SDIOD_REGBASE(0x0);
if (dsd->mem_space == NULL) {
dsd_err(("%s:ioremap() failed\n", __FUNCTION__));
sdiod_mos_free(dsd);
free(dsd);
}
if(cb_func != NULL) {
dsd->intr_handler = cb_func;
dsd->intr_handler_arg = NULL;
dsd->intr_handler_valid = TRUE;
} else {
dsd->intr_handler = NULL;
dsd->intr_handler_arg = NULL;
dsd->intr_handler_valid = FALSE;
}
read_sdiod_reg8(dsd, SDIOD_CCCR_REV);
read_sdiod_reg8(dsd, SDIOD_CCCR_SDREV);
read_sdiod_reg8(dsd, SDIOD_CCCR_IOEN);
write_sdiod_reg8(dsd,SDIOD_CCCR_IOEN,SDIO_FUNC_ENABLE_1|SDIO_FUNC_ENABLE_2|SDIO_FUNC_ENABLE_3);
read_sdiod_reg8(dsd, SDIOD_CCCR_IOEN);
read_sdiod_reg8(dsd, SDIOD_CCCR_IORDY);
read_sdiod_reg8(dsd, SDIOD_CCCR_INTEN);
read_sdiod_reg8(dsd, SDIOD_CCCR_INTPEND);
read_sdiod_reg8(dsd, SDIOD_CCCR_IOABORT);
read_sdiod_reg8(dsd, SDIOD_CCCR_BICTRL);
read_sdiod_reg8(dsd, SDIOD_CCCR_CISPTR_0);
}
At all CYW43907 have error while reading SDIOD_CCCR_CISPTR_0, and SDIOD_CCCR_IOEN didnt write a parameters.
So, it`s nessesary for me to receive your guides to proceed my work, cause now I didn`t know what bus clocks I`ve missed to initialize or which register have R R/W W attributes etc....
Thanks a lot for replies!
Show LessI've been unable to modify the wifi config section of the DCT.
The modification appears to be successful. The failure occurs when I make the wiced_network_up() call following the DCT modification. The board fails to connect three times and then returns the 1024 error code.
I'm using the dct_read_write snip as a starting point.
Below is a stripped down version of the dct_read_write snip that modifies the network name & password before connecting to the network.
static const char* network_name = "___";
static const char* network_password = "___";
void application_start( )
{
platform_dct_wifi_config_t* dct_wifi_config = NULL;
wiced_init( );
print_wifi_config_dct();
wiced_dct_read_lock( (void**) &dct_wifi_config, WICED_TRUE, DCT_WIFI_CONFIG_SECTION, 0, sizeof( *dct_wifi_config ) );
strcpy( dct_wifi_config->stored_ap_list[0].details.SSID.value, network_name );
strcpy( dct_wifi_config->stored_ap_list[0].security_key, network_password );
wiced_dct_write( (const void*) dct_wifi_config, DCT_WIFI_CONFIG_SECTION, 0, sizeof(platform_dct_wifi_config_t) );
wiced_dct_read_unlock( dct_wifi_config, WICED_TRUE );
print_wifi_config_dct();
wiced_network_up( WICED_STA_INTERFACE, WICED_USE_EXTERNAL_DHCP_SERVER, NULL );
WPRINT_APP_INFO( ( "DONE\r\n" ) );
}
I'm not sure if I'm supposed to use the strcpy() function to modify the dct_wifi_config->stored_ap_list[0].details.SSID.value & dct_wifi_config->stored_ap_list[0].security_key variables. I saw this line ( strcpy( app_dct->string_var, modified_string_var ); ) in the dct_read_write snip, and was hoping they all work the same way.
Thanks for any thoughts.
- Bradley
Show Less