Rind пре 5 година
родитељ
комит
bedea820ef
3 измењених фајлова са 49 додато и 57 уклоњено
  1. 10 47
      libmininet/gfabootlmast.c
  2. 38 10
      libmininet/gfabootlmast.h
  3. 1 0
      libmininet/gfamininetmst.h

+ 10 - 47
libmininet/gfabootlmast.c

@@ -14,12 +14,7 @@
 ////////////////////////////////////////////////////////////////////////////////////
 
 #define _dword_offset(m)						(offsetof(GFA_APP_IMG_HEADER, m) / sizeof(uint32_t) - 2)
-
-#ifdef _DEBUG
 #define _EXEC_CALLBACK(pfn, ...)				if(pfn) (*pfn)(__FILE__, __LINE__, __VA_ARGS__)
-#else	//	_DEBUG
-#define _EXEC_CALLBACK(pfn, ...)				if(pfn) (*pfn)(__VA_ARGS__)
-#endif	//	_DEBUG
 
 #define _BOOTLOADER_EXEC_WAIT_TIME				250
 #define _GFA_MAX_DUMP_DWORDS					16
@@ -39,38 +34,6 @@ typedef const GFA_BLM *LPCGFA_BLM;
 
 ////////////////////////////////////////////////////////////////////////////////////
 
