ZHCAA02 December   2015 CC430F6125 , CC430F6126 , CC430F6127 , CC430F6135 , CC430F6137 , CC430F6147 , MSP430AFE221 , MSP430AFE222 , MSP430AFE223 , MSP430AFE231 , MSP430AFE232 , MSP430AFE233 , MSP430AFE251 , MSP430AFE252 , MSP430AFE253 , MSP430BT5190 , MSP430F1101 , MSP430F1101A , MSP430F1111A , MSP430F112 , MSP430F1121 , MSP430F1121A , MSP430F1122 , MSP430F1132 , MSP430F122 , MSP430F1222 , MSP430F123 , MSP430F1232 , MSP430F133 , MSP430F135 , MSP430F147 , MSP430F1471 , MSP430F148 , MSP430F1481 , MSP430F149 , MSP430F1491 , MSP430F155 , MSP430F156 , MSP430F157 , MSP430F1610 , MSP430F1611 , MSP430F1612 , MSP430F167 , MSP430F168 , MSP430F169 , MSP430F2001 , MSP430F2002 , MSP430F2003 , MSP430F2011 , MSP430F2012 , MSP430F2013 , MSP430F2013-EP , MSP430F2101 , MSP430F2111 , MSP430F2112 , MSP430F2121 , MSP430F2122 , MSP430F2131 , MSP430F2132 , MSP430F2232 , MSP430F2234 , MSP430F2252 , MSP430F2254 , MSP430F2272 , MSP430F2274 , MSP430F233 , MSP430F2330 , MSP430F235 , MSP430F2350 , MSP430F2370 , MSP430F2410 , MSP430F2416 , MSP430F2417 , MSP430F2418 , MSP430F2419 , MSP430F247 , MSP430F2471 , MSP430F248 , MSP430F2481 , MSP430F249 , MSP430F2491 , MSP430F2616 , MSP430F2617 , MSP430F2618 , MSP430F2619 , MSP430F412 , MSP430F413 , MSP430F4132 , MSP430F415 , MSP430F4152 , MSP430F417 , MSP430F423 , MSP430F423A , MSP430F425 , MSP430F4250 , MSP430F425A , MSP430F4260 , MSP430F427 , MSP430F4270 , MSP430F427A , MSP430F435 , MSP430F4351 , MSP430F436 , MSP430F4361 , MSP430F437 , MSP430F4371 , MSP430F438 , MSP430F439 , MSP430F447 , MSP430F448 , MSP430F4481 , MSP430F449 , MSP430F4491 , MSP430F4616 , MSP430F46161 , MSP430F4617 , MSP430F46171 , MSP430F4618 , MSP430F46181 , MSP430F4619 , MSP430F46191 , MSP430F47126 , MSP430F47127 , MSP430F47163 , MSP430F47166 , MSP430F47167 , MSP430F47173 , MSP430F47176 , MSP430F47177 , MSP430F47183 , MSP430F47186 , MSP430F47187 , MSP430F47193 , MSP430F47196 , MSP430F47197 , MSP430F477 , MSP430F478 , MSP430F4783 , MSP430F4784 , MSP430F479 , MSP430F4793 , MSP430F4794 , MSP430F5212 , MSP430F5214 , MSP430F5217 , MSP430F5219 , MSP430F5222 , MSP430F5224 , MSP430F5229 , MSP430F5232 , MSP430F5234 , MSP430F5237 , MSP430F5239 , MSP430F5242 , MSP430F5244 , MSP430F5247 , MSP430F5249 , MSP430F5252 , MSP430F5253 , MSP430F5254 , MSP430F5255 , MSP430F5256 , MSP430F5257 , MSP430F5258 , MSP430F5259 , MSP430F5304 , MSP430F5308 , MSP430F5309 , MSP430F5310 , MSP430F5324 , MSP430F5325 , MSP430F5326 , MSP430F5327 , MSP430F5328 , MSP430F5329 , MSP430F5333 , MSP430F5335 , MSP430F5336 , MSP430F5338 , MSP430F5340 , MSP430F5341 , MSP430F5342 , MSP430F5358 , MSP430F5359 , MSP430F5418 , MSP430F5418A , MSP430F5419 , MSP430F5419A , MSP430F5435 , MSP430F5435A , MSP430F5436 , MSP430F5436A , MSP430F5437 , MSP430F5437A , MSP430F5438 , MSP430F5438A , MSP430F5500 , MSP430F5501 , MSP430F5502 , MSP430F5503 , MSP430F5504 , MSP430F5505 , MSP430F5506 , MSP430F5507 , MSP430F5508 , MSP430F5509 , MSP430F5510 , MSP430F5513 , MSP430F5514 , MSP430F5515 , MSP430F5517 , MSP430F5519 , MSP430F5521 , MSP430F5522 , MSP430F5524 , MSP430F5525 , MSP430F5526 , MSP430F5527 , MSP430F5528 , MSP430F5529 , MSP430F5630 , MSP430F5631 , MSP430F5632 , MSP430F5633 , MSP430F5634 , MSP430F5635 , MSP430F5636 , MSP430F5637 , MSP430F5638 , MSP430F5658 , MSP430F5659 , MSP430F6433 , MSP430F6435 , MSP430F6436 , MSP430F6438 , MSP430F6458 , MSP430F6459 , MSP430F6630 , MSP430F6631 , MSP430F6632 , MSP430F6633 , MSP430F6634 , MSP430F6635 , MSP430F6636 , MSP430F6637 , MSP430F6638 , MSP430F6658 , MSP430F6659 , MSP430F6745 , MSP430F67451 , MSP430F67451A , MSP430F6745A , MSP430F6746 , MSP430F67461 , MSP430F67461A , MSP430F6746A , MSP430F6747 , MSP430F67471 , MSP430F67471A , MSP430F6747A , MSP430F6748 , MSP430F67481 , MSP430F67481A , MSP430F6748A , MSP430F6749 , MSP430F67491 , MSP430F67491A , MSP430F6749A , MSP430F67621 , MSP430F67621A , MSP430F67641 , MSP430F67641A , MSP430F6765 , MSP430F67651 , MSP430F67651A , MSP430F6765A , MSP430F6766 , MSP430F67661 , MSP430F67661A , MSP430F6766A , MSP430F6767 , MSP430F67671 , MSP430F67671A , MSP430F6767A , MSP430F6768 , MSP430F67681 , MSP430F67681A , MSP430F6768A , MSP430F6769 , MSP430F67691 , MSP430F67691A , MSP430F6769A , MSP430F6775 , MSP430F67751 , MSP430F67751A , MSP430F6775A , MSP430F6776 , MSP430F67761 , MSP430F67761A , MSP430F6776A , MSP430F6777 , MSP430F67771 , MSP430F67771A , MSP430F6777A , MSP430F6778 , MSP430F67781 , MSP430F67781A , MSP430F6778A , MSP430F6779 , MSP430F67791 , MSP430F67791A , MSP430F6779A , MSP430FE423 , MSP430FE4232 , MSP430FE423A , MSP430FE4242 , MSP430FE425 , MSP430FE4252 , MSP430FE425A , MSP430FE427 , MSP430FE4272 , MSP430FE427A , MSP430FG4250 , MSP430FG4260 , MSP430FG4270 , MSP430FG437 , MSP430FG438 , MSP430FG439 , MSP430FG4616 , MSP430FG4617 , MSP430FG4618 , MSP430FG4619 , MSP430FG477 , MSP430FG478 , MSP430FG479 , MSP430FR2032 , MSP430FR2033 , MSP430FR2110 , MSP430FR2111 , MSP430FR2311 , MSP430FR2433 , MSP430FR2532 , MSP430FR2533 , MSP430FR2632 , MSP430FR2633 , MSP430FR4131 , MSP430FR4132 , MSP430FR5720 , MSP430FR5721 , MSP430FR5722 , MSP430FR5723 , MSP430FR5724 , MSP430FR5725 , MSP430FR5726 , MSP430FR5727 , MSP430FR5728 , MSP430FR5729 , MSP430FR5730 , MSP430FR5731 , MSP430FR5732 , MSP430FR5733 , MSP430FR5734 , MSP430FR5735 , MSP430FR5736 , MSP430FR5737 , MSP430FR5738 , MSP430FR5739 , MSP430FR5847 , MSP430FR58471 , MSP430FR5848 , MSP430FR5849 , MSP430FR5857 , MSP430FR5858 , MSP430FR5859 , MSP430FR5867 , MSP430FR58671 , MSP430FR5868 , MSP430FR5869 , MSP430FR5870 , MSP430FR5872 , MSP430FR58721 , MSP430FR5887 , MSP430FR5888 , MSP430FR5889 , MSP430FR58891 , MSP430FR5922 , MSP430FR59221 , MSP430FR5947 , MSP430FR59471 , MSP430FR5948 , MSP430FR5949 , MSP430FR5957 , MSP430FR5958 , MSP430FR5959 , MSP430FR5967 , MSP430FR5968 , MSP430FR5969 , MSP430FR5969-SP , MSP430FR59691 , MSP430FR5970 , MSP430FR5972 , MSP430FR59721 , MSP430FR5986 , MSP430FR5987 , MSP430FR5988 , MSP430FR5989 , MSP430FR5989-EP , MSP430FR59891 , MSP430FR5994 , MSP430FR6820 , MSP430FR6822 , MSP430FR68221 , MSP430FR6870 , MSP430FR6872 , MSP430FR68721 , MSP430FR6877 , MSP430FR6879 , MSP430FR68791 , MSP430FR6887 , MSP430FR6888 , MSP430FR6889 , MSP430FR68891 , MSP430FR6920 , MSP430FR6922 , MSP430FR69221 , MSP430FR6927 , MSP430FR69271 , MSP430FR6928 , MSP430FR6970 , MSP430FR6972 , MSP430FR69721 , MSP430FR6977 , MSP430FR6979 , MSP430FR69791 , MSP430FR6987 , MSP430FR6988 , MSP430FR6989 , MSP430FR69891 , MSP430FW423 , MSP430FW425 , MSP430FW427 , MSP430FW428 , MSP430FW429 , MSP430G2001 , MSP430G2101 , MSP430G2102 , MSP430G2111 , MSP430G2112 , MSP430G2121 , MSP430G2131 , MSP430G2132 , MSP430G2152 , MSP430G2153 , MSP430G2201 , MSP430G2202 , MSP430G2203 , MSP430G2210 , MSP430G2211 , MSP430G2212 , MSP430G2213 , MSP430G2221 , MSP430G2230 , MSP430G2231 , MSP430G2232 , MSP430G2233 , MSP430G2252 , MSP430G2253 , MSP430G2302 , MSP430G2303 , MSP430G2312 , MSP430G2313 , MSP430G2332 , MSP430G2333 , MSP430G2352 , MSP430G2353 , MSP430G2402 , MSP430G2403 , MSP430G2412 , MSP430G2413 , MSP430G2432 , MSP430G2433 , MSP430G2444 , MSP430G2452 , MSP430G2453 , MSP430G2513 , MSP430G2533 , MSP430G2544 , MSP430G2553 , MSP430G2744 , MSP430G2755 , MSP430G2855 , MSP430G2955 , MSP430L092 , MSP430TCH5E , MSP430V294

 

  1.   MSP 代码保护 特性
    1.     商标
    2. 1 简介
    3. 2 不同 MSP 系列的 JTAG 锁定
      1. 2.1 物理 JTAG 保险丝 (F1xx/F2xx/F4xx)
      2. 2.2 电子保险丝或无密码锁定
        1. 2.2.1 F5xx/F6xx 电子保险丝的实施方式
        2. 2.2.2 FR5xx/FR6xx 电子保险丝的实施方式(无密码锁定)
        3. 2.2.3 FR2xx/FR4xx 电子保险丝的实施方式
        4. 2.2.4 MSP430i2xx 电子保险丝的实施方式 - 启动代码 (SUC)
      3. 2.3 JTAG 密码锁定 (FR5xx/FR6xx)
        1. 2.3.1 在 CCS 中使用 JTAG 密码锁定
        2. 2.3.2 在 IAR 中使用 JTAG 密码锁定
    4. 3 IP 封装 (IPE)
      1. 3.1 使用 CCS 中的 IPE 工具进行 IP 封装
        1. 3.1.1 用于 IPE 的 CCS 链接器文件 特性
        2. 3.1.2 在 CCS 中将代码和数据放到 IPE 部分中
        3. 3.1.3 在 CCS 项目选项中启用 IPE
        4. 3.1.4 在 CCS 中查看编译器选择的 IPE 分区
        5. 3.1.5 在 CCS 中运行和测试 IPE 代码
          1. 3.1.5.1 在 CCS 中使用 IPE 调试设置
          2. 3.1.5.2 在 CCS 中测试 IPE
      2. 3.2 使用 IAR 中的 IPE 工具进行 IP 封装
        1. 3.2.1 用于 IPE 的 IAR 链接器文件 特性
        2. 3.2.2 在 IAR 中将代码和数据放到 IPE 部分中
        3. 3.2.3 在 IAR 项目选项中启用 IPE
        4. 3.2.4 在 IAR 中查看编译器选择的 IPE 分区
        5. 3.2.5 在 IAR 中运行和测试 IPE 代码
          1. 3.2.5.1 在 IAR 中使用 IPE 调试设置
          2. 3.2.5.2 在 IAR 中测试 IPE
    5. 4 引导加载程序 (BSL) 安全性 特性
      1. 4.1 密码保护
      2. 4.2 密码错误时批量擦除
      3. 4.3 禁用引导加载程序 (BSL)
    6. 5 参考文献

