File indexing completed on 2025-05-11 08:23:35
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #ifndef STM32H7xx_HAL_GFXMMU_H
0021 #define STM32H7xx_HAL_GFXMMU_H
0022
0023 #ifdef __cplusplus
0024 extern "C" {
0025 #endif
0026
0027
0028 #include "stm32h7xx_hal_def.h"
0029
0030 #if defined(GFXMMU)
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049 typedef enum
0050 {
0051 HAL_GFXMMU_STATE_RESET = 0x00U,
0052 HAL_GFXMMU_STATE_READY = 0x01U,
0053 }HAL_GFXMMU_StateTypeDef;
0054
0055
0056
0057
0058 typedef struct
0059 {
0060 uint32_t Buf0Address;
0061 uint32_t Buf1Address;
0062 uint32_t Buf2Address;
0063 uint32_t Buf3Address;
0064 }GFXMMU_BuffersTypeDef;
0065
0066
0067
0068
0069 typedef struct
0070 {
0071 FunctionalState Activation;
0072
0073 uint32_t CacheLock;
0074
0075 uint32_t CacheLockBuffer;
0076
0077
0078 uint32_t CacheForce;
0079
0080
0081 uint32_t OutterBufferability;
0082
0083 uint32_t OutterCachability;
0084
0085 uint32_t Prefetch;
0086
0087 }GFXMMU_CachePrefetchTypeDef;
0088
0089
0090
0091
0092 typedef struct
0093 {
0094 FunctionalState Activation;
0095 uint32_t UsedInterrupts;
0096
0097
0098 }GFXMMU_InterruptsTypeDef;
0099
0100
0101
0102
0103 typedef struct
0104 {
0105 uint32_t BlocksPerLine;
0106
0107 uint32_t DefaultValue;
0108 GFXMMU_BuffersTypeDef Buffers;
0109 GFXMMU_CachePrefetchTypeDef CachePrefetch;
0110 GFXMMU_InterruptsTypeDef Interrupts;
0111 }GFXMMU_InitTypeDef;
0112
0113
0114
0115
0116 #if (USE_HAL_GFXMMU_REGISTER_CALLBACKS == 1)
0117 typedef struct __GFXMMU_HandleTypeDef
0118 #else
0119 typedef struct
0120 #endif
0121 {
0122 GFXMMU_TypeDef *Instance;
0123 GFXMMU_InitTypeDef Init;
0124 HAL_GFXMMU_StateTypeDef State;
0125 __IO uint32_t ErrorCode;
0126 #if (USE_HAL_GFXMMU_REGISTER_CALLBACKS == 1)
0127 void (*ErrorCallback) (struct __GFXMMU_HandleTypeDef *hgfxmmu);
0128 void (*MspInitCallback) (struct __GFXMMU_HandleTypeDef *hgfxmmu);
0129 void (*MspDeInitCallback) (struct __GFXMMU_HandleTypeDef *hgfxmmu);
0130 #endif
0131 }GFXMMU_HandleTypeDef;
0132
0133
0134
0135
0136 typedef struct
0137 {
0138 uint32_t LineNumber;
0139
0140 uint32_t LineStatus;
0141
0142 uint32_t FirstVisibleBlock;
0143
0144 uint32_t LastVisibleBlock;
0145
0146 int32_t LineOffset;
0147
0148
0149
0150 }GFXMMU_LutLineTypeDef;
0151
0152 #if (USE_HAL_GFXMMU_REGISTER_CALLBACKS == 1)
0153
0154
0155
0156 typedef enum
0157 {
0158 HAL_GFXMMU_ERROR_CB_ID = 0x00U,
0159 HAL_GFXMMU_MSPINIT_CB_ID = 0x01U,
0160 HAL_GFXMMU_MSPDEINIT_CB_ID = 0x02U
0161 }HAL_GFXMMU_CallbackIDTypeDef;
0162
0163
0164
0165
0166 typedef void (*pGFXMMU_CallbackTypeDef)(GFXMMU_HandleTypeDef *hgfxmmu);
0167 #endif
0168
0169
0170
0171
0172
0173
0174
0175
0176
0177
0178
0179
0180
0181
0182
0183
0184 #define GFXMMU_256BLOCKS 0x00000000U
0185 #define GFXMMU_192BLOCKS GFXMMU_CR_192BM
0186
0187
0188
0189
0190
0191
0192
0193
0194 #define GFXMMU_CACHE_LOCK_DISABLE 0x00000000U
0195 #define GFXMMU_CACHE_LOCK_ENABLE GFXMMU_CR_CL
0196
0197
0198
0199
0200
0201
0202
0203
0204 #define GFXMMU_CACHE_LOCK_BUFFER0 0x00000000U
0205 #define GFXMMU_CACHE_LOCK_BUFFER1 GFXMMU_CR_CLB_0
0206 #define GFXMMU_CACHE_LOCK_BUFFER2 GFXMMU_CR_CLB_1
0207 #define GFXMMU_CACHE_LOCK_BUFFER3 GFXMMU_CR_CLB
0208
0209
0210
0211
0212
0213
0214
0215
0216 #define GFXMMU_CACHE_FORCE_DISABLE 0x00000000U
0217 #define GFXMMU_CACHE_FORCE_ENABLE GFXMMU_CR_FC
0218
0219
0220
0221
0222
0223
0224
0225
0226 #define GFXMMU_OUTTER_BUFFERABILITY_DISABLE 0x00000000U
0227 #define GFXMMU_OUTTER_BUFFERABILITY_ENABLE GFXMMU_CR_OB
0228
0229
0230
0231
0232
0233
0234
0235
0236 #define GFXMMU_OUTTER_CACHABILITY_DISABLE 0x00000000U
0237 #define GFXMMU_OUTTER_CACHABILITY_ENABLE GFXMMU_CR_OC
0238
0239
0240
0241
0242
0243
0244
0245
0246 #define GFXMMU_PREFETCH_DISABLE GFXMMU_CR_PD
0247 #define GFXMMU_PREFETCH_ENABLE 0x00000000U
0248
0249
0250
0251
0252
0253
0254
0255
0256 #define GFXMMU_AHB_MASTER_ERROR_IT GFXMMU_CR_AMEIE
0257 #define GFXMMU_BUFFER0_OVERFLOW_IT GFXMMU_CR_B0OIE
0258 #define GFXMMU_BUFFER1_OVERFLOW_IT GFXMMU_CR_B1OIE
0259 #define GFXMMU_BUFFER2_OVERFLOW_IT GFXMMU_CR_B2OIE
0260 #define GFXMMU_BUFFER3_OVERFLOW_IT GFXMMU_CR_B3OIE
0261
0262
0263
0264
0265
0266
0267
0268
0269 #define GFXMMU_ERROR_NONE 0x00000000U
0270 #define GFXMMU_ERROR_BUFFER0_OVERFLOW GFXMMU_SR_B0OF
0271 #define GFXMMU_ERROR_BUFFER1_OVERFLOW GFXMMU_SR_B1OF
0272 #define GFXMMU_ERROR_BUFFER2_OVERFLOW GFXMMU_SR_B2OF
0273 #define GFXMMU_ERROR_BUFFER3_OVERFLOW GFXMMU_SR_B3OF
0274 #define GFXMMU_ERROR_AHB_MASTER GFXMMU_SR_AMEF
0275 #if (USE_HAL_GFXMMU_REGISTER_CALLBACKS == 1)
0276 #define GFXMMU_ERROR_INVALID_CALLBACK 0x00000100U
0277 #endif
0278
0279
0280
0281
0282
0283
0284
0285
0286 #define GFXMMU_LUT_LINE_DISABLE 0x00000000U
0287 #define GFXMMU_LUT_LINE_ENABLE GFXMMU_LUTxL_EN
0288
0289
0290
0291
0292
0293
0294
0295
0296 #define GFXMMU_CACHE_FORCE_FLUSH GFXMMU_CCR_FF
0297 #define GFXMMU_CACHE_FORCE_INVALIDATE GFXMMU_CCR_FI
0298
0299
0300
0301
0302
0303
0304
0305
0306
0307
0308
0309
0310
0311
0312
0313
0314
0315
0316
0317 #if (USE_HAL_GFXMMU_REGISTER_CALLBACKS == 1)
0318 #define __HAL_GFXMMU_RESET_HANDLE_STATE(__HANDLE__) do{ \
0319 (__HANDLE__)->State = HAL_GFXMMU_STATE_RESET; \
0320 (__HANDLE__)->MspInitCallback = NULL; \
0321 (__HANDLE__)->MspDeInitCallback = NULL; \
0322 } while(0)
0323 #else
0324 #define __HAL_GFXMMU_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_GFXMMU_STATE_RESET)
0325 #endif
0326
0327
0328
0329
0330
0331
0332
0333
0334
0335
0336
0337
0338
0339
0340
0341 HAL_StatusTypeDef HAL_GFXMMU_Init(GFXMMU_HandleTypeDef *hgfxmmu);
0342 HAL_StatusTypeDef HAL_GFXMMU_DeInit(GFXMMU_HandleTypeDef *hgfxmmu);
0343 void HAL_GFXMMU_MspInit(GFXMMU_HandleTypeDef *hgfxmmu);
0344 void HAL_GFXMMU_MspDeInit(GFXMMU_HandleTypeDef *hgfxmmu);
0345 #if (USE_HAL_GFXMMU_REGISTER_CALLBACKS == 1)
0346
0347 HAL_StatusTypeDef HAL_GFXMMU_RegisterCallback(GFXMMU_HandleTypeDef *hgfxmmu,
0348 HAL_GFXMMU_CallbackIDTypeDef CallbackID,
0349 pGFXMMU_CallbackTypeDef pCallback);
0350 HAL_StatusTypeDef HAL_GFXMMU_UnRegisterCallback(GFXMMU_HandleTypeDef *hgfxmmu,
0351 HAL_GFXMMU_CallbackIDTypeDef CallbackID);
0352 #endif
0353
0354
0355
0356
0357
0358
0359
0360
0361 HAL_StatusTypeDef HAL_GFXMMU_ConfigLut(GFXMMU_HandleTypeDef *hgfxmmu,
0362 uint32_t FirstLine,
0363 uint32_t LinesNumber,
0364 uint32_t Address);
0365
0366 HAL_StatusTypeDef HAL_GFXMMU_DisableLutLines(GFXMMU_HandleTypeDef *hgfxmmu,
0367 uint32_t FirstLine,
0368 uint32_t LinesNumber);
0369
0370 HAL_StatusTypeDef HAL_GFXMMU_ConfigLutLine(GFXMMU_HandleTypeDef *hgfxmmu, GFXMMU_LutLineTypeDef *lutLine);
0371
0372 HAL_StatusTypeDef HAL_GFXMMU_ConfigForceCache(GFXMMU_HandleTypeDef *hgfxmmu, uint32_t ForceParam);
0373
0374 HAL_StatusTypeDef HAL_GFXMMU_ModifyBuffers(GFXMMU_HandleTypeDef *hgfxmmu, GFXMMU_BuffersTypeDef *Buffers);
0375
0376 HAL_StatusTypeDef HAL_GFXMMU_ModifyCachePrefetch(GFXMMU_HandleTypeDef *hgfxmmu,
0377 GFXMMU_CachePrefetchTypeDef *CachePrefetch);
0378
0379 void HAL_GFXMMU_IRQHandler(GFXMMU_HandleTypeDef *hgfxmmu);
0380
0381 void HAL_GFXMMU_ErrorCallback(GFXMMU_HandleTypeDef *hgfxmmu);
0382
0383
0384
0385
0386
0387
0388
0389
0390
0391 HAL_GFXMMU_StateTypeDef HAL_GFXMMU_GetState(GFXMMU_HandleTypeDef *hgfxmmu);
0392
0393 uint32_t HAL_GFXMMU_GetError(GFXMMU_HandleTypeDef *hgfxmmu);
0394
0395
0396
0397
0398
0399
0400
0401
0402
0403
0404
0405
0406
0407
0408 #define IS_GFXMMU_BLOCKS_PER_LINE(VALUE) (((VALUE) == GFXMMU_256BLOCKS) || \
0409 ((VALUE) == GFXMMU_192BLOCKS))
0410
0411 #define IS_GFXMMU_BUFFER_ADDRESS(VALUE) (((VALUE) & 0xFU) == 0U)
0412
0413 #define IS_GFXMMU_CACHE_LOCK(VALUE) (((VALUE) == GFXMMU_CACHE_LOCK_DISABLE) || \
0414 ((VALUE) == GFXMMU_CACHE_LOCK_ENABLE))
0415
0416 #define IS_GFXMMU_CACHE_LOCK_BUFFER(VALUE) (((VALUE) == GFXMMU_CACHE_LOCK_BUFFER0) || \
0417 ((VALUE) == GFXMMU_CACHE_LOCK_BUFFER1) || \
0418 ((VALUE) == GFXMMU_CACHE_LOCK_BUFFER2) || \
0419 ((VALUE) == GFXMMU_CACHE_LOCK_BUFFER3))
0420
0421 #define IS_GFXMMU_CACHE_FORCE(VALUE) (((VALUE) == GFXMMU_CACHE_FORCE_DISABLE) || \
0422 ((VALUE) == GFXMMU_CACHE_FORCE_ENABLE))
0423
0424 #define IS_GFXMMU_OUTTER_BUFFERABILITY(VALUE) (((VALUE) == GFXMMU_OUTTER_BUFFERABILITY_DISABLE) || \
0425 ((VALUE) == GFXMMU_OUTTER_BUFFERABILITY_ENABLE))
0426
0427 #define IS_GFXMMU_OUTTER_CACHABILITY(VALUE) (((VALUE) == GFXMMU_OUTTER_CACHABILITY_DISABLE) || \
0428 ((VALUE) == GFXMMU_OUTTER_CACHABILITY_ENABLE))
0429
0430 #define IS_GFXMMU_PREFETCH(VALUE) (((VALUE) == GFXMMU_PREFETCH_DISABLE) || \
0431 ((VALUE) == GFXMMU_PREFETCH_ENABLE))
0432
0433 #define IS_GFXMMU_INTERRUPTS(VALUE) (((VALUE) & 0x1FU) != 0U)
0434
0435 #define IS_GFXMMU_LUT_LINE(VALUE) ((VALUE) < 1024U)
0436
0437 #define IS_GFXMMU_LUT_LINES_NUMBER(VALUE) (((VALUE) > 0U) && ((VALUE) <= 1024U))
0438
0439 #define IS_GFXMMU_LUT_LINE_STATUS(VALUE) (((VALUE) == GFXMMU_LUT_LINE_DISABLE) || \
0440 ((VALUE) == GFXMMU_LUT_LINE_ENABLE))
0441
0442 #define IS_GFXMMU_LUT_BLOCK(VALUE) ((VALUE) < 256U)
0443
0444 #define IS_GFXMMU_LUT_LINE_OFFSET(VALUE) (((VALUE) >= -4080) && ((VALUE) <= 4190208))
0445
0446 #define IS_GFXMMU_CACHE_FORCE_ACTION(VALUE) (((VALUE) == GFXMMU_CACHE_FORCE_FLUSH) || \
0447 ((VALUE) == GFXMMU_CACHE_FORCE_INVALIDATE) || \
0448 ((VALUE) == (GFXMMU_CACHE_FORCE_FLUSH | GFXMMU_CACHE_FORCE_INVALIDATE)))
0449
0450
0451
0452
0453
0454
0455
0456
0457
0458
0459
0460
0461 #endif
0462 #ifdef __cplusplus
0463 }
0464 #endif
0465
0466 #endif
0467