SLAA685 December   2015 CC430F6125 , CC430F6125 , CC430F6126 , CC430F6126 , CC430F6127 , CC430F6127 , CC430F6135 , CC430F6135 , CC430F6137 , CC430F6137 , CC430F6147 , CC430F6147 , MSP430AFE221 , MSP430AFE221 , MSP430AFE222 , MSP430AFE222 , MSP430AFE223 , MSP430AFE223 , MSP430AFE231 , MSP430AFE231 , MSP430AFE232 , MSP430AFE232 , MSP430AFE233 , MSP430AFE233 , MSP430AFE251 , MSP430AFE251 , MSP430AFE252 , MSP430AFE252 , MSP430AFE253 , MSP430AFE253 , 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 , MSP430F2254 , MSP430F2254 , MSP430F2272 , MSP430F2272 , MSP430F2274 , MSP430F2274 , 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 , MSP430F5212 , MSP430F5212 , MSP430F5214 , MSP430F5214 , MSP430F5217 , MSP430F5217 , MSP430F5219 , MSP430F5219 , MSP430F5222 , MSP430F5222 , MSP430F5224 , MSP430F5224 , MSP430F5229 , MSP430F5229 , MSP430F5232 , MSP430F5232 , MSP430F5234 , MSP430F5234 , MSP430F5237 , MSP430F5237 , MSP430F5239 , MSP430F5239 , MSP430F5242 , MSP430F5242 , MSP430F5244 , MSP430F5244 , MSP430F5247 , MSP430F5247 , MSP430F5249 , MSP430F5249 , MSP430F5252 , MSP430F5252 , MSP430F5253 , MSP430F5253 , MSP430F5254 , MSP430F5254 , MSP430F5255 , MSP430F5255 , MSP430F5256 , MSP430F5256 , MSP430F5257 , MSP430F5257 , MSP430F5258 , MSP430F5258 , MSP430F5259 , MSP430F5259 , MSP430F5304 , MSP430F5304 , MSP430F5308 , MSP430F5308 , MSP430F5309 , MSP430F5309 , MSP430F5310 , MSP430F5310 , MSP430F5324 , MSP430F5324 , MSP430F5325 , MSP430F5325 , MSP430F5326 , MSP430F5326 , MSP430F5327 , MSP430F5327 , MSP430F5328 , MSP430F5328 , MSP430F5329 , MSP430F5329 , MSP430F5333 , MSP430F5333 , MSP430F5335 , MSP430F5335 , MSP430F5336 , MSP430F5336 , MSP430F5338 , MSP430F5338 , MSP430F5340 , MSP430F5340 , MSP430F5341 , MSP430F5341 , MSP430F5342 , MSP430F5342 , MSP430F5358 , MSP430F5358 , MSP430F5359 , MSP430F5359 , MSP430F5418 , MSP430F5418 , MSP430F5418A , MSP430F5418A , MSP430F5419 , MSP430F5419 , MSP430F5419A , MSP430F5419A , MSP430F5435 , MSP430F5435 , MSP430F5435A , MSP430F5435A , MSP430F5436 , MSP430F5436 , MSP430F5436A , MSP430F5436A , MSP430F5437 , MSP430F5437 , MSP430F5437A , MSP430F5437A , MSP430F5438 , MSP430F5438 , MSP430F5438A , MSP430F5438A , 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 , MSP430F5528 , MSP430F5528 , MSP430F5529 , MSP430F5529 , MSP430F5630 , MSP430F5630 , MSP430F5631 , MSP430F5631 , MSP430F5632 , MSP430F5632 , MSP430F5633 , MSP430F5633 , MSP430F5634 , MSP430F5634 , MSP430F5635 , MSP430F5635 , MSP430F5636 , MSP430F5636 , MSP430F5637 , MSP430F5637 , MSP430F5638 , MSP430F5638 , MSP430F5658 , MSP430F5658 , MSP430F5659 , MSP430F5659 , MSP430F6433 , MSP430F6433 , MSP430F6435 , MSP430F6435 , MSP430F6436 , MSP430F6436 , MSP430F6438 , MSP430F6438 , MSP430F6458 , MSP430F6458 , MSP430F6459 , MSP430F6459 , MSP430F6630 , MSP430F6630 , MSP430F6631 , MSP430F6631 , MSP430F6632 , MSP430F6632 , MSP430F6633 , MSP430F6633 , MSP430F6634 , MSP430F6634 , MSP430F6635 , MSP430F6635 , MSP430F6636 , MSP430F6636 , MSP430F6637 , MSP430F6637 , MSP430F6638 , MSP430F6638 , MSP430F6658 , MSP430F6658 , MSP430F6659 , MSP430F6659 , MSP430F6745 , MSP430F6745 , MSP430F67451 , MSP430F67451 , MSP430F67451A , MSP430F67451A , MSP430F6745A , MSP430F6745A , MSP430F6746 , MSP430F6746 , MSP430F67461 , MSP430F67461 , MSP430F67461A , MSP430F67461A , MSP430F6746A , MSP430F6746A , MSP430F6747 , MSP430F6747 , MSP430F67471 , MSP430F67471 , MSP430F67471A , MSP430F67471A , MSP430F6747A , MSP430F6747A , MSP430F6748 , MSP430F6748 , MSP430F67481 , MSP430F67481 , MSP430F67481A , MSP430F67481A , MSP430F6748A , MSP430F6748A , MSP430F6749 , MSP430F6749 , MSP430F67491 , MSP430F67491 , MSP430F67491A , MSP430F67491A , MSP430F6749A , MSP430F6749A , MSP430F67621 , MSP430F67621 , MSP430F67621A , MSP430F67621A , MSP430F67641 , MSP430F67641 , MSP430F67641A , MSP430F67641A , MSP430F6765 , MSP430F6765 , MSP430F67651 , MSP430F67651 , MSP430F67651A , MSP430F67651A , MSP430F6765A , MSP430F6765A , MSP430F6766 , MSP430F6766 , MSP430F67661 , MSP430F67661 , MSP430F67661A , MSP430F67661A , MSP430F6766A , MSP430F6766A , MSP430F6767 , MSP430F6767 , MSP430F67671 , MSP430F67671 , MSP430F67671A , MSP430F67671A , MSP430F6767A , MSP430F6767A , MSP430F6768 , MSP430F6768 , MSP430F67681 , MSP430F67681 , MSP430F67681A , MSP430F67681A , MSP430F6768A , MSP430F6768A , MSP430F6769 , MSP430F6769 , MSP430F67691 , MSP430F67691 , MSP430F67691A , MSP430F67691A , MSP430F6769A , MSP430F6769A , MSP430F6775 , MSP430F6775 , MSP430F67751 , MSP430F67751 , MSP430F67751A , MSP430F67751A , MSP430F6775A , MSP430F6775A , MSP430F6776 , MSP430F6776 , MSP430F67761 , MSP430F67761 , MSP430F67761A , MSP430F67761A , MSP430F6776A , MSP430F6776A , MSP430F6777 , MSP430F6777 , MSP430F67771 , MSP430F67771 , MSP430F67771A , MSP430F67771A , MSP430F6777A , MSP430F6777A , MSP430F6778 , MSP430F6778 , MSP430F67781 , MSP430F67781 , MSP430F67781A , MSP430F67781A , MSP430F6778A , MSP430F6778A , MSP430F6779 , MSP430F6779 , MSP430F67791 , MSP430F67791 , MSP430F67791A , MSP430F67791A , MSP430F6779A , MSP430F6779A , 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 , MSP430FR2032 , MSP430FR2032 , MSP430FR2033 , MSP430FR2033 , MSP430FR2110 , MSP430FR2110 , MSP430FR2111 , MSP430FR2111 , MSP430FR2311 , MSP430FR2311 , MSP430FR2433 , MSP430FR2433 , MSP430FR2532 , MSP430FR2532 , MSP430FR2533 , MSP430FR2533 , MSP430FR2632 , MSP430FR2632 , MSP430FR2633 , MSP430FR2633 , MSP430FR4131 , MSP430FR4131 , MSP430FR4132 , MSP430FR4132 , MSP430FR5720 , MSP430FR5720 , MSP430FR5721 , MSP430FR5721 , MSP430FR5722 , MSP430FR5722 , MSP430FR5723 , MSP430FR5723 , MSP430FR5724 , MSP430FR5724 , MSP430FR5725 , MSP430FR5725 , MSP430FR5726 , MSP430FR5726 , MSP430FR5727 , MSP430FR5727 , MSP430FR5728 , MSP430FR5728 , MSP430FR5729 , MSP430FR5729 , MSP430FR5730 , MSP430FR5730 , MSP430FR5731 , MSP430FR5731 , MSP430FR5732 , MSP430FR5732 , MSP430FR5733 , MSP430FR5733 , MSP430FR5734 , MSP430FR5734 , MSP430FR5735 , MSP430FR5735 , MSP430FR5736 , MSP430FR5736 , MSP430FR5737 , MSP430FR5737 , MSP430FR5738 , MSP430FR5738 , MSP430FR5739 , MSP430FR5739 , MSP430FR5847 , MSP430FR5847 , MSP430FR58471 , MSP430FR58471 , MSP430FR5848 , MSP430FR5848 , MSP430FR5849 , MSP430FR5849 , MSP430FR5857 , MSP430FR5857 , MSP430FR5858 , MSP430FR5858 , MSP430FR5859 , MSP430FR5859 , MSP430FR5867 , MSP430FR5867 , MSP430FR58671 , MSP430FR58671 , MSP430FR5868 , MSP430FR5868 , MSP430FR5869 , MSP430FR5869 , MSP430FR5870 , MSP430FR5870 , MSP430FR5872 , MSP430FR5872 , MSP430FR58721 , MSP430FR58721 , MSP430FR5887 , MSP430FR5887 , MSP430FR5888 , MSP430FR5888 , MSP430FR5889 , MSP430FR5889 , MSP430FR58891 , MSP430FR58891 , MSP430FR5922 , MSP430FR5922 , MSP430FR59221 , MSP430FR59221 , MSP430FR5947 , MSP430FR5947 , MSP430FR59471 , MSP430FR59471 , MSP430FR5948 , MSP430FR5948 , MSP430FR5949 , MSP430FR5949 , MSP430FR5957 , MSP430FR5957 , MSP430FR5958 , MSP430FR5958 , MSP430FR5959 , MSP430FR5959 , MSP430FR5967 , MSP430FR5967 , MSP430FR5968 , MSP430FR5968 , MSP430FR5969 , MSP430FR5969 , MSP430FR5969-SP , MSP430FR5969-SP , MSP430FR59691 , MSP430FR59691 , MSP430FR5970 , MSP430FR5970 , MSP430FR5972 , MSP430FR5972 , MSP430FR59721 , MSP430FR59721 , MSP430FR5986 , MSP430FR5986 , MSP430FR5987 , MSP430FR5987 , MSP430FR5988 , MSP430FR5988 , MSP430FR5989 , MSP430FR5989 , MSP430FR5989-EP , MSP430FR5989-EP , MSP430FR59891 , MSP430FR59891 , MSP430FR5994 , MSP430FR5994 , MSP430FR6820 , MSP430FR6820 , MSP430FR6822 , MSP430FR6822 , MSP430FR68221 , MSP430FR68221 , MSP430FR6870 , MSP430FR6870 , MSP430FR6872 , MSP430FR6872 , MSP430FR68721 , MSP430FR68721 , MSP430FR6877 , MSP430FR6877 , MSP430FR6879 , MSP430FR6879 , MSP430FR68791 , MSP430FR68791 , MSP430FR6887 , MSP430FR6887 , MSP430FR6888 , MSP430FR6888 , MSP430FR6889 , MSP430FR6889 , MSP430FR68891 , MSP430FR68891 , MSP430FR6920 , MSP430FR6920 , MSP430FR6922 , MSP430FR6922 , MSP430FR69221 , MSP430FR69221 , MSP430FR6927 , MSP430FR6927 , MSP430FR69271 , MSP430FR69271 , MSP430FR6928 , MSP430FR6928 , MSP430FR6970 , MSP430FR6970 , MSP430FR6972 , MSP430FR6972 , MSP430FR69721 , MSP430FR69721 , MSP430FR6977 , MSP430FR6977 , MSP430FR6979 , MSP430FR6979 , MSP430FR69791 , MSP430FR69791 , MSP430FR6987 , MSP430FR6987 , MSP430FR6988 , MSP430FR6988 , MSP430FR6989 , MSP430FR6989 , MSP430FR69891 , MSP430FR69891 , 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 , MSP430G2153 , MSP430G2153 , MSP430G2201 , MSP430G2201 , MSP430G2202 , MSP430G2202 , MSP430G2203 , MSP430G2203 , MSP430G2210 , MSP430G2210 , MSP430G2211 , MSP430G2211 , MSP430G2212 , MSP430G2212 , MSP430G2213 , MSP430G2213 , MSP430G2221 , MSP430G2221 , MSP430G2230 , MSP430G2230 , MSP430G2231 , MSP430G2231 , MSP430G2232 , MSP430G2232 , MSP430G2233 , MSP430G2233 , MSP430G2252 , MSP430G2252 , MSP430G2253 , MSP430G2253 , MSP430G2302 , MSP430G2302 , MSP430G2303 , MSP430G2303 , MSP430G2312 , MSP430G2312 , MSP430G2313 , MSP430G2313 , MSP430G2332 , MSP430G2332 , MSP430G2333 , MSP430G2333 , MSP430G2352 , MSP430G2352 , MSP430G2353 , MSP430G2353 , MSP430G2402 , MSP430G2402 , MSP430G2403 , MSP430G2403 , MSP430G2412 , MSP430G2412 , MSP430G2413 , MSP430G2413 , MSP430G2432 , MSP430G2432 , MSP430G2433 , MSP430G2433 , MSP430G2444 , MSP430G2444 , MSP430G2452 , MSP430G2452 , MSP430G2453 , MSP430G2453 , MSP430G2513 , MSP430G2513 , MSP430G2533 , MSP430G2533 , MSP430G2544 , MSP430G2544 , MSP430G2553 , MSP430G2553 , MSP430G2744 , MSP430G2744 , MSP430G2755 , MSP430G2755 , MSP430G2855 , MSP430G2855 , MSP430G2955 , MSP430G2955 , MSP430L092 , MSP430L092 , MSP430TCH5E , MSP430TCH5E

 

  1.   MSP Code Protection Features
    1.     Trademarks
    2. 1 Introduction
    3. 2 Locking JTAG Across Different MSP Families
      1. 2.1 Physical JTAG Fuse (F1xx/F2xx/F4xx)
      2. 2.2 Electronic Fuse or Lock Without Password
        1. 2.2.1 F5xx/F6xx Electronic Fuse Implementation
        2. 2.2.2 FR5xx/FR6xx Electronic Fuse Implementation (Lock without password)
        3. 2.2.3 FR2xx/FR4xx Electronic Fuse Implementation
        4. 2.2.4 MSP430i2xx Electronic Fuse Implementation – Start-Up Code (SUC)
      3. 2.3 JTAG Lock With Password (FR5xx/FR6xx)
        1. 2.3.1 Using JTAG Lock With Password in CCS
        2. 2.3.2 Using JTAG Lock With Password in IAR
    4. 3 IP Encapsulation (IPE)
      1. 3.1 IP Encapsulation Using the IPE Tool in CCS
        1. 3.1.1 CCS Linker File Features for IPE
        2. 3.1.2 Placing Code and Data in the IPE Sections in CCS
        3. 3.1.3 Enabling IPE in CCS Project Options
        4. 3.1.4 Viewing the Compiler-Selected IPE partitioning in CCS
        5. 3.1.5 Running and Testing IPE Code in CCS
          1. 3.1.5.1 Debug Settings With IPE in CCS
          2. 3.1.5.2 Testing IPE in CCS
      2. 3.2 IP Encapsulation Using the IPE Tool in IAR
        1. 3.2.1 IAR Linker File Features for IPE
        2. 3.2.2 Placing Code and Data in the IPE Sections in IAR
        3. 3.2.3 Enabling IPE in IAR Project Options
        4. 3.2.4 Viewing the Compiler-Selected IPE Partitioning in IAR
        5. 3.2.5 Running and Testing IPE Code in IAR
          1. 3.2.5.1 Debug Settings With IPE in IAR
          2. 3.2.5.2 Testing IPE in IAR
    5. 4 Bootloader (BSL) Security Features
      1. 4.1 Password Protection
      2. 4.2 Mass Erase on Incorrect Password
      3. 4.3 Disabling Bootloader (BSL)
    6. 5 References

