Infineon PSoC 4 CapSense PSoC Creator 軟體介紹 - 類型/API/定義篇



介紹

本文介紹 PSoC Creator cy_boot 元件提供的功能. cy_boot 元件為專案提供系統功能, 以便更好地存取晶片資源. 這些函數不是元件庫的一部分, 但可以被元件庫來使用, 您可以使用函數呼叫來可靠地執行所需的晶片功能.

獨特的cy_boot組件:

  • 自動包含到每個專案中
  • 只能存放在一個專案中
  • 無符號表示
  • 預設設定不會存在於元件目錄中

cy_boot 元件提供了一個API, 讓使用者可以快速的完成所需任務. 以下為多個主要功能區, 分別描述.



標準類型

為了支援具有多個編譯器的多個 CPU 上相同程式碼的操作, cy_boot 元件提供了類型和定義(在 cytypes.h 檔案中), 以跨平台建立一致的結果.

基本類型

類型

敘述

char8

8-bit (有符號或無符號, 取決於char的編譯器選擇)

uint8

8-bit 無符號

uint16

16-bit 無符號

uint32

32-bit 無符號

int8

8-bit 有符號

int16

16-bit 有符號

int32

32-bit 有符號

float32

32-bit 浮點數

float64

64-bit 浮點數

int64

64-bit 有符號

uint64

64-bit 無符號

 

硬體暫存器類型

硬體暫存器通常具有副作用, 因此使用揮發性暫存器類型進行參考.

定義

敘述

reg8

Volatile 8-bit 無符號

reg16

Volatile 16-bit 無符號

reg32

Volatile 32-bit 無符號

 

編譯器定義

可以透過測試特定編譯器的定義來確定正在使用的編譯器.

定義

敘述

__GNUC__

ARM GCC 編譯器

__ARMCC_VERSION

Keil MDK工具集使用的ARM Realview編譯器

 

回傳代碼

Cypress 例程的回傳代碼以8位元無符號值類型傳回: cyst​​atus. 標準回傳是:

定義

敘述

CYRET_SUCCESS

成功

CYRET_UNKNOWN

未知故障

CYRET_BAD_PARAM

一個或多個無效參數

CYRET_INVALID_OBJECT

指定的物件無效

CYRET_MEMORY

記憶體相關故障

CYRET_LOCKED

資源鎖定失敗

CYRET_EMPTY

沒有更多可用對象

CYRET_BAD_DATA

收到錯誤資料(CRC 或其他錯誤檢查)

CYRET_STARTED

操作已開始,但尚未完成

CYRET_FINISHED

操作完成

CYRET_CANCELED

操作取消

CYRET_TIMEOUT

操作逾時

CYRET_INVALID_STATE

操作未設定或處於不正確的狀態


中斷類型和巨集

類型和巨集提供跨編譯器和平台的中斷服務例程的一致定義. 請注意, 函數定義和函數原型使用的巨集是不同的.

 

函數定義範例:

CY_ISR(MyISR)

{

/* ISR Code here */

}


函數原型範例:

CY_ISR_PROTO(MyISR);


中斷向量位址類型

種類

敘述

cyisraddress

中斷向量(ISR函數的位址)

 

內在定義

定義

敘述

CY_NOP

處理器NOP指令

 

設備版本定義

定義

敘述

CY_PSOC4

Any PSoC 4 設備

CY_PSOC4_4000

PSoC 4000 裝置系列

CY_PSOC4_4100

PSoC 4100 裝置系列

CY_PSOC4_4200

PSoC 4200 裝置系列

CY_PSOC4_4100BL

支援BLE的PSoC 4100 裝置系列

CY_PSOC4_4200BL

支援BLE的PSoC 4200 裝置系列

CY_PSOC4_4100M

PSoC 4100M 裝置系列.

CY_PSOC4_4200M

PSoC 4200M 裝置系列

 

變數屬性

定義

敘述

CY_NOINIT

指定變數應放入未初始化的資料部分, 以防止變數在啟動時初始化為零.

CY_ALIGN

指定指定類型的變數的最小對齊方式(以位元組為單位).

CY_PACKED, CY_PACKED_ATTR

附加到枚舉、結構或聯合類型定義,指定用於表示該類型所需的最小記憶體.

