How can I flash the wifi firmware at a certain address on the internal flash ?

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

cross mob
OmEs_4437866
Level 1
Level 1
First like given

Please guide me through this issue, I am trying to flash the wifi firmware on the internal flash at a certain address. I dont want it to be part of the application. I need to be able to choose where to put it on the internal flash.

0 Likes
1 Solution
PriyaM_16
Moderator
Moderator
Moderator
250 replies posted 100 replies posted 50 replies posted

Hello,

WICDE give two options for storing the firmware:

1.  RESOURCES_LOCATION := RESOURCES_IN_DIRECT_RESOURCES
When RESOURCES_LOCATION is given as RESOURCES_IN_DIRECT_RESOURCES, the firmware and blob are converted to a .c file and bundled with application binary. 

Please refer the BUILD_RESOURCE_RULES for understanding the process.

2.  RESOURCES_LOCATION := RESOURCES_IN_WICEDFS

When RESOURCES_LOCATION is given as RESOURCES_IN_WICEDFS, the firmware and blob are bundled to create a Filesystem.bin file. This filesystem.bin is stored in the external flash as per the memory map defined in platform makefile.

pastedImage_1.png

This filesystem approach is currently implemented only for External flash

Some information on BUILD RESOURCE RULES:

The BUILD_RESOURCE_RULES is written such that it takes the resource and creates a .c file for the same(this .c file is in build/<application>-<platform>/resources/ directory).

$(1)  is the resource name.  Example: resources/firmware/4343W/4343WA1.clm_blob

$(2)  is FILESYSTEM or MEM depending on WICEDFS or DIRECT_RESOURCES

$$@  is the created .c file. Example: /43xxx_Wi-Fi/build/<application>-<platform>/resources/4343WA1_clm_blob.c

define BUILD_RESOURCE_RULES

$(call RESOURCE_FILENAME, $(1)): $(1) $(STAGING_DIR).d | $(EXTRA_PRE_BUILD_TARGETS) $(TEXT_TO_RES_SCRIPT) $(BIN_TO_RES_SCRIPT)

$$(if $(RESOURCES_START_PRINT),,$(eval RESOURCES_START_PRINT:=1) $(QUIET)$(ECHO) Processing resources)

$(QUIET)$(ECHO) $(1)

$$(if $(filter $(TEXT_FILTERS),$(1)),$(QUIET)$(PERL) $(TEXT_TO_RES_SCRIPT)  $(2) $(call RESOURCE_VARIABLE_NAME, $(1)) $(1) > $$@)

$(QUIET)$(ECHO) $(2) $$@

$$(if $(filter $(BINARY_FILTERS),$(1)),$(QUIET)$(PERL) $(BIN_TO_RES_SCRIPT) $(2) $(call RESOURCE_VARIABLE_NAME,$(1)) $(1) > $$@)

$(QUIET)$(CP) $(1) $(STAGING_DIR)$(notdir $(1))

View solution in original post

1 Reply
PriyaM_16
Moderator
Moderator
Moderator
250 replies posted 100 replies posted 50 replies posted

Hello,

WICDE give two options for storing the firmware:

1.  RESOURCES_LOCATION := RESOURCES_IN_DIRECT_RESOURCES
When RESOURCES_LOCATION is given as RESOURCES_IN_DIRECT_RESOURCES, the firmware and blob are converted to a .c file and bundled with application binary. 

Please refer the BUILD_RESOURCE_RULES for understanding the process.

2.  RESOURCES_LOCATION := RESOURCES_IN_WICEDFS

When RESOURCES_LOCATION is given as RESOURCES_IN_WICEDFS, the firmware and blob are bundled to create a Filesystem.bin file. This filesystem.bin is stored in the external flash as per the memory map defined in platform makefile.

pastedImage_1.png

This filesystem approach is currently implemented only for External flash

Some information on BUILD RESOURCE RULES:

The BUILD_RESOURCE_RULES is written such that it takes the resource and creates a .c file for the same(this .c file is in build/<application>-<platform>/resources/ directory).

$(1)  is the resource name.  Example: resources/firmware/4343W/4343WA1.clm_blob

$(2)  is FILESYSTEM or MEM depending on WICEDFS or DIRECT_RESOURCES

$$@  is the created .c file. Example: /43xxx_Wi-Fi/build/<application>-<platform>/resources/4343WA1_clm_blob.c

define BUILD_RESOURCE_RULES

$(call RESOURCE_FILENAME, $(1)): $(1) $(STAGING_DIR).d | $(EXTRA_PRE_BUILD_TARGETS) $(TEXT_TO_RES_SCRIPT) $(BIN_TO_RES_SCRIPT)

$$(if $(RESOURCES_START_PRINT),,$(eval RESOURCES_START_PRINT:=1) $(QUIET)$(ECHO) Processing resources)

$(QUIET)$(ECHO) $(1)

$$(if $(filter $(TEXT_FILTERS),$(1)),$(QUIET)$(PERL) $(TEXT_TO_RES_SCRIPT)  $(2) $(call RESOURCE_VARIABLE_NAME, $(1)) $(1) > $$@)

$(QUIET)$(ECHO) $(2) $$@

$$(if $(filter $(BINARY_FILTERS),$(1)),$(QUIET)$(PERL) $(BIN_TO_RES_SCRIPT) $(2) $(call RESOURCE_VARIABLE_NAME,$(1)) $(1) > $$@)

$(QUIET)$(CP) $(1) $(STAGING_DIR)$(notdir $(1))