SLAA140A February   2002  – August 2018 MSP430BT5190 , MSP430BT5190 , MSP430F1101 , MSP430F1101 , MSP430F1101A , MSP430F1101A , MSP430F1111A , MSP430F1111A , MSP430F112 , MSP430F112 , MSP430F1121 , MSP430F1121 , MSP430F1121A , MSP430F1121A , MSP430F1122 , MSP430F1122 , MSP430F1132 , MSP430F1132 , MSP430F122 , MSP430F122 , MSP430F1222 , MSP430F1222 , MSP430F123 , MSP430F123 , MSP430F1232 , MSP430F1232 , MSP430F133 , MSP430F133 , MSP430F135 , MSP430F135 , MSP430F147 , MSP430F147 , MSP430F1471 , MSP430F1471 , MSP430F148 , MSP430F148 , MSP430F1481 , MSP430F1481 , MSP430F149 , MSP430F149 , MSP430F1491 , MSP430F1491 , MSP430F155 , MSP430F155 , MSP430F156 , MSP430F156 , MSP430F157 , MSP430F157 , MSP430F1610 , MSP430F1610 , MSP430F1611 , MSP430F1611 , MSP430F1612 , MSP430F1612 , MSP430F167 , MSP430F167 , MSP430F168 , MSP430F168 , MSP430F169 , MSP430F169 , MSP430F2001 , MSP430F2001 , MSP430F2002 , MSP430F2002 , MSP430F2003 , MSP430F2003 , MSP430F2011 , MSP430F2011 , MSP430F2012 , MSP430F2012 , MSP430F2013 , MSP430F2013 , MSP430F2013-EP , MSP430F2013-EP , MSP430F2101 , MSP430F2101 , MSP430F2111 , MSP430F2111 , MSP430F2112 , MSP430F2112 , MSP430F2121 , MSP430F2121 , MSP430F2122 , MSP430F2122 , MSP430F2131 , MSP430F2131 , MSP430F2132 , MSP430F2132 , MSP430F2232 , MSP430F2232 , MSP430F2234 , MSP430F2234 , MSP430F2252 , MSP430F2252 , MSP430F2252-Q1 , MSP430F2252-Q1 , MSP430F2254 , MSP430F2254 , MSP430F2272 , MSP430F2272 , MSP430F2272-Q1 , MSP430F2272-Q1 , MSP430F233 , MSP430F233 , MSP430F2330 , MSP430F2330 , MSP430F235 , MSP430F235 , MSP430F2350 , MSP430F2350 , MSP430F2370 , MSP430F2370 , MSP430F2410 , MSP430F2410 , MSP430F2416 , MSP430F2416 , MSP430F2417 , MSP430F2417 , MSP430F2418 , MSP430F2418 , MSP430F2419 , MSP430F2419 , MSP430F247 , MSP430F247 , MSP430F2471 , MSP430F2471 , MSP430F248 , MSP430F248 , MSP430F2481 , MSP430F2481 , MSP430F249 , MSP430F249 , MSP430F2491 , MSP430F2491 , MSP430F2616 , MSP430F2616 , MSP430F2617 , MSP430F2617 , MSP430F2618 , MSP430F2618 , MSP430F2619 , MSP430F2619 , MSP430F412 , MSP430F412 , MSP430F413 , MSP430F413 , MSP430F4132 , MSP430F4132 , MSP430F415 , MSP430F415 , MSP430F4152 , MSP430F4152 , MSP430F417 , MSP430F417 , MSP430F423 , MSP430F423 , MSP430F423A , MSP430F423A , MSP430F425 , MSP430F425 , MSP430F4250 , MSP430F4250 , MSP430F425A , MSP430F425A , MSP430F4260 , MSP430F4260 , MSP430F427 , MSP430F427 , MSP430F4270 , MSP430F4270 , MSP430F427A , MSP430F427A , MSP430F435 , MSP430F435 , MSP430F4351 , MSP430F4351 , MSP430F436 , MSP430F436 , MSP430F4361 , MSP430F4361 , MSP430F437 , MSP430F437 , MSP430F4371 , MSP430F4371 , MSP430F438 , MSP430F438 , MSP430F439 , MSP430F439 , MSP430F447 , MSP430F447 , MSP430F448 , MSP430F448 , MSP430F4481 , MSP430F4481 , MSP430F449 , MSP430F449 , MSP430F4491 , MSP430F4491 , MSP430F4616 , MSP430F4616 , MSP430F46161 , MSP430F46161 , MSP430F4617 , MSP430F4617 , MSP430F46171 , MSP430F46171 , MSP430F4618 , MSP430F4618 , MSP430F46181 , MSP430F46181 , MSP430F4619 , MSP430F4619 , MSP430F46191 , MSP430F46191 , MSP430F47126 , MSP430F47126 , MSP430F47127 , MSP430F47127 , MSP430F47163 , MSP430F47163 , MSP430F47166 , MSP430F47166 , MSP430F47167 , MSP430F47167 , MSP430F47173 , MSP430F47173 , MSP430F47176 , MSP430F47176 , MSP430F47177 , MSP430F47177 , MSP430F47183 , MSP430F47183 , MSP430F47186 , MSP430F47186 , MSP430F47187 , MSP430F47187 , MSP430F47193 , MSP430F47193 , MSP430F47196 , MSP430F47196 , MSP430F47197 , MSP430F47197 , MSP430F477 , MSP430F477 , MSP430F478 , MSP430F478 , MSP430F4783 , MSP430F4783 , MSP430F4784 , MSP430F4784 , MSP430F479 , MSP430F479 , MSP430F4793 , MSP430F4793 , MSP430F4794 , MSP430F4794 , MSP430F5304 , MSP430F5304 , MSP430F5308 , MSP430F5308 , MSP430F5309 , MSP430F5309 , MSP430F5310 , MSP430F5310 , MSP430F5324 , MSP430F5324 , MSP430F5325 , MSP430F5325 , MSP430F5326 , MSP430F5326 , MSP430F5327 , MSP430F5327 , MSP430F5328 , MSP430F5328 , MSP430F5329 , MSP430F5329 , MSP430F5333 , MSP430F5333 , MSP430F5336 , MSP430F5336 , MSP430F5338 , MSP430F5338 , MSP430F5340 , MSP430F5340 , MSP430F5341 , MSP430F5341 , MSP430F5342 , MSP430F5342 , MSP430F5418 , MSP430F5418 , MSP430F5418A , MSP430F5418A , MSP430F5419 , MSP430F5419 , MSP430F5419A , MSP430F5419A , MSP430F5435 , MSP430F5435 , MSP430F5435A , MSP430F5435A , MSP430F5436 , MSP430F5436 , MSP430F5436A , MSP430F5436A , MSP430F5437 , MSP430F5437 , MSP430F5437A , MSP430F5437A , MSP430F5438 , MSP430F5438 , MSP430F5500 , MSP430F5500 , MSP430F5501 , MSP430F5501 , MSP430F5502 , MSP430F5502 , MSP430F5503 , MSP430F5503 , MSP430F5504 , MSP430F5504 , MSP430F5505 , MSP430F5505 , MSP430F5506 , MSP430F5506 , MSP430F5507 , MSP430F5507 , MSP430F5508 , MSP430F5508 , MSP430F5509 , MSP430F5509 , MSP430F5510 , MSP430F5510 , MSP430F5513 , MSP430F5513 , MSP430F5514 , MSP430F5514 , MSP430F5515 , MSP430F5515 , MSP430F5517 , MSP430F5517 , MSP430F5519 , MSP430F5519 , MSP430F5521 , MSP430F5521 , MSP430F5522 , MSP430F5522 , MSP430F5524 , MSP430F5524 , MSP430F5525 , MSP430F5525 , MSP430F5526 , MSP430F5526 , MSP430F5527 , MSP430F5527 , MSP430F5529 , MSP430F5529 , MSP430F5630 , MSP430F5630 , MSP430F5631 , MSP430F5631 , MSP430F5632 , MSP430F5632 , MSP430F5633 , MSP430F5633 , MSP430F5634 , MSP430F5634 , MSP430F5635 , MSP430F5635 , MSP430F5636 , MSP430F5636 , MSP430F5637 , MSP430F5637 , MSP430F5638 , MSP430F5638 , MSP430F6433 , MSP430F6433 , MSP430F6435 , MSP430F6435 , MSP430F6436 , MSP430F6436 , MSP430F6438 , MSP430F6438 , MSP430F6630 , MSP430F6630 , MSP430F6631 , MSP430F6631 , MSP430F6632 , MSP430F6632 , MSP430F6633 , MSP430F6633 , MSP430F6634 , MSP430F6634 , MSP430F6635 , MSP430F6635 , MSP430F6636 , MSP430F6636 , MSP430F6637 , MSP430F6637 , MSP430F6638 , MSP430F6638 , MSP430FE423 , MSP430FE423 , MSP430FE4232 , MSP430FE4232 , MSP430FE423A , MSP430FE423A , MSP430FE4242 , MSP430FE4242 , MSP430FE425 , MSP430FE425 , MSP430FE4252 , MSP430FE4252 , MSP430FE425A , MSP430FE425A , MSP430FE427 , MSP430FE427 , MSP430FE4272 , MSP430FE4272 , MSP430FE427A , MSP430FE427A , MSP430FG4250 , MSP430FG4250 , MSP430FG4260 , MSP430FG4260 , MSP430FG4270 , MSP430FG4270 , MSP430FG437 , MSP430FG437 , MSP430FG438 , MSP430FG438 , MSP430FG439 , MSP430FG439 , MSP430FG4616 , MSP430FG4616 , MSP430FG4617 , MSP430FG4617 , MSP430FG4618 , MSP430FG4618 , MSP430FG4619 , MSP430FG4619 , MSP430FG477 , MSP430FG477 , MSP430FG478 , MSP430FG478 , MSP430FG479 , MSP430FG479 , MSP430FG6425 , MSP430FG6425 , MSP430FG6426 , MSP430FG6426 , MSP430FG6625 , MSP430FG6625 , MSP430FG6626 , MSP430FG6626 , MSP430FW423 , MSP430FW423 , MSP430FW425 , MSP430FW425 , MSP430FW427 , MSP430FW427 , MSP430FW428 , MSP430FW428 , MSP430FW429 , MSP430FW429 , MSP430G2001 , MSP430G2001 , MSP430G2101 , MSP430G2101 , MSP430G2102 , MSP430G2102 , MSP430G2111 , MSP430G2111 , MSP430G2112 , MSP430G2112 , MSP430G2121 , MSP430G2121 , MSP430G2131 , MSP430G2131 , MSP430G2132 , MSP430G2132 , MSP430G2152 , MSP430G2152 , MSP430G2201 , MSP430G2201 , MSP430G2201-Q1 , MSP430G2201-Q1 , MSP430G2211 , MSP430G2211 , MSP430G2212 , MSP430G2212 , MSP430G2221 , MSP430G2221 , MSP430G2231-Q1 , MSP430G2231-Q1 , MSP430G2232 , MSP430G2232 , MSP430G2252 , MSP430G2252 , MSP430G2302 , MSP430G2302 , MSP430G2312 , MSP430G2312 , MSP430G2332 , MSP430G2332 , MSP430G2352 , MSP430G2352 , MSP430G2402 , MSP430G2402 , MSP430G2432 , MSP430G2432 , MSP430G2452 , MSP430G2452 , MSP430L092 , MSP430L092

 

  1.   Mixing C and Assembler With MSP430™ MCUs
    1.     Trademarks
    2. 1 Definition of the C-Compiler for Passing Variables Between Functions
      1. 1.1 Stack Frames and Parameter Passing
      2. 1.2 Calling Convention – Register Use With the IAR C-Compiler
      3. 1.3 Calling Convention – Register Use With the CCS C-Compiler
      4. 1.4 Interrupt Functions
    3. 2 Requirements of Assembler Routines to Support Calls From C
      1. 2.1 Local Storage Allocation
      2. 2.2 Interrupt Functions
      3. 2.3 Define Interrupt Vectors
    4. 3 Combining C and Assembler Functions
      1. 3.1 General Basics
      2. 3.2 Call Assembler Functions Without Parameters to Pass
      3. 3.3 Call Assembler Functions With Parameters to Pass
      4. 3.4 Define an Interrupt Service Routine in Assembler
      5. 3.5 Define an Interrupt Service Routine for Special Interrupts
      6. 3.6 Call C Functions from Assembler
      7. 3.7 Exit Low-Power Mode While in the Interrupt Service Routine
  2.   Revision History

Local Storage Allocation

If the routine needs local storage, the routine allocates the storage in the following ways:

  • On the hardware stack
  • In static workspace (if the routine is not required to be simultaneously reusable (re-entrant))

IAR: Functions can always use R12 to R15 without saving them and R6 to R11 if they are pushed before use. R4 and R5 must not be used for ROM monitor compatible code. If the C code is compiled with the ‑ur45 option, but the application is not to run in the ROM monitor, then it is possible to use R4 and R5 in the assembler routine without saving them, because the C code never uses them.

CCS: Functions can always use R12 to R15 without saving them and R6 to R11 if they are pushed before use. R4 and R5 must not be used for ROM monitor compatible code.