fix memoy leak of crc msg
still don't work with time
This commit is contained in:
		
							
								
								
									
										19
									
								
								mac_sender.c
									
									
									
									
									
								
							
							
						
						
									
										19
									
								
								mac_sender.c
									
									
									
									
									
								
							@@ -126,10 +126,12 @@ void MacSender(void *argument) {
 | 
				
			|||||||
					} else {
 | 
										} else {
 | 
				
			||||||
						// Checksum error, send original message again
 | 
											// Checksum error, send original message again
 | 
				
			||||||
						if(lastSentMsgPtr != NULL) {
 | 
											if(lastSentMsgPtr != NULL) {
 | 
				
			||||||
							retCode = osMemoryPoolFree(memPool, queueMsg.anyPtr);
 | 
												//retCode = osMemoryPoolFree(memPool, queueMsg.anyPtr);
 | 
				
			||||||
							CheckRetCode(retCode, __LINE__, __FILE__, CONTINUE);
 | 
												//CheckRetCode(retCode, __LINE__, __FILE__, CONTINUE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
												memcpy(queueMsg.anyPtr, lastSentMsgPtr, sizeof(lastSentMsgPtr));
 | 
				
			||||||
							queueMsg.type = TO_PHY;
 | 
												queueMsg.type = TO_PHY;
 | 
				
			||||||
							queueMsg.anyPtr = lastSentMsgPtr;
 | 
												//queueMsg.anyPtr = lastSentMsgPtr;
 | 
				
			||||||
							retCode = osMessageQueuePut(
 | 
												retCode = osMessageQueuePut(
 | 
				
			||||||
								queue_phyS_id,
 | 
													queue_phyS_id,
 | 
				
			||||||
								&queueMsg,
 | 
													&queueMsg,
 | 
				
			||||||
@@ -240,7 +242,7 @@ void MacSender(void *argument) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
				msg = osMemoryPoolAlloc(memPool, 0); // TODO - Leak of memory
 | 
									msg = osMemoryPoolAlloc(memPool, 0); // TODO - Leak of memory
 | 
				
			||||||
				if(msg == NULL) {
 | 
									if(msg == NULL) {
 | 
				
			||||||
					printf("Memory allocation failed\r\n");
 | 
										printf("Memory allocation failed #1\r\n");
 | 
				
			||||||
					assert(false);
 | 
										assert(false);
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
				msg[0] = src.raw;
 | 
									msg[0] = src.raw;
 | 
				
			||||||
@@ -254,8 +256,15 @@ void MacSender(void *argument) {
 | 
				
			|||||||
				CheckRetCode(retCode, __LINE__, __FILE__, CONTINUE);
 | 
									CheckRetCode(retCode, __LINE__, __FILE__, CONTINUE);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				if(dst.addr != BROADCAST_ADDRESS) {
 | 
									if(dst.addr != BROADCAST_ADDRESS) {
 | 
				
			||||||
					lastSentMsgPtr = osMemoryPoolAlloc(memPool, osWaitForever);
 | 
										if(dst.sapi == CHAT_SAPI) {
 | 
				
			||||||
 | 
											lastSentMsgPtr = osMemoryPoolAlloc(memPool, 0);
 | 
				
			||||||
 | 
											if(lastSentMsgPtr == NULL) {
 | 
				
			||||||
 | 
												printf("Memory allocation failed #2\r\n");
 | 
				
			||||||
 | 
												assert(false);
 | 
				
			||||||
 | 
											}
 | 
				
			||||||
						memcpy(lastSentMsgPtr, msg, length+4);
 | 
											memcpy(lastSentMsgPtr, msg, length+4);
 | 
				
			||||||
 | 
											// TODO test if station is online
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				queueMsg.anyPtr = msg;
 | 
									queueMsg.anyPtr = msg;
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								main.h
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								main.h
									
									
									
									
									
								
							@@ -139,3 +139,17 @@ typedef union {
 | 
				
			|||||||
	};
 | 
						};
 | 
				
			||||||
	uint8_t raw;
 | 
						uint8_t raw;
 | 
				
			||||||
} Status;
 | 
					} Status;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef union {
 | 
				
			||||||
 | 
						struct {
 | 
				
			||||||
 | 
							bool_t nothing0: 1;			// MSB
 | 
				
			||||||
 | 
							bool_t chat: 1;
 | 
				
			||||||
 | 
							bool_t nothing2: 1;
 | 
				
			||||||
 | 
							bool_t time: 1;
 | 
				
			||||||
 | 
							bool_t nothing4: 1;
 | 
				
			||||||
 | 
							bool_t nothing5: 1;
 | 
				
			||||||
 | 
							bool_t nothing6: 1;
 | 
				
			||||||
 | 
							bool_t nothing7: 1;			// LSB
 | 
				
			||||||
 | 
						};
 | 
				
			||||||
 | 
						uint8_t raw;
 | 
				
			||||||
 | 
					} SapiToken;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -120,7 +120,7 @@
 | 
				
			|||||||
        <SetRegEntry>
 | 
					        <SetRegEntry>
 | 
				
			||||||
          <Number>0</Number>
 | 
					          <Number>0</Number>
 | 
				
			||||||
          <Key>EVENTREC_CNF</Key>
 | 
					          <Key>EVENTREC_CNF</Key>
 | 
				
			||||||
          <Name>-l2 -a1 -s0 -f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</Name>
 | 
					          <Name>-l0 -a1 -s0 -f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000</Name>
 | 
				
			||||||
        </SetRegEntry>
 | 
					        </SetRegEntry>
 | 
				
			||||||
        <SetRegEntry>
 | 
					        <SetRegEntry>
 | 
				
			||||||
          <Number>0</Number>
 | 
					          <Number>0</Number>
 | 
				
			||||||
@@ -145,7 +145,7 @@
 | 
				
			|||||||
        <SetRegEntry>
 | 
					        <SetRegEntry>
 | 
				
			||||||
          <Number>0</Number>
 | 
					          <Number>0</Number>
 | 
				
			||||||
          <Key>ST-LINKIII-KEIL_SWO</Key>
 | 
					          <Key>ST-LINKIII-KEIL_SWO</Key>
 | 
				
			||||||
          <Name>-U066DFF485153826687131237 -O8398 -SF10000 -C0 -A0 -I0 -HNlocalhost -HP7184 -P2 -N00("ARM CoreSight SW-DP (ARM Core") -D00(5BA02477) -L00(0) -TO131075 -TC216000000 -TT216000000 -TP21 -TDS806B -TDT0 -TDC1F -TIE1 -TIP1 -FO7 -FD20010000 -FC1000 -FN1 -FF0STM32F7x_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F746NGHx$CMSIS\Flash\STM32F7x_1024.FLM) -WA0 -WE0 -WVCE4 -WS2710 -WM0 -WP2</Name>
 | 
					          <Name>-U066DFF485153826687131237 -O8398 -SF1800 -C0 -A0 -I2 -HNlocalhost -HP7184 -P2 -N00("ARM CoreSight SW-DP (ARM Core") -D00(5BA02477) -L00(0) -TO131075 -TC216000000 -TT216000000 -TP21 -TDS806B -TDT0 -TDC1F -TIE1 -TIP1 -FO7 -FD20010000 -FC1000 -FN1 -FF0STM32F7x_1024.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32F746NGHx$CMSIS\Flash\STM32F7x_1024.FLM) -WA0 -WE0 -WVCE4 -WS2710 -WM0 -WP2</Name>
 | 
				
			||||||
        </SetRegEntry>
 | 
					        </SetRegEntry>
 | 
				
			||||||
        <SetRegEntry>
 | 
					        <SetRegEntry>
 | 
				
			||||||
          <Number>0</Number>
 | 
					          <Number>0</Number>
 | 
				
			||||||
@@ -153,40 +153,7 @@
 | 
				
			|||||||
          <Name>UL2CM3(-S0 -C0 -P0 -FD20010000 -FC1000 -FN1 -FF0STM32F7x_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F746NGHx$CMSIS\Flash\STM32F7x_1024.FLM))</Name>
 | 
					          <Name>UL2CM3(-S0 -C0 -P0 -FD20010000 -FC1000 -FN1 -FF0STM32F7x_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F746NGHx$CMSIS\Flash\STM32F7x_1024.FLM))</Name>
 | 
				
			||||||
        </SetRegEntry>
 | 
					        </SetRegEntry>
 | 
				
			||||||
      </TargetDriverDllRegistry>
 | 
					      </TargetDriverDllRegistry>
 | 
				
			||||||
      <Breakpoint>
 | 
					      <Breakpoint/>
 | 
				
			||||||
        <Bp>
 | 
					 | 
				
			||||||
          <Number>0</Number>
 | 
					 | 
				
			||||||
          <Type>0</Type>
 | 
					 | 
				
			||||||
          <LineNumber>18</LineNumber>
 | 
					 | 
				
			||||||
          <EnabledFlag>1</EnabledFlag>
 | 
					 | 
				
			||||||
          <Address>134311210</Address>
 | 
					 | 
				
			||||||
          <ByteObject>0</ByteObject>
 | 
					 | 
				
			||||||
          <HtxType>0</HtxType>
 | 
					 | 
				
			||||||
          <ManyObjects>0</ManyObjects>
 | 
					 | 
				
			||||||
          <SizeOfObject>0</SizeOfObject>
 | 
					 | 
				
			||||||
          <BreakByAccess>0</BreakByAccess>
 | 
					 | 
				
			||||||
          <BreakIfRCount>1</BreakIfRCount>
 | 
					 | 
				
			||||||
          <Filename>.\mac_receiver.c</Filename>
 | 
					 | 
				
			||||||
          <ExecCommand></ExecCommand>
 | 
					 | 
				
			||||||
          <Expression>\\tokenring_project\mac_receiver.c\18</Expression>
 | 
					 | 
				
			||||||
        </Bp>
 | 
					 | 
				
			||||||
        <Bp>
 | 
					 | 
				
			||||||
          <Number>1</Number>
 | 
					 | 
				
			||||||
          <Type>0</Type>
 | 
					 | 
				
			||||||
          <LineNumber>199</LineNumber>
 | 
					 | 
				
			||||||
          <EnabledFlag>1</EnabledFlag>
 | 
					 | 
				
			||||||
          <Address>0</Address>
 | 
					 | 
				
			||||||
          <ByteObject>0</ByteObject>
 | 
					 | 
				
			||||||
          <HtxType>0</HtxType>
 | 
					 | 
				
			||||||
          <ManyObjects>0</ManyObjects>
 | 
					 | 
				
			||||||
          <SizeOfObject>0</SizeOfObject>
 | 
					 | 
				
			||||||
          <BreakByAccess>0</BreakByAccess>
 | 
					 | 
				
			||||||
          <BreakIfRCount>0</BreakIfRCount>
 | 
					 | 
				
			||||||
          <Filename>.\main.c</Filename>
 | 
					 | 
				
			||||||
          <ExecCommand></ExecCommand>
 | 
					 | 
				
			||||||
          <Expression></Expression>
 | 
					 | 
				
			||||||
        </Bp>
 | 
					 | 
				
			||||||
      </Breakpoint>
 | 
					 | 
				
			||||||
      <WatchWindow1>
 | 
					      <WatchWindow1>
 | 
				
			||||||
        <Ww>
 | 
					        <Ww>
 | 
				
			||||||
          <count>0</count>
 | 
					          <count>0</count>
 | 
				
			||||||
@@ -208,11 +175,6 @@
 | 
				
			|||||||
          <WinNumber>1</WinNumber>
 | 
					          <WinNumber>1</WinNumber>
 | 
				
			||||||
          <ItemText>lastToken</ItemText>
 | 
					          <ItemText>lastToken</ItemText>
 | 
				
			||||||
        </Ww>
 | 
					        </Ww>
 | 
				
			||||||
        <Ww>
 | 
					 | 
				
			||||||
          <count>4</count>
 | 
					 | 
				
			||||||
          <WinNumber>1</WinNumber>
 | 
					 | 
				
			||||||
          <ItemText>queue_macData_id</ItemText>
 | 
					 | 
				
			||||||
        </Ww>
 | 
					 | 
				
			||||||
      </WatchWindow1>
 | 
					      </WatchWindow1>
 | 
				
			||||||
      <MemoryWindow1>
 | 
					      <MemoryWindow1>
 | 
				
			||||||
        <Mm>
 | 
					        <Mm>
 | 
				
			||||||
@@ -287,7 +249,7 @@
 | 
				
			|||||||
        <EnableFlashSeq>0</EnableFlashSeq>
 | 
					        <EnableFlashSeq>0</EnableFlashSeq>
 | 
				
			||||||
        <EnableLog>0</EnableLog>
 | 
					        <EnableLog>0</EnableLog>
 | 
				
			||||||
        <Protocol>2</Protocol>
 | 
					        <Protocol>2</Protocol>
 | 
				
			||||||
        <DbgClock>10000000</DbgClock>
 | 
					        <DbgClock>1800000</DbgClock>
 | 
				
			||||||
      </DebugDescription>
 | 
					      </DebugDescription>
 | 
				
			||||||
    </TargetOption>
 | 
					    </TargetOption>
 | 
				
			||||||
  </Target>
 | 
					  </Target>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,7 +10,7 @@
 | 
				
			|||||||
      <TargetName>Target 1</TargetName>
 | 
					      <TargetName>Target 1</TargetName>
 | 
				
			||||||
      <ToolsetNumber>0x4</ToolsetNumber>
 | 
					      <ToolsetNumber>0x4</ToolsetNumber>
 | 
				
			||||||
      <ToolsetName>ARM-ADS</ToolsetName>
 | 
					      <ToolsetName>ARM-ADS</ToolsetName>
 | 
				
			||||||
      <pCCUsed>5060960::V5.06 update 7 (build 960)::C:\Program Files (x86)\ARM_Compiler_5.06u7</pCCUsed>
 | 
					      <pCCUsed>5060960::V5.06 update 7 (build 960)::..\..\Program Files (x86)\ARM_Compiler_5.06u7</pCCUsed>
 | 
				
			||||||
      <uAC6>0</uAC6>
 | 
					      <uAC6>0</uAC6>
 | 
				
			||||||
      <TargetOption>
 | 
					      <TargetOption>
 | 
				
			||||||
        <TargetCommonOption>
 | 
					        <TargetCommonOption>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user