在 IAR 中查看编译器选择的 IPE 分区

在启用了 IPE 的 IAR 中构建了项目之后,如果需要,用户可以使用 Output 文件夹中的 .map 文件,查看设置了哪些 IPE 边界以及不同的代码段(例如 IPECODE16)和代码段内的函数放在了哪些位置。此外,还可以找到 __iar_430_MPUIPC0_value(此参数会显示 IPE 寄存器设置值)、IPE_B1 和 IPEB2 边界等参数的值。

要生成 .map 文件,请转到 Project > Options > Linker,然后在“List”选项卡上选择“Generate linker listing”。“Segment map”应当也已被选中。随后会进行构建,Output 文件夹中应当会出现一个 .map 文件。

fig10_Generating_map_IAR.pngFigure 10. 在 IAR 中生成 .map 文件
**************************************** * * * MODULE MAP * * * **************************************** ... ... ------------------------------------------------------------------------- IPEDATA16_N Relative segment, address: 4808 - 4808 (0x1 bytes), align: 0 Segment part 17. Intra module refs: IPE_encapsulatedBlink IPE_encapsulatedInit ENTRY ADDRESS REF BY ===== ======= ====== IPE_encapsulatedCount 4808 ------------------------------------------------------------------------- IPEDATA16_N Relative segment, address: 4809 - 4809 (0x1 bytes), align: 0 Segment part 18. Intra module refs: IPE_encapsulatedBlink ENTRY ADDRESS REF BY ===== ======= ====== IPE_i 4809 ------------------------------------------------------------------------- IPEDATA16_C Relative segment, address: 48DE - 48ED (0x10 bytes), align: 1 Segment part 19. Intra module refs: IPE_encapsulatedBlink ENTRY ADDRESS REF BY ===== ======= ====== IPE_encapsulatedKeys 48DE -------------------------------------------------------------------------... ... ... ------------------------------------------------------------------------- IPECODE16 Relative segment, address: 480A - 480F (0x6 bytes), align: 1 Segment part 25. Intra module refs: main ENTRY ADDRESS REF BY ===== ======= ====== IPE_encapsulatedInit 480A ------------------------------------------------------------------------- IPECODE16 Relative segment, address: 4810 - 48D3 (0xc4 bytes), align: 1 Segment part 24. Intra module refs: main ENTRY ADDRESS REF BY ===== ======= ====== IPE_encapsulatedBlink 4810 ------------------------------------------------------------------------- IPECODE16 Relative segment, address: 48D4 - 48DD (0xa bytes), align: 1 Segment part 23. Intra module refs: TIMER0_A0_ISR::??INTVEC 90 ENTRY ADDRESS REF BY ===== ======= ====== TIMER0_A0_ISR 48D4 interrupt function -------------------------------------------------------------------------... ... ... **************************************** * * * SEGMENTS IN ADDRESS ORDER * * * **************************************** SEGMENT SPACE START ADDRESS END ADDRESS SIZE TYPE ALIGN ======= ===== ============= =========== ==== ==== ===== ... ... IPE_B1 4800 - 4807 8 rel 10 IPEDATA16_N 4808 - 4809 2 rel 0 IPECODE16 480A - 48DD D4 rel 1 IPEDATA16_C 48DE - 48ED 10 rel 1 IPE_B2 4C00 rel 10

