MSP432产品培训(七)-安全与防护
Loading the player...
将在30s后自动为您播放下一课程
大家好 欢迎观看 MSP432 MCU的产品培训 本次的在线培训是整个 MSP432在线培训课程的第七部分 那么在这部分中我们将介绍 MSP432的安全防护特性 我们会介绍MSP432提供的 AES256的加密引擎 了解几种用于JTAG锁定的机制 还会介绍IP安全防护的一些功能 以及如何在应用已经烧录的情况下在现场安全地进行固点更新升级的操作 MSP432内置的是在MSP430系列里面已经为人所熟知AES256加密引擎 这个机密引擎 它能够 实现256位的AES加密 由于这是一个硬件的加密引擎因此它的整个的加密过程不需要CPU的参与 也就是说一旦您的应用中已经加载了密钥和需要加密的数据 AES模块就可以和CPU并行运行 AES256模块它支持128位 129位和256位多种的密钥长度 它并且能够即时的 生成一个真正的随机密钥 它也可以离线生成密钥 AES256模块还可以 用于一种坏模式的处理 例如 它和OFB ECB以及 CBC一起和DMA配合使用 用户就可以据此来 配置一个数据信号链 比如 我们可以通过SPI来接受数据 它由DMA将数据从SPI的接收寄存器 传输到AES模块来执行解密或者加密 完成以后 再由DMA传输 到其他的外设寄存器 这样就可以形成一个于CPU并行 运行的数据型号处理链 采用AES256的硬件加密引擎 它有两个主要的优势 首先我们的并行引擎 就减轻了CPU的负载 那另一个优势是跟软件 进行AES加解密相比 我们整个硬件的加减密过程它无论是在速度还是在功耗方面 它都得到了非常大的提升 比如我们用软件加加减密的时候 通常对一个128位的数据加密 它需要在CPU当中 执行7000个时钟周期 而现在我们AES硬件的这个 加密引擎来执行同样的操作 它只需要190个时钟周期 那大家可以看到 这个对 速度的提升是非常明显的 而且这个190个时钟周期 它是可以和CPU并行运行的 它的CPU是完全解放出来 可以进行其他操作的 那它无论是在速度还是功耗方面都对整个加密操作进行了极大的提升 那在AES中 它引擎对任何需要安全和保密的一些通信应用 比如 我们的RF 我们的UART通信 甚至是故现场更新这样的操作呢 都至关重要 那我们AES256模块 被广泛地用在MSP432的多种的内部引擎中 比如DSR 以及我们后续将有介绍的 一些其他的安全特性 从安全防护和保密角度来看 MSP432它能提供两种类型的安全防护 分别是JTAG保护和软件IP保护 JTAG保护能为器件阻断 所有外来的JTAG访问 一旦JTAG被锁定之后 用户将是不能再和器件建立任何JTAG连接的 我们也是不能再对器件 进行任何的调试 仿真的操作 那另外一种保护机制呢 我们称为软件的IP保护 这种保护是帮助软件供应商将存储器当中存放的代码区域给保护起来 其他人包括用户自己都无法再访问 这个受保护区域内的内容 这个受保护区域内的内容只能由代码来执行而无法获取它的内容 那我们把这个机制就设为为 软件供应商提供的黑盒解决方案 MSP432它将以上两种类型的 安全保密机制结合起来使用 它同时拥有JTAG保护和IP保护 那这样的器件将是非常安全可靠的 好 我们现在先来看一下MSP432 MCU上的JTAG安全防护 那从用户的角度来看 432上的JTAG防护和MSP系列430中其他器件的JTAG的控制是非常类似的 因为一旦锁住了JTAG 我们用户将无法 再通过JTAG来访问到器件 也不能进行任何的调试 仿真的操作 那我们首先用户需要开发代码 然后将这个代码加载闪存当中 并且加以调试 最后就调用JTAG锁定机制来阻断所有一切通过JTAG的通讯口对器件的访问 那这样器件就被保护起来 以免受到外部的访问 只有内部的应用代码 它仍然可以访问器件内的所有存储区 如果需要恢复对器件的JTAG访问 那我们只有对器件实行一个整体的 擦除或者恢复出厂设置这样的操作 无论是哪一种操作 它都需要先清除器件上所有存储的内容 然后才能重新通过JTAG来访问器件 那这样就能确保用户的所有的相关软件和应用代码都会被彻底地清除 而不会被任何人通过JTAG来盗窃 那对于已经锁定阻止 任何JTAG访问的器件 它的固件仍然可以通过 BSL来进行现场更新的 那这时候用户就可以根据需要 选择进行一个安全的固件更新 或者是一个非安全的固件更新 那有关这方面的内容 我们在后续部分 介绍BSL的时候会进一步地讲解 现在我们再来具体地 看一下软件的IP保护 前面提到过IP保护这种机制能让软件IP供应商安全地提供特定黑盒解决方案 让最终用户无法读取机密IP代码的 它只能执行一些IP代码 因此无论是调试器还是用户的其他的应用代码 它都不能够读取受IP保护的这部分的存储器的内容 它只能调用受到IP保护的 这种存储器内的代码的功能 那MSP432它最多支持4个IP保护区域 好 现在我们来考虑一下某些情况 比如一个用户有4个软件IP供应商 那其中第一的IP供应商 可以经过编程和设置来屏蔽它们的第一个IP保护区 那第二IP供应商 它无法访问第一个IP供应商的IP保护区 但是 它能调用第一个 供应商提供的这些代码 第二个供应商他同样可以 对第二个IP保护区进行编程 那最终 我们的最终客户或者说最终用户 它都可以调用这4个IP保护区内 提供的任何的一个函数功能 但是呢 他们是无法读取 其中的任何内容的 那和JTAG锁定相类似 MSP432也提供一种机制 使得客户能够对这种独立的IP 保护区域 进行现场的更新 但是 它不能访问到这些内容 那现在图片上展示的就是在MSP432上进行安全防护操作的一个流程 那这个流程机制对于JTAG防护和 IP保护设置都是一样的 它同样可以用于BSL的固件更新 我们称呼这个机制为一个跨越启动 那在存储器当中会有一个特殊的区域我们可以称闪存邮箱 叫flash mail box 那通过这个闪存邮箱 用户或者应用代码 它可以和启动代码 形成一个单向的通讯 那在图片上展示的实例当中 我们讲配置的信息 烧录到这个闪存邮箱中 一旦烧录成功 用户就可以执行 器件的重启和复位 然后就由启动代码来接管后续的处理 那启动代码这个时候就可以从闪存邮箱当中来读出我们烧录进去配置信息 然后根据这些读出来的 命令内容 来调度相应的任务 这些命令内容可能是 执行一个JTAG锁定操作 也可能是一个配置IP保护区域 他可能携带代码 也可能不携带代码 那整个操作完成后 器件就会被锁藏在JTAG访问后 那IP保护区域也会 完全阻断外界的访问 只有BSL是可以按照用户的需求 来完成进一步的操作的 同样这样一安全调度的机制 也可以用于固件的现场更新 在JTAG访问已经被阻断的情况下 我们可以通过BSL 对闪存邮箱来进行编程 以此来创建一条通讯的通道 在用BSL主机向器件的启动代码 来传输保密的配置信息 以便启动代码能调度到相应的任务 完成存储器中固件的更新操作 MSP432器件的一个 固件更新机制当中 它嵌入了一个多层次的安全防护控制 第一是为引导加载程序 BSL 加上一个特定的密码保护 那这样以来 无论器件是否 已经执行了JTAG和IP安全防护 它BSL都必须提供密码才能 对器件执行固件更新操作 如果这个时候器件已经 锁断了JTAG和SWD的访问 用户将会获得一个用于加密的密钥 那在将需要更新的内容 传输和烧录到器件之前 BSL先通过这个密钥对我们 所需要传输的内容进行加密 因此只有在固件初始化编程的时候 我们才可以共享到这个密钥 BSL主机必须使用这个密钥 对传输的更新内容进行加密 这样BSL的通讯才可以被 视为是一个安全保密的 它可以避免BSL的通讯线路收到窥探 从而导致数据的泄露 在经过加密的一些 更新内容传输到器件以后 BSL它也同样要通过我们上一章介绍 闪存邮箱的机制来启动一个跨越系统 这样启动代码才能从 闪存邮箱当中获取信息 并且用预先协商好的密钥对我们 传输到的更新内容进行解密 然后再将解密后的固件来 更新烧录我们的器件的闪存当中 那在整个操作完成之后 器件就可以重启 并且运行新的部件了 那在已经加密密钥的情况下 受IP保护的区域也 同样可以进行代码的更新 这一点是至关重要的 因为这个能让我们IP供应商安全地来进行一个现场的固件更新 而同时又阻断了最终的用户 访问到实际的更新内容 因此同样的 也仅在IP保护区域在初始编程的时候它才会共享到这个密钥 然后我们的IP供应商 它就向最终用户提供一个已经使用密钥加密的更新内容 最终用户通过BSL来访问器件 将加密后的更新内容传输到器件 那同样的 使用这个跨越启动机制 从闪存邮箱当中来获得相应的信息 启动代码会使用都同样的密钥对 收到的更新内容来进行解密 并且将这些内容烧录到 一个受IP保护的存储区 那在整个操作过程中 只有对这个IP保护区进行配置的这个IP供应商才可以获得这个密钥 在整个操作完成之后 就可以 去器件执行一个复位操作 然后我们就可以使用一个更新过的 受IP保护的代码 那整个器件的安全和IP的 保护都是一个非常复杂的主题 那么在今天的培训课程当中 我们只是简要地介绍了一下 MSP432 MCU它的安全特性 我们非常强烈地建议您能够对 这个问题来做进一步的研究 可以查看不同的应用手册 和专门用于展示如何 实现MSP432软件安全 以及如何对MSP432配置安全更新 或者BSL编程的软件示例 所有的这些资源您 都可以从MSPWare上获取 现在展示的这张图片就可以告诉您 从哪里能找到相关的应用手册 以及在MSPWare当中包含的软件示例 好 今天的培训课程就到此结束 非常感谢您的观看 谢谢大家
大家好 欢迎观看 MSP432 MCU的产品培训 本次的在线培训是整个 MSP432在线培训课程的第七部分 那么在这部分中我们将介绍 MSP432的安全防护特性 我们会介绍MSP432提供的 AES256的加密引擎 了解几种用于JTAG锁定的机制 还会介绍IP安全防护的一些功能 以及如何在应用已经烧录的情况下在现场安全地进行固点更新升级的操作 MSP432内置的是在MSP430系列里面已经为人所熟知AES256加密引擎 这个机密引擎 它能够 实现256位的AES加密 由于这是一个硬件的加密引擎因此它的整个的加密过程不需要CPU的参与 也就是说一旦您的应用中已经加载了密钥和需要加密的数据 AES模块就可以和CPU并行运行 AES256模块它支持128位 129位和256位多种的密钥长度 它并且能够即时的 生成一个真正的随机密钥 它也可以离线生成密钥 AES256模块还可以 用于一种坏模式的处理 例如 它和OFB ECB以及 CBC一起和DMA配合使用 用户就可以据此来 配置一个数据信号链 比如 我们可以通过SPI来接受数据 它由DMA将数据从SPI的接收寄存器 传输到AES模块来执行解密或者加密 完成以后 再由DMA传输 到其他的外设寄存器 这样就可以形成一个于CPU并行 运行的数据型号处理链 采用AES256的硬件加密引擎 它有两个主要的优势 首先我们的并行引擎 就减轻了CPU的负载 那另一个优势是跟软件 进行AES加解密相比 我们整个硬件的加减密过程它无论是在速度还是在功耗方面 它都得到了非常大的提升 比如我们用软件加加减密的时候 通常对一个128位的数据加密 它需要在CPU当中 执行7000个时钟周期 而现在我们AES硬件的这个 加密引擎来执行同样的操作 它只需要190个时钟周期 那大家可以看到 这个对 速度的提升是非常明显的 而且这个190个时钟周期 它是可以和CPU并行运行的 它的CPU是完全解放出来 可以进行其他操作的 那它无论是在速度还是功耗方面都对整个加密操作进行了极大的提升 那在AES中 它引擎对任何需要安全和保密的一些通信应用 比如 我们的RF 我们的UART通信 甚至是故现场更新这样的操作呢 都至关重要 那我们AES256模块 被广泛地用在MSP432的多种的内部引擎中 比如DSR 以及我们后续将有介绍的 一些其他的安全特性 从安全防护和保密角度来看 MSP432它能提供两种类型的安全防护 分别是JTAG保护和软件IP保护 JTAG保护能为器件阻断 所有外来的JTAG访问 一旦JTAG被锁定之后 用户将是不能再和器件建立任何JTAG连接的 我们也是不能再对器件 进行任何的调试 仿真的操作 那另外一种保护机制呢 我们称为软件的IP保护 这种保护是帮助软件供应商将存储器当中存放的代码区域给保护起来 其他人包括用户自己都无法再访问 这个受保护区域内的内容 这个受保护区域内的内容只能由代码来执行而无法获取它的内容 那我们把这个机制就设为为 软件供应商提供的黑盒解决方案 MSP432它将以上两种类型的 安全保密机制结合起来使用 它同时拥有JTAG保护和IP保护 那这样的器件将是非常安全可靠的 好 我们现在先来看一下MSP432 MCU上的JTAG安全防护 那从用户的角度来看 432上的JTAG防护和MSP系列430中其他器件的JTAG的控制是非常类似的 因为一旦锁住了JTAG 我们用户将无法 再通过JTAG来访问到器件 也不能进行任何的调试 仿真的操作 那我们首先用户需要开发代码 然后将这个代码加载闪存当中 并且加以调试 最后就调用JTAG锁定机制来阻断所有一切通过JTAG的通讯口对器件的访问 那这样器件就被保护起来 以免受到外部的访问 只有内部的应用代码 它仍然可以访问器件内的所有存储区 如果需要恢复对器件的JTAG访问 那我们只有对器件实行一个整体的 擦除或者恢复出厂设置这样的操作 无论是哪一种操作 它都需要先清除器件上所有存储的内容 然后才能重新通过JTAG来访问器件 那这样就能确保用户的所有的相关软件和应用代码都会被彻底地清除 而不会被任何人通过JTAG来盗窃 那对于已经锁定阻止 任何JTAG访问的器件 它的固件仍然可以通过 BSL来进行现场更新的 那这时候用户就可以根据需要 选择进行一个安全的固件更新 或者是一个非安全的固件更新 那有关这方面的内容 我们在后续部分 介绍BSL的时候会进一步地讲解 现在我们再来具体地 看一下软件的IP保护 前面提到过IP保护这种机制能让软件IP供应商安全地提供特定黑盒解决方案 让最终用户无法读取机密IP代码的 它只能执行一些IP代码 因此无论是调试器还是用户的其他的应用代码 它都不能够读取受IP保护的这部分的存储器的内容 它只能调用受到IP保护的 这种存储器内的代码的功能 那MSP432它最多支持4个IP保护区域 好 现在我们来考虑一下某些情况 比如一个用户有4个软件IP供应商 那其中第一的IP供应商 可以经过编程和设置来屏蔽它们的第一个IP保护区 那第二IP供应商 它无法访问第一个IP供应商的IP保护区 但是 它能调用第一个 供应商提供的这些代码 第二个供应商他同样可以 对第二个IP保护区进行编程 那最终 我们的最终客户或者说最终用户 它都可以调用这4个IP保护区内 提供的任何的一个函数功能 但是呢 他们是无法读取 其中的任何内容的 那和JTAG锁定相类似 MSP432也提供一种机制 使得客户能够对这种独立的IP 保护区域 进行现场的更新 但是 它不能访问到这些内容 那现在图片上展示的就是在MSP432上进行安全防护操作的一个流程 那这个流程机制对于JTAG防护和 IP保护设置都是一样的 它同样可以用于BSL的固件更新 我们称呼这个机制为一个跨越启动 那在存储器当中会有一个特殊的区域我们可以称闪存邮箱 叫flash mail box 那通过这个闪存邮箱 用户或者应用代码 它可以和启动代码 形成一个单向的通讯 那在图片上展示的实例当中 我们讲配置的信息 烧录到这个闪存邮箱中 一旦烧录成功 用户就可以执行 器件的重启和复位 然后就由启动代码来接管后续的处理 那启动代码这个时候就可以从闪存邮箱当中来读出我们烧录进去配置信息 然后根据这些读出来的 命令内容 来调度相应的任务 这些命令内容可能是 执行一个JTAG锁定操作 也可能是一个配置IP保护区域 他可能携带代码 也可能不携带代码 那整个操作完成后 器件就会被锁藏在JTAG访问后 那IP保护区域也会 完全阻断外界的访问 只有BSL是可以按照用户的需求 来完成进一步的操作的 同样这样一安全调度的机制 也可以用于固件的现场更新 在JTAG访问已经被阻断的情况下 我们可以通过BSL 对闪存邮箱来进行编程 以此来创建一条通讯的通道 在用BSL主机向器件的启动代码 来传输保密的配置信息 以便启动代码能调度到相应的任务 完成存储器中固件的更新操作 MSP432器件的一个 固件更新机制当中 它嵌入了一个多层次的安全防护控制 第一是为引导加载程序 BSL 加上一个特定的密码保护 那这样以来 无论器件是否 已经执行了JTAG和IP安全防护 它BSL都必须提供密码才能 对器件执行固件更新操作 如果这个时候器件已经 锁断了JTAG和SWD的访问 用户将会获得一个用于加密的密钥 那在将需要更新的内容 传输和烧录到器件之前 BSL先通过这个密钥对我们 所需要传输的内容进行加密 因此只有在固件初始化编程的时候 我们才可以共享到这个密钥 BSL主机必须使用这个密钥 对传输的更新内容进行加密 这样BSL的通讯才可以被 视为是一个安全保密的 它可以避免BSL的通讯线路收到窥探 从而导致数据的泄露 在经过加密的一些 更新内容传输到器件以后 BSL它也同样要通过我们上一章介绍 闪存邮箱的机制来启动一个跨越系统 这样启动代码才能从 闪存邮箱当中获取信息 并且用预先协商好的密钥对我们 传输到的更新内容进行解密 然后再将解密后的固件来 更新烧录我们的器件的闪存当中 那在整个操作完成之后 器件就可以重启 并且运行新的部件了 那在已经加密密钥的情况下 受IP保护的区域也 同样可以进行代码的更新 这一点是至关重要的 因为这个能让我们IP供应商安全地来进行一个现场的固件更新 而同时又阻断了最终的用户 访问到实际的更新内容 因此同样的 也仅在IP保护区域在初始编程的时候它才会共享到这个密钥 然后我们的IP供应商 它就向最终用户提供一个已经使用密钥加密的更新内容 最终用户通过BSL来访问器件 将加密后的更新内容传输到器件 那同样的 使用这个跨越启动机制 从闪存邮箱当中来获得相应的信息 启动代码会使用都同样的密钥对 收到的更新内容来进行解密 并且将这些内容烧录到 一个受IP保护的存储区 那在整个操作过程中 只有对这个IP保护区进行配置的这个IP供应商才可以获得这个密钥 在整个操作完成之后 就可以 去器件执行一个复位操作 然后我们就可以使用一个更新过的 受IP保护的代码 那整个器件的安全和IP的 保护都是一个非常复杂的主题 那么在今天的培训课程当中 我们只是简要地介绍了一下 MSP432 MCU它的安全特性 我们非常强烈地建议您能够对 这个问题来做进一步的研究 可以查看不同的应用手册 和专门用于展示如何 实现MSP432软件安全 以及如何对MSP432配置安全更新 或者BSL编程的软件示例 所有的这些资源您 都可以从MSPWare上获取 现在展示的这张图片就可以告诉您 从哪里能找到相关的应用手册 以及在MSPWare当中包含的软件示例 好 今天的培训课程就到此结束 非常感谢您的观看 谢谢大家
大家好 欢迎观看 MSP432 MCU的产品培训
本次的在线培训是整个 MSP432在线培训课程的第七部分
那么在这部分中我们将介绍 MSP432的安全防护特性
我们会介绍MSP432提供的 AES256的加密引擎
了解几种用于JTAG锁定的机制
还会介绍IP安全防护的一些功能
以及如何在应用已经烧录的情况下在现场安全地进行固点更新升级的操作
MSP432内置的是在MSP430系列里面已经为人所熟知AES256加密引擎
这个机密引擎 它能够 实现256位的AES加密
由于这是一个硬件的加密引擎因此它的整个的加密过程不需要CPU的参与
也就是说一旦您的应用中已经加载了密钥和需要加密的数据
AES模块就可以和CPU并行运行
AES256模块它支持128位 129位和256位多种的密钥长度
它并且能够即时的 生成一个真正的随机密钥
它也可以离线生成密钥
AES256模块还可以 用于一种坏模式的处理
例如 它和OFB ECB以及 CBC一起和DMA配合使用
用户就可以据此来 配置一个数据信号链
比如 我们可以通过SPI来接受数据 它由DMA将数据从SPI的接收寄存器
传输到AES模块来执行解密或者加密
完成以后 再由DMA传输 到其他的外设寄存器
这样就可以形成一个于CPU并行 运行的数据型号处理链
采用AES256的硬件加密引擎 它有两个主要的优势
首先我们的并行引擎 就减轻了CPU的负载
那另一个优势是跟软件 进行AES加解密相比
我们整个硬件的加减密过程它无论是在速度还是在功耗方面
它都得到了非常大的提升
比如我们用软件加加减密的时候
通常对一个128位的数据加密
它需要在CPU当中 执行7000个时钟周期
而现在我们AES硬件的这个 加密引擎来执行同样的操作
它只需要190个时钟周期
那大家可以看到 这个对 速度的提升是非常明显的
而且这个190个时钟周期 它是可以和CPU并行运行的
它的CPU是完全解放出来 可以进行其他操作的
那它无论是在速度还是功耗方面都对整个加密操作进行了极大的提升
那在AES中 它引擎对任何需要安全和保密的一些通信应用
比如 我们的RF 我们的UART通信
甚至是故现场更新这样的操作呢 都至关重要
那我们AES256模块 被广泛地用在MSP432的多种的内部引擎中
比如DSR 以及我们后续将有介绍的 一些其他的安全特性
从安全防护和保密角度来看 MSP432它能提供两种类型的安全防护
分别是JTAG保护和软件IP保护
JTAG保护能为器件阻断 所有外来的JTAG访问
一旦JTAG被锁定之后 用户将是不能再和器件建立任何JTAG连接的
我们也是不能再对器件 进行任何的调试 仿真的操作
那另外一种保护机制呢 我们称为软件的IP保护
这种保护是帮助软件供应商将存储器当中存放的代码区域给保护起来
其他人包括用户自己都无法再访问 这个受保护区域内的内容
这个受保护区域内的内容只能由代码来执行而无法获取它的内容
那我们把这个机制就设为为 软件供应商提供的黑盒解决方案
MSP432它将以上两种类型的 安全保密机制结合起来使用
它同时拥有JTAG保护和IP保护
那这样的器件将是非常安全可靠的
好 我们现在先来看一下MSP432 MCU上的JTAG安全防护
那从用户的角度来看
432上的JTAG防护和MSP系列430中其他器件的JTAG的控制是非常类似的
因为一旦锁住了JTAG 我们用户将无法 再通过JTAG来访问到器件
也不能进行任何的调试 仿真的操作
那我们首先用户需要开发代码
然后将这个代码加载闪存当中 并且加以调试
最后就调用JTAG锁定机制来阻断所有一切通过JTAG的通讯口对器件的访问
那这样器件就被保护起来 以免受到外部的访问
只有内部的应用代码 它仍然可以访问器件内的所有存储区
如果需要恢复对器件的JTAG访问
那我们只有对器件实行一个整体的 擦除或者恢复出厂设置这样的操作
无论是哪一种操作 它都需要先清除器件上所有存储的内容
然后才能重新通过JTAG来访问器件
那这样就能确保用户的所有的相关软件和应用代码都会被彻底地清除
而不会被任何人通过JTAG来盗窃
那对于已经锁定阻止 任何JTAG访问的器件
它的固件仍然可以通过 BSL来进行现场更新的
那这时候用户就可以根据需要 选择进行一个安全的固件更新
或者是一个非安全的固件更新
那有关这方面的内容 我们在后续部分 介绍BSL的时候会进一步地讲解
现在我们再来具体地 看一下软件的IP保护
前面提到过IP保护这种机制能让软件IP供应商安全地提供特定黑盒解决方案
让最终用户无法读取机密IP代码的
它只能执行一些IP代码 因此无论是调试器还是用户的其他的应用代码
它都不能够读取受IP保护的这部分的存储器的内容
它只能调用受到IP保护的 这种存储器内的代码的功能
那MSP432它最多支持4个IP保护区域
好 现在我们来考虑一下某些情况
比如一个用户有4个软件IP供应商
那其中第一的IP供应商 可以经过编程和设置来屏蔽它们的第一个IP保护区
那第二IP供应商 它无法访问第一个IP供应商的IP保护区
但是 它能调用第一个 供应商提供的这些代码
第二个供应商他同样可以 对第二个IP保护区进行编程
那最终 我们的最终客户或者说最终用户
它都可以调用这4个IP保护区内 提供的任何的一个函数功能
但是呢 他们是无法读取 其中的任何内容的
那和JTAG锁定相类似
MSP432也提供一种机制
使得客户能够对这种独立的IP 保护区域 进行现场的更新
但是 它不能访问到这些内容
那现在图片上展示的就是在MSP432上进行安全防护操作的一个流程
那这个流程机制对于JTAG防护和 IP保护设置都是一样的
它同样可以用于BSL的固件更新
我们称呼这个机制为一个跨越启动
那在存储器当中会有一个特殊的区域我们可以称闪存邮箱 叫flash mail box
那通过这个闪存邮箱 用户或者应用代码
它可以和启动代码 形成一个单向的通讯
那在图片上展示的实例当中
我们讲配置的信息 烧录到这个闪存邮箱中
一旦烧录成功 用户就可以执行 器件的重启和复位
然后就由启动代码来接管后续的处理
那启动代码这个时候就可以从闪存邮箱当中来读出我们烧录进去配置信息
然后根据这些读出来的 命令内容 来调度相应的任务
这些命令内容可能是 执行一个JTAG锁定操作
也可能是一个配置IP保护区域
他可能携带代码 也可能不携带代码
那整个操作完成后 器件就会被锁藏在JTAG访问后
那IP保护区域也会 完全阻断外界的访问
只有BSL是可以按照用户的需求 来完成进一步的操作的
同样这样一安全调度的机制 也可以用于固件的现场更新
在JTAG访问已经被阻断的情况下
我们可以通过BSL 对闪存邮箱来进行编程
以此来创建一条通讯的通道
在用BSL主机向器件的启动代码 来传输保密的配置信息
以便启动代码能调度到相应的任务 完成存储器中固件的更新操作
MSP432器件的一个 固件更新机制当中
它嵌入了一个多层次的安全防护控制
第一是为引导加载程序 BSL 加上一个特定的密码保护
那这样以来 无论器件是否 已经执行了JTAG和IP安全防护
它BSL都必须提供密码才能 对器件执行固件更新操作
如果这个时候器件已经 锁断了JTAG和SWD的访问
用户将会获得一个用于加密的密钥
那在将需要更新的内容 传输和烧录到器件之前
BSL先通过这个密钥对我们 所需要传输的内容进行加密
因此只有在固件初始化编程的时候
我们才可以共享到这个密钥
BSL主机必须使用这个密钥 对传输的更新内容进行加密
这样BSL的通讯才可以被 视为是一个安全保密的
它可以避免BSL的通讯线路收到窥探
从而导致数据的泄露
在经过加密的一些 更新内容传输到器件以后
BSL它也同样要通过我们上一章介绍 闪存邮箱的机制来启动一个跨越系统
这样启动代码才能从 闪存邮箱当中获取信息
并且用预先协商好的密钥对我们 传输到的更新内容进行解密
然后再将解密后的固件来 更新烧录我们的器件的闪存当中
那在整个操作完成之后
器件就可以重启 并且运行新的部件了
那在已经加密密钥的情况下
受IP保护的区域也 同样可以进行代码的更新
这一点是至关重要的
因为这个能让我们IP供应商安全地来进行一个现场的固件更新
而同时又阻断了最终的用户 访问到实际的更新内容
因此同样的 也仅在IP保护区域在初始编程的时候它才会共享到这个密钥
然后我们的IP供应商 它就向最终用户提供一个已经使用密钥加密的更新内容
最终用户通过BSL来访问器件 将加密后的更新内容传输到器件
那同样的 使用这个跨越启动机制
从闪存邮箱当中来获得相应的信息
启动代码会使用都同样的密钥对 收到的更新内容来进行解密
并且将这些内容烧录到 一个受IP保护的存储区
那在整个操作过程中
只有对这个IP保护区进行配置的这个IP供应商才可以获得这个密钥
在整个操作完成之后 就可以 去器件执行一个复位操作
然后我们就可以使用一个更新过的 受IP保护的代码
那整个器件的安全和IP的 保护都是一个非常复杂的主题
那么在今天的培训课程当中
我们只是简要地介绍了一下 MSP432 MCU它的安全特性
我们非常强烈地建议您能够对 这个问题来做进一步的研究
可以查看不同的应用手册
和专门用于展示如何 实现MSP432软件安全
以及如何对MSP432配置安全更新 或者BSL编程的软件示例
所有的这些资源您 都可以从MSPWare上获取
现在展示的这张图片就可以告诉您 从哪里能找到相关的应用手册
以及在MSPWare当中包含的软件示例
好 今天的培训课程就到此结束
非常感谢您的观看
谢谢大家
大家好 欢迎观看 MSP432 MCU的产品培训 本次的在线培训是整个 MSP432在线培训课程的第七部分 那么在这部分中我们将介绍 MSP432的安全防护特性 我们会介绍MSP432提供的 AES256的加密引擎 了解几种用于JTAG锁定的机制 还会介绍IP安全防护的一些功能 以及如何在应用已经烧录的情况下在现场安全地进行固点更新升级的操作 MSP432内置的是在MSP430系列里面已经为人所熟知AES256加密引擎 这个机密引擎 它能够 实现256位的AES加密 由于这是一个硬件的加密引擎因此它的整个的加密过程不需要CPU的参与 也就是说一旦您的应用中已经加载了密钥和需要加密的数据 AES模块就可以和CPU并行运行 AES256模块它支持128位 129位和256位多种的密钥长度 它并且能够即时的 生成一个真正的随机密钥 它也可以离线生成密钥 AES256模块还可以 用于一种坏模式的处理 例如 它和OFB ECB以及 CBC一起和DMA配合使用 用户就可以据此来 配置一个数据信号链 比如 我们可以通过SPI来接受数据 它由DMA将数据从SPI的接收寄存器 传输到AES模块来执行解密或者加密 完成以后 再由DMA传输 到其他的外设寄存器 这样就可以形成一个于CPU并行 运行的数据型号处理链 采用AES256的硬件加密引擎 它有两个主要的优势 首先我们的并行引擎 就减轻了CPU的负载 那另一个优势是跟软件 进行AES加解密相比 我们整个硬件的加减密过程它无论是在速度还是在功耗方面 它都得到了非常大的提升 比如我们用软件加加减密的时候 通常对一个128位的数据加密 它需要在CPU当中 执行7000个时钟周期 而现在我们AES硬件的这个 加密引擎来执行同样的操作 它只需要190个时钟周期 那大家可以看到 这个对 速度的提升是非常明显的 而且这个190个时钟周期 它是可以和CPU并行运行的 它的CPU是完全解放出来 可以进行其他操作的 那它无论是在速度还是功耗方面都对整个加密操作进行了极大的提升 那在AES中 它引擎对任何需要安全和保密的一些通信应用 比如 我们的RF 我们的UART通信 甚至是故现场更新这样的操作呢 都至关重要 那我们AES256模块 被广泛地用在MSP432的多种的内部引擎中 比如DSR 以及我们后续将有介绍的 一些其他的安全特性 从安全防护和保密角度来看 MSP432它能提供两种类型的安全防护 分别是JTAG保护和软件IP保护 JTAG保护能为器件阻断 所有外来的JTAG访问 一旦JTAG被锁定之后 用户将是不能再和器件建立任何JTAG连接的 我们也是不能再对器件 进行任何的调试 仿真的操作 那另外一种保护机制呢 我们称为软件的IP保护 这种保护是帮助软件供应商将存储器当中存放的代码区域给保护起来 其他人包括用户自己都无法再访问 这个受保护区域内的内容 这个受保护区域内的内容只能由代码来执行而无法获取它的内容 那我们把这个机制就设为为 软件供应商提供的黑盒解决方案 MSP432它将以上两种类型的 安全保密机制结合起来使用 它同时拥有JTAG保护和IP保护 那这样的器件将是非常安全可靠的 好 我们现在先来看一下MSP432 MCU上的JTAG安全防护 那从用户的角度来看 432上的JTAG防护和MSP系列430中其他器件的JTAG的控制是非常类似的 因为一旦锁住了JTAG 我们用户将无法 再通过JTAG来访问到器件 也不能进行任何的调试 仿真的操作 那我们首先用户需要开发代码 然后将这个代码加载闪存当中 并且加以调试 最后就调用JTAG锁定机制来阻断所有一切通过JTAG的通讯口对器件的访问 那这样器件就被保护起来 以免受到外部的访问 只有内部的应用代码 它仍然可以访问器件内的所有存储区 如果需要恢复对器件的JTAG访问 那我们只有对器件实行一个整体的 擦除或者恢复出厂设置这样的操作 无论是哪一种操作 它都需要先清除器件上所有存储的内容 然后才能重新通过JTAG来访问器件 那这样就能确保用户的所有的相关软件和应用代码都会被彻底地清除 而不会被任何人通过JTAG来盗窃 那对于已经锁定阻止 任何JTAG访问的器件 它的固件仍然可以通过 BSL来进行现场更新的 那这时候用户就可以根据需要 选择进行一个安全的固件更新 或者是一个非安全的固件更新 那有关这方面的内容 我们在后续部分 介绍BSL的时候会进一步地讲解 现在我们再来具体地 看一下软件的IP保护 前面提到过IP保护这种机制能让软件IP供应商安全地提供特定黑盒解决方案 让最终用户无法读取机密IP代码的 它只能执行一些IP代码 因此无论是调试器还是用户的其他的应用代码 它都不能够读取受IP保护的这部分的存储器的内容 它只能调用受到IP保护的 这种存储器内的代码的功能 那MSP432它最多支持4个IP保护区域 好 现在我们来考虑一下某些情况 比如一个用户有4个软件IP供应商 那其中第一的IP供应商 可以经过编程和设置来屏蔽它们的第一个IP保护区 那第二IP供应商 它无法访问第一个IP供应商的IP保护区 但是 它能调用第一个 供应商提供的这些代码 第二个供应商他同样可以 对第二个IP保护区进行编程 那最终 我们的最终客户或者说最终用户 它都可以调用这4个IP保护区内 提供的任何的一个函数功能 但是呢 他们是无法读取 其中的任何内容的 那和JTAG锁定相类似 MSP432也提供一种机制 使得客户能够对这种独立的IP 保护区域 进行现场的更新 但是 它不能访问到这些内容 那现在图片上展示的就是在MSP432上进行安全防护操作的一个流程 那这个流程机制对于JTAG防护和 IP保护设置都是一样的 它同样可以用于BSL的固件更新 我们称呼这个机制为一个跨越启动 那在存储器当中会有一个特殊的区域我们可以称闪存邮箱 叫flash mail box 那通过这个闪存邮箱 用户或者应用代码 它可以和启动代码 形成一个单向的通讯 那在图片上展示的实例当中 我们讲配置的信息 烧录到这个闪存邮箱中 一旦烧录成功 用户就可以执行 器件的重启和复位 然后就由启动代码来接管后续的处理 那启动代码这个时候就可以从闪存邮箱当中来读出我们烧录进去配置信息 然后根据这些读出来的 命令内容 来调度相应的任务 这些命令内容可能是 执行一个JTAG锁定操作 也可能是一个配置IP保护区域 他可能携带代码 也可能不携带代码 那整个操作完成后 器件就会被锁藏在JTAG访问后 那IP保护区域也会 完全阻断外界的访问 只有BSL是可以按照用户的需求 来完成进一步的操作的 同样这样一安全调度的机制 也可以用于固件的现场更新 在JTAG访问已经被阻断的情况下 我们可以通过BSL 对闪存邮箱来进行编程 以此来创建一条通讯的通道 在用BSL主机向器件的启动代码 来传输保密的配置信息 以便启动代码能调度到相应的任务 完成存储器中固件的更新操作 MSP432器件的一个 固件更新机制当中 它嵌入了一个多层次的安全防护控制 第一是为引导加载程序 BSL 加上一个特定的密码保护 那这样以来 无论器件是否 已经执行了JTAG和IP安全防护 它BSL都必须提供密码才能 对器件执行固件更新操作 如果这个时候器件已经 锁断了JTAG和SWD的访问 用户将会获得一个用于加密的密钥 那在将需要更新的内容 传输和烧录到器件之前 BSL先通过这个密钥对我们 所需要传输的内容进行加密 因此只有在固件初始化编程的时候 我们才可以共享到这个密钥 BSL主机必须使用这个密钥 对传输的更新内容进行加密 这样BSL的通讯才可以被 视为是一个安全保密的 它可以避免BSL的通讯线路收到窥探 从而导致数据的泄露 在经过加密的一些 更新内容传输到器件以后 BSL它也同样要通过我们上一章介绍 闪存邮箱的机制来启动一个跨越系统 这样启动代码才能从 闪存邮箱当中获取信息 并且用预先协商好的密钥对我们 传输到的更新内容进行解密 然后再将解密后的固件来 更新烧录我们的器件的闪存当中 那在整个操作完成之后 器件就可以重启 并且运行新的部件了 那在已经加密密钥的情况下 受IP保护的区域也 同样可以进行代码的更新 这一点是至关重要的 因为这个能让我们IP供应商安全地来进行一个现场的固件更新 而同时又阻断了最终的用户 访问到实际的更新内容 因此同样的 也仅在IP保护区域在初始编程的时候它才会共享到这个密钥 然后我们的IP供应商 它就向最终用户提供一个已经使用密钥加密的更新内容 最终用户通过BSL来访问器件 将加密后的更新内容传输到器件 那同样的 使用这个跨越启动机制 从闪存邮箱当中来获得相应的信息 启动代码会使用都同样的密钥对 收到的更新内容来进行解密 并且将这些内容烧录到 一个受IP保护的存储区 那在整个操作过程中 只有对这个IP保护区进行配置的这个IP供应商才可以获得这个密钥 在整个操作完成之后 就可以 去器件执行一个复位操作 然后我们就可以使用一个更新过的 受IP保护的代码 那整个器件的安全和IP的 保护都是一个非常复杂的主题 那么在今天的培训课程当中 我们只是简要地介绍了一下 MSP432 MCU它的安全特性 我们非常强烈地建议您能够对 这个问题来做进一步的研究 可以查看不同的应用手册 和专门用于展示如何 实现MSP432软件安全 以及如何对MSP432配置安全更新 或者BSL编程的软件示例 所有的这些资源您 都可以从MSPWare上获取 现在展示的这张图片就可以告诉您 从哪里能找到相关的应用手册 以及在MSPWare当中包含的软件示例 好 今天的培训课程就到此结束 非常感谢您的观看 谢谢大家
大家好 欢迎观看 MSP432 MCU的产品培训
本次的在线培训是整个 MSP432在线培训课程的第七部分
那么在这部分中我们将介绍 MSP432的安全防护特性
我们会介绍MSP432提供的 AES256的加密引擎
了解几种用于JTAG锁定的机制
还会介绍IP安全防护的一些功能
以及如何在应用已经烧录的情况下在现场安全地进行固点更新升级的操作
MSP432内置的是在MSP430系列里面已经为人所熟知AES256加密引擎
这个机密引擎 它能够 实现256位的AES加密
由于这是一个硬件的加密引擎因此它的整个的加密过程不需要CPU的参与
也就是说一旦您的应用中已经加载了密钥和需要加密的数据
AES模块就可以和CPU并行运行
AES256模块它支持128位 129位和256位多种的密钥长度
它并且能够即时的 生成一个真正的随机密钥
它也可以离线生成密钥
AES256模块还可以 用于一种坏模式的处理
例如 它和OFB ECB以及 CBC一起和DMA配合使用
用户就可以据此来 配置一个数据信号链
比如 我们可以通过SPI来接受数据 它由DMA将数据从SPI的接收寄存器
传输到AES模块来执行解密或者加密
完成以后 再由DMA传输 到其他的外设寄存器
这样就可以形成一个于CPU并行 运行的数据型号处理链
采用AES256的硬件加密引擎 它有两个主要的优势
首先我们的并行引擎 就减轻了CPU的负载
那另一个优势是跟软件 进行AES加解密相比
我们整个硬件的加减密过程它无论是在速度还是在功耗方面
它都得到了非常大的提升
比如我们用软件加加减密的时候
通常对一个128位的数据加密
它需要在CPU当中 执行7000个时钟周期
而现在我们AES硬件的这个 加密引擎来执行同样的操作
它只需要190个时钟周期
那大家可以看到 这个对 速度的提升是非常明显的
而且这个190个时钟周期 它是可以和CPU并行运行的
它的CPU是完全解放出来 可以进行其他操作的
那它无论是在速度还是功耗方面都对整个加密操作进行了极大的提升
那在AES中 它引擎对任何需要安全和保密的一些通信应用
比如 我们的RF 我们的UART通信
甚至是故现场更新这样的操作呢 都至关重要
那我们AES256模块 被广泛地用在MSP432的多种的内部引擎中
比如DSR 以及我们后续将有介绍的 一些其他的安全特性
从安全防护和保密角度来看 MSP432它能提供两种类型的安全防护
分别是JTAG保护和软件IP保护
JTAG保护能为器件阻断 所有外来的JTAG访问
一旦JTAG被锁定之后 用户将是不能再和器件建立任何JTAG连接的
我们也是不能再对器件 进行任何的调试 仿真的操作
那另外一种保护机制呢 我们称为软件的IP保护
这种保护是帮助软件供应商将存储器当中存放的代码区域给保护起来
其他人包括用户自己都无法再访问 这个受保护区域内的内容
这个受保护区域内的内容只能由代码来执行而无法获取它的内容
那我们把这个机制就设为为 软件供应商提供的黑盒解决方案
MSP432它将以上两种类型的 安全保密机制结合起来使用
它同时拥有JTAG保护和IP保护
那这样的器件将是非常安全可靠的
好 我们现在先来看一下MSP432 MCU上的JTAG安全防护
那从用户的角度来看
432上的JTAG防护和MSP系列430中其他器件的JTAG的控制是非常类似的
因为一旦锁住了JTAG 我们用户将无法 再通过JTAG来访问到器件
也不能进行任何的调试 仿真的操作
那我们首先用户需要开发代码
然后将这个代码加载闪存当中 并且加以调试
最后就调用JTAG锁定机制来阻断所有一切通过JTAG的通讯口对器件的访问
那这样器件就被保护起来 以免受到外部的访问
只有内部的应用代码 它仍然可以访问器件内的所有存储区
如果需要恢复对器件的JTAG访问
那我们只有对器件实行一个整体的 擦除或者恢复出厂设置这样的操作
无论是哪一种操作 它都需要先清除器件上所有存储的内容
然后才能重新通过JTAG来访问器件
那这样就能确保用户的所有的相关软件和应用代码都会被彻底地清除
而不会被任何人通过JTAG来盗窃
那对于已经锁定阻止 任何JTAG访问的器件
它的固件仍然可以通过 BSL来进行现场更新的
那这时候用户就可以根据需要 选择进行一个安全的固件更新
或者是一个非安全的固件更新
那有关这方面的内容 我们在后续部分 介绍BSL的时候会进一步地讲解
现在我们再来具体地 看一下软件的IP保护
前面提到过IP保护这种机制能让软件IP供应商安全地提供特定黑盒解决方案
让最终用户无法读取机密IP代码的
它只能执行一些IP代码 因此无论是调试器还是用户的其他的应用代码
它都不能够读取受IP保护的这部分的存储器的内容
它只能调用受到IP保护的 这种存储器内的代码的功能
那MSP432它最多支持4个IP保护区域
好 现在我们来考虑一下某些情况
比如一个用户有4个软件IP供应商
那其中第一的IP供应商 可以经过编程和设置来屏蔽它们的第一个IP保护区
那第二IP供应商 它无法访问第一个IP供应商的IP保护区
但是 它能调用第一个 供应商提供的这些代码
第二个供应商他同样可以 对第二个IP保护区进行编程
那最终 我们的最终客户或者说最终用户
它都可以调用这4个IP保护区内 提供的任何的一个函数功能
但是呢 他们是无法读取 其中的任何内容的
那和JTAG锁定相类似
MSP432也提供一种机制
使得客户能够对这种独立的IP 保护区域 进行现场的更新
但是 它不能访问到这些内容
那现在图片上展示的就是在MSP432上进行安全防护操作的一个流程
那这个流程机制对于JTAG防护和 IP保护设置都是一样的
它同样可以用于BSL的固件更新
我们称呼这个机制为一个跨越启动
那在存储器当中会有一个特殊的区域我们可以称闪存邮箱 叫flash mail box
那通过这个闪存邮箱 用户或者应用代码
它可以和启动代码 形成一个单向的通讯
那在图片上展示的实例当中
我们讲配置的信息 烧录到这个闪存邮箱中
一旦烧录成功 用户就可以执行 器件的重启和复位
然后就由启动代码来接管后续的处理
那启动代码这个时候就可以从闪存邮箱当中来读出我们烧录进去配置信息
然后根据这些读出来的 命令内容 来调度相应的任务
这些命令内容可能是 执行一个JTAG锁定操作
也可能是一个配置IP保护区域
他可能携带代码 也可能不携带代码
那整个操作完成后 器件就会被锁藏在JTAG访问后
那IP保护区域也会 完全阻断外界的访问
只有BSL是可以按照用户的需求 来完成进一步的操作的
同样这样一安全调度的机制 也可以用于固件的现场更新
在JTAG访问已经被阻断的情况下
我们可以通过BSL 对闪存邮箱来进行编程
以此来创建一条通讯的通道
在用BSL主机向器件的启动代码 来传输保密的配置信息
以便启动代码能调度到相应的任务 完成存储器中固件的更新操作
MSP432器件的一个 固件更新机制当中
它嵌入了一个多层次的安全防护控制
第一是为引导加载程序 BSL 加上一个特定的密码保护
那这样以来 无论器件是否 已经执行了JTAG和IP安全防护
它BSL都必须提供密码才能 对器件执行固件更新操作
如果这个时候器件已经 锁断了JTAG和SWD的访问
用户将会获得一个用于加密的密钥
那在将需要更新的内容 传输和烧录到器件之前
BSL先通过这个密钥对我们 所需要传输的内容进行加密
因此只有在固件初始化编程的时候
我们才可以共享到这个密钥
BSL主机必须使用这个密钥 对传输的更新内容进行加密
这样BSL的通讯才可以被 视为是一个安全保密的
它可以避免BSL的通讯线路收到窥探
从而导致数据的泄露
在经过加密的一些 更新内容传输到器件以后
BSL它也同样要通过我们上一章介绍 闪存邮箱的机制来启动一个跨越系统
这样启动代码才能从 闪存邮箱当中获取信息
并且用预先协商好的密钥对我们 传输到的更新内容进行解密
然后再将解密后的固件来 更新烧录我们的器件的闪存当中
那在整个操作完成之后
器件就可以重启 并且运行新的部件了
那在已经加密密钥的情况下
受IP保护的区域也 同样可以进行代码的更新
这一点是至关重要的
因为这个能让我们IP供应商安全地来进行一个现场的固件更新
而同时又阻断了最终的用户 访问到实际的更新内容
因此同样的 也仅在IP保护区域在初始编程的时候它才会共享到这个密钥
然后我们的IP供应商 它就向最终用户提供一个已经使用密钥加密的更新内容
最终用户通过BSL来访问器件 将加密后的更新内容传输到器件
那同样的 使用这个跨越启动机制
从闪存邮箱当中来获得相应的信息
启动代码会使用都同样的密钥对 收到的更新内容来进行解密
并且将这些内容烧录到 一个受IP保护的存储区
那在整个操作过程中
只有对这个IP保护区进行配置的这个IP供应商才可以获得这个密钥
在整个操作完成之后 就可以 去器件执行一个复位操作
然后我们就可以使用一个更新过的 受IP保护的代码
那整个器件的安全和IP的 保护都是一个非常复杂的主题
那么在今天的培训课程当中
我们只是简要地介绍了一下 MSP432 MCU它的安全特性
我们非常强烈地建议您能够对 这个问题来做进一步的研究
可以查看不同的应用手册
和专门用于展示如何 实现MSP432软件安全
以及如何对MSP432配置安全更新 或者BSL编程的软件示例
所有的这些资源您 都可以从MSPWare上获取
现在展示的这张图片就可以告诉您 从哪里能找到相关的应用手册
以及在MSPWare当中包含的软件示例
好 今天的培训课程就到此结束
非常感谢您的观看
谢谢大家
视频报错
手机看
扫码用手机观看![](/site/qrcode?id=307)
收藏本课程
视频简介
MSP432产品培训(七)-安全与防护
所属课程:MSP432产品培训
发布时间:2015.08.17
视频集数:13
本节视频时长:00:16:33
MSP432是TI的MSP430家族新增加的32位产品系列,采用ARM-CortexM4F内核,专注于低功耗和通用微控制器领域。在低功耗和高性能以及增强型外设方面均有突出表现。本次MSP432培训共分12个章节,详细介绍了产品的内核,架构和各种增强型外设,配合小练习,帮助用户迅速了解MSP432产品的性能,快速掌握MSP432产品的使用。
//=$v1;?>
//=$v['id']?>//=$v['down_category']?>//=$v['link']?>//=$v['is_dl']?>//=$v['link']?>//=$v['name']?>//=$v['name']?>
//=$v['id']?>//=$v['down_category']?>//=$v['path']?>//=$v['is_dl']?>//=$v['path']?>//=$v['name']?>//=$v['name']?>
////=count($lesson['bbsinfo'])?>
//=$elink?>//=$elink?>//=$tags[0]?>//=$tags[0]?>//=$elink?>//= $elink?>//=$tags[1]?>//=$tags[1]?>
//=$lesson['bbs'];?>
//=count($lesson['bbsinfo'])?>