野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10072|回复: 10

OSTaskCreate时,new 使用问题求教

[复制链接]
发表于 2016-9-9 18:02:47 | 显示全部楼层 |阅读模式
我使用OSTaskCreate生成任务
在任务重使用 new,有下面问题
这么调用,会成功返回
char* ppp=new char[10];


但,这么调用不成功
char* ppp=new char[310];

我想了解,使用new需要注意哪些方面的问题

谢谢
回复

使用道具 举报

发表于 2016-9-9 18:05:11 | 显示全部楼层
new?  你是用C还是C++,我们的程序都是C的
回复 支持 反对

使用道具 举报

发表于 2016-9-9 18:43:58 | 显示全部楼层
new 是c++里的,在C 里用malloc函数
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-9 22:32:48 | 显示全部楼层
随风 发表于 2016-9-9 18:43
new 是c++里的,在C 里用malloc函数

我是C++和C混编的,不知道这样行不行
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-9 22:37:41 | 显示全部楼层
demon 发表于 2016-9-9 22:32
我是C++和C混编的,不知道这样行不行

我看到资料说支持C++,所以直接用C++的类,让C通过函数调用
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-9 22:39:41 | 显示全部楼层
flyleaf 发表于 2016-9-9 18:05
new?  你是用C还是C++,我们的程序都是C的

不能用C++么,我看到说支持C++的呀
回复 支持 反对

使用道具 举报

发表于 2016-9-10 08:51:14 | 显示全部楼层
demon 发表于 2016-9-9 22:37
我看到资料说支持C++,所以直接用C++的类,让C通过函数调用

一个文件里要么是C,要么是C++吧,但我不知道怎样配置
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-10 09:04:50 | 显示全部楼层
随风 发表于 2016-9-10 08:51
一个文件里要么是C,要么是C++吧,但我不知道怎样配置

哦,我觉得可能是堆上的空间不够,就不知道在哪设置堆大小
回复 支持 反对

使用道具 举报

发表于 2016-9-10 14:10:50 | 显示全部楼层
任务堆栈的空间大小是你自己定义的
//任务优先级
#define MAIN_TASK_PRIO    7  
//任务堆栈大小
#define MAIN_STK_SIZE            512
//定义任务堆栈
__align(8) static OS_STK MAIN_TASK_STK[MAIN_STK_SIZE];
//任务名
void main_task(void *pdata);

至于单片机的堆栈大小在启动文件里定义的
Stack_Size      EQU     0x00000400

                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp

回复 支持 0 反对 1

使用道具 举报

 楼主| 发表于 2016-9-10 17:33:13 | 显示全部楼层
wcyingboy 发表于 2016-9-10 14:10
任务堆栈的空间大小是你自己定义的
//任务优先级
#define MAIN_TASK_PRIO    7  

哦,好的,谢谢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-9-10 18:16:59 | 显示全部楼层
wcyingboy 发表于 2016-9-10 14:10
任务堆栈的空间大小是你自己定义的
//任务优先级
#define MAIN_TASK_PRIO    7  

改了单片机总的堆大小,真的可以了,谢谢!
我不用鼠标,刚才不小心点了反对了,不好意思
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-27 07:46 , Processed in 0.031017 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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