Does there exist a driver for the C90LC Flash module that is compatible with S32DS?
for Reference:
MPC56xx C90LC Flash Standard Software Driver (REV 1.0.3)
02 Oct 2014 MPC56xx C90LC Flash Standard Software Driver |
EXE Device Drivers: MPC56XX_C90LC_JDP_SSD_100_DEVD 6.0MB |
This version has archives for GHS, diab and CW, but no gcc.
Hello Ron,
Functions in C90LC drivers are already pre-compiled by CW, GHS or diab. If you want to use this driver in the project which uses GCC compiler (S32DS IDE), there is no problem. You can use any of the pre-compiled function and call it in your project. Look at the demos in Driver installation folder.
If you have any other questions, please feel free to write me back.
Regards,
Martin
Martin,
I have always been instructed that it is bad practice to use libs compiled with different compilers, and even different versions of the same compiler. Are there plans to release the drivers compiled with GCC?
Regards,
-Ron
Hello Ron,
theoretically if a build tools comply with EABI (Embedded Application Binary interface) it should be possible to combine the object codes together. Anyway I'm aware of some differences e.g. VLE relocation types which may differ between vendors.
In case of Flash Drivers - this is not an object code format but in a pure binary format (see example below). The linker just merge the code/const and place it into the appropriate section.
I noticed that there are some pointers to structs used in API. If there is a common alignment in struct definitions it should be fine to use e.g. CodeWarrior version of Flash Drivers in S32DS/GCC.
const unsigned long BlankCheck_C[] =
{
0x182106D0, 0x00801B01, 0x0910DD01, 0x016D017C, 0x030B480F,
0x014E7C80, 0x2B780158, 0x1800C803, 0xE603481F, 0xE8232A05,
0xE2054800, 0x54080004, 0xE81D74A0, 0xF0BF4DA9, 0x1880A85A,
0x480A7C19, 0x005E0D0A, 0xE00DC09E, 0x1819ACFF, 0xE606D0ED,
0x4A0FC00E, 0xD00CE80A, 0x203E200A, 0xE8F36C20, 0xD0EB0780,
0xD3DBD10B, 0xD4CB3003, 0x003C2A00, 0xE60701F3, 0x1800D000,
0x00001800, 0xD00001F3, 0xCD011B01, 0x08100090, 0x18218030,
0x00044D50, 0x43353542, 0x43313130
};
Hope it helps.
Stan
Hi Stan,
Good Morning.
I'm importing the code from CCW to S32DS.
As you mentioned it is fine to use CW version of Flash Drivers for S32DS but, there is one confusion in using these as it includes two different subfolders.
C:\Program Files (x86)\Freescale\Standard Software Driver v1.0.3\xPC56xx_C90LC\Driver\cw\vle
C:\Program Files (x86)\Freescale\Standard Software Driver v1.0.3\xPC56xx_C90LC\Driver\cw\BookE
Should I go for vle or BookE
Kindly help in choosing the right folder for using these drivers in S32DS.
Thanks in advance,
Raju
Hi Raju,
It really depends on the project you are integrating flash drivers into and also on your target MCU you are using (some MPC56xx (e200z0 core) does not support BookE).
The default project in S32DS is VLE based therefore I'd suggest you to use VLE alternative if possible.
If your project includes some 3rd party bookE libraries that you cannot rebuilt than better option is bookE version.
In general VLE compiler generates higher density code with very little performance drop (it could be compensated in by caching more code,..).
Hope it helps.
Stan
Hello Ron,
unfortunately, there is no plan to migrate SSD Flash drivers also for GCC compiler. If you do not want to mix code from different compilers, you have will to create your own flash driver using GCC compiler.
Regards,
Martin