aqhome: added lib for hexfiles and flash records.
This commit is contained in:
65
aqhome/hexfile/hexfilerecord.h
Normal file
65
aqhome/hexfile/hexfilerecord.h
Normal file
@@ -0,0 +1,65 @@
|
||||
/****************************************************************************
|
||||
* This file is part of the project AqHome.
|
||||
* AqHome (c) by 2023 Martin Preuss, all rights reserved.
|
||||
*
|
||||
* The license for this file can be found in the file COPYING which you
|
||||
* should have received along with this file.
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef AQH_HEXFILERECORD_H
|
||||
#define AQH_HEXFILERECORD_H
|
||||
|
||||
|
||||
#include <aqhome/api.h>
|
||||
|
||||
#include <gwenhywfar/list.h>
|
||||
|
||||
|
||||
#define AQH_HEXFILERECORD_TYPE_DATA 0x00
|
||||
#define AQH_HEXFILERECORD_TYPE_EOF 0x01
|
||||
#define AQH_HEXFILERECORD_TYPE_EXTSEG 0x02
|
||||
#define AQH_HEXFILERECORD_TYPE_STARTSEGADDR 0x03
|
||||
#define AQH_HEXFILERECORD_TYPE_EXTLINEARADDR 0x04
|
||||
#define AQH_HEXFILERECORD_TYPE_STARTLINEARADDR 0x05
|
||||
|
||||
|
||||
|
||||
typedef struct AQH_HEXFILERECORD AQH_HEXFILERECORD;
|
||||
GWEN_LIST_FUNCTION_LIB_DEFS(AQH_HEXFILERECORD, AQH_HexfileRecord, AQHOME_API)
|
||||
|
||||
|
||||
AQHOME_API AQH_HEXFILERECORD *AQH_HexfileRecord_new();
|
||||
AQHOME_API void AQH_HexfileRecord_free(AQH_HEXFILERECORD *hr);
|
||||
|
||||
|
||||
AQHOME_API uint8_t AQH_HexfileRecord_GetByteCount(const AQH_HEXFILERECORD *hr);
|
||||
AQHOME_API void AQH_HexfileRecord_SetByteCount(AQH_HEXFILERECORD *hr, uint8_t b);
|
||||
|
||||
AQHOME_API uint16_t AQH_HexfileRecord_GetAddress(const AQH_HEXFILERECORD *hr);
|
||||
AQHOME_API void AQH_HexfileRecord_SetAddress(AQH_HEXFILERECORD *hr, uint16_t a);
|
||||
|
||||
AQHOME_API uint8_t AQH_HexfileRecord_GetRecordType(const AQH_HEXFILERECORD *hr);
|
||||
AQHOME_API void AQH_HexfileRecord_SetRecordType(AQH_HEXFILERECORD *hr, uint8_t t);
|
||||
|
||||
AQHOME_API const uint8_t *AQH_HexfileRecord_GetDataPointer(const AQH_HEXFILERECORD *hr);
|
||||
AQHOME_API void AQH_HexfileRecord_SetDataPointer(AQH_HEXFILERECORD *hr, uint8_t *ptr);
|
||||
|
||||
AQHOME_API void AQH_HexfileRecord_SetData(AQH_HEXFILERECORD *hr, const uint8_t *ptr, uint8_t len);
|
||||
|
||||
|
||||
/**
|
||||
* Find the first record whose address is non-contiguous with the given record.
|
||||
* This can be used to reduce the number of data records.
|
||||
* This function stops at the next record whose address is non-continuous or whose type is not 00.
|
||||
*
|
||||
* @return next non-contiguous or non-data record (NULL if none)
|
||||
* @param hr record to start with (i.e. whose successor are checked for continuity)
|
||||
*/
|
||||
AQHOME_API AQH_HEXFILERECORD *AQH_HexfileRecord_List_FindNonAdjacentDataRecord(AQH_HEXFILERECORD *hr);
|
||||
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
Reference in New Issue
Block a user