天天看點

FreeRTOS---- 資料類型和程式設計風格1、資料類型2、變量名3、函數名4、宏定義5、合理的類型轉換

1、資料類型

每一個Port有一個獨特的頭檔案'portmacro.h', 它包含兩個特殊的資料類型:TickType_t and BaseType_t。

TickType_t

它可以是16-bit或者32-bit兩種類型,由FreeRTOSConfig.h中的configUSE_16_BIT_TICKS決定,定義為1表示為uint16_t,定義為0表示為uint32_t。在8-bit和16-bit處理上使用uint16_t;在32-bit上使用uint32_t。

BaseType_t

與處理器相關,8-bit處理器使用uint8_t;16-bit處理器使用uint16_t;32-bit處理器使用uint32_t。

2、變量名

變量字首:char:‘c';int16_t(short):‘s’;int32_t(long):‘l’;BaseType_t和其它非标準的:‘x’;

無符号型再在其前面加上‘u’;如果是指針,再加上‘p’。

例如:uint8_t類型字首為‘uc’;字串指針類型字首為:‘pc’。

3、函數名

函數字首由傳回值類型和檔案決定。例如:

  • vTaskPrioritySet()傳回void,定義上task.c中。
  • pvTimerGetTimerID()傳回一個指向void的指針,定義在timers.c中。
  • xQueueReceive()傳回一個BaseType_t類型,定義在queue.c中。

4、宏定義

大多數宏定義都是大寫,字首小定。例如:

prefix Location of macro definition
port(for example, portMAX_DELAY) portable.h or portmacro.h
task(for example, taskENTER_CRITICAL()) task.h
pd(for example, pdTRUE) projdefs.h
config(for example, configUSE_PREEMPTION) FreeRTOSConfig.h
err(for example, errQUEUE_FULL) projdefs.h

Common macro definitions

Macro Value
pdTRUE 1
pdFALSE
pdPASS 1
pdFAIL

5、合理的類型轉換

由于FreeRTOS可以被多個不同的編譯器紡譯,不同編譯器産生的警告和時間都有所不同,為保證編譯的正确性,往往需要更多的類型轉換。

繼續閱讀