Texas Instruments MSP50C6xx User Manual
Page 325
Implementation Details
5-29
Code Development Tools
add_string(p,pp,p,lgm1+i+1);
}
if(sign == –1)
{
neg_string(pp,p,STR_LENGTH((lgp+2)));
copy_string(p,pp,STR_LENGTH((lgp+2)));
}
free(mm1);
free(mm2);
free(pp);
}
cmm_func main(int argc,char *argv)
{
int m1[4],m2[4],product[9];
xfer_const(m1,M1,STR_LENGTH(4));
xfer_const(m2,M2,STR_LENGTH(4));
string_multiply(product,STR_LENGTH(9),m1,STR_LENGTH(4),m2,STR_LENGTH(4));
}
5.6.5
Programming Example, C – – With Assembly Routines
There are several important considerations when using the C– – compiler. The
ram allocation must be coordinated so that a location isn’t accidentally used
twice. In assembly this is usually done with IRX files by making each label
equal to the location of the previous one, plus whatever storage space is need-
ed. All of the IRX files for a project are then combined in a master IRX file so
that the space for each sub file can be allocated. For example ( a master IRX
file ):
RAM_SIZE
equ 640
STACK
equ 2 * (RAM_SIZE – 14)
BEGIN_RAM
equ 0
RESERVED
equ BEGIN_RAM + 2 * 1
RAMSTART_INT equ RESERVED
include ”..\inter\inter_ram.irx”
RAMSTART_ASM equ RAMEND_INT
include
”. .\asm_ram.irx”