Skip to end of banner
Go to start of banner

STM32Save device certificate to file

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

FlashPro-ARM/GangPro-ARM programmers support read chip certificate and save it to file.

Read and save chip certificate to file is possible by using API-DLL.

F_ReadSTM32Certificate

General Description

Read device certificate from connected devices to FlashPro-ARM/GangPro-ARM programmers and save to file(cert_1.bin, cert_2.bin etc.)

Supported STM32 series:

  • STM32U5 Series

  • STM32L5 Series

  • STM32H5 Series

Syntax

INT X F_ReadSTM32Certificate( char* path );

Input

char *path : path to save certificate file

  • ““: save in execute place

  • “fully path” - saves in the specified place

  • “relative path“ - saves in the specified relative place

Output

INT_X : result of operation

  • 1 - success

  • 2 - selected not supported vendor or family

  • 3 - target not opened(no connection established)

  • 4 - can’t create file or path don't exists

  • 5 - error during read certificate

Codę example

Code example in python how use F_ReadSTM32Certificate

import os
import sys
import ctypes

#FP-ARM - comment this out and uncomment GP-ARM to use demo for GangPro-ARM
if (sys.platform == "win32"):
    libname = "./FlashProARM-FPAsel.dll"
else:
    libname = "libmultifparm.so"
#GP-ARM - commented out - comment this out and uncomment FP-ARM to use demo for FlashPro-ARM
#if (sys.platform == "win32"):
#    libname = "./GangProARM-FPAsel.dll"
#else:
#    libname = "libmultigparm.so"

init_file = bytes('FPAs-setup.ini', 'utf-8')
if (sys.platform == "win32"):
    config_file_path = bytes('ConfigFiles\\STM32U5_cert.cfg', 'utf-8')
else:
    config_file_path = bytes('STM32U5_cert.cfg', 'utf-8')

#Load library
lib = ctypes.cdll.LoadLibrary(libname)

# Get number of connected adapters
instances = lib.F_OpenInstancesAndFPAs(init_file)
print("Connected adapters: {}".format(instances))

# Init all adapters
result = lib.F_Set_FPA_index(0)
print("F_Set_FPA_index(0): {}".format(result))
result = lib.F_Initialization()
print("F_Initialization: {}".format(result))

# Get adapters serial numbers
serials = []
for instance in range(1, instances+1):
    serials.append(lib.F_Get_FPA_SN(instance))
print(serials)

result = lib.F_ConfigFileLoad(config_file_path)
print("F_ConfigFileLoad: {}".format(result))
# Select one adapter
result = lib.F_Set_FPA_index(1)
print("F_Set_FPA_index(1): {}".format(result))
# Open Target (required before F_ReadSTM32Certificate )
result = lib.F_Open_Target_Device()
print("F_Open_Target_Device".format(result))
result = lib.F_ReadSTM32Certificate("")
print("F_ReadSTM32Certificate: {}".format(result))
result = lib.F_Close_Target_Device()
print("F_Close_Target_Device: {}".format(result))

Useful links

[1] FlashPro-ARM & GangPro-ARM DLL User Guide

  • No labels