社区导航

 
查看: 990|回复: 12

[求助] 如何使用printf调试

[复制链接]

7

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-11-24 15:59:51 | 显示全部楼层 |阅读模式
刚接触ti的芯片,用的是tms320f28069的芯片,现在使用的工具是ccs6,想使用printf调试,应该怎么做,有大神解决的麻烦指导一下


回复

使用道具 举报

80

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-11-26 10:41:07 | 显示全部楼层
使用Code Composer Studio  Version: 6.1.1.00022,建立TMS320F2812工程。
[url=][/url]
1 /*2 * main.c3  */4 #include <stdio.h>5 6 int main(void) {7     printf("Hello DSP!\r\n");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,如下图。编译通过。


点评

老兄,图看不到  详情 回复 发表于 2018-11-26 21:13


回复

使用道具 举报

10

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-11-26 11:21:10 | 显示全部楼层
添加stdio头文件,修改printf相关函数。


回复

使用道具 举报

60

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-11-26 21:13:14 | 显示全部楼层
电容器 发表于 2018-11-26 10:41
使用Code Composer Studio  Version: 6.1.1.00022,建立TMS320F2812工程。
1 /*2  * main.c3  */4 #includ ...

老兄,图看不到


回复

使用道具 举报

115

TA的帖子

2

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-11-28 09:06:00 | 显示全部楼层
  1. static void esp8266_print(char* fmt,...)
  2. {
  3.     uint8_t i = 0, j = 0;
  4.     va_list ap;
  5.     (void)j;
  6.     va_start(ap,fmt);
  7.     vsprintf((char*)send_data_buf,fmt,ap);
  8.     va_end(ap);
  9.     /* 发送的数据长度 */
  10.     i=strlen((const char*)send_data_buf);

  11.     /* 将字符串轮询输出 */
  12.     for(j = 0; j < i; j ++) {
  13.         ESP8266_SEND_DATA(send_data_buf[j]);
  14.     }
  15. }
复制代码


可以自己写一个,这段代码刚好是28069用的,把ESP8266_SEND_DATA换成你自己的发送函数。
stm32可以做输出重定向
  1. int fputc(int ch, FILE *f)
  2. {
  3. /* 将Printf内容发往串口 */
  4.   USART_SendData(USART1, (unsigned char) ch);
  5.   while (!(USART1->SR & USART_FLAG_TXE));

  6.   return (ch);
  7. }
复制代码

28069没这么用过,不确定是否一样。


回复

使用道具 举报

843

TA的帖子

0

TA的资源

纯净的硅(中级)

Rank: 5Rank: 5

发表于 2018-11-29 16:03:47 | 显示全部楼层
沙发回复的内容是正确的,你可以参考着操作一下看看


回复

使用道具 举报

514

TA的帖子

0

TA的资源

一粒金砂(高级)

Rank: 3Rank: 3

发表于 2018-11-29 17:04:13 | 显示全部楼层
给了这么多建议,楼主的问题解决否/


回复

使用道具 举报

1569

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

发表于 2018-11-30 10:39:23 | 显示全部楼层
图看不到,不好分析


回复

使用道具 举报

7

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-12-5 09:08:19 | 显示全部楼层
alan000345 发表于 2018-11-29 17:04
给了这么多建议,楼主的问题解决否/

不好意思 最近在搞别的 我待会试试


回复

使用道具 举报

7

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-12-5 09:10:53 | 显示全部楼层
as78er96 发表于 2018-11-26 11:21
添加stdio头文件,修改printf相关函数。

这个我也知道 ,我就是根据网上的说的重定向printf,测试了还是不行才来问的


回复

使用道具 举报

7

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-12-5 09:12:43 | 显示全部楼层
lcn1992 发表于 2018-11-28 09:06
可以自己写一个,这段代码刚好是28069用的,把ESP8266_SEND_DATA换成你自己的发送函数。
stm32可以做 ...

好的我试试,我本身也是想重定向的,但是技术不够,做不出来只好来问了


回复

使用道具 举报

7

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-12-5 09:14:32 | 显示全部楼层
电容器 发表于 2018-11-26 10:41
使用Code Composer Studio  Version: 6.1.1.00022,建立TMS320F2812工程。
1 /*2  * main.c3  */4 #includ ...

好的我会试试,最近有事可能要晚点才能来回复


回复

使用道具 举报

7

TA的帖子

0

TA的资源

一粒金砂(中级)

Rank: 2

 楼主| 发表于 2018-12-5 09:27:00 | 显示全部楼层
电容器 发表于 2018-11-26 10:41
使用Code Composer Studio  Version: 6.1.1.00022,建立TMS320F2812工程。
1 /*2  * main.c3  */4 #includ ...

那Project-Properties-Build-Advanced Options-Library Function Assumptions下,Level of printf/scanf support required下面的几个选项      file dosen't define...    / file redefine an rts library...../    file contains rts library...需要勾选吗,你给的图我这边看不见


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

  • 论坛活动 E手掌握

    扫码关注
    EEWORLD 官方微信

  • EE福利  唾手可得

    扫码关注
    EE福利 唾手可得

Archiver|手机版|小黑屋|电子工程世界 ( 京ICP证 060456 )

GMT+8, 2018-12-19 13:00 , Processed in 0.344612 second(s), 15 queries , Gzip On, MemCache On.

快速回复 返回顶部 返回列表