I attempted to implement my algorithm using only software on the Windows platform, and utilized virtual communication and FreeMASTER lite to attempt to create an automatic test that is independent of the MCU environment.
The crucial printf code
FMSTR_SIZE size = 0;
FMSTR_ADDR addr = FMSTR_TsaGetTable(0, &size);
printf("TSA table 0 addr=%p size=%u\n", (void *)addr, (unsigned)size);
In the 64-bit compilation environment I usually use, the TSA operation fails to work properly. My code printf "TSA Table 0 addr= 00007ff7b1a742a0 size= 992".
The reload TSA communication flow——FreeMASTER
>> 2B 29 01 00 6C
<< 2B 40 0A 23 E0 07 80 EA FE 1F 78
>> 2B 21 07 80 0A F0 01 15
<< 2B 89 B6
>> 2B 29 01 01 6B
<< 2B 40 09 23 00 A0 89 FA 80 EA FE 1F E0
>> 2B 29 01 02 62
<< 2B 40 03 23 00 00 0C
I switched to using a 32-bit compilation environment. the TSA is operation properly. My code printf "TSA table 0 addr=008d22a0 size=496".
It is noted that in 64-bit compilation, the "size" parameter will be doubled. So, I conducted the test in this way. Simplify the TSA.
float f1;
uint32_t u1;
FMSTR_TSA_RW_VAR(u1, FMSTR_TSA_SINT32)
FMSTR_TSA_RW_VAR(f1, FMSTR_TSA_FLOAT)
in 64bit "TSA table 0 addr=00007ff63e4541a0 size=64"
in 32bit "TSA table 0 addr=00ed21a0 size=32"
This stems from the introduction of char * and void * in FMSTR_TSA_RW_VAR
I would like to know if the FreeMASTER development team has any plans to support 64-bit environments.
I believe that FreeMASTER has great potential in virtual device testing and control algorithm verification.
已解决! 转到解答。
Hello,
thank you for sharing your use case. Unfortunately, I have to confirm the limitation to 32 bit platforms only. Supporting 64bit target platforms is in the plans but I cannot promise any date when this will be available.
Regards,
Michal
Hello,
thank you for sharing your use case. Unfortunately, I have to confirm the limitation to 32 bit platforms only. Supporting 64bit target platforms is in the plans but I cannot promise any date when this will be available.
Regards,
Michal