弱问:STM32F4把栈放在CCM RAM时printf不正常

2019-12-10 18:22发布

gcc,重写了_write函数,输出字符到USART1。
在lds里如果设置_estack = 0x10000000 + 64K,则printf会直接蹦到HardFault;
设为_estack = 0x20000000 + 128K, 则printf一切正常。

查了一下map文件,是在调用_write之前,在_puts_r就进了HardFault了。
usart没有用到dma发送,就是普通方式,不至于受限吧。。

难道CCM只能手动建堆来用么?不用printf肯定不行啊。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。