/** ****************************************************************************** * File Name : TouchGFXGeneratedHAL.hpp ****************************************************************************** * @attention * *

© Copyright (c) 2021 STMicroelectronics. * All rights reserved.

* * This software component is licensed by ST under Ultimate Liberty license * SLA0044, the "License"; You may not use this file except in compliance with * the License. You may obtain a copy of the License at: * www.st.com/SLA0044 * ****************************************************************************** */ #ifndef TouchGFXGeneratedHAL_HPP #define TouchGFXGeneratedHAL_HPP #include /** * @class TouchGFXGeneratedHAL * * @brief HAL implementation for TouchGFXGenerated. * * @sa HAL */ class TouchGFXGeneratedHAL : public touchgfx::HAL { public: /** * @fn TouchGFXGeneratedHAL::TouchGFXGeneratedHAL(touchgfx::DMA_Interface& dma, touchgfx::LCD& display, touchgfx::TouchController& tc, uint16_t width, uint16_t height) : touchgfx::HAL(dma, display, tc, width, height) * * @brief Constructor. * * Constructor. Initializes members. * * @param [in,out] dma Reference to DMA interface. * @param [in,out] display Reference to LCD interface. * @param [in,out] tc Reference to Touch Controller driver. * @param width Width of the display. * @param height Height of the display. */ TouchGFXGeneratedHAL(touchgfx::DMA_Interface& dma, touchgfx::LCD& display, touchgfx::TouchController& tc, uint16_t width, uint16_t height) : touchgfx::HAL(dma, display, tc, width, height) { } /** * @fn void TouchGFXGeneratedHAL::initialize(); * * @brief This function is responsible for initializing the entire framework. * * This function is responsible for initializing the entire framework. */ void initialize(); /** * @fn virtual void TouchGFXGeneratedHAL::configureInterrupts(); * * @brief Sets the DMA and LCD interrupt priorities. * * Sets the DMA and LCD interrupt priorities. */ virtual void configureInterrupts(); /** * @fn virtual void TouchGFXGeneratedHAL::enableInterrupts(); * * @brief Enables the DMA and LCD interrupts. * * Enables the DMA and LCD interrupts. */ virtual void enableInterrupts(); /** * @fn virtual void TouchGFXGeneratedHAL::disableInterrupts(); * * @brief Disables the DMA and LCD interrupts. * * Disables the DMA and LCD interrupts. */ virtual void disableInterrupts(); /** * @fn virtual void TouchGFXGeneratedHAL::enableLCDControllerInterrupt(); * * @brief Configure the LCD controller to fire interrupts at VSYNC. * * Configure the LCD controller to fire interrupts at VSYNC. Called automatically * once TouchGFX initialization has completed. */ virtual void enableLCDControllerInterrupt(); /** * @fn virtual void TouchGFXGeneratedHAL::flushFrameBuffer(); * * @brief This function is called whenever the framework has performed a complete draw. * * This specialization is only in place to keep compilers happy. Base impl. will call the * Rect version. * @see HAL::flushFrameBuffer */ virtual void flushFrameBuffer() { HAL::flushFrameBuffer(); } /** * @fn virtual void TouchGFXGeneratedHAL::flushFrameBuffer(const touchgfx::Rect& rect); * * @brief This function is called whenever the framework has performed a partial draw. * * This function is called whenever the framework has performed a partial draw. * On the STM32F7, make sure to clean and invalidate the data cache. This is to * ensure that LTDC sees correct data when transferring to the display. * * @param rect The area of the screen that has been drawn, expressed in absolute coordinates. * * @see flushFrameBuffer(). */ virtual void flushFrameBuffer(const touchgfx::Rect& rect); /** * * @fn virtual void TouchGFXGeneratedHAL::blockCopy(); * * This function performs a platform-specific memcpy, if supported by the hardware. * * @param [out] dest Pointer to destination memory. * @param [in] src Pointer to source memory. * @param numBytes Number of bytes to copy. * * @return true if the copy succeeded, false if copy was not performed. */ virtual bool blockCopy(void* RESTRICT dest, const void* RESTRICT src, uint32_t numBytes); protected: /** * @fn virtual uint16_t* TouchGFXGeneratedHAL::getTFTFrameBuffer() const; * * @brief Gets the frame buffer address used by the TFT controller. * * Gets the frame buffer address used by the TFT controller. * * @return The address of the frame buffer currently being displayed on the TFT. */ virtual uint16_t* getTFTFrameBuffer() const; /** * @fn virtual void TouchGFXGeneratedHAL::setTFTFrameBuffer(uint16_t* adr); * * @brief Sets the frame buffer address used by the TFT controller. * * Sets the frame buffer address used by the TFT controller. * * @param [in,out] adr New frame buffer address. */ virtual void setTFTFrameBuffer(uint16_t* adr); virtual void InvalidateCache(); virtual void FlushCache(); }; #endif // TouchGFXGeneratedHAL_HPP /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/