例子:

CYPACKED typedef struct {

uint8 freq;

uint8 absolute;

} CYPACKED_ATTR imoTrim;

CY_INLINE

指定編譯器可以執行內聯

 

API實例

一般API

大多數元件都有一組特定於實例的 API, 可讓您初始化、啟用和停用元件.下面一般性地列出了這些函數. 有關具體信息, 請參閱單獨的數據表.



1. `=instance_name`_InitVar

描述:

此全域變數指示組件是否已初始化. 此變數初始化為0, 並在第一次呼叫 _Start() 時設定為 1. 這允許元件在第一次呼叫 _Start() 例程後重新啟動, 而無需重新初始化.

如果需要重新初始化元件, 則可以在 _Start() 或 _Enable() 函數之前呼叫 _Init() 函數.

 

2. void `=instance_name`_Start (void)

Parameters: None

Return Value: None

描述:

此函數旨在啟動組件操作. _Start() 設定 _initVar 變量, 呼叫 _Init 函數, 然後呼叫 _Enable 函數.

 

3. void `=instance_name`_Stop (void)

Parameters: None

Return Value: None

描述: 禁用組件操作.

 

4. void `=instance_name`_Init (void)

Parameters: None

Return Value: None

描述:

將組件的參數初始化為原理圖上的定制器中設定的參數. 所有暫存器將重設為其初始值. 這會重新初始化該元件. 通常在_Start()中呼叫.

 

5. void `=instance_name`_Enable (void)

Parameters: None

Return Value: None

描述: 啟用組件塊操作.

 

低功號API

大多數元件都有一組特定於實例的低功耗API, 可讓您將元件置於低功耗狀態. 下面一般性地列出了這些函數. 有關暫存器保留資訊的具體資訊(如果適用),請參閱單獨的資料表.

 

1. void `=instance_name`_Sleep (void)

Parameters: None

Return Value: None

描述:

_Sleep() 函數檢查元件是否已啟用並儲存該狀態. 然後呼叫_Stop()函數並呼叫_SaveConfig()函數來保存使用者配置.

  • PSoC 4: 在呼叫CySysPmDeepSleep()函數之前呼叫_Sleep()函數.

 

2. void `=instance_name`_Wakeup (void)

Parameters: None

Return Value: None

描述: _Wakeup()函數呼叫_RestoreConfig()函數來還原使用者配置. 如果在呼叫 _Sleep() 函數之前啟用該元件, 則 _Wakeup() 函數將重新啟用該元件.


注意事項:

在沒有先呼叫 _Sleep() 或 _SaveConfig() 函數的情況下呼叫 _Wakeup() 函數可能會產生意外行為.

 

3. void `=instance_name`_SaveConfig(void)

Parameters: None

Return Value: None

描述:

此功能會儲存組件配置. 這將節省非保留暫存器. 此函數也會保存目前元件參數值, 如「配置」對話方塊中定義的或由適當API修改的. 此函數由 _Sleep() 函數呼叫.

 

4. void `=instance_name`_RestoreConfig(void)

Parameters: None

Return Value: None

描述:

此函數恢復組件配置. 這將恢復非保留暫存器. 該函數還將元件參數值恢復到呼叫 _Sleep() 函數之前的值.

 

注意事項:

在不先呼叫 _Sleep() 或 _SaveConfig() 函數的情況下呼叫此函數可能會產生意外行為.

PSoC Creator 產生的定義

PSoC Creator 在 cyfitter.h 檔案中會產生以下的巨集.

 

專案類型

以下是專案類型的定義(來自「專案」>「建置設定」):

- CYDEV_PROJ_TYPE

- CYDEV_PROJ_TYPE_BOOTLOADER

- CYDEV_PROJ_TYPE_LOADABLE

- CYDEV_PROJ_TYPE_MULTIAPPBOOTLOADER

- CYDEV_PROJ_TYPE_STANDARD

- CYDEV_PROJ_TYPE_LOADABLEANDBOOTLOADER

 

晶片配置方式

以下是晶片配置模式的定義(來自系統 DWR). 選項因設備而異:

- CYDEV_CONFIGURATION_MODE

- CYDEV_CONFIGURATION_MODE_COMPRESSED

