Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
堆_heap_动态内存管理
5
关于rtt中动态内存分配的问题
发布于 2022-02-25 10:55:14 浏览:997
订阅该版
使用的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
被浏览
997
关于作者
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
【RT-Thread】【ci】【scons】将ci.attachconfig.yml和scons结合使用
2
Rt-thread中OTA下载后,bootloader不搬程序
3
ulog 日志 LOG_HEX 输出时间改为本地日期时间
4
在RT-Thread Studio中构建前执行python命令
5
研究一了一段时间RTT,直接标准版上手太难,想用nano,但又舍不得组件
热门标签
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
I2C_IIC
ESP8266
UART
WIZnet_W5500
ota在线升级
PWM
cubemx
flash
freemodbus
BSP
packages_软件包
潘多拉开发板_Pandora
定时器
ADC
flashDB
GD32
socket
编译报错
中断
Debug
rt_mq_消息队列_msg_queue
SFUD
msh
keil_MDK
ulog
C++_cpp
MicroPython
本月问答贡献
xusiwei1236
7
个答案
2
次被采纳
踩姑娘的小蘑菇
1
个答案
2
次被采纳
用户名由3_15位
7
个答案
1
次被采纳
bernard
4
个答案
1
次被采纳
张世争
1
个答案
1
次被采纳
本月文章贡献
聚散无由
2
篇文章
15
次点赞
catcatbing
2
篇文章
5
次点赞
Wade
2
篇文章
2
次点赞
Ghost_Girls
1
篇文章
6
次点赞
YZRD
1
篇文章
2
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部