Placing Code and Data in the IPE Sections in CCS

The user must indicate for the compiler which code and data should be placed in the IPE sections defined in the linker file. For the MSP430 TI C/C++ compiler, this is enabled through the use of two pragmas, CODE_SECTION and DATA_SECTION. For more information on these pragmas, see the MSP430 Optimizing C/C++ Compiler User's Guide (SLAU132). For more information on enabling IPE in CCS using the tool, see the Code Composer Studio v6.1 for MSP430 User's Guide (SLAU157).

Code that should be placed in the IPE area must be contained in a function or set of functions. These functions should all be placed in the .ipe section (see the following example).

#pragma CODE_SECTION(IPE_encapsulatedInit, ".ipe") void IPE_encapsulatedInit (void) { ... ... } #pragma CODE_SECTION(IPE_encapsulatedBlink, ".ipe") void IPE_encapsulatedBlink (void) { ... ... }

Any interrupt service routines (ISRs) used by the IP encapsulated code should also be placed in the IPE area so that they are also encapsulated. These ISRs should be placed in the .ipe:_isr section (see the following example).

#pragma CODE_SECTION(TIMER0_A0_ISR, ".ipe:_isr") #pragma vector=TIMER0_A0_VECTOR __interrupt void TIMER0_A0_ISR(void) { ... ... }