-#define GFA_APP_BOOTLOADER_START_ADDRESS								((uint32_t)0x00000000)
-#define GFA_APP_APPLICATION_START_ADDRESS								((uint32_t)0x00002000)
-#define GFA_APP_IMG_HEADER_PREFIX_0										((uint32_t)0xFF01FF02)
-#define GFA_APP_IMG_HEADER_PREFIX_1										((uint32_t)0xFF03FF04)
-
-////////////////////////////////////////////////////////////////////////////////////
-
-typedef struct _GFA_APP_IMG_HEADER
-{
-	const uint32_t	nPrefix0;
-	const uint32_t	nPrefix1;
-	const uint32_t	nImgLength;
-	const uint32_t	nImgCRC32;
-	const uint32_t	nReserved[4];
-	union
-	{
-		struct
-		{
-			const char * const	pszImgMaterialNum;
-			const char * const	pszImgNameBuild;
-		}app;
-		struct
-		{
-			const char szImgMaterialNum[GFA_APP_MAX_IMG_MATERIAL_NUM_LENGTH];
-			const char szImgNameBuild[GFA_APP_MAX_IMG_NAME_BUILD_LENGTH];
-		}bl;
-	};
-}GFA_APP_IMG_HEADER, *LPGFA_APP_IMG_HEADER;
-typedef const GFA_APP_IMG_HEADER *LPCGFA_APP_IMG_HEADER;
-
-////////////////////////////////////////////////////////////////////////////////////
-
 HGFABLM GfaBlmOpen(LPCGFA_BLM_CFG_PARAMS pblmcfg)
 {
 	if(pblmcfg)
@@ -1281,7 +1244,7 @@ int GfaBlmGetInfoBI(HGFABLM hBlm, uint8_t nNodeAddr, LPGFA_BL_APP_IMG_INFO paii)
 
 int GfaBlmReadMaterialAndSerialID(HGFABLM hBlm, uint8_t nNodeAddr, char *pszMaterial, size_t nCbMaterial, char *pszSerial, size_t nCbSerial)
 {
-	if(hBlm && pszMaterial && (nCbMaterial >= 16) && pszSerial && (nCbSerial >= 16) && !NODE_IS_MULTICAST(nNodeAddr))
+	if(hBlm && pszMaterial && (nCbMaterial >= GFA_APP_MAX_IMG_MATERIAL_NUM_LENGTH) && pszSerial && (nCbSerial >= GFA_APP_MAX_IMG_SERIAL_NUM_LENGTH) && !NODE_IS_MULTICAST(nNodeAddr))
 	{
 		uint8_t nIndex;
 		ssize_t nRet, nLen;
@@ -1300,22 +1263,22 @@ int GfaBlmReadMaterialAndSerialID(HGFABLM hBlm, uint8_t nNodeAddr, char *pszMate
 
 		if(nRet == MINET_SLAVE_RESPONSE_SUCCESS)
 		{
-			if((nRet = GfaMininetMasterGetDataFromSlaveFrame(rxb, nLen, data, sizeof(data))) != 32)
+			if((nRet = GfaMininetMasterGetDataFromSlaveFrame(rxb, nLen, data, sizeof(data))) != (GFA_APP_MAX_IMG_MATERIAL_NUM_LENGTH + GFA_APP_MAX_IMG_SERIAL_NUM_LENGTH))
 				return -1;
-			memcpy(pszMaterial, data, 16);
-			pszMaterial[15] = '\0';
-			memcpy(pszSerial, &data[16], 16);
-			pszSerial[15] = '\0';
+			memcpy(pszMaterial, data, GFA_APP_MAX_IMG_MATERIAL_NUM_LENGTH);
+			pszMaterial[GFA_APP_MAX_IMG_MATERIAL_NUM_LENGTH - 1] = '\0';
+			memcpy(pszSerial, &data[GFA_APP_MAX_IMG_MATERIAL_NUM_LENGTH], GFA_APP_MAX_IMG_SERIAL_NUM_LENGTH);
+			pszSerial[GFA_APP_MAX_IMG_SERIAL_NUM_LENGTH - 1] = '\0';
 			return 0;
 		}
 		else if(nRet == MINET_SLAVE_RESPONSE_ACK)
 		{
 			if((nRet = GfaBlmBUCmdPollData(hBlm, nNodeAddr, data, sizeof(data), 200)) != (ssize_t)sizeof(data))
 				return -1;
-			memcpy(pszMaterial, data, 16);
-			pszMaterial[15] = '\0';
-			memcpy(pszSerial, &data[16], 16);
-			pszSerial[15] = '\0';
+			memcpy(pszMaterial, data, GFA_APP_MAX_IMG_MATERIAL_NUM_LENGTH);
+			pszMaterial[GFA_APP_MAX_IMG_MATERIAL_NUM_LENGTH - 1] = '\0';
+			memcpy(pszSerial, &data[GFA_APP_MAX_IMG_MATERIAL_NUM_LENGTH], GFA_APP_MAX_IMG_SERIAL_NUM_LENGTH);
+			pszSerial[GFA_APP_MAX_IMG_SERIAL_NUM_LENGTH - 1] = '\0';
 			return 0;
 		}
 		else if(nRet == MINET_SLAVE_RESPONSE_INDEX_IS_STATUS_CODE)

+ 38 - 10
libmininet/gfabootlmast.h

@@ -22,13 +22,46 @@ typedef void													*HGFABLM;
 
 /////////////////////////////////////////////////////////////////////////////
 
-#ifdef _DEBUG
+#define GFA_APP_MAX_IMG_MATERIAL_NUM_LENGTH						16		// including the zero terminator
+#define GFA_APP_MAX_IMG_SERIAL_NUM_LENGTH						16		// including the zero terminator
+#define GFA_APP_MAX_IMG_NAME_BUILD_LENGTH						24		// including the zero terminator
+#define GFA_APP_IMG_HEADER_PREFIX_0								((uint32_t)0xFF01FF02)
+#define GFA_APP_IMG_HEADER_PREFIX_1								((uint32_t)0xFF03FF04)
+
+////////////////////////////////////////////////////////////////////////////////////
+
+#define GFA_APP_BOOTLOADER_START_ADDRESS						((uint32_t)0x00000000)
+#define GFA_APP_APPLICATION_START_ADDRESS						((uint32_t)0x00002000)
+
+////////////////////////////////////////////////////////////////////////////////////
+
+typedef struct _GFA_APP_IMG_HEADER
+{
+	const uint32_t	nPrefix0;
+	const uint32_t	nPrefix1;
+	const uint32_t	nImgLength;
+	const uint32_t	nImgCRC32;
+	const uint32_t	nReserved[4];
+	union
+	{
+		struct
+		{
+			const char * const	pszImgMaterialNum;
+			const char * const	pszImgNameBuild;
+		}app;
+		struct
+		{
+			const char szImgMaterialNum[GFA_APP_MAX_IMG_MATERIAL_NUM_LENGTH];
+			const char szImgNameBuild[GFA_APP_MAX_IMG_NAME_BUILD_LENGTH];
+		}bl;
+	};
+}GFA_APP_IMG_HEADER, *LPGFA_APP_IMG_HEADER;
+typedef const GFA_APP_IMG_HEADER *LPCGFA_APP_IMG_HEADER;
+
+/////////////////////////////////////////////////////////////////////////////
+
 typedef void (*PFN_BU_CMD_DOWNLOAD_STATUS)(const char *pszFile, int nLine, uint8_t nNodeAddr, uint32_t nFlashStartAddr, uint32_t nCbData, int nCtx, int nErrorCode);
 typedef void (*PFN_BU_CMD_SEND_DATA_STATUS)(const char *pszFile, int nLine, uint8_t nNodeAddr, uint32_t nCbBlock, uint32_t nCbData, int nCtx, int nErrorCode);
-#else	//	_DEBUG
-typedef void (*PFN_BU_CMD_DOWNLOAD_STATUS)(uint8_t nNodeAddr, uint32_t nFlashStartAddr, uint32_t nCbData, int nCtx, int nErrorCode);
-typedef void (*PFN_BU_CMD_SEND_DATA_STATUS)(uint8_t nNodeAddr, uint32_t nCbBlock, uint32_t nCbData, int nCtx, int nErrorCode);
-#endif	//	_DEBUG
 
 /////////////////////////////////////////////////////////////////////////////
 
@@ -51,11 +84,6 @@ typedef enum _GFA_BLM_EXEC_CONTEXT
 
 /////////////////////////////////////////////////////////////////////////////
 
-#define GFA_APP_MAX_IMG_MATERIAL_NUM_LENGTH						16		// including the zero terminator
-#define GFA_APP_MAX_IMG_NAME_BUILD_LENGTH						24		// including the zero terminator
-
-/////////////////////////////////////////////////////////////////////////////
-
 typedef struct _GFA_IMG_INFO
 {
 	uint32_t nImgLength;

+ 1 - 0
libmininet/gfamininetmst.h

@@ -43,6 +43,7 @@ extern "C" {
 
 /////////////////////////////////////////////////////////////////////////////
 
+#define MINET_MIN_NODE_ADDRESS									0x11
 #define NODE_IS_BROADCAST(n)									((n) == 0)
 #define NODE_IS_GROUPCAST(n)									((((n) & 0xF0) != 0) && (((n) & 0x0F) == 0))
 #define NODE_IS_MULTICAST(n)									(NODE_IS_BROADCAST(n) || NODE_IS_GROUPCAST(n))