Functions: initOptionBytesInterface() return a rubbish, firmwareUpgrade() and startWirelessStack() returns not correct result.
Hi.
Using STM32Cubeprogrammer API v.2.7.0 with STM32WB55 and USB interface, I find an error when to call initOptionBytesInterface().
...
peripheral_C* options_bytes;
options_bytes = initOptionBytesInterface();
...
As we know, "peripheral_C" structure have a fields:
typedef struct peripheral_C
{
char name[32]; /**< Peripheral name. */
char description[200]; /**< Peripheral description. */
unsigned int banksNbr; /**< Number of existed banks. */
bank_C** banks; /**< Get banks descriptions #Bank_C. */
}peripheral_C;
And after call I see that the banksNbr = very big value.
Its a same for 32 or 64 platforms.
This is 32 platform:
As you see, options_bytes address = 0x02fa6e90.
If we add to this address lenghts of fields name[32] and description[200]
our result will be 0x02fa6f78 as we can see that
banksNbr = 0xc7a2b7a3.
This is 64 platform:
and we can see the same, but more interesting is a fild " bank_C** banks;"
banksNbr = 0x7865742e.
What is a "text_6", "text_7" ... ?
So, x64 dont work ?
Why in different platforms we have a different data returned by function initOptionBytesInterface() and not correct data?
I try to test project in API folder using USB_Example.cpp - it is a same problem.
Next trouble:
Using API in custom desktop application I find that call connectDfuBootloader() does not work correctly if :
- there is no "Data_Base" folder at the level above the application and in this folder need to present "STM32_Prog_DB_0x495.xml" file.
- if there is no "Flash Loader" folder nearby to the application and in this folder need to present 4 files with names beginning with "0x495", like:
0x495.stldr, 0x495_FUS_Operator.bin, 0x495_nonSecure.stldr, 0x495_secure.stldr
Next trouble:
When call firmwareUpgrade() with stack and parametere "startStack" = 1 then
function return "1" (error) but stack loaded succesfully and fus dont run :
When call this function (firmwareUpgrade()) with stack and parameter "startStack" = 0 then
function return "1" (error) again but stack loaded succesfully and fus still run:
Why firmwareUpgrade () always return 1 (false)?
Next trouble:
Function startWirelessStack() always return "1" (false) but stack started.
