image/svg+xml
Brteve's API for EveApps
Version 0.0.1
The reference document for common folder of EveApps project.
 
Loading...
Searching...
No Matches
FT_Gpu_Hal.h
Go to the documentation of this file.
1
34#ifndef FT_GPU_HAL__H
35#define FT_GPU_HAL__H
36
37#include "EVE_Platform.h"
38
39#include <stdio.h>
40#include <stdbool.h>
41
42#define FT_FALSE false
43#define FT_TRUE true
44
45#define ft_char8_t char
46#define ft_schar8_t signed char
47#define ft_uchar8_t unsigned char
48
49#define ft_int8_t int8_t
50#define ft_uint8_t uint8_t
51#define ft_int16_t int16_t
52#define ft_uint16_t uint16_t
53
54#define ft_uint32_t uint32_t
55#define ft_int32_t int32_t
56
57#define ft_void_t void
58#define ft_int64_t int64_t
59#define ft_uint64_t uint64_t
60#define ft_float_t float
61#define ft_double_t double
62#define ft_bool_t bool
63#define ft_size_t size_t
64
65#define FT_PROGMEM eve_progmem
66#define FT_PROGMEM_CONST eve_progmem_const
67#define ft_prog_char8_t eve_prog_int8_t
68#define ft_prog_uchar8_t eve_prog_uint8_t
69#define ft_prog_uint16_t eve_prog_uint16_t
70
71#define FIFO_SIZE_MASK EVE_FIFO_SIZE_MASK
72#define FIFO_BYTE_ALIGNMENT_MASK EVE_FIFO_BYTE_ALIGNMENT_MASK
73
74#define FT_GPU_HAL_MODE_E EVE_MODE_T
75#define FT_GPU_I2C_MODE EVE_MODE_I2C
76#define FT_GPU_SPI_MODE EVE_MODE_SPI
77
78#define FT_GPU_HAL_STATUS_E EVE_STATUS_T
79#define FT_GPU_HAL_CLOSED EVE_STATUS_CLOSED
80#define FT_GPU_HAL_OPENED EVE_STATUS_OPENED
81#define FT_GPU_HAL_READING EVE_STATUS_READING
82#define FT_GPU_HAL_WRITING EVE_STATUS_WRITING
83#define FT_GPU_HAL_STATUS_ERROR EVE_STATUS_ERROR
84
85#define FT_GPU_TRANSFERDIR_T EVE_TRANSFER_T
86#define FT_GPU_READ EVE_TRANSFER_READ
87#define FT_GPU_WRITE EVE_TRANSFER_WRITE
88
89#define Ft_Gpu_Hal_Callback_t EVE_Callback
90#define Ft_Gpu_Hal_Config_t EVE_HalParameters
91
96
97#define Ft_Gpu_Hal_Context_t EVE_HalContext
98
99/*******************************************************************************/
100/*******************************************************************************/
101/* The basic APIs Level 1 */
102static inline eve_deprecated("Use `EVE_Hal_initialize`") bool Ft_Gpu_Hal_Init(Ft_Gpu_HalInit_t *halinit)
103{
105 halinit->TotalChannelNum = (uint32_t)EVE_Hal_list();
106 return !!platform;
107}
108
109static inline eve_deprecated("Use `EVE_Hal_open`") bool Ft_Gpu_Hal_Open(EVE_HalContext *phost)
110{
111 EVE_HalParameters parameters;
112 EVE_Hal_defaults(&parameters);
113 return EVE_Hal_open(phost, &parameters);
114}
115
118#define Ft_Gpu_Hal_Close EVE_Hal_close
119#define Ft_Gpu_Hal_DeInit EVE_Hal_release
120
121#define Ft_Gpu_Hal_ESD_Idle EVE_Hal_idle
122
123#define Ft_Gpu_Hal_StartTransfer EVE_Hal_startTransfer
124#define Ft_Gpu_Hal_Transfer8 EVE_Hal_transfer8
125#define Ft_Gpu_Hal_Transfer16 EVE_Hal_transfer16
126#define Ft_Gpu_Hal_Transfer32 EVE_Hal_transfer32
127#define Ft_Gpu_Hal_EndTransfer EVE_Hal_endTransfer
128
129#define Ft_Gpu_Hal_Rd8 EVE_Hal_rd8
130#define Ft_Gpu_Hal_Rd16 EVE_Hal_rd16
131#define Ft_Gpu_Hal_Rd32 EVE_Hal_rd32
132#define Ft_Gpu_Hal_Wr8 EVE_Hal_wr8
133#define Ft_Gpu_Hal_Wr16 EVE_Hal_wr16
134#define Ft_Gpu_Hal_Wr32 EVE_Hal_wr32
135
136#define Ft_Gpu_Hal_WrMem EVE_Hal_wrMem
137#define Ft_Gpu_Hal_WrMem_ProgMem EVE_Hal_wrProgMem
139static inline eve_deprecated("Use `EVE_Hal_rdMem` (note: buffer and addr are swapped)") ft_void_t Ft_Gpu_Hal_RdMem(EVE_HalContext *phost, ft_uint32_t addr, ft_uint8_t *buffer, ft_uint32_t length)
140{
142}
143
144/*******************************************************************************/
145/*******************************************************************************/
148#define Ft_Gpu_Hal_WrCmd32 EVE_Cmd_wr32
149
151#define Ft_Gpu_Hal_WrCmdBuf EVE_Cmd_wrMem
152#define Ft_Gpu_Hal_WrCmdBuf_ProgMem EVE_Cmd_wrProgMem
153
155#define Ft_Gpu_Hal_WaitCmdFifoEmpty EVE_Cmd_waitFlush
156
158#define Ft_Gpu_Hal_WaitCmdFreespace EVE_Cmd_waitSpace
160
161/*
162// Use the provided wait functions!
163static inline ft_void_t Ft_Gpu_Hal_RdCmdRpWp(EVE_HalContext *phost, ft_uint16_t *rp, ft_uint16_t *wp)
164{
165 *rp = EVE_Cmd_rp(phost);
166 *wp = EVE_Cmd_wp(phost);
167}
168*/
169
170/*******************************************************************************/
171/*******************************************************************************/
172
173#ifdef _MSC_VER
174#pragma deprecated(Ft_Gpu_CoCmd_SendCmd)
175#pragma deprecated(Eve_CoCmd_SendCmd)
176#pragma deprecated(Ft_Gpu_Copro_SendCmd)
177#pragma deprecated(Eve_CoCmd_StartFrame)
178#pragma deprecated(Eve_CoCmd_EndFrame)
179#pragma deprecated(Ft_Gpu_CoCmd_StartFrame)
180#pragma deprecated(Ft_Gpu_CoCmd_EndFrame)
181#endif
182
183#define Ft_Gpu_CoCmd_SendCmd EVE_Cmd_wr32
184inline static ft_void_t eve_deprecated("Use `EVE_Cmd_startFunc`, `EVE_Cmd_wr32`, and `EVE_Cmd_endFunc`") Ft_Gpu_CoCmd_SendCmdArr(EVE_HalContext *phost, ft_uint32_t *cmd, ft_size_t nb)
185{
186 /* This is not valid behaviour on big endian CPU */
187 EVE_Cmd_wrMem(phost, (uint8_t *)cmd, (uint32_t)nb * 4);
188}
189#define Ft_Gpu_CoCmd_SendStr(phost, str) EVE_Cmd_wrString(phost, str, EVE_CMD_STRING_MAX)
190#define Ft_Gpu_CoCmd_SendStr_S EVE_Cmd_wrString
191#define Ft_Gpu_CoCmd_StartFrame(phost) eve_noop()
192#define Ft_Gpu_CoCmd_EndFrame(phost) eve_noop()
193
194#define Eve_CoCmd_SendCmd Ft_Gpu_CoCmd_SendCmd
195#define Eve_CoCmd_SendCmdArr Ft_Gpu_CoCmd_SendCmdArr
196#define Eve_CoCmd_SendStr Ft_Gpu_CoCmd_SendStr
197#define Eve_CoCmd_SendStr_S Ft_Gpu_CoCmd_SendStr_S
198#define Eve_CoCmd_StartFrame Ft_Gpu_CoCmd_StartFrame
199#define Eve_CoCmd_EndFrame Ft_Gpu_CoCmd_EndFrame
200#define Ft_Gpu_Copro_SendCmd Ft_Gpu_CoCmd_SendCmd
201
202#define FT_Gpu_Fonts EVE_Gpu_Fonts
203#define FT_Gpu_Fonts_t EVE_Gpu_Fonts
204#define Ft_Gpu_FontsExt EVE_Gpu_FontsExt
205#define Ft_Gpu_FontsExt_t EVE_Gpu_FontsExt
206#define FT_GPU_NUMCHAR_PERFONT EVE_GPU_NUMCHAR_PERFONT
207#define FT_GPU_FONT_TABLE_SIZE EVE_GPU_FONT_TABLE_SIZE
208
209/*******************************************************************************/
210/*******************************************************************************/
213
214#define FT_GPU_INTERNAL_OSC EVE_INTERNAL_OSC
215#define FT_GPU_EXTERNAL_OSC EVE_EXTERNAL_OSC
216#define FT_GPU_PLL_SOURCE_T EVE_PLL_SOURCE_T
217
218#define FT_GPU_PLL_48M EVE_PLL_48M
219#define FT_GPU_PLL_36M EVE_PLL_36M
220#define FT_GPU_PLL_24M EVE_PLL_24M
221#define FT_GPU_PLL_FREQ_T EVE_PLL_FREQ_T
222
223#define FT_GPU_ACTIVE_M EVE_ACTIVE_M
224#define FT_GPU_STANDBY_M EVE_STANDBY_M
225#define FT_GPU_SLEEP_M EVE_SLEEP_M
226#define FT_GPU_POWERDOWN_M EVE_POWERDOWN_M
227#define FT_GPU_POWER_MODE_T EVE_POWER_MODE_T
228
229#if (EVE_SUPPORT_CHIPID >= EVE_FT810)
230#define FT_GPU_SYSCLK_DEFAULT EVE_SYSCLK_DEFAULT
231#define FT_GPU_SYSCLK_72M EVE_SYSCLK_72M
232#define FT_GPU_SYSCLK_60M EVE_SYSCLK_60M
233#define FT_GPU_SYSCLK_48M EVE_SYSCLK_48M
234#define FT_GPU_SYSCLK_36M EVE_SYSCLK_36M
235#define FT_GPU_SYSCLK_24M EVE_SYSCLK_24M
236#define FT_GPU_81X_PLL_FREQ_T EVE_81X_PLL_FREQ_T
237
238#define FT_GPU_5MA EVE_5MA
239#define FT_GPU_10MA EVE_10MA
240#define FT_GPU_15MA EVE_15MA
241#define FT_GPU_20MA EVE_20MA
242#define FT_GPU_81X_GPIO_DRIVE_STRENGTH_T EVE_81X_GPIO_DRIVE_STRENGTH_T
243
244#define FT_GPU_GPIO0 EVE_GPIO0
245#define FT_GPU_GPIO1 EVE_GPIO1
246#define FT_GPU_GPIO2 EVE_GPIO2
247#define FT_GPU_GPIO3 EVE_GPIO3
248#define FT_GPU_GPIO4 EVE_GPIO4
249#define FT_GPU_DISP EVE_DISP
250#define FT_GPU_DE EVE_DE
251#define FT_GPU_VSYNC_HSYNC EVE_VSYNC_HSYNC
252#define FT_GPU_PCLK EVE_PCLK
253#define FT_GPU_BACKLIGHT EVE_BACKLIGHT
254#define FT_GPU_R_G_B EVE_R_G_B
255#define FT_GPU_AUDIO_L EVE_AUDIO_L
256#define FT_GPU_INT_N EVE_INT_N
257#define FT_GPU_TOUCHWAKE EVE_TOUCHWAKE
258#define FT_GPU_SCL EVE_SCL
259#define FT_GPU_SDAEVE_SDA
260#define FT_GPU_SPI_MISO_MOSI_IO2_IO3 EVE_SPI_MISO_MOSI_IO2_IO3
261#define FT_GPU_81X_GPIO_GROUP_T EVE_81X_GPIO_GROUP_T
262
263#define FT_GPU_81X_RESET_ACTIVE EVE_81X_RESET_ACTIVE
264#define FT_GPU_81X_RESET_REMOVAL EVE_81X_RESET_REMOVAL
265#endif
266
267#define FT_GPU_CORE_RESET EVE_CORE_RESET
268
269#define FT_COCMD_FAULT(rp) EVE_CMD_FAULT(rp)
270
271#define FT_GPU_SPI_NUMCHANNELS_T EVE_SPI_CHANNELS_T
272#define FT_GPU_SPI_SINGLE_CHANNEL EVE_SPI_SINGLE_CHANNEL
273#define FT_GPU_SPI_DUAL_CHANNEL EVE_SPI_DUAL_CHANNEL
274#define FT_GPU_SPI_QUAD_CHANNEL EVE_SPI_QUAD_CHANNEL
275
276#define FT_GPU_SPI_NUMDUMMYBYTES uint8_t
277#define FT_GPU_SPI_ONEDUMMY 1
278#define FT_GPU_SPI_TWODUMMY 2
279
280#define FT_SPI_SINGLE_CHANNEL EVE_SPI_SINGLE_CHANNEL
281#define FT_SPI_DUAL_CHANNEL EVE_SPI_DUAL_CHANNEL
282#define FT_SPI_QUAD_CHANNEL EVE_SPI_QUAD_CHANNEL
283
284#define FT_SPI_ONE_DUMMY_BYTE EVE_SPI_ONE_DUMMY_BYTE
285#define FT_SPI_TWO_DUMMY_BYTE EVE_SPI_TWO_DUMMY_BYTES
286
287#define ft_delay EVE_sleep
288
289#define Ft_Gpu_Hal_WaitLogo_Finish EVE_Cmd_waitLogo
292{
293 return EVE_Hal_transferString(phost, str, 0, EVE_CMD_STRING_MAX, 0) - 1;
294}
295
297{
298 return EVE_Hal_transferString(phost, str, 0, length, 0) - 1;
299}
302#define Ft_Gpu_Hal_Sleep EVE_sleep
303
304#define Ft_Gpu_HostCommand EVE_Hal_hostCommand
305#define Ft_Gpu_HostCommand_Ext3 EVE_Hal_hostCommandExt3
306#define Ft_Gpu_Hal_Powercycle EVE_Hal_powerCycle
307#define Ft_Gpu_Hal_SetSPI EVE_Hal_setSPI
308#define Ft_Gpu_CurrentFrequency EVE_Hal_currentFrequency
309
310#define Ft_Gpu_ClockTrimming EVE_Hal_clockTrimming
311
312#define Ft_Gpu_ClockSelect EVE_Host_clockSelect
313#define Ft_Gpu_PLL_FreqSelect EVE_Host_pllFreqSelect
314#define Ft_Gpu_PowerModeSwitch EVE_Host_powerModeSwitch
315#define Ft_Gpu_CoreReset EVE_Host_coreReset
316
317#if (EVE_SUPPORT_CHIPID >= EVE_FT810)
318#define Ft_Gpu_81X_SelectSysCLK EVE_Host_selectSysClk
319#define Ft_GPU_81X_PowerOffComponents EVE_Host_powerOffComponents
320#define Ft_GPU_81X_PadDriveStrength EVE_Host_padDriveStrength
321#define Ft_Gpu_81X_ResetActive EVE_Host_resetActive
322#define Ft_Gpu_81X_ResetRemoval EVE_Host_resetRemoval
323#endif
325#define ft_millis_init eve_noop
326#define ft_millis_exit eve_noop
327#define ft_millis EVE_millis
328
329#define Ft_Hal_LoadSDCard() EVE_Util_loadSdCard(NULL)
330#define Eve_BootupConfig EVE_Util_bootupConfig
331
332#endif /* FT_GPU_HAL__H */
EVE_HAL_EXPORT bool EVE_Cmd_wrMem(EVE_HalContext *phost, const uint8_t *buffer, uint32_t size)
Write buffer to Coprocessor's comand fifo.
Definition EVE_Cmd.c:291
#define EVE_CMD_STRING_MAX
Definition EVE_Cmd.h:44
EVE_HAL_EXPORT void EVE_Hal_rdMem(EVE_HalContext *phost, uint8_t *result, uint32_t addr, uint32_t size)
Read a block data from Coprocessor's memory.
Definition EVE_Hal.c:206
EVE_HAL_EXPORT bool EVE_Hal_open(EVE_HalContext *phost, const EVE_HalParameters *parameters)
Open the Eve_Hal framework.
Definition EVE_Hal.c:103
EVE_HAL_EXPORT void EVE_Hal_defaults(EVE_HalParameters *parameters)
Setup default parameters for Eve_Hal framework.
Definition EVE_Hal.c:78
EVE_HAL_EXPORT EVE_HalPlatform * EVE_Hal_initialize()
Eve_Hal framework initialization.
Definition EVE_Hal.c:52
EVE_HAL_EXPORT uint32_t EVE_Hal_transferString(EVE_HalContext *phost, const char *str, uint32_t index, uint32_t size, uint32_t padMask)
Transfer a string to EVE platform.
EVE_HAL_EXPORT size_t EVE_Hal_list()
List the available devices.
unsigned int uint32_t
unsigned char uint8_t
#define bool
Platform selector.
#define eve_deprecated(msg)
static ft_uint32_t ft_uint8_t * buffer
Definition FT_Gpu_Hal.h:139
#define ft_void_t
Definition FT_Gpu_Hal.h:57
static ft_uint32_t ft_uint8_t ft_uint32_t length
Definition FT_Gpu_Hal.h:140
#define ft_size_t
Definition FT_Gpu_Hal.h:63
#define ft_uint32_t
Definition FT_Gpu_Hal.h:54
static ft_void_t ft_uint32_t * cmd
Definition FT_Gpu_Hal.h:184
static ft_int16_t Ft_Gpu_Hal_TransferString_S(EVE_HalContext *phost, const ft_char8_t *str, int length)
Definition FT_Gpu_Hal.h:296
static ft_int16_t Ft_Gpu_Hal_TransferString(EVE_HalContext *phost, const ft_char8_t *str)
Definition FT_Gpu_Hal.h:291
#define ft_uint8_t
Definition FT_Gpu_Hal.h:50
static ft_uint32_t addr
Definition FT_Gpu_Hal.h:139
#define ft_char8_t
Definition FT_Gpu_Hal.h:45
static ft_void_t ft_uint32_t ft_size_t nb
Definition FT_Gpu_Hal.h:185
#define ft_int16_t
Definition FT_Gpu_Hal.h:51
ft_uint32_t TotalChannelNum
Definition FT_Gpu_Hal.h:94