...so halb zumindest...
Aufruf von getStLinkList liefert wunderbar Ergebnise zurück, aber
connectStLink scheppert eine Accessviolation:
Project CubeProgrammer.exe raised exception class EAccessViolation with
message 'Access violation at address 0000000000000000. Execution of
address 0000000000000000'.
1 | {$MINENUMSIZE 4}
|
2 | TDebugConnectParameters = record
|
3 | dbgPort: TDebugPort; // < Select the type of debug interface #debugPort.
|
4 | index: Integer; // < Select one of the debug ports connected.
|
5 | serialNumber: array[0..32] of AnsiChar; // < ST-LINK serial number.
|
6 | firmwareVersion: array[0..19] of AnsiChar; // < Firmware version.
|
7 | targetVoltage: array[0..4] of AnsiChar; // < Operate voltage.
|
8 | accessPortNumber: Integer; // < Number of available access port.
|
9 | accessPort: Integer; // < Select access port controller.
|
10 | debugConnectMode: TDebugConnectMode; // < Select the debug CONNECT mode #debugConnectMode. */
|
11 | debugResetMode: TDebugResetMode; // < Select the debug RESET mode #debugResetMode. */
|
12 | isOldFirmware: Integer; // < Check Old ST-LINK firmware version. */
|
13 | freq: TFrequencies; // < Supported frequencies #frequencies. */
|
14 | frequency: Integer; // < Select specific frequency. */
|
15 | isBridge: Integer; // < Indicates if it's Bridge device or not. */
|
16 | shared: Integer; // < Select connection type, if it's shared, use ST-LINK Server. */
|
17 | board: array[0..99] of AnsiChar; // < board Name
|
18 | DBG_Sleep: Integer;
|
19 | speed: Integer; // < Select speed flashing of Cortex M33 series. */}
|
20 | end;
|
21 | pDebugConnectParameters = ^TDebugConnectParameters;
|
22 |
|
23 | function getStLinkList(var stLinkList: pDebugConnectParameters; shared: LongBool): Integer; cdecl; external DLL_NAME delayed;
|
24 | function connectStLink(debugParameters: TDebugConnectParameters): Integer; cdecl; external DLL_NAME delayed;
|
Die Elemente in den Delphirecords habe ich mit alle von den Größen
angesehen, das passt soweit.
Die von ST mitgelieferten Beispiele in C++ lassen sich in Visual Studio
bauen und ohne Fehler ausführen. Vielleicht ist ein Delphi-Guru hier der
noch eine Idee hat?