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.



