Tool/software: Code Composer Studio
Dear Sir:
I am trying to get a printf program to compile on my msp430g2553 Launchpad using CCS 5. This program is not the standard printf C program but a reduced memory size program.
One can find a discussion about running this program on a msp430 CPU at this link:
I have attached a copy of the program below:
#include "msp430g2553.h" // #include "msp430.h" #include "stdarg.h" // void putc(unsigned); void puts(char *); static const unsigned long dv[] = { // 4294967296 // 32 bit unsigned max 1000000000, // +0 100000000, // +1 10000000, // +2 1000000, // +3 100000, // +4 // 65535 // 16 bit unsigned max 10000, // +5 1000, // +6 100, // +7 10, // +8 1, // +9 }; static void xtoa(unsigned long x, const unsigned long *dp) { char c; unsigned long d; if(x) { while(x < *dp) ++dp; do { d = *dp++; c = '0'; while(x >= d) ++c, x -= d; putc(c); } while(!(d & 1)); } else putc('0'); } static void puth(unsigned n) { static const char hex[16] = { '0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; putc(hex[n & 15]); } void printf(char *format, ...) { char c; int i; long n; va_list a; va_start(a, format); while(c = *format++) { if(c == '%') { switch(c = *format++) { case 's': // String puts(va_arg(a, char*)); break; case 'c': // Char putc(va_arg(a, char)); break; case 'i': // 16 bit Integer case 'u': // 16 bit Unsigned i = va_arg(a, int); if(c == 'i' && i < 0) i = -i, putc('-'); xtoa((unsigned)i, dv + 5); break; case 'l': // 32 bit Long case 'n': // 32 bit uNsigned loNg n = va_arg(a, long); if(c == 'l' && n < 0) n = -n, putc('-'); xtoa((unsigned long)n, dv); break; case 'x': // 16 bit heXadecimal i = va_arg(a, int); puth(i >> 12); puth(i >> 8); puth(i >> 4); puth(i); break; case 0: return; default: goto bad_fmt; } } else bad_fmt: putc(c); } va_end(a); }
I have attached a snapshot of the error message that I received from the compiler. Please take notice that I have inserted larger size stack and heap sizes but to no avail. The copy below is a typical error message.
As part of the solution to this problem I am attaching a snapshot of the MSP430g datasheets. I would like to be able to interpret the datasheet information in the snapshot correctly. In the picture below you will see 2 values of RAM. Can you please tell me how to interpret those 2 values, in terms of the maximum values that can be inserted into the heap and stack size using the msp430g2553 processor.