i have following Problem, i want to Setup a Freemaster Recorder with the PDBDM (Packet Driven BDM). The reason for this i need values from the controlller faster. I have used the BDM-Plugin it works with some minor flaws. But Freemaster has Problem Finding the Adress of the Packet Buffer on the MCU when using the PDBDM Plugin.
There for i have implementedwith the Procecssor Expert some Freemastercode in the Project and added the described/needed Functions running on the MCU (mine S12z).
I added following Functions in the loop.
I also tried a Version with Setting up my Own Buffer manually not with Procecssor Expert (Configuration like in the Picture above)
When i Press the Search Adress Button, this Failure Message pops up.
The Buffer Variable Exits
What can i do to establish an Connection?
How to adjust to the right buffer Adress?
if FreeMASTER has a problem to locate the PDBDM buffer, please try to specify its address yourselves - the address can be found in a map file. In driver v2, the buffer name was pcm_bdm_pCommBuffer (defined in freemaster_bdm.c). In the new driver, the buffer name is _pdbdm (defined in freemaster_pdbdm.c). FYI: the S12Z version of the new driver is attached to this post.
Please do not mix the PDBDM buffer which is used for general communication with the recorder buffer. Once you establish the communication between FreeMASTER and the target MCU, the recorder should work well (the Poll and Recorder calls in your main loop should be enough). You may leave the recorder buffer to be allocated automatically, just specify its size.
I do not know the ProcessorExpert wrapper around the FreeMASTER driver well enough, so if you are still in trouble, I will try to look for some help internally. Or you may try the new driver without PE.
A general comment: you will not achieve a better performance of reading or writing individual variable values with PDBDM comparing to direct BDM access. With PDBDM, the communication is much more intense - there are several BDM direct memory operations needed to transfer a single protocol command to MCU and its protocol response back. Serial line and CAN may help you achieve higher data throughput than PDBDM. On the other hand, the highest sampling rate can be obviously achieved with a Recorder. So once you make it running, you will of course get the same Recording functionality over PDBDM as you would get with Serial or CAN.
the trick with inserting manually the adress didn't work, tried it already in advance.
But i could find the error. For me it worked to deinstall all drivers of Freemaster and Freemaster an installed. Restart PC. Then i installed the Freemaster Version 2.0 and the right driver (Verseion 2.0 ). (Seems that PE use the old Variable names for the Buffer so check if driver an PE variables match). Restarted my PC! And i was able to establish a connecetion and read some Data.
Neverless the Data that i read with the recorder seems to be Way to High it reads values an Voltage like 10333300mV instead of 13350mV
Thank you for your update. So does it work now even with FreeMASTER 3.0?
Be aware that the PD-BDM plug-in and all other plug-ins are shared for all FreeMASTER installations. If you have installed FreeMASTER 2.x, these plugins are now used even by 3.0. And if you re-install FreeMASTER 3.0, the PD-BDM plug-in will be re-registered to the new implementation and will also be used by 2.x.
There should not be any issue with this concept as the plug-in interfaces are mutually compatible and later versions are superset of the older versions. We have run many tests with FreeMASTER 3.0 accessing older protocol implementations and found no issue. I hope that you do not prove an opposite.
Can you re-install the 3.0 for the last time and confirm if the PD-BDM interface works?
I tried with Freemaster Version 3.0 and 2.0 then i realised they share drivers i deinstalled both, when i realised after you post the PE only generates the old Variables which the old driver searches for. And i think Freemaster 3.0 searches for the name of the new ones so, my Idea for fastest fix was just to patch down, so that the Freemaster and PE Variables matches. Maybe its cause my Version of CodeWarrior 11.00
the PDBDM plug-in does not look for a symbol. It scans the RAM and looks for a magic pattern values which identify boundaries of the communication buffer. The PDBDM plug-in in 3.0 should be able to locate both old-style and new-style buffers so I think there is still something in your case that we do not fully understand.
Just in case you still have some time for playing, please give the 3.0 another chance. And if automated search fails, try to provide the address from map file. It depends on you. I don't push you to do it, it just may be a useful exercise to do to see what issue we are facing here.
Thank you for your help,