beautypg.com

Texas Instruments MSP50C6xx User Manual

Page 325

background image

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”