S32DS-KEAZ128-KEA EEPROM Emulation Driver

cancel
Showing results for 
Search instead for 
Did you mean: 

S32DS-KEAZ128-KEA EEPROM Emulation Driver

Jump to solution
105 Views
Roc_Wang
Contributor I
Hello, We are using S32DS to develop a KEAZ128 project now. We have downloaded the EEPROM emulation "KEAZN8_64_EEE_DEVD", but our project can not work normally after using it. Is there a S32DS-KEAZ128 demo project available ? or How to use this driver in S32DS project ? Thank you !
0 Kudos
1 Solution
89 Views
Robin_Shen
NXP TechSupport
NXP TechSupport

Hi Wangyuepeng,

We offered a verified demo project below which can work normally based on the transplanted EEPROM emulated driver.(I will send it to you by email)

 

For the transplant process, there are several modification points which need to pay attention to:

1.This demo project is based on the FRDM-KEAZ128 EVB board, and you can find the reference documents in this website(https://www.nxp.com/design/development-boards/automotive-development-platforms/s32k-mcu-platforms/ke...).

2.The startup code is created by the new S32DS project for the toolchains of CodeWarrior and S32DS are different.

3.In order to avoid the conflicts between emulation EEPROM data and application code, we actively reserve dedicated memory for emulation EEPROM data in the linker file.
Specifically, 3KB of Flash memory is reserved for EEPROM simulation data(used for 6 sectors with only 512 bytes each).
For similar considerations, we reserved 1KB of dedicated memory in RAM to implement the cache table function.
Of course, the starting address of cache table and EEPROM simulation data should also be modified accordingly in the "ee_user_config.h" and "ee_demo.h" files.

4.Since there is only 1 RWW partition, Flash read operations(such as interrupts) are not supported when some EEPROM emulation drivers are executing the Flash write operations.
For this project, after the global interrupt was turned off during the execution of the "p_FLashLanchComamnd" macro operation in 3 APIs(Eed_SyncFlashErase()|Eed_EraseVerify()|Eed_FlashProgram()) in the "ee_low_level.c" file, the PIT ISR can run normally.

Best Regards,
Robin
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

View solution in original post

0 Kudos
4 Replies
90 Views
Robin_Shen
NXP TechSupport
NXP TechSupport

Hi Wangyuepeng,

We offered a verified demo project below which can work normally based on the transplanted EEPROM emulated driver.(I will send it to you by email)

 

For the transplant process, there are several modification points which need to pay attention to:

1.This demo project is based on the FRDM-KEAZ128 EVB board, and you can find the reference documents in this website(https://www.nxp.com/design/development-boards/automotive-development-platforms/s32k-mcu-platforms/ke...).

2.The startup code is created by the new S32DS project for the toolchains of CodeWarrior and S32DS are different.

3.In order to avoid the conflicts between emulation EEPROM data and application code, we actively reserve dedicated memory for emulation EEPROM data in the linker file.
Specifically, 3KB of Flash memory is reserved for EEPROM simulation data(used for 6 sectors with only 512 bytes each).
For similar considerations, we reserved 1KB of dedicated memory in RAM to implement the cache table function.
Of course, the starting address of cache table and EEPROM simulation data should also be modified accordingly in the "ee_user_config.h" and "ee_demo.h" files.

4.Since there is only 1 RWW partition, Flash read operations(such as interrupts) are not supported when some EEPROM emulation drivers are executing the Flash write operations.
For this project, after the global interrupt was turned off during the execution of the "p_FLashLanchComamnd" macro operation in 3 APIs(Eed_SyncFlashErase()|Eed_EraseVerify()|Eed_FlashProgram()) in the "ee_low_level.c" file, the PIT ISR can run normally.

Best Regards,
Robin
-------------------------------------------------------------------------------
Note:
- If this post answers your question, please click the "Mark Correct" button. Thank you!

- We are following threads for 7 weeks after the last post, later replies are ignored
Please open a new thread and refer to the closed one, if you have a related question at a later point in time.
-------------------------------------------------------------------------------

View solution in original post

0 Kudos
70 Views
Roc_Wang
Contributor I

Hi Robin,

I will try it directly.

Thank you very much !

0 Kudos
99 Views
Roc_Wang
Contributor I

This is my test project.

0 Kudos
104 Views
Roc_Wang
Contributor I
 
0 Kudos