原创
TI DSP SYS/BIOS 28335 Printf/Sprintf问题
最近耍上了DSP,跑了个TI的系统SYS/BIOS,想弄个Hello World例程,没想到运行时候控制台啥提示都没有。
ti wiki上有篇tips for using printf,说明了这个问题的产生可能,由于是纯文字的,不好理解,这里给出图示,解决这个问题。
1.包含stdio.h这是必须的,不然编译不提示错误,但是运行时候控制台啥都没有。
2.设置堆的大小
printf需要超过400字节的空间,相对SYS/BIOS提供的System_Printf,速度慢100倍,需要1000个机器周期。
3.设置ccs提供的printf支持等级,full,nofloat,mini。
4.如果使用了SYS/BIOS而不是裸奔的话,还需要在SYS/BIOS设置堆大小。如果是在任务中调用printf,因任务有自己独立的堆栈,还需要设置任务自己的堆栈大小。
这样Memory模块的实际堆大小以系统默认设置的为准。
最后,在这个c2000,c28系统中,char的单位是16bit双字节,int是16bit,long才是32bit,如果要打印32bit的数据,需要加上%l参数在打印格式字符中,%d,%f只能打印16bit的数据,打印32bit的数据会只保留高字节的数据,看下图。
忘了一点,调试选项中,CIO一定要打开。
45085608_355927244 2014-5-22 14:35