硬汉嵌入式论坛

 找回密码
 立即注册
查看: 3283|回复: 3
收起左侧

[emWin] emWin动态内存的获取函数推荐使用GUI_ALLOC_AllocNoInit

[复制链接]

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
发表于 2019-5-8 11:58:43 | 显示全部楼层 |阅读模式
如果申请的动态内存大,且使用的外部SDRAM

函数GUI_ALLOC_AllocZero的执行时间还是比较长的,因为要做SDRAM空间的清零操作。

而使用函数GUI_ALLOC_AllocNoInit就非常快了,力荐。
回复

使用道具 举报

42

主题

1022

回帖

1153

积分

至尊会员

积分
1153
发表于 2019-5-8 14:46:58 | 显示全部楼层
Got
回复

使用道具 举报

23

主题

1443

回帖

1512

积分

至尊会员

积分
1512
发表于 2019-5-9 11:35:27 | 显示全部楼层
Mark,感谢分享
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
115778
QQ
 楼主| 发表于 2019-5-9 18:01:19 | 显示全部楼层
  1. /*********************************************************************
  2. *
  3. *       Dynamic memory management
  4. */
  5. typedef struct {
  6.   U32 TotalBytes;
  7.   U32 FreeBytes;
  8.   U32 UsedBytes;
  9.   U32 AllocSize;
  10.   U32 NumFixedBytes;
  11.   U32 MaxUsedBytes;
  12. } GUI_ALLOC_INFO;

  13. GUI_ALLOC_DATATYPE GUI_ALLOC_GetNumFreeBlocks(void);
  14. GUI_ALLOC_DATATYPE GUI_ALLOC_GetNumFreeBytes (void);
  15. GUI_ALLOC_DATATYPE GUI_ALLOC_GetNumUsedBlocks(void);
  16. GUI_ALLOC_DATATYPE GUI_ALLOC_GetNumUsedBytes (void);
  17. GUI_ALLOC_DATATYPE GUI_ALLOC_GetMaxUsedBytes (void);

  18. void GUI_ALLOC_GetMemInfo  (GUI_ALLOC_INFO * pInfo);
  19. void GUI_ALLOC_SuppressPeak(int OnOff);

  20. GUI_HMEM           GUI_ALLOC_AllocInit       (const void * pInitData, GUI_ALLOC_DATATYPE Size);
  21. GUI_HMEM           GUI_ALLOC_AllocNoInit     (GUI_ALLOC_DATATYPE size);
  22. GUI_HMEM           GUI_ALLOC_AllocZero       (GUI_ALLOC_DATATYPE size);
  23. void               GUI_ALLOC_AssignMemory    (void * p, U32 NumBytes);
  24. void               GUI_ALLOC_Free            (GUI_HMEM  hMem);
  25. void               GUI_ALLOC_FreeFixedBlock  (void * p);
  26. void               GUI_ALLOC_FreePtrArray    (GUI_HMEM * pArray, int NumElems);
  27. void               GUI_ALLOC_FreePtr         (GUI_HMEM * phMem);
  28. void *             GUI_ALLOC_GetFixedBlock   (GUI_ALLOC_DATATYPE Size);
  29. GUI_ALLOC_DATATYPE GUI_ALLOC_GetMaxSize      (void);
  30. GUI_ALLOC_DATATYPE GUI_ALLOC_GetSize         (GUI_HMEM  hMem);
  31. void *             GUI_ALLOC_h2p             (GUI_HMEM  hMem);
  32. GUI_HMEM           GUI_ALLOC_p2h             (void * p);
  33. void               GUI_ALLOC_Init            (void);
  34. void               GUI_ALLOC_Lock            (void);
  35. void *             GUI_ALLOC_LockH           (GUI_HMEM  hMem);
  36. GUI_HMEM           GUI_ALLOC_Realloc         (GUI_HMEM hOld, int NewSize);
  37. GUI_ALLOC_DATATYPE GUI_ALLOC_RequestSize     (void);
  38. void               GUI_ALLOC_SetAvBlockSize  (U32 BlockSize);
  39. void               GUI_ALLOC_Unlock          (void);
  40. void *             GUI_ALLOC_UnlockH         (void ** pp);
  41. int                GUI_ALLOC_SetMaxPercentage(int MaxPercentage);
  42. void               GUI_ALLOC_Exit            (void);
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-5-18 01:02 , Processed in 0.229275 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表