| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 | 
							- /*******************************************************************************
 
- * 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_PARSE_H__
 
- #define __CYBTLDR_PARSE_H__
 
- #include "cybtldr_utils.h"
 
- /* Maximum number of bytes to allocate for a single row.  */
 
- /* NB: Rows should have a max of 592 chars (2-arrayID, 4-rowNum, 4-len, 576-data, 2-checksum, 4-newline) */
 
- #define MAX_BUFFER_SIZE 768
 
- /*******************************************************************************
 
- * Function Name: CyBtldr_FromHex
 
- ********************************************************************************
 
- * Summary:
 
- *   Converts the provided ASCII char into its hexadecimal numerical equivilant.
 
- *
 
- * Parameters:
 
- *   value - the ASCII char to convert into a number
 
- *
 
- * Returns:
 
- *   The hexadecimal numerical equivilant of the provided ASCII char.  If the
 
- *   provided char is not a valid ASCII char, it will return 0.
 
- *
 
- *******************************************************************************/
 
- unsigned char CyBtldr_FromHex(char value);
 
- /*******************************************************************************
 
- * Function Name: CyBtldr_FromAscii
 
- ********************************************************************************
 
- * Summary:
 
- *   Converts the provided ASCII array into its hexadecimal numerical equivilant.
 
- *
 
- * Parameters:
 
- *   bufSize - The length of the buffer to convert
 
- *   buffer  - The buffer of ASCII characters to convert
 
- *   rowSize - The number of bytes of equivilant hex data generated
 
- *   rowData - The hex data generated for the buffer
 
- *
 
- * Returns:
 
- *   CYRET_SUCCESS    - The buffer was converted successfully
 
- *   CYRET_ERR_LENGTH - The buffer does not have an even number of chars
 
- *
 
- *******************************************************************************/
 
- int CyBtldr_FromAscii(unsigned int bufSize, unsigned char* buffer, unsigned short* rowSize, unsigned char* rowData);
 
- /*******************************************************************************
 
- * Function Name: CyBtldr_ReadLine
 
- ********************************************************************************
 
- * Summary:
 
- *   Reads a single line from the open data file.  This function will remove
 
- *   any Windows, Linux, or Unix line endings from the data.
 
- *
 
- * Parameters:
 
- *   size - The number of bytes of data read from the line and stored in buffer
 
- *   file - The preallocated buffer, with MAX_BUFFER_SIZE bytes, to store the 
 
- *          read data in.
 
- *
 
- * Returns:
 
- *   CYRET_SUCCESS  - The file was opened successfully.
 
- *   CYRET_ERR_FILE - An error occurred opening the provided file.
 
- *   CYRET_ERR_EOF  - The end of the file has been reached
 
- *
 
- *******************************************************************************/
 
- EXTERN int CyBtldr_ReadLine(unsigned int* size, char* buffer);
 
- /*******************************************************************************
 
- * Function Name: CyBtldr_OpenDataFile
 
- ********************************************************************************
 
- * Summary:
 
- *   Opens the provided file for reading.  Once open, it is expected that the
 
- *   first call will be to ParseHeader() to read the first line of data.  After
 
- *   that, successive calls to ParseRowData() are possible to read each line
 
- *   of data, one at a time, from the file.  Once all data has been read from
 
- *   the file, a call to CloseDataFile() should be made to release resources.
 
- *
 
- * Parameters:
 
- *   file - The full canonical path to the *.cyacd file to open
 
- *
 
- * Returns:
 
- *   CYRET_SUCCESS  - The file was opened successfully.
 
- *   CYRET_ERR_FILE - An error occurred opening the provided file.
 
- *
 
- *******************************************************************************/
 
- EXTERN int CyBtldr_OpenDataFile(const char* file);
 
- /*******************************************************************************
 
- * Function Name: CyBtldr_ParseHeader
 
- ********************************************************************************
 
- * Summary:
 
- *   Parses the hader information from the *.cyacd file.  The header information
 
- *   is stored as the first line, so this method should only be called once, 
 
- *   and only immediatly after calling OpenDataFile and reading the first line.
 
- *
 
- * Parameters:
 
- *   bufSize    - The number of bytes contained within buffer
 
- *   buffer     - The buffer containing the header data to parse
 
- *   siliconId  - The silicon ID that the provided *.cyacd file is for
 
- *   siliconRev - The silicon Revision that the provided *.cyacd file is for
 
- *   chksum     - The type of checksum to use for packet integrety check
 
- *
 
- * Returns:
 
- *   CYRET_SUCCESS    - The file was opened successfully.
 
- *   CYRET_ERR_LENGTH - The line does not contain enough data
 
- *
 
- *******************************************************************************/
 
- EXTERN int CyBtldr_ParseHeader(unsigned int bufSize, unsigned char* buffer, unsigned long* siliconId, unsigned char* siliconRev, unsigned char* chksum);
 
- /*******************************************************************************
 
- * Function Name: CyBtldr_ParseRowData
 
- ********************************************************************************
 
- * Summary:
 
- *   Parses the contents of the provided buffer which is expected to contain
 
- *   the row data from the *.cyacd file.  This is expected to be called multiple
 
- *   times.  Once for each row of the *.cyacd file, excluding the header row.
 
- *
 
- * Parameters:
 
- *   bufSize  - The number of bytes contained within buffer
 
- *   buffer   - The buffer containing the row data to parse
 
- *   arrayId  - The flash array that the row of data belongs in
 
- *   rowNum   - The flash row number that the data corresponds to
 
- *   rowData  - The preallocated buffer to store the flash row data
 
- *   size     - The number of bytes of rowData
 
- *   checksum - The checksum value for the entire row (rowNum, size, rowData)
 
- *
 
- * Returns:
 
- *   CYRET_SUCCESS    - The file was opened successfully.
 
- *   CYRET_ERR_LENGTH - The line does not contain enough data
 
- *   CYRET_ERR_DATA   - The line does not contain a full row of data
 
- *   CYRET_ERR_CMD    - The line does not start with the cmd identifier ':'
 
- *
 
- *******************************************************************************/
 
- EXTERN int CyBtldr_ParseRowData(unsigned int bufSize, unsigned char* buffer, unsigned char* arrayId, unsigned short* rowNum, unsigned char* rowData, unsigned short* size, unsigned char* checksum);
 
- /*******************************************************************************
 
- * Function Name: CyBtldr_CloseDataFile
 
- ********************************************************************************
 
- * Summary:
 
- *   Closes the data file pointer.
 
- *
 
- * Parameters:
 
- *   void.
 
- *
 
- * Returns:
 
- *   CYRET_SUCCESS  - The file was opened successfully.
 
- *   CYRET_ERR_FILE - An error occured opening the provided file.
 
- *
 
- *******************************************************************************/
 
- EXTERN int CyBtldr_CloseDataFile(void);
 
- #endif
 
 
  |