添加了printf函数想测试一下,然后编译出错。1 #10099-D</a> program will not fit into available memory. placement with alignment/blocking fails for section ".text" size 0x1be0 page 0. Available memory ranges: 2812_RAM_lnk.cmd /2812Test line 86 C/C++ Problem
查阅资料,应该调整-stack和-heap的大小,并且工程库文件必须选择rts2800_ml.lib而不是rts2800.lib。不过我修改-stack和-heap如下图,无效。更改工程库文件为rts2800_ml.lib也无效,最后在Project-Properties-Build-Advanced Options-Library Function Assumptions下,Level of printf/scanf support required(--printf_support)选择minimal,如下图。编译通过。
1 /*2 * main.c3 */4 #include <stdio.h>5 6 int main(void) {7 printf("Hello DSP! ");8 return 0;9 }[url=][/url]
添加了printf函数想测试一下,然后编译出错。1 #10099-D</a> program will not fit into available memory. placement with alignment/blocking fails for section ".text" size 0x1be0 page 0. Available memory ranges: 2812_RAM_lnk.cmd /2812Test line 86 C/C++ Problem
查阅资料,应该调整-stack和-heap的大小,并且工程库文件必须选择rts2800_ml.lib而不是rts2800.lib。不过我修改-stack和-heap如下图,无效。更改工程库文件为rts2800_ml.lib也无效,最后在Project-Properties-Build-Advanced Options-Library Function Assumptions下,Level of printf/scanf support required(--printf_support)选择minimal,如下图。编译通过。
老兄,图看不到
- static void esp8266_print(char* fmt,...)
- {
- uint8_t i = 0, j = 0;
- va_list ap;
- (void)j;
- va_start(ap,fmt);
- vsprintf((char*)send_data_buf,fmt,ap);
- va_end(ap);
- /* 发送的数据长度 */
- i=strlen((const char*)send_data_buf);
- /* 将字符串轮询输出 */
- for(j = 0; j < i; j ++) {
- ESP8266_SEND_DATA(send_data_buf[j]);
- }
- }
复制代码可以自己写一个,这段代码刚好是28069用的,把ESP8266_SEND_DATA换成你自己的发送函数。
stm32可以做输出重定向
- int fputc(int ch, FILE *f)
- {
- /* 将Printf内容发往串口 */
- USART_SendData(USART1, (unsigned char) ch);
- while (!(USART1->SR & USART_FLAG_TXE));
-
- return (ch);
- }
复制代码28069没这么用过,不确定是否一样。
一周热门 更多>