历史上的今天
今天是:2025年06月07日(星期六)
2018年06月07日 | STM32堆区分配内存--malloc的使用
2018-06-07 来源:eefocus
测试环境:STM32+IAR6.4
堆区大小设置为0x1000(默认值)。
变量定义:
char *p=NULL;
char *p2=NULL;
1. 申请内存大小超过设置值
p = (char *)malloc(sizeof(char)*5090);
malloc返回NULL,使用这段内存是会出错(硬件错误)。
2.申请两段内存,每段不超过设定值,但总和超过设定值。
[cpp] view plain copy
在CODE上查看代码片派生到我的代码片
p = (char *)malloc(sizeof(char)*3090);
if(p== NULL)
{
printf("malloc error1\r\n");
}
p2 = (char *)malloc(sizeof(char)*3090);
if(p2== NULL)
{
printf("malloc error2\r\n");
}
3.申请一段内存,使用完毕后释放掉,然后再申请一段内存
[cpp] view plain copy
在CODE上查看代码片派生到我的代码片
p = (char *)malloc(sizeof(char)*3090);
if(p== NULL)
{
printf("malloc error1\r\n");
}
...
free(p);
p2 = (char *)malloc(sizeof(char)*3090);
if(p2== NULL)
{
printf("malloc error2\r\n");
}
...
free(p2);
使用正常。
申请内存,使用完毕后要释放。
IAR设置堆栈大小 option->Linker -> Config -> Override default ->Edit。
史海拾趣
|
大家好,小弟想请教各位大侠一个问题:电压并联负反馈电路为什么输出还和芯片的工作电压有关系啊,一般输出不会大于工作电压,我写论文需要放大倍数的公式啊。附件中这个电路,若输入为1V,如果5V供电,就输出-3.6V,如果是18V供电,就输出-16.5V, ...… 查看全部问答> |
|
目录: 第一部分 贴片元器件基础知识 1.1片状电阻器 1.1.1片状电阻器的阻值和允差标注方法 1.1.2常见片状电阻器介绍 1.1.3片状电阻器的使用 1.2片状电容器 1.2.1片状电容器容量和允差标注方法 1.2.2常见片状电容器介绍 1.2 ...… 查看全部问答> |
|
我现在的firmware是键盘输入完后敲回车输入字符串才提交给系统。 可是我要做快捷键响应,要求每敲一个键就马上提交给系统,并且不 在屏幕上回显,类似TC的getch()函数,我应该 如何做,当我用ioctl(fd, FIORBUFSET, 0)把Read的缓冲区关闭 后 ...… 查看全部问答> |
|
uc/os-II中任务调度是分时的还是占先式? uc/os-II中设计一个任务需要考虑哪些问题? uc/os-II中任务通信有哪些方式?… 查看全部问答> |
|
CE50的GWES组件有没公开源码?LCD驱动里面的触摸屏坐标(已经知道怎么修正它了)怎么转成系统的坐标?这两个之间的转换关系是? CE50的GWES组件有没公开源码?LCD驱动里面的触摸屏坐标(已经知道怎么修正它了)怎么转成系统的坐标?这两个之间的转换关系是?… 查看全部问答> |
|
能用PPC2003模拟器下东西到CPU为PXA270的PDA吗 我下载时老是提示 The ARM Unknow CPU does not support configuration Test -Win32(WCE AEMV4)Debug! Executable will not run on device. 我的PDA CPU为PXA270 多谢各位帮忙… 查看全部问答> |
|
随着通信业的发展,由原来的邮电分分合合到现在的移动,联通,电信,整合后的三家企业中,可能移动变动不大,因为它并购了铁通,一个市场占有率很小的企业,移动本来核心员工也少,所以凭借它在2G市场上得优势,基本上是 ...… 查看全部问答> |
|
由于程序问题,程序写入了密码区,导致flash被锁然后查编码,解码刚开始两块板子都解码成功,但是在擦除是又被锁了一块板子解了两次终于擦除成功但另外一块再解码,擦除到一半又被锁又解码,擦除到一半被锁现在解码都解不了了求助高手是什么原因, ...… 查看全部问答> |