IPE 结构内置在代码的二进制映像中(.txt 或 .hex),以便能够在启动时被器件启动代码找到,如《MSP430FR58xx、MSP430FR59xx、MSP430FR68xx 和 MSP430FR69xx 系列用户指南》 (SLAU367) 中所述。也可以转到Project > Options > Linker,然后在“Output”选项卡上选择“Allow C-SPY-specific extra output file”,以查看此二进制文件。

fig11_Options_IPE_FR59xx.pngFigure 11. 用于 IPE_FR59xx 的选项

在“Extra Output”选项卡上,选择“Generate extra output file”,并将“输出”格式设置为“msp430-txt”。随后会进行构建,Output 文件夹中应当会出现一个 .txt 文件。

fig12_Generating_txt_IAR.pngFigure 12. 在 IAR 中生成 .txt 二进制文件

当查看此 txt 文件以查看 IPE 初始化结构时,请验证以下各项:

  1. 检查 0xFF8A 处的值。这是 IPE 签名中包含 IPE 结构地址的那一部分。请记住,此值已右移 4 位。在此示例中,0xFF8A 处的值为 0x0480,指向 IPE 结构的地址 0x4800。
  2. @FF88 AA AA 80 04
  3. 转到 IPE 初始化结构的地址(在步骤 1 中发现的地址,在本例中为 0x4800),并查看此结构中的值。它具有来自用户指南的格式。
  4. Table 8. IPE 初始化结构

    字段名称 地址偏移量 长度 说明
    MPUIPC0 0h 文字 用于 IP 封装的控制设置。值将写入到 MPUIPC0
    MPUIPB2 2h 文字 IP 封装段的上边界。值将写入到 MPUIPSEGB2
    MPUIPB1 4h 文字 IP 封装段的下边界。值将写入到 MPUIPSEGB1
    MPUCHECK 6h 文字 偶位交错奇偶校验

在下面的示例中,您可以看到:

  • MPUIPC0 = 0x0040 - MPUIPENA = 1 = IPE 启用
  • MPUIPB2 = 0x04C0 → 地址 0x4C00 是 IPE 终点
  • MPUIPB1 = 0x0480 → 地址 0x4800 是 IPE 起点
  • MPUCHECK = 0xFFFF → 以前的数据的校验和。在校验和低位字节 = INV(Byte 0 XOR Byte 2 XOR Byte 4) = INV(40 XOR C0 XOR 80) = 0xFF、校验和高位字节 = INV(Byte 1 XOR Byte 3 XOR Byte 5) = INV(00 XOR 04 XOR 04) = 0xFF 时计算得出
@4800 40 00 C0 04 80 04 FF FF