- CYDEV_CONFIGURATION_MODE_DMA

- CYDEV_CONFIGURATION_MODE_UNCOMPRESSED

- CYDEV_DEBUGGING_ENABLE or CYDEV_PROTECTION_ENABLE (啟用調試或保護。擇一)

 

PSoC 4

- CYDEV_CONFIG_READ_ACCELERATOR (啟用快閃記憶體讀取加速器)

- CYDEV_USE_BUNDLED_CMSIS (包含 CMSIS 標準函式庫)

 

偵錯模式

以下是調試模式的定義(來自系統 DWR):

- CYDEV_DEBUGGING_DPS

- CYDEV_DEBUGGING_DPS_Disable

- CYDEV_DEBUGGING_DPS_JTAG_4

- CYDEV_DEBUGGING_DPS_JTAG_5

- CYDEV_DEBUGGING_DPS_SWD

- CYDEV_DEBUGGING_DPS_SWD_SWV

 

晶片保護模式

以下是晶片保護模式的定義(來自系統 DWR):

- CYDEV_DEBUG_PROTECT

- CYDEV_DEBUG_PROTECT_KILL

- CYDEV_DEBUG_PROTECT_OPEN

- CYDEV_DEBUG_PROTECT_PROTECTED

 

堆疊和堆積

以下是分配給堆疊和堆積的位元組數(來自系統 DWR)的定義. 這些僅適用於 PSoC 4:

- CYDEV_HEAP_SIZE

- CYDEV_STACK_SIZE

 

電壓設定

以下是電壓設定的定義(來自系統 DWR). 選項因設備而異:

- CYDEV_VARIABLE_VDDA

- CYDEV_VDDA

- CYDEV_VDDA_MV

- CYDEV_VDDD

- CYDEV_VDDD_MV

- CYDEV_VDDIO0

- CYDEV_VDDIO0_MV

- CYDEV_VDDIO1

- CYDEV_VDDIO1_MV

- CYDEV_VDDIO2

- CYDEV_VDDIO2_MV

- CYDEV_VDDIO3

- CYDEV_VDDIO3_MV

- CYDEV_VIO0

- CYDEV_VIO0_MV

- CYDEV_VIO1

- CYDEV_VIO1_MV

- CYDEV_VIO2

- CYDEV_VIO2_MV

- CYDEV_VIO3

- CYDEV_VIO3_MV

 

系統時脈頻率

以下是系統時脈頻率的定義(來自 Clock DWR):

- CYDEV_BCLK__HFCLK__HZ

- CYDEV_BCLK__HFCLK__KHZ

- CYDEV_BCLK__HFCLK__MHZ

- CYDEV_BCLK__SYSCLK__HZ

- CYDEV_BCLK__SYSCLK__KHZ

- CYDEV_BCLK__SYSCLK__MHZ

 

JTAG/晶片ID

以下是目前裝置的 JTAG/Silicon ID 的定義:

CYDEV_CHIP_JTAG_ID

 

IP區塊資訊

PSoC Creator 為使用裝置上存在的 IP 模組產生下列巨集:

#define CYIPBLOCK_<BLOCK NAME>_VERSION <version>

 

舉例:

#define CYIPBLOCK_P3_TIMER_VERSION 0

#define CYIPBLOCK_P3_USB_VERSION 0

#define CYIPBLOCK_P3_VIDAC_VERSION 0

 

參考文件

根據使用者所需, 也可參考以下相關文件:

  • PSoC Creator 幫助連結
  • PSoC Creator 元件規格書
  • PSoC Creator 元件作者指南
  • PSoC 技術參考手冊



軟體範例原始碼

PSoC Creator 在「尋找範例項目」對話方塊中提供了大量範例項目, 其中包括原理圖和範例程式碼. 對於特定於元件的範例, 請從元件目錄或原理圖中的元件實例開啟對話方塊. 對於一般範例, 請從「起始頁」或「檔案」功能表開啟該對話方塊. 根據需要, 使用對話方塊中的「篩選器選項」來縮小可供選擇的項目清單的範圍.

有關詳細信息, 請參閱 PSoC Creator 說明中的“查找範例項目”主題.

**資料來源 英飛凌原廠資料

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論