OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4315|回复: 5

UCOSIII新建任务内存不够,把 malloc.c屏蔽后就没问题

[复制链接]

4

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2014-9-6
在线时间
20 小时
发表于 2021-7-26 16:27:28 | 显示全部楼层 |阅读模式
1金钱
407ZGT6的MCU,在原子的“EMWIN实验2 STemWin带UCOS移植”里我新建了几个任务后就报内存不足。
但是我把 malloc.c屏蔽后,就不会报内存不足的错误。
有谁遇到这个问题?

  1. //任务优先级
  2. #define START_TASK_PRIO                                3
  3. //任务堆栈大小       
  4. #define START_STK_SIZE                                 1024
  5. //任务控制块
  6. OS_TCB StartTaskTCB;
  7. //任务堆栈       
  8. CPU_STK START_TASK_STK[START_STK_SIZE];
  9. //任务函数
  10. void start_task(void *p_arg);

  11. //TOUCH任务
  12. //设置任务优先级
  13. #define TOUCH_TASK_PRIO                                4
  14. //任务堆栈大小
  15. #define TOUCH_STK_SIZE                                128
  16. //任务控制块
  17. OS_TCB TouchTaskTCB;
  18. //任务堆栈
  19. CPU_STK TOUCH_TASK_STK[TOUCH_STK_SIZE];
  20. //touch任务
  21. void touch_task(void *p_arg);


  22. //TEMP任务
  23. //设置任务优先级
  24. #define TEMP_TASK_PRIO                                 5
  25. //任务堆栈大小
  26. #define TEMP_STK_SIZE                                128
  27. //任务控制块
  28. OS_TCB TempTaskTCB;
  29. //任务堆栈
  30. CPU_STK TEMP_TASK_STK[TEMP_STK_SIZE];
  31. //led0任务
  32. void temp_watch_task(void *p_arg);

  33. //EMWINDEMO任务
  34. //设置任务优先级
  35. #define EMWINDEMO_TASK_PRIO                        6
  36. //任务堆栈大小
  37. #define EMWINDEMO_STK_SIZE                        2048
  38. //任务控制块
  39. OS_TCB EmwindemoTaskTCB;
  40. //任务堆栈
  41. CPU_STK EMWINDEMO_TASK_STK[EMWINDEMO_STK_SIZE];
  42. //emwindemo_task任务
  43. void emwindemo_task(void *p_arg);

  44. //Run任务
  45. //设置任务优先级
  46. #define RUN_TASK_PRIO                                 7
  47. //任务堆栈大小
  48. #define RUN_STK_SIZE                                128
  49. //任务控制块
  50. OS_TCB RUNTaskTCB;
  51. //任务堆栈
  52. CPU_STK RUN_TASK_STK[RUN_STK_SIZE];
  53. //led0任务
  54. void run_task(void *p_arg);

  55. #define IAP_TASK_PRIO                                 8
  56. #define IAP_STK_SIZE                                        1024
  57. OS_TCB IapTaskTCB;
  58. CPU_STK IAP_TASK_STK[IAP_STK_SIZE];
  59. void iap_task(void *p_arg);

  60. //ESP DIS任务
  61. //设置任务优先级
  62. #define ESP_TASK_PRIO                                 9
  63. //任务堆栈大小
  64. #define ESP_STK_SIZE                                2048
  65. //任务控制块
  66. OS_TCB ESPTaskTCB;
  67. //任务堆栈
  68. CPU_STK ESP_TASK_STK[ESP_STK_SIZE];
  69. //led0任务
  70. void esp_task(void *p_arg);
复制代码



正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

10

主题

778

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6719
金钱
6719
注册时间
2017-4-12
在线时间
1257 小时
发表于 2021-7-26 16:33:12 | 显示全部楼层
你看下是不是那个文件是不是定义了一个很大的数组,如果没有使用这个功能,屏蔽了就可以解释了
回复

使用道具 举报

13

主题

644

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1976
金钱
1976
注册时间
2021-4-16
在线时间
505 小时
发表于 2021-7-26 16:39:15 | 显示全部楼层
帮顶   
回复

使用道具 举报

4

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2014-9-6
在线时间
20 小时
 楼主| 发表于 2021-7-26 16:40:00 | 显示全部楼层
245925587 发表于 2021-7-26 16:33
你看下是不是那个文件是不是定义了一个很大的数组,如果没有使用这个功能,屏蔽了就可以解释了

多谢,malloc是内存管理软件。原子的TFT用到了外部1M的RAM,用的就是malloc来管理内部和外部RAM的。这里面没有大数组。
回复

使用道具 举报

4

主题

10

帖子

0

精华

初级会员

Rank: 2

积分
97
金钱
97
注册时间
2014-9-6
在线时间
20 小时
 楼主| 发表于 2021-7-26 16:41:12 | 显示全部楼层

回复

使用道具 举报

4

主题

896

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4309
金钱
4309
注册时间
2019-9-4
在线时间
896 小时
发表于 2021-7-26 18:09:37 | 显示全部楼层
帮顶   
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-27 09:38

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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