34#if defined(BT8XXEMU_PLATFORM)
36#if defined(EVE_MULTI_PLATFORM_TARGET)
37#define EVE_HalImpl_initialize EVE_HalImpl_BT8XXEMU_initialize
38#define EVE_HalImpl_release EVE_HalImpl_BT8XXEMU_release
39#define EVE_Hal_list EVE_Hal_BT8XXEMU_list
40#define EVE_Hal_info EVE_Hal_BT8XXEMU_info
41#define EVE_Hal_isDevice EVE_Hal_BT8XXEMU_isDevice
42#define EVE_HalImpl_defaults EVE_HalImpl_BT8XXEMU_defaults
43#define EVE_HalImpl_open EVE_HalImpl_BT8XXEMU_open
44#define EVE_HalImpl_close EVE_HalImpl_BT8XXEMU_close
45#define EVE_HalImpl_idle EVE_HalImpl_BT8XXEMU_idle
46#define EVE_Hal_flush EVE_Hal_BT8XXEMU_flush
47#define EVE_Hal_startTransfer EVE_Hal_BT8XXEMU_startTransfer
48#define EVE_Hal_endTransfer EVE_Hal_BT8XXEMU_endTransfer
49#define EVE_Hal_transfer8 EVE_Hal_BT8XXEMU_transfer8
50#define EVE_Hal_transfer16 EVE_Hal_BT8XXEMU_transfer16
51#define EVE_Hal_transfer32 EVE_Hal_BT8XXEMU_transfer32
52#define EVE_Hal_transferMem EVE_Hal_BT8XXEMU_transferMem
53#define EVE_Hal_transferProgMem EVE_Hal_BT8XXEMU_transferProgMem
54#define EVE_Hal_transferString EVE_Hal_BT8XXEMU_transferString
55#define EVE_Hal_hostCommand EVE_Hal_BT8XXEMU_hostCommand
56#define EVE_Hal_hostCommandExt3 EVE_Hal_BT8XXEMU_hostCommandExt3
57#define EVE_Hal_powerCycle EVE_Hal_BT8XXEMU_powerCycle
58#define EVE_UtilImpl_bootupDisplayGpio EVE_UtilImpl_BT8XXEMU_bootupDisplayGpio
59#define EVE_Hal_setSPI EVE_Hal_BT8XXEMU_setSPI
60#define EVE_Hal_restoreSPI EVE_Hal_BT8XXEMU_restoreSPI
69#if defined(ESD_SIMULATION)
73static int s_EmulatorSerial = 0;
116 s_EmulatorSerial &= 0xFFFF;
117 deviceInfo->
Opened =
false;
165 origParams = parameters->EmulatorParameters;
181 params->
Flags &= (~BT8XXEMU_EmulatorEnableDynamicDegrade & ~BT8XXEMU_EmulatorEnableRegPwmDutyEmulation);
184 params->
Flags &= ~BT8XXEMU_EmulatorEnableHSFPreview;
186 phost->EmulatorParameters = params;
191 phost->EmulatorParameters = NULL;
195#ifdef EVE_MULTI_GRAPHICS_TARGET
197 phost->GpuDefs = &EVE_GpuDefs_BT81X;
199 phost->GpuDefs = &EVE_GpuDefs_BT88X;
201 phost->GpuDefs = &EVE_GpuDefs_FT81X;
203 phost->GpuDefs = &EVE_GpuDefs_FT80X;
207#if defined(EVE_EMULATOR_MAIN)
208 phost->Emulator = EVE_GpuEmu;
209 phost->EmulatorFlash = EVE_EmuFlash;
210 origFlashParams = NULL;
212 origFlashParams = parameters->EmulatorFlashParameters;
217 params->
Flash = phost->EmulatorFlash;
222#if defined(ESD_SIMULATION)
223 Esd_MainReady__ESD(phost->Emulator);
226 ret = !!phost->Emulator;
235 phost->EmulatorParameters = NULL;
247#if !defined(EVE_EMULATOR_MAIN)
254 phost->Emulator = NULL;
257 if (phost->EmulatorFlash)
261 phost->EmulatorFlash = NULL;
264 if (phost->EmulatorParameters)
266 free(phost->EmulatorParameters);
267 phost->EmulatorParameters = NULL;
270 phost->Emulator = NULL;
271 phost->EmulatorFlash = NULL;
419 for (i = 0; i < size; ++i)
424 for (i = 0; i < size; ++i)
429 for (i = 0; i < size; ++i)
447 for (i = 0; i < size; ++i)
452 for (i = 0; i < size; ++i)
457 for (i = 0; i < size; ++i)
492 char c = str[index + (transferred++)];
498 if (transferred >= size)
505 while (transferred & padMask)
526 char c = str[index + (transferred)];
533 if (transferred >= size)
535 buffer[transferred++] = 0;
540 while (transferred & padMask)
542 buffer[transferred++] = 0;
561 transferred += (
uint32_t)strnlen(str, size) + 1;
564 if (transferred & padMask)
566 uint32_t pad = 4 - (transferred & padMask);
620#if !defined(EVE_EMULATOR_MAIN)
631 phost->Emulator = NULL;
634 params = phost->EmulatorParameters;
637 return phost->Emulator;
641 if (!phost->Emulator)
643 params = phost->EmulatorParameters;
649 phost->Emulator = NULL;
#define EVE_CMD_STRING_MAX
#define strcpy_s(dst, sz, src)
#define eve_progmem_const
EVE_HalPlatform g_HalPlatform
EVE_HAL_EXPORT bool EVE_Hal_powerCycle(EVE_HalContext *phost, bool up)
Toggle PD_N pin of FT800 board for a power cycle.
EVE_HAL_EXPORT uint8_t EVE_Hal_transfer8(EVE_HalContext *phost, uint8_t value)
Write 8 bits to Coprocessor.
EVE_HAL_EXPORT uint16_t EVE_Hal_transfer16(EVE_HalContext *phost, uint16_t value)
Write 2 bytes to Coprocessor.
EVE_HAL_EXPORT bool EVE_Hal_isDevice(EVE_HalContext *phost, size_t deviceIdx)
Check whether the context is the specified device.
EVE_HAL_EXPORT void EVE_Hal_info(EVE_DeviceInfo *deviceInfo, size_t deviceIdx)
Get info of the specified device. Devices of type EVE_HOST_UNKNOWN should be ignored.
EVE_HAL_EXPORT void EVE_Hal_startTransfer(EVE_HalContext *phost, EVE_TRANSFER_T rw, uint32_t addr)
Start data transfer to Coprocessor.
EVE_HAL_EXPORT void EVE_Hal_hostCommand(EVE_HalContext *phost, uint8_t cmd)
Send a host command to Coprocessor.
EVE_HAL_EXPORT void EVE_Hal_setSPI(EVE_HalContext *phost, EVE_SPI_CHANNELS_T numchnls, uint8_t numdummy)
Set number of SPI channel.
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.
static int EVE_shortChipId(EVE_CHIPID_T chipId)
EVE_HAL_EXPORT size_t EVE_Hal_list()
List the available devices.
EVE_HAL_EXPORT void EVE_Hal_transferMem(EVE_HalContext *phost, uint8_t *result, const uint8_t *buffer, uint32_t size)
Transfer (read/write) a block data to Coprocessor.
static EVE_CHIPID_T EVE_extendedChipId(int chipId)
EVE_HAL_EXPORT void EVE_Hal_transferProgMem(EVE_HalContext *phost, uint8_t *result, eve_progmem_const uint8_t *buffer, uint32_t size)
Transfer a block data from program memory.
EVE_HAL_EXPORT void EVE_Hal_restoreSPI(EVE_HalContext *phost)
EVE_HAL_EXPORT void EVE_Hal_endTransfer(EVE_HalContext *phost)
End data transfer.
EVE_HAL_EXPORT void EVE_Hal_flush(EVE_HalContext *phost)
Flush data to Coprocessor.
EVE_HAL_EXPORT void EVE_Hal_hostCommandExt3(EVE_HalContext *phost, uint32_t cmd)
This API sends a 3byte command to the phost.
EVE_HAL_EXPORT uint32_t EVE_Hal_transfer32(EVE_HalContext *phost, uint32_t value)
Write 4 bytes to Coprocessor.
bool EVE_HalImpl_open(EVE_HalContext *phost, const EVE_HalParameters *parameters)
Opens a new HAL context using the specified parameters.
bool EVE_HalImpl_defaults(EVE_HalParameters *parameters, size_t deviceIdx)
Get the default configuration parameters.
void EVE_HalImpl_close(EVE_HalContext *phost)
Close a HAL context.
void EVE_HalImpl_initialize()
Initialize HAL platform.
bool EVE_UtilImpl_bootupDisplayGpio(EVE_HalContext *phost)
Display GPIO pins.
void EVE_HalImpl_idle(EVE_HalContext *phost)
Idle. Call regularly to update frequently changing internal state.
void EVE_HalImpl_release()
Release HAL platform.
static uint8_t transfer8(EVE_HalContext *phost, uint8_t value)
Write 8 bit to Coprocessor.
static ft_uint32_t ft_uint8_t * buffer
static ft_void_t ft_uint32_t * cmd
BT8XXEMU_API void BT8XXEMU_defaults(uint32_t versionApi, BT8XXEMU_EmulatorParameters *params, BT8XXEMU_EmulatorMode mode)
#define BT8XXEMU_VERSION_API
BT8XXEMU_API void BT8XXEMU_stop(BT8XXEMU_Emulator *emulator)
BT8XXEMU_API void BT8XXEMU_Flash_destroy(BT8XXEMU_Flash *flash)
BT8XXEMU_API BT8XXEMU_Flash * BT8XXEMU_Flash_create(uint32_t versionApi, const BT8XXEMU_FlashParameters *params)
BT8XXEMU_API uint8_t BT8XXEMU_transfer(BT8XXEMU_Emulator *emulator, uint8_t data)
BT8XXEMU_API void BT8XXEMU_destroy(BT8XXEMU_Emulator *emulator)
BT8XXEMU_API void BT8XXEMU_chipSelect(BT8XXEMU_Emulator *, int cs)
BT8XXEMU_API void BT8XXEMU_run(uint32_t versionApi, BT8XXEMU_Emulator **emulator, const BT8XXEMU_EmulatorParameters *params)
BT8XXEMU_EmulatorMode Mode