Selecting Internal Flash Memory to flash OTAP_ATT Freertos/bm code - Using IAR

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Selecting Internal Flash Memory to flash OTAP_ATT Freertos/bm code - Using IAR

Jump to solution
5,861 Views
Vishva
Contributor II

Hi,

I have followed the below procedure to configure OTAP Client software in IAR Workbench

https://community.nxp.com/t5/Wireless-Connectivity-Knowledge/KW38-Reprogramming-a-KW38-device-using-...

When i modify the otap_client_att source code to use Internal Flash memory as given in the above link, I'm getting following errors,

Error[Li005]: no definition for "INT_STORAGE_START"

Error[Li005]: no definition for "INT_STORAGE_SECTOR_SIZE"

Error[Li005]: no definition for "INT_STORAGE_SIZE"

Note : Configuring External memory works fine.

Kindly check and let me know how to resolve this issue.

Thanks in advance

 

0 Kudos
Reply
1 Solution
5,728 Views
EdgarLomeli
NXP Employee
NXP Employee

Hi @Vishva,

I found that in the post there is a typo. I did a mistake writing the name of the linker flag that needs to be set to 1 for internal storage.

The proper name is "gUseInternalStorageLink_d=1". See the picture below:

EdgarLomeli_0-1649344058606.png

Could you please try to build the OTAP Client again with this linker flag?

Best regards.

Edgar. 

 

 

View solution in original post

7 Replies
5,729 Views
EdgarLomeli
NXP Employee
NXP Employee

Hi @Vishva,

I found that in the post there is a typo. I did a mistake writing the name of the linker flag that needs to be set to 1 for internal storage.

The proper name is "gUseInternalStorageLink_d=1". See the picture below:

EdgarLomeli_0-1649344058606.png

Could you please try to build the OTAP Client again with this linker flag?

Best regards.

Edgar. 

 

 

5,815 Views
Alexis_A
NXP TechSupport
NXP TechSupport

Hello @Vishva,

Seems the predefine for the storage has been update, please change the previous one for this:

gUseInternalStorageLink_d = 1;

BR,

Alexis Andalon

5,801 Views
Vishva
Contributor II

Hi Alexis,

@Alexis_A 

I tried changing the settings as you suggested. Refer to the LinkerSettings.png

Following change is done in app_preinclude.h
#define gEepromType_d gEepromDevice_InternalFlash_c

--------------------------------------
Still i got the following errors,

Error[Li005]: no definition for "INT_STORAGE_START" [referenced from D:\xxxx\boards\frdmkw38\wireless_examples\bluetooth\w_uart\freertos\iar\debug\obj\framework\OtaSupport\OtaSupport.o]

Error[Li005]: no definition for "INT_STORAGE_SECTOR_SIZE" [referenced from D:\xxxx\boards\frdmkw38\wireless_examples\bluetooth\w_uart\freertos\iar\debug\obj\framework\Flash\External\source\Eeprom_InternalFlash.o]

Error[Li005]: no definition for "INT_STORAGE_SIZE" [referenced from D:\xxxx\boards\frdmkw38\wireless_examples\bluetooth\w_uart\freertos\iar\debug\obj\framework\OtaSupport\OtaSupport.o]

---------------------------------------
I have tried to move the variables to OtaSupport.c file which resolved the issues(COMPILATION SUCCESSFUL) but follwoing warnings are there,

Warning[Pe1682]: array variable "INT_STORAGE_SIZE" assumed to have one element D:\xxxx\middleware\wireless\framework\Flash\External\interface\Eeprom.h 88
Warning[Pe1682]: array variable "INT_STORAGE_START" assumed to have one element D:\xxxx\middleware\wireless\framework\Flash\External\interface\Eeprom.h 89
Warning[Pe1682]: array variable "INT_STORAGE_SECTOR_SIZE" assumed to have one element D:\xxxx\middleware\wireless\framework\Flash\External\interface\Eeprom.h 90
Warning[Pe1682]: array variable "Image$$INT_STORAGE$$Base" assumed to have one element D:\xxxx\boards\frdmkw38\wireless_examples\bluetooth\w_uart\freertos\iar\debug\BrowseInfo\framework\OtaSupport\source\OtaSupport.c 29
Warning[Pe1682]: array variable "Image$$INT_STORAGE$$Length" assumed to have one element D:\xxxx\boards\frdmkw38\wireless_examples\bluetooth\w_uart\freertos\iar\debug\BrowseInfo\framework\OtaSupport\source\OtaSupport.c 30

-------------------------------------------
But after flashing the code, unable to do OTA update. Firmware update hangs in 0-1%.
Refer to FirmwareUpdateScreen.png


Please check and let me know.

Thanks in advance.

0 Kudos
Reply
5,787 Views
Alexis_A
NXP TechSupport
NXP TechSupport

Hello @Vishva,

Can you tell me which SDK version are you using?

BR,
Alexis Andalon

0 Kudos
Reply
5,785 Views
Vishva
Contributor II

Hi @Alexis_A ,

SDK version "SDK_2_6_12_FRDM-KW38"

Thanks,

Vishva

0 Kudos
Reply
5,778 Views
Alexis_A
NXP TechSupport
NXP TechSupport

Hello @Vishva,

The latest SDK right now is the 2.6.14, could you try updating to the latest one?

BR,

Alexis Andalon

0 Kudos
Reply
5,844 Views
Vishva
Contributor II

In Continuation with the previous query,

As we know OTA Image file can be stored in FlexNVM (Internal) or External flash available on FRDMKW38.

But why to write OTA image file, internal storage (P-flash) from 0x3e800 - 0x3d000 is selected in the example given?

Please refer to the attachment.

Please check and let me know how to use Internal flash (FlexNVM) to store OTA Image files.

Thanks

0 Kudos
Reply