出出啊
出出啊
It is Not the Mountain We Conquer, but Ourselves

注册于 7 months ago

回答
972
文章
22
关注者
63

管理堆需要占用部分内存的,这部分也是从堆内存里划分的,malloc必须小于你的数组字节大小,好像是小于十几个字节。所以,不能 malloc(4k)

define HEAP_BEGIN STM32_SRAM1_START 这个不是这么定义的,很多全局变量可能放到这个位置,直接的内存 over 了
试试下面的定义

#if defined(__CC_ARM) || defined(__CLANG_ARM)
extern int Image$$RW_IRAM1$$ZI$$Limit;
#define HEAP_BEGIN      (&Image$$RW_IRAM1$$ZI$$Limit)
#elif __ICCARM__
#pragma section="CSTACK"
#define HEAP_BEGIN      (__segment_end("CSTACK"))
#else
extern int __bss_end;
#define HEAP_BEGIN      (&__bss_end)
#endif

#define HEAP_END        STM32_SRAM_END

rt_thread_mdelay(x);    // x = 12*3600*1000
sta = !sta;
rt_pin_write(sta);

有网吗?没网得倒腾一下。不知道他们什么时候把登录账号这个去掉。

@mysterywolf 这个好像是你 6 个月前修改的,为啥他下载的代码和仓库里的不一样了?

你确定不是在串口驱动里添加了 rt_kprintf ?

串口驱动框架有问题,目前看只有中断收发方式问题最少。poll 和 dma 都有问题

你想表达啥? default 的这个配置的默认值
感觉你想实现的是某种依赖关系。启用配置 C 同时默认启用 A B ?还是想启用 A B 之后默认启用 C?

如果是前者就用

config C
    select A
    select B

如果是后者

config C
    default y
    depends on A && B

打开线程栈溢出检测,然后恢复线程栈大小后,在 main 线程和 finsh 终端里再比对一次看看。finsh 线程栈大小和 main 设定成一样大小的。这样可以排除是不是线程栈大小问题。

历史包袱,因为 keil 一直放出来 keygen 让我们用,当然有一大波人愿意捡这个便宜喽。是因为用 keil iar 的人太多了

rt-studio 可能可以向 Qt Creator 学习一下。你用什么 rtt 版本我不管,你用什么编译器版本我不管,你怎么组织你的项目我也不管,但是,Qt Creator 提供了添加不同版本环境的接口。方便用户切换编译环境。

linux下的是支持的,我用 fedora 系统没有安装 py2 ,自己安装 scons 和 env 后可以直接用,没出现哪个操作出现语法问题。

回到
顶部

发布
问题

投诉
建议