| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- /*******************************************************************************
- * Copyright 2011-2012, Cypress Semiconductor Corporation. All rights reserved.
- * You may use this file only in accordance with the license, terms, conditions,
- * disclaimers, and limitations in the end user license agreement accompanying
- * the software package with which this file was provided.
- ********************************************************************************/
- #ifndef __CYBTLDR_API2_H__
- #define __CYBTLDR_API2_H__
- #include "cybtldr_utils.h"
- /*
- * This enum defines the different operations that can be performed
- * by the bootloader host.
- */
- typedef enum
- {
- /* Perform a Program operation*/
- PROGRAM,
- /* Perform an Erase operation */
- ERASE,
- /* Perform a Verify operation */
- VERIFY,
- } CyBtldr_Action;
- /* Function used to notify caller that a row was finished */
- typedef void CyBtldr_ProgressUpdate(unsigned char arrayId, unsigned short rowNum);
- /*******************************************************************************
- * Function Name: CyBtldr_RunAction
- ********************************************************************************
- * Summary:
- *
- *
- * Parameters:
- * action - The action to execute
- * file – The full canonical path to the *.cyacd file to open
- * comm – Communication struct used for communicating with the target device
- * update - Optional function pointer to use to notify of progress updates
- *
- * Returns:
- * CYRET_SUCCESS - The device was programmed successfully
- * CYRET_ERR_DEVICE - The detected device does not match the desired device
- * CYRET_ERR_VERSION - The detected bootloader version is not compatible
- * CYRET_ERR_LENGTH - The result packet does not have enough data
- * CYRET_ERR_DATA - The result packet does not contain valid data
- * CYRET_ERR_ARRAY - The array is not valid for programming
- * CYRET_ERR_ROW - The array/row number is not valid for programming
- * CYRET_ERR_CHECKSUM - The checksum does not match the expected value
- * CYRET_ERR_BTLDR - The bootloader experienced an error
- * CYRET_ERR_COMM - There was a communication error talking to the device
- * CYRET_ABORT - The operation was aborted
- *
- *******************************************************************************/
- int CyBtldr_RunAction(CyBtldr_Action action, const char* file,
- CyBtldr_CommunicationsData* comm, CyBtldr_ProgressUpdate* update);
- /*******************************************************************************
- * Function Name: CyBtldr_Program
- ********************************************************************************
- * Summary:
- * This function reprograms the bootloadable portion of the PSoC’s flash with
- * the contents of the provided *.cyacd file.
- *
- * Parameters:
- * file – The full canonical path to the *.cyacd file to open
- * comm – Communication struct used for communicating with the target device
- * update - Optional function pointer to use to notify of progress updates
- *
- * Returns:
- * CYRET_SUCCESS - The device was programmed successfully
- * CYRET_ERR_DEVICE - The detected device does not match the desired device
- * CYRET_ERR_VERSION - The detected bootloader version is not compatible
- * CYRET_ERR_LENGTH - The result packet does not have enough data
- * CYRET_ERR_DATA - The result packet does not contain valid data
- * CYRET_ERR_ARRAY - The array is not valid for programming
- * CYRET_ERR_ROW - The array/row number is not valid for programming
- * CYRET_ERR_BTLDR - The bootloader experienced an error
- * CYRET_ERR_COMM - There was a communication error talking to the device
- * CYRET_ABORT - The operation was aborted
- *
- *******************************************************************************/
- EXTERN int CyBtldr_Program(const char* file, CyBtldr_CommunicationsData* comm, CyBtldr_ProgressUpdate* update);
- /*******************************************************************************
- * Function Name: CyBtldr_Erase
- ********************************************************************************
- * Summary:
- * This function erases the bootloadable portion of the PSoC’s flash contained
- * within the specified *.cyacd file.
- *
- *
- * Parameters:
- * file – The full canonical path to the *.cyacd file to open
- * comm – Communication struct used for communicating with the target device
- * update - Optional function pointer to use to notify of progress updates
- *
- * Returns:
- * CYRET_SUCCESS - The device was erased successfully
- * CYRET_ERR_DEVICE - The detected device does not match the desired device
- * CYRET_ERR_VERSION - The detected bootloader version is not compatible
- * CYRET_ERR_LENGTH - The result packet does not have enough data
- * CYRET_ERR_DATA - The result packet does not contain valid data
- * CYRET_ERR_ARRAY - The array is not valid for programming
- * CYRET_ERR_ROW - The array/row number is not valid for programming
- * CYRET_ERR_BTLDR - The bootloader experienced an error
- * CYRET_ERR_COMM - There was a communication error talking to the device
- * CYRET_ABORT - The operation was aborted
- *
- *******************************************************************************/
- EXTERN int CyBtldr_Erase(const char* file, CyBtldr_CommunicationsData* comm, CyBtldr_ProgressUpdate* update);
- /*******************************************************************************
- * Function Name: CyBtldr_Verify
- ********************************************************************************
- * Summary:
- * This function verifies the contents of bootloadable portion of the PSoC’s
- * flash with the contents of the provided *.cyacd file.
- *
- * Parameters:
- * file – The full canonical path to the *.cyacd file to open
- * comm – Communication struct used for communicating with the target device
- * update - Optional function pointer to use to notify of progress updates
- *
- * Returns:
- * CYRET_SUCCESS - The device’s flash image was verified successfully
- * CYRET_ERR_DEVICE - The detected device does not match the desired device
- * CYRET_ERR_VERSION - The detected bootloader version is not compatible
- * CYRET_ERR_LENGTH - The result packet does not have enough data
- * CYRET_ERR_DATA - The result packet does not contain valid data
- * CYRET_ERR_ARRAY - The array is not valid for programming
- * CYRET_ERR_ROW - The array/row number is not valid for programming
- * CYRET_ERR_CHECKSUM - The checksum does not match the expected value
- * CYRET_ERR_BTLDR - The bootloader experienced an error
- * CYRET_ERR_COMM - There was a communication error talking to the device
- * CYRET_ABORT - The operation was aborted
- *
- *******************************************************************************/
- EXTERN int CyBtldr_Verify(const char* file, CyBtldr_CommunicationsData* comm, CyBtldr_ProgressUpdate* update);
- /*******************************************************************************
- * Function Name: CyBtldr_Abort
- ********************************************************************************
- * Summary:
- * This function aborts the current operation, whether it be Programming,
- * Erasing, or Verifying. This is done by setting a global flag that the
- * Program, Erase & Verify operations check at the end of each row operation.
- * Since all calls are blocking, this will need to be called from a different
- * execution thread.
- *
- * Parameters:
- * void.
- *
- * Returns:
- * CYRET_SUCCESS - The abort was sent successfully
- *
- *******************************************************************************/
- EXTERN int CyBtldr_Abort(void);
- #endif
|