Some applications may have constants like encryption keys that are recommended to be stored in the IPE area. The CCS linker file does not allow constants in the same section as variables or code. These constant values should be placed in the .ipe_const section (see the following example).

#pragma DATA_SECTION(IPE_encapsulatedKeys, ".ipe_const") const uint16_t IPE_encapsulatedKeys[] = {0x0123, 0x4567, 0x89AB, 0xCDEF, 0xAAAA, 0xBBBB, 0xCCCC, 0xDDDD};

Finally, any variables used by the IPE code, should also be placed in the IPE area rather than RAM so that other parts of the code cannot read or access them.

#pragma DATA_SECTION(IPE_encapsulatedCount, ".ipe_vars") unsigned char IPE_encapsulatedCount; ... #pragma DATA_SECTION(IPE_i, ".ipe_vars") uint8_t IPE_i;

The .ipe_vars section is set as NOINIT in the linker file to indicate that any variables placed here should not have any initialization value and should not be zero-initialized by the start-up code. This is because the C start-up code and .cinit initialization tables are not located in the IPE area, and therefore cannot write to and set the variables in the IPE section because they do not have permission. For the user, this means that any variables placed in the .ipe_vars section, should be set in a custom init function that is placed in the .ipe section, so that the variables are initialized by code running inside the IPE area. This init function should then be called by the user's main code at start-up to initialize the variables before they are used, for example after halting the watchdog timer.

#pragma DATA_SECTION(IPE_encapsulatedCount, ".ipe_vars") unsigned char IPE_encapsulatedCount; /* * main.c */ void main(void) { WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer IPE_encapsulatedInit(); ... ... } #pragma CODE_SECTION(IPE_encapsulatedInit, ".ipe") void IPE_encapsulatedInit (void) { IPE_encapsulatedCount = 1; }