完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
rt thread怎么让程序运行在外部SRAM,比如新创建的线程,读写文件用到的内存等。
我外部SRAM配置到内存堆上成功,可以用malloc free申请和释放,但是内部内存不足时,创建线程和读写文件就会失败,使用cat查看个文件系统就卡死,系统为什么不去使用外部内存啊,外部内存还有1M的空间 |
|
相关推荐
6个回答
|
|
使用 rt_xxx_init 函数创建所有内核对象,线程,信号,消息队列,定时器...
|
|
|
|
|
|
|
|
线程栈是动态分配的,从哪个内存堆分配的,那个线程运行的函数使用的局部变量就是在那个内存上。
你这个出问题,不是在不在哪个内存引起的吧,要跟你说过你这个系统有隐患,有不稳定因素。你不觉得你添加过那么多东西每次都出莫名其妙的问题,而且多半出问题的地方是不应该出的,很奇怪吗?你也玩儿过那么多东西都没因为内存在哪儿出现问题,这次读文件就怀疑是内存问题了? |
|
|
|
是内存,我是故意申请内存,把内部内存弄的不足,然后实验的,看系统能不能去使用外部内存
|
|
|
|
好,假设你说的是对的,是内存问题,其它存储设备驱动,文件系统都没问题。
那么,你执行 cat 命令的时候,是使用的 tshell 线程的线程栈,这个时候, tshell 内存栈从哪儿分配的?你是清楚的吧。 至于有没有使用外部内存,代码里打个断点儿,在 malloc 的时候看看走不走外部内存设备的申请代码就好了啊。 还是上面说的, init 就从堆分配,就可以用得上 SRAM |
|
|
|
像freeRTOS的heap_5.c的内存管理方式,就可以支持多块不连续的内存快,这种设计可以支持到内部内存和外部内存配合使用,不知rt-thread的设计有没有考虑这样的使用场景?
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
883 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
3025 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1409 浏览 0 评论
2039 浏览 0 评论
1574 浏览 0 评论
75148 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 19:16 , Processed in 0.828838 second(s), Total 81, Slave 65 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号