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 , MSP430V294 , MSP430V294

 

  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 IAR

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 IAR C/C++ compiler, this is enabled through the use of #pragma location. For more information on this pragma and also on enabling IPE in IAR, see the IAR C/C++ Compiler User Guide, found under the Help menu in IAR.

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 IPECODE16 section (see the following example).

#pragma location = "IPECODE16" void IPE_encapsulatedInit(void) { ... ... } #pragma location = "IPECODE16" 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 also be placed in the IPECODE16 section (see the following example).

#pragma location = "IPECODE16" #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 IAR linker file does not allow constants in the same section as variables or code. These constant values should be placed in the IPEDATA16_C section (see the following example).

#pragma location = "IPEDATA16_C" 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 IPEDATA16_N section rather than RAM so that other parts of the code cannot read or access them. Note that these variables should be marked with the __no_init keyword.

#pragma location = "IPEDATA16_N" __no_init unsigned char IPE_encapsulatedCount;

The variables should be marked with the __no_init keyword 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 IPEDATA16_N section, should be set in a custom init function that is placed in the IPECODE16 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 location = "IPEDATA16_N" __no_init unsigned char IPE_encapsulatedCount; /* * main.c */ void main(void) { WDTCTL = WDTPW | WDTHOLD; // Stop watchdog timer IPE_encapsulatedInit(); ... ... } #pragma location = "IPECODE16" void IPE_encapsulatedInit(void) { IPE_encapsulatedCount = 1; }