Forum: Mikrocontroller und Digitale Elektronik Probleme mit freeRTOS Portierung


von Asterix (Gast)


Angehängte Dateien:

Lesenswert?

Hi, ich bin gerade dabei das freeRTOS auf einem Mikrocontroller zu 
portieren. Der Compiler erzeugt dabei folgende Fehlermeldung:
--> siehe Dateianhang

Der Compiler kann anscheinend mit der Funktion "portEXIT_CRITICAL();"
nichts anfangen. Weiss jemand woran dies liegen könnte?
1
static portTASK_FUNCTION( vPolledQueueProducer, pvParameters )
2
{
3
unsigned short usValue = ( unsigned short ) 0;
4
signed portBASE_TYPE xError = pdFALSE, xLoop;
5
6
  for( ;; )
7
  {    
8
    for( xLoop = 0; xLoop < pollqVALUES_TO_PRODUCE; xLoop++ )
9
    {
10
      /* Send an incrementing number on the queue without blocking. */
11
      if( xQueueSend( *( ( xQueueHandle * ) pvParameters ), ( void * ) &usValue, pollqNO_DELAY ) != pdPASS )
12
      {
13
        /* We should never find the queue full so if we get here there
14
        has been an error. */
15
        xError = pdTRUE;
16
      }
17
      else
18
      {
19
        if( xError == pdFALSE )
20
        {
21
          /* If an error has ever been recorded we stop incrementing the
22
          check variable. */
23
          portENTER_CRITICAL();
24
            xPollingProducerCount++;
25
          portEXIT_CRITICAL();
26
        }
27
28
        /* Update the value we are going to post next time around. */
29
        usValue++;
30
      }
31
    }
32
33
    /* Wait before we start posting again to ensure the consumer runs and
34
    empties the queue. */
35
    vTaskDelay( pollqPRODUCER_DELAY );
36
  }
37
}  /*lint !e818 Function prototype must conform to API. */

: Verschoben durch User
von Peter (Gast)


Lesenswert?

und woher sollen wir wissen was in der Zeile 157 steht?

> src\rtos\PollQ.c 157

von Asterix (Gast)


Lesenswert?

Der Compiler kennt keine Funktion "portENTER_CRITICAL();" und keine 
Funktion "portEXIT_CRITICAL();"

von Asterix (Gast)


Angehängte Dateien:

Lesenswert?

Im Anhang befindet sich die Headerdatei, in der die beiden Funktionen 
implementiert wurden.

von Karl H. (kbuchegg)


Lesenswert?

Was micht stutzig macht ist die Fehlermeldung
1
src\rtos\PollQ.c(184) : CA850 warning W2291: argument type mismatch void *const (unsigned short *) 
2
Total error(s) : 0  Total warning(s) : 1
Die ist eindeutig vom Compiler

1
src\rtos\PollQ.c 157 as850: CA850 error E3249: illegal syntax
2
src\rtos\PollQ.c 159 as850: CA850 error E3249: illegal syntax
3
src\rtos\PollQ.c 202 as850: CA850 error E3249: illegal syntax
4
src\rtos\PollQ.c 204 as850: CA850 error E3249: illegal syntax
5
Total error(s) : 4  Total warning(s) : 0

Aber wo kommt die her? Die sieht auch anders aus als die vom Compiler! 
Kann das vom Assembler kommen?

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Mit PC-Programmierung hat das irgendwie überhaupt nichts zu tun.
Verschoben.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.