# msp430¶

## Testing¶

To test the code for msp430, the openmsp430 project is used.

https://opencores.org/project,openmsp430

## Module¶

To flash the msp430 board, the following program can be used:

http://www.ti.com/tool/msp430-flasher

class ppci.arch.msp430.Msp430Arch(options=None)

Texas Instruments msp430 target architecture

determine_arg_locations(arg_types)

Given a set of argument types, determine location for argument ABI: param1 = r12 param2 = r13 param3 = r14 param4 = r15 further parameters are put on stack. retval = r12

determine_rv_location(ret_type)

Determine the location of a return value of a function given the type of return value

gen_call(frame, label, args, rv)

Generate instructions for a function call.

gen_epilogue(frame)

Return epilogue sequence for a frame. Adjust frame pointer and add constant pool

gen_function_enter(args)

Generate code to extract arguments from the proper locations

The default implementation tries to use registers and move instructions.

Parameters: args – an iterable of virtual registers in which the arguments must be placed.
gen_prologue(frame)

Returns prologue instruction sequence

get_runtime()

Compiles the runtime support for msp430. It takes some c3 code and some assembly helpers.

litpool(frame)

Generate instruction for the current literals

move(dst, src)

Generate a move from src to dst

static round_upwards(v)

Round value upwards to multiple of 2