Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • ERR_NONE (0) : data read successfully from code buffer.

  • INVALID_ADDR_OR_TYPE (0xFFFFFFFF) : incorrect address, or no data set at specified address.

...

unsigned int addr : OTP read buffer address, from 0 to 0x17F (inclusive).
unsigned char &data : byte from OTP read buffer at specified address, for specified target.
int target : target index from 1 to 8

Output

int : error code

  • ERR_NONE (0) : data read successfully from OTP read buffer

  • INVALID_ADDR_OR_TYPE (0xFFFFFFFF) : incorrect address or target index.

Example

Code Block
languagecpp
int err = ERR_NONE;

//1. Initialization
err = F_Init();
if (err != ERR_NONE)
  return err;

err = F_LoadTargetConfig("board_setup.cfg");
if (err != ERR_NONE)
  return err;

//Scan for connected boards
int dev_count = F_USBAutoScanAndAssign(); 
if(dev_count <= 0)
  exit(1);//no USB devices connected
  
//or load preconfigured USB setup
//F_LoadUSBConfig("usb_setup.cfg");

//2. Load bootloader onto connected boards
err = F_Load_OS();
if (err != ERR_NONE)
  return err;

//3. Read OTP from selected targets
err = F_OTP_Read(); 
if (err != ERR_NONE)
  return err;
  
//4. Print OTP contents read from target 1 (change last param for other targets)
for (int i = 0; i < 0x180; i += 0x10)
{
  for (int j = 0; j < 0x10; j++)
  {
    unsigned char data = 0;
    F_Get_Byte_from_OTP_Read_Buffer(i + j, data, 1);
    printf("0x%x ", data);
  }
  printf("\n\r");
}