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 参考文献

密码保护

所有 MSP430 引导加载程序都为一些命令提供了密码保护。任何允许读取器件的命令(例如 TX_DATA_BLOCK)或控制器件的命令(例如 Load PC 或 RX_DATA_BLOCK)通常都受到保护,除非已经提供正确的密码,否则它们不会执行。仅有的几个不受保护的命令通常包括 RX_PASSWORD(用于接收 BSL 密码和解锁其他命令)、CHANGE_BAUD_RATE(用于更改 BSL 波特率以便于进行 BSL 通信)和 MASS_ERASE(用于彻底擦除器件存储器)。

密码由多个字节(通常 32 个字节)组成,位于中断矢量表的末尾,往前不超过存储器地址 0xFFFF(请参阅 BSL 用户指南,详细了解器件的具体地址信息)。几乎所有 MSP430 BSL 的密码都由地址 0xFFE0-0xFFFF 的数据组成(唯一的例外是 MSP430F54xx 非 A 器件,这些器件只有一个 16 字节的密码)。

由于 BSL 密码由来自器件中断矢量表 (IVT) 的值组成,因此在已编程的器件上,对于地址 0xFFFE 处的复位矢量(除应用程序中使用的任何其他中断矢量以外),IVT 始终具有至少一个除 0xFFFF 以外的值,这样就总是有一个 BSL 密码是通过将程序加载到器件中而设置的。

在 CCS 中,如果任何中断矢量没有用户定义的 ISR,则 TI C/C++ 编译器会自动添加一个陷阱 ISR,以捕捉所有这些未使用的矢量。因此,未使用的矢量具有一个除 0xFFFF 以外的值,但此值对于所有未使用的矢量都是相同的。这样就为密码添加了更多的值,但如果用户代码未使用太多中断,则它可能仍未出现明显的变化。

@FFE0 1A 4C 1A 4C 1A 4C 1A 4C 1A 4C 9C 48 1A 4C 1A 4C 1A 4C 1A 4C 1A 4C 1A 4C 1A 4C 1A 4C 1A 4C 00 4C

在上述的 TI-txt 文件代码片段中,观察包含 BSL 密码的 IVT 区域 - 在 0xFFE0-0xFFFF 之间有 32 个字节。本例中的 489Ch 和 4C00h 这两个值以绿色文本突出显示(这两个值用在中断矢量中),分别用于计时器 ISR 之一以及复位矢量。注意 FFFEh 处的复位矢量表明启动代码始于 4C00h。所有其他未使用的 IVT 条目中填充了 4C1Ah - 这是陷阱 ISR 的地址。在 .map 文件中也可以找到陷阱 ISR 的地址,此地址标记为 __TI_ISR_TRAP。在 _isr 部分的下方还可以找到其他 ISR 地址。

.text:_isr * 0 00004c00 00000020 00004c00 0000001a rts430x_lc_rd_eabi.lib : boot_special.obj (.text:_isr:_c_int00_noargs_noexit) 00004c1a 00000006 : isr_trap.obj (.text:_isr:__TI_ISR_TRAP)

如果需要定制 BSL 密码,可以将 IVT 的未使用条目修改为密码的其他值。但这种情况的危险性在于,如果发生中断,会将 IVT 条目用作执行代码时要跳转到的地址,因此在这里放置随机值可能会导致代码胡乱运行或者将器件复位,当出现错误的中断时尤其如此(例如当意外启用了中断时)。尽管这种情况不太可能出现,但仍会构成风险,因此用户必须根据自己的系统和应用做出决定。用户也可以使用 BSL 密码区域 FFE0h-FFFFh 中的 IVT 条目,为所有未使用的中断定义单独的 ISR,并利用链接器文件修改和 pragma 将这些 ISR 放到所需的地址,以创建所需的 BSL 密码。