| 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
 |