diff --git a/mac_receiver.c b/mac_receiver.c index 63e8e09..ca2d104 100644 --- a/mac_receiver.c +++ b/mac_receiver.c @@ -23,6 +23,8 @@ void send_DATA_IND(Adresse source, Adresse destination, uint8_t* dataFramePtr) { } strPtr[dataFramePtr[2]] = '\0'; // null-terminate string queueMsg.anyPtr = strPtr; + //retCode = osMemoryPoolFree(memPool, dataFramePtr); + //CheckRetCode(retCode, __LINE__, __FILE__, CONTINUE); switch (destination.sapi) { case TIME_SAPI: diff --git a/mac_sender.c b/mac_sender.c index ee4a558..7c4fc9f 100644 --- a/mac_sender.c +++ b/mac_sender.c @@ -15,7 +15,8 @@ const osMessageQueueAttr_t queue_macData_attr = { void sendToken() { struct queueMsg_t queueMsg; - queueMsg.anyPtr = lastToken; + queueMsg.anyPtr = osMemoryPoolAlloc(memPool,osWaitForever); + memcpy(queueMsg.anyPtr, lastToken, TOKENSIZE-2); queueMsg.type = TO_PHY; osStatus_t retCode = osMessageQueuePut( queue_phyS_id, @@ -60,6 +61,7 @@ void MacSender(void *argument) { //---------------------------------------------------------------------- case TOKEN: { // Get token and save it + //lastToken = osMemoryPoolAlloc(memPool,osWaitForever); memcpy(lastToken, msg, TOKENSIZE-2); // update token @@ -70,7 +72,8 @@ void MacSender(void *argument) { // send to lcd queueMsg.type = TOKEN_LIST; - queueMsg.anyPtr = lastToken; + memcpy(queueMsg.anyPtr , lastToken, TOKENSIZE-2); + //queueMsg.anyPtr = lastToken; retCode = osMessageQueuePut( queue_lcd_id, &queueMsg, @@ -91,6 +94,8 @@ void MacSender(void *argument) { 0); CheckRetCode(retCode, __LINE__, __FILE__, CONTINUE); } else { + retCode = osMemoryPoolFree(memPool, queueMsg.anyPtr); + CheckRetCode(retCode, __LINE__, __FILE__, CONTINUE); sendToken(); } break; @@ -196,7 +201,8 @@ void MacSender(void *argument) { } gTokenInterface.station_list[gTokenInterface.myAddress] = (0x1 << TIME_SAPI) + (gTokenInterface.connected << CHAT_SAPI); lastToken[gTokenInterface.myAddress+1] = gTokenInterface.station_list[gTokenInterface.myAddress]; - + sendToken(); + /* queueMsg.type = TO_PHY; queueMsg.anyPtr = lastToken; @@ -206,6 +212,7 @@ void MacSender(void *argument) { osPriorityNormal, osWaitForever); CheckRetCode(retCode, __LINE__, __FILE__, CONTINUE); + */ break; } diff --git a/main.h b/main.h index 2cf9529..3c2ba57 100644 --- a/main.h +++ b/main.h @@ -16,7 +16,7 @@ //-------------------------------------------------------------------------------- // Constants to change the system behavior //-------------------------------------------------------------------------------- -#define DEBUG_MODE 1 // mode is physical line (0) or debug (1) +#define DEBUG_MODE 0 // mode is physical line (0) or debug (1) #define MYADDRESS 3 // your address choice (table number) #define MAX_BLOCK_SIZE 100 // size max for a frame diff --git a/tokenring_project.uvoptx b/tokenring_project.uvoptx index b18b2c9..d6555e7 100644 --- a/tokenring_project.uvoptx +++ b/tokenring_project.uvoptx @@ -159,7 +159,7 @@ 0 18 1 -
134311450
+
134312290
0 0 0 @@ -173,39 +173,7 @@ 1 0 - 264 - 1 -
134256144
- 0 - 0 - 0 - 0 - 0 - 1 - .\mac_sender.c - - \\tokenring_project\mac_sender.c\264 -
- - 2 - 0 - 86 - 1 -
134255102
- 0 - 0 - 0 - 0 - 0 - 1 - .\mac_sender.c - - \\tokenring_project\mac_sender.c\86 -
- - 3 - 0 - 199 + 106 1
0
0 @@ -219,7 +187,23 @@
- 4 + 2 + 0 + 107 + 1 +
0
+ 0 + 0 + 0 + 0 + 0 + 0 + .\mac_sender.c + + +
+ + 3 0 199 1 @@ -261,6 +245,11 @@ 1 memPool + + 5 + 1 + qPtr + @@ -294,7 +283,7 @@ 0 1 - 1 + 0 0 0 0 @@ -569,7 +558,7 @@ ::CMSIS - 0 + 1 0 0 1 diff --git a/tokenring_project.uvprojx b/tokenring_project.uvprojx index 6099233..0ad19f1 100644 --- a/tokenring_project.uvprojx +++ b/tokenring_project.uvprojx @@ -10,7 +10,7 @@ Target 1 0x4 ARM-ADS - 5060960::V5.06 update 7 (build 960)::C:\Program Files (x86)\ARM_Compiler_5.06u7 + 5060960::V5.06 update 7 (build 960)::..\..\Program Files (x86)\ARM_Compiler_5.06u7 0