gcc,重写了_write函数,输出字符到USART1。
在lds里如果设置_estack = 0x10000000 + 64K,则printf会直接蹦到HardFault;
设为_estack = 0x20000000 + 128K, 则printf一切正常。
查了一下map文件,是在调用_write之前,在_puts_r就进了HardFault了。
usart没有用到dma发送,就是普通方式,不至于受限吧。。
难道CCM只能手动建堆来用么?不用printf肯定不行啊。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
ccm是紧耦合,只能和cpu通信,不能直接和外设通信,如果uart直接用到ccm的地址就会出错,
不过你没有dma,这个理论上是可以访问的
一周热门 更多>