Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
堆_heap_动态内存管理
5
关于rtt中动态内存分配的问题
发布于 2022-02-25 10:55:14 浏览:960
订阅该版
使用的RTT NANO 因为使用了一个第三方库,库中需要使用动态内存分配,所以我用宏定义将库中的动态内存分配函数定义成rtt中的函数 ```c #define malloc rt_malloc #define calloc rt_calloc #define free rt_free #define realloc rt_realloc ``` 然后在一个线程中调用第三方库函数,线程中只有这一个函数和几个uint变量,没有多余的局部变量,线程栈大小原本设置的是1024,运行后出现hardfault,把线程栈大小改成2048才可以,其中qrcode变量是动态分配的,想问一下动态分配的话不是分配到堆区吗,跟线程栈大小没有关系吧,为什么会出现hardfault错误 ```c void LCD_ShowQR(uint16_t num,uint8_t hour,uint8_t min,uint8_t sec) { QRcode* qrcode; //最后结果 uint8_t i, j; uint16_t x, y, p; char QRBUFF[100]; sprintf(QRBUFF,"码数: %05d\r\n时间: %02d:%02d:%02d\r\n工号:00001",num,hour,min,sec); qrcode = QRcode_encodeString(QRBUFF, 2, QR_ECLEVEL_L, QR_MODE_8, 0); rt_kprintf("====version=%d========\r\n", qrcode->version); for(i = 0; i < 10; i++) { if((qrcode->width * i * 2) > 240) break; } p = (i - 4); //点大小 x = (240 - qrcode->width * p) / 3 + 20; y = 50; for(i = 0; i < qrcode->width; i++) { for(j = 0; j < qrcode->width; j++) { if(qrcode->data[j * qrcode->width + i] & 0x01) { LCD_Fill(y + p * j, x + p * i, y + p * (j + 1), x + p * (i + 1), BLACK); //LCD_DrawPoint(x,y,BLACK); //rt_kprintf("▇"); } else { LCD_Fill(y + p * j, x + p * i, y + p * (j + 1), x + p * (i + 1), WHITE); //rt_kprintf(" "); } } //rt_kprintf("\r\n"); } //rt_kprintf("\r\n"); QRcode_free(qrcode); } ```
查看更多
2
个回答
默认排序
按发布时间排序
踩姑娘的小蘑菇
2022-02-25
这家伙很懒,什么也没写!
sprintf会占用线程栈的(函数调用也会占用) 动态分配的内存不占用线程栈空间,把qrcode变量分配的内存增加到2048以上,成功分配的话,线程能正常运行的
出出啊
2022-02-25
恃人不如自恃,人之为己者不如己之自为也
你调用的 `QRcode_encodeString` 这个函数也需要耗用栈的。你清楚它耗用多少栈不?
撰写答案
登录
注册新账号
关注者
0
被浏览
960
关于作者
Yuanq
这家伙很懒,什么也没写!
提问
11
回答
0
被采纳
0
关注TA
发私信
相关问题
1
rt_malloc 申请内存失败
2
webnet heap最大使用量。
3
调度锁会引起线程内存不足
4
RT-Thread内存和字符串相关函数与C语言自带的内存和字符串相关函数冲突问题
5
webnet 是否可以做全动态网页,使用内存池来加快速度
6
boatload跳转到app反复重启,难道你们编译器有问题?
7
怎么释放动态线程占用的内存
8
内存堆使用时产生不对齐
9
pandora开发板使用cjson,内存不足。
10
小内存管理中rt_realloc的实现问题
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
使用RC522软件包驱动FM1722
2
常量数据类型和表达式陷阱分享
3
进行i2c驱动移植的经验总结
4
在VSCode中使用clang-format
5
我该如何使用这个微雪的WIFI400 WIFI-LPB-100在rtt里或者我该怎样为它开发驱动
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
UART
WIZnet_W5500
ota在线升级
freemodbus
PWM
flash
cubemx
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
编译报错
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
出出啊
1517
个答案
342
次被采纳
小小李sunny
1444
个答案
289
次被采纳
张世争
809
个答案
175
次被采纳
crystal266
547
个答案
161
次被采纳
whj467467222
1222
个答案
148
次被采纳
本月文章贡献
catcatbing
3
篇文章
5
次点赞
qq1078249029
2
篇文章
2
次点赞
xnosky
2
篇文章
1
次点赞
Woshizhapuren
1
篇文章
5
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部