微控制器安全起动 (Secure Boot) 的软硬件整合作法 – 以NuMicr...
微控制器安全起动 (Secure Boot)的软硬件整合作法
以 NuMicro M2351 系列为例
Secure Bootloader 是一段被写在 Mask ROM 内无法被存取和更改的可开机程序代码。系统经由配置区设定为从 Secure Bootloader 启动后,便会启动 Secure Boot 验证机制,对存放在Flash Memory安全区域内的程序代码做开发者身分认证和代码完整性的验证。当 Secure 区域代码通过 Secure Boot 验证后,系统才会跳至 Secure 区域内执行被验证过的受保护代码,例如下图所示。
data:image/png;base64,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
如果下一阶段的启动代码没通过 Secure Boot 验证的检测,此时 Secure Bootloader 会执行USB/UART1 command 模式,等待接收并处理从 Secure ISPTool USB/UART1 接口送进来的 command。
另外在 Secure Bootloader 内有开放部分的 API,让程序开发人员可以直接使用这些已经在Secure Bootloader 代码内有提供的功能。
data:image/png;base64,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
本文将以M2351为范例介绍Secure Bootloader 和整个 M2351 内存之间的关系开始,之后会说明如何配置启动 Secure Bootloader、Secure Bootloader 工作频率、如何启动 Secure Boot 验证以及Secure Boot 验证时必要的配置和验证流程。最后会介绍 USB/UART1 command 模式的功能和特性。
位置和属性
Secure Bootloader 代码被预写在 32KB Mask ROM 内,位置落在 0x0080_0000 ~ 0x0080_7FFF 间的 Secure 区域内,并被配置为 Execute-only memory (XOM) 属性,因此这段代码是无法被更改以及存取的。另外在 Secure Bootloader 运行过程中,会需要用到位于 0x2000_C000 至 0x2000_FFFF 共 16KB 的 Secure 内存。
data:image/png;base64,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
起始开机区选择
M2351 User Configuration Block 是可以配置和系统启动选项相关的配置区块。在芯片上电后,CPU 执行任何代码之前,可以预先执行照配置区内所设定的动作。
因此透过更改配置区内 CBS (CONFIG0) 和 MBS (CONFIG0) 的设定,便可决定 M2351 在上电后的起始开机区域为何。
如要规划从 Secure Bootloader 启动开机,则只需将 MBS 配置为 0 后再做系统重置即可。否则系统起始开机区会由 CBS 的设定值来决定从 APROM 或 LDROM 启动。
data:image/png;base64,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
Bootloader 工作频率
当起始开机区运行在 Secure Bootloader 时,系统的工作频率会切换为 48MHz。
如为有支持 USB 功能的芯片型号时,Secure Bootloader 启动后会先检测外部 HXT-12MHz 频率误差是否有小于 6% 后,再决定系统工作频率的时钟源。如外部 HXT-12MHz 频率误差小于 6%,则优先以此 HXT-12MHz 来产生 PLL-48MHz 的时钟源,并将此 PLL-48MHz 当作系统工作频率和 USB 装置的工作时钟源。
如果芯片没有支持 USB 功能,或是外部 HXT-12MHz 频率误差过大,则会转换成以内部 HIRC-12MHz 当作 PLL-48MHz 的时钟源,来当作是系统工作频率或是 USB 装置的工作时钟源。
启动 Secure Boot 验证
系统从 Secure Bootloader 启动后,可以开启 Secure Boot 验证的机制。这目的主要是验证下一阶段要被执行的 Secure 代码是否有通过代码开发者身分认证和代码完整性的验证。如果要启动 Secure Boot 验证,除了设定从 Secure Bootloader 开机外,还需透过设置 Secure Region Lock 或者是 All Region Lock 来对系统的 Secure 区域做保护。
在 Secure 区域没有受到保护的情况下,Secure Bootloader 启动后是不会执行 Secure Boot 验证机制的。此时系统将会跳到 Secure Bootloader 内的 USB/UART1 command 模式,等待接收并处理 USB/UART1 command,而不会跳到其他区域内的代码作执行。
当启动 Secure Boot 验证下一阶段要被执行的 Secure 区域代码无误后,Secure Bootloader 将会参照配置区内 CBS (CONFIG0) 的设定值来决定 CPU重启之后是要执行 Secure APROM 或是 Secure LDROM 内的代码。
如果 Secure Boot 验证过程中有错误产生,则系统也一样会跳到 Secure Bootloader内 的USB/UART1 command模式,等待接收并处理 USB/UART1 command。
下面表格为 MBS、SCRLOCK、ARLOCK、CBS 和系统起始开机区的关系表:
data:image/png;base64,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
Secure Boot 配置说明
前面章节大致说明了如何将系统配置从 M2351 Secure Bootloader 启动,并开启 Secure Boot验证的功能。
下面的子章节将说明执行 Secure Boot 验证时的必要配置。
SBK – Secure Boot Key
Secure Boot Key (SBK) 是一把对被 Secure Boot 验证的 Secure 区域代码 SHA-256 Hash 值做加密的 AES 加密安全密钥。
SBK安全密钥有效长度为 256-bits,只能被写入一次,无法被读出
如要更新此SBK安全密钥,只能做全芯片擦除后再做更新的操作
一定要有配置过SBK,后续的Secure Boot验证流程才可能会成功
IB – Information Block
Information Block (IB) 为一块被写在 Secure APROM 后面的数据区块。
区块内容记录着被 Secure Boot 验证的受保护代码存放位置,以及一组 256-bits 的数字检查码。此 256-bits 数字检查码为受保护代码的 SHA-256 Hash 值再使用 Secure Boot Key (SBK) 做 AES-256 加密后的结果。
IB被记录在 Secure APROM 最后的 144 bytes
最多可配置 6 组受Secure Boot验证的代码区域,
IB内容内有一组checksum数据,可让Secure Bootloaer判断这组IB数据的正确性
如果没有正确的IB数据区块,Secure Bootloader将不会执行 Secure Boot验证流程
Secure Region Lock
当系统安全属性有被配置为开启 Secure 区域保护时,Secure Bootloader 才会执行Secure Boot 验证。此时系统内的 Secure 区域代码将不能经由 ICE 界面被存取。
将SCRLOCK 或是 ARLOCK 任一组配置区改为非 0x5A后,Secure 区域代码将无法被 ICE 界面存取
只能做全芯片擦除后才可以解除Secure区域的保护
在没有开启Secure区域保护的系统里, Secure Bootloader将不会执行 Secure Boot验证流程
Secure Boot 验证流程
下列步骤会说明 Secure Bootloader 执行 Secure Boot 验证的流程。
判断是否有开启 Secure 区域保护功能
判断是否有正确的IB 区块
依据 IB区块内的资料,判断要被保护代码的SHA-256 Hash值是否正确
如果代码的SHA-256 Hash值比对正确,CPU将会跳去执行这段代码。如果Hash值比对错误,则Secure Bootloader会进入USB/UART1 command模式,等待接收并处理 USB/UART1 command。
下列流程图将说明 Secure Bootloader启动后执行 Secure Boot 验证到最终执行 Trusted Boot Code 的过程,以及在 Secure Boot 验证过程中出现错误时的处理方式。
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAj4AAAGxCAAAAABHV+PgAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAADsMAAA7DAcdvqGQAADScSURBVHja7Z15QMz5/8efphQ1lZKaqQgZ5VYRQsKylqRFcuUqHWJ97VrHnr7skmMdv1065L5yrg65lpxrN0xYGxo3W6O1RTPZ6pv5/P6YUEz1mfl8PnN5P/6gz+fz/ryvz3Pe1+t91KNAIGgKT9cRIBgyRD4EBhD5EBhA5ENgAJEPgQFEPgQGEPkQGEDkQ2AAkQ+BAUQ+BAYQ+RAYQORDYACRD4EBRD4EBhD5EBhA5ENgAJEPgQFEPgQGEPkQGEDkQ2CAKTveFNx58r9rar/lDRc3W13nAIEB9VhYafHgXLpZW8f6bdV+8Soe5Vh/5OOk60wgaApz+Vz6wc6/l0Dj1x9mnreIaqPrbCBoBlP53E60CtdcO5V+JFmGkxLIIGEmn4qkm+Hq11nvcjFpYLCuc4KgAYzkI1vm+yFL8dh1b3YDXecFQW2YyCfv+2g2ih4l51PmN9Z1ZhDUhYF8bq/8kmmrpyp31n1lr+vcIKiJ5vIp+vK/dqxG5eHyJTa6zg6Cemg86lyxchq76kGz0UtLdZ0dBPXQuPSJbzaQ9chsVUwhRhSDQtPPde0x++rBhN8u6zo/CGqhoXwqtodyEZuwPVId5wdBLTSUT2ZTt6qXaXFxYhpvnY6T1+6gq/nv5brOEYIaaCafig2jqKpsoZ51y6t6Iy+Nepe8D6g8qnbGp5Hix5DQbMLG+a5v9bqicTlfKE993s0L+QcRJFyT+igagBhe+ZcD0v23NQ0AsKYV+OI8J6/8gwgSiq0uYmx6cSC/mj9udn8IzHSdJwTaaFb6ZHV560Zc7FMvDL2G7uL8/s+fu76qo37/HflbsGUoftipvJHf/Vye0sXv7R6ub3vu9HdveeR967Gus4RAH41Kn4oz0W/3922epDnZL4HL75gRhaJbwXeiqHj4ABQFCiu8fGLHAMF3osTDliB+RhSKbmHh3AGxS8Sxb3nkO2eQgnTeDQaNPpXE4+0KJipq21Y1PVE9wuxY/59nus4TAm00Kn3Eb9ddiMeeUV5/zrPdegKuz4uyYqUp8VFRAHpgjz0QOmPPp2/cBrk+L8qKzarB7y53mrI8mk3gDo1Kn3sub3WYQinq20jqt47Wvzg63rfumEI5HrOmKIryPEbtCKUQS80aQlGUMJQShlKU0kXXrq+uq+Py5IWu84RAG42MFjMj3dRxHjLXi77jX4+PbWmh61wh0ESj0ueuo1rOQ9WZiepYgP/pOlMIdNGk7VNRzlfLfYA6ju2eoUzXmUKgiyalj4zLtVm2/6BCh/lBUAtN5GP7hMMIPREQ+RgOGrV9HAtV2atyZXRuiuuwehWSZacGhEbyaaay+PlK8vadbBU3fevw+0kTthZOE7hHI/k0KVJ9P1sKQJItB5CdDUh8s+Wo/FuanS0H5NlyVP4rkUtU+lFkQ+RjOGj0qUR3uqu6PaFt6hG/L9Lbpt7lBwH45QBiF4GSBQH45dI2pBbAITAHlGRE25z9ouHotU6VJ3dbwlzXmUKgi0by8Ywdp+r2T35nkoVZ15CQYj1wDkZnz1mQDCBt4ByMzh7inf9UcnPBHLkDVsX4ZG1afLtAde9f/AHq6zpTCHTRSD6uRUWqGrhWsCqU2wNtbhTbAK9GmpV/71rS9lcU24APFO7NRF9AtXpuOljwyKCzwaBZO8P/0gcq7iZO3evfKifdeuEyzGlTvD2awhlPUF3ntCneHr10Wtscqs3Crlmg/B8EQ0hBtbXkUgcQ9RgOJgs0ecvsiN+7N+99tNo2ht89+ezsbsLGGx6tEqLzhn5/d2zXeMOjVcJOB6/36ej5747mPXp6PNxxvknr6yNV+ry+v4V9Q11nCoEuGq7z+iSiJSfRuXBiLM+DTBczGDT8VOE7KU7YORANiXoMBw2/VUebC1zEJqWdvYmzjnOEoAaa/tRD93OwIKvkaC9YkoUWBoTGa9yP5YSzHpnvu7vVb0HkY0Bo3NAYWO8E23HZ2cwNtkQ9hoTm7dSY87fYjcpv93vD2kHXGUJQBwa7ixV9M1KNOcx1ciIrxKRBS9LtMiiY7G0o/65DIGsRSSoZamLWnFRdhgWjnVXLE56HW7ISjaI1HbrAvCnZXNXAYLavsyJ198ChzEuMkv3nx7uiQXMy0cfQYLyr/OGs4b2ZCajkxPHeXU1g5arrvCCoDeMzLQrvHjnr5eOl6QzlAvHZ+317WcDUgSxNNkBYOFHn76e5f1wxcTBrXcPzfxrWNAXjOvLrd+7kApg0Jh12g4SNA5nwt/xF8fOXD2t4uru1Zw1PWsDOAuA1tLQn/XXDhBX5ACgs/h9VgxVstXfvGl8zq1ffuhHRjsHCVmfHruami7N7e12nksAR5JdPYACRD4EBRD4EBhD5EBhA5ENgAJEPgQFEPgQGEPkQGEDkQ2AAkQ+BAUQ+BAYQ+RAYQORDYACRD4EBRD4EBhD5EBhA5ENgAJEPgQFEPgQGEPkQGEDkQ2AA58vKN+P804c2H+s6nQROYGudV42MSQbwzX91nU4CJ3BeeU0AgBG6TiaBGzgvfQobA46PydYrxgnnpY9dIDCBqMdI4b7nNQYYputUEjiC88oLhY35RaT0MVK4/7B2ge5EPcaKFr7smKa6TiSBK7hv+1SUyXSdSI4TmLHmH13HQVdwLp9rodSdyNu6TiaXCZz6V4dPk1/oOhq6geOmc14cZtnh4SpBhKZ7Z+o5eQmKaQKU7zs2qc/7aD7kVD6yvRemdQYAnEsKGGqEe36X/nyyMoGFWx/PaK7r6GgfLuVzfPvw14cWlO87NqOLrhPLegI3B705kTUnvmWYta5jpG24k8+NWJ8JVQ/bLlxXPN2odv6+saxLtQTiZFJwwHt2KAdX8ilaK5vW7K17Oevaj7fSdYJZS+DGgncSWL4rc1ZnXUdMq3Ajn9K09Gk+Ku4fSQ4ZaBRjiKWH0qf0UnFfGl8R7aLryGkRTuRzeuPAEapLcXnyxRkddZ1m5lxI/KCGBOJqvM8YC3X9M1g4kM+DtYIJNe/yLF1nFmXgJxA8WOEcXssJHGnJkwa8L5141uUj25gb3bZWFxfXDRxhwJ142eabdSRQvu3Kf9rpOpragWX5VBzbFt63Tlf7D0T10XXCNU7gjil1J/BhvEVMY11HVRuwK59rP/ScQKfrKk+6N7OVrpOuUQJX9aCVQFyMHzT0PWgCsSmfvDhqmoCm29vrhIZnx8hLeEk7geX73wc7BnvyKd2fOa2TGu7Pb/g4wKA68eomsHDbX0Zvx2BNPsc3fqzmeory5GOfGZAd4/jmYeouGLkR72bkdgyW5HN7UddQvtpvFcbJZjnpOgfocWOZtwYJROamEUZtx2BFPkVJf81sptGbN1b7BhuAHaNo45NozRJYnvxq0oFRwoJ8StPSw3pq/Hbaz3pvx2CWQGnCS+O1YzCXz6UfB4xgUj7Ld1+LaaPrbKiNC4n9GSUQV+N9xhppJ56pfB6s5UcxPUL7URxff+0YD5Y7hzE+Izx9z0TjtGMwk49sx7VoNkqOi3FD9XMyomzjLVYSKN9hnHYMJvKpOJY8eiBL8Ug+FqZ/doyKY1vD6rZQ0ONRgjHaMRjI59qKniEa9GVroHDbfX2zY1xb2SOUxV73xYSPjM6OobF8ChJLox1ZjcqdONdwPerE58VRLCew/MCxyUZmx9BQPqX7j0Z3ZT0ymRtG64sdo3R/ZpQ6Fgp6FO78a7pR2TE0k8/puI+HcxGb8t3HvtCLyYjHN3CTQNxINCo7hibyuR3bZgp7jZ7qFP4fYnRux7ix1Hs8VwnEqU0jjceOob58ipL+inID0ofjQEBt7syAhfOqXMchurqD4L3V3Zcr/78ar2M7RlHS31Fc7upQvvdCdEcjaQKpK5+K9ANhvgBg9sDqp3m1uQzem98/RVSrg2qXr+QDpP8cOkBnGVKalqZMIIc8SVAYiR1DzV/BpfGFccrMHZbJnwdJW7NYINbMTBwsRlwcgmPN8tPNzNJfOecj1qytBOlmZmbiuDikm5kFy8WRbc3iXjmQB5uZpUPS1iwYQFys8mbAmptTb+goPy5ElMZxrR44fvPxwiSj2FRBLfnkzTm0Znx9iqIoitp41SyNGnaw7N7ptHtlZZ6gKICCTRnm/PPPHBlFUSlmrksFaffKDkZQWx48GOYJ5M95UGaXQm06+GAmRVEUKIpa1K/s+nBq2MGyPRTS7s9Vek1ZRs7buLBIB7nxYPqp5SGVCeSUjj/ZhR9V6CCFLKNGP1m299cZbwbw+bH/cX1wuz3gV1xlQoIP8m43BvJFwLA98ecCHm/aBMDOFfsB5LUTICILw6rUaHdHQTQMt0UAsDLhzf2m31+aqXU7hmzjrUitGW8D/Hce+MTg7Ri0S5+KjJhG66pk7jw5WqHV9bKysS5XANjdlF8BADi1+qesTCmQqFVSl8llZWXILSsLAOD0p1SeWL3Ob5kF8Z9oJQGAnUHSKk+6rCuNOK3NnKjImNpmtRZN//yIOVsXGvq+UnTlcyPq4epqHS3bxq5LBduCzM3FAYXm5uLPJjduBAAQfNnY3LzSzZqTAY3MzUfB3tx8lBwQfOnauEUVT8zNR/3npHnoQcS1Nx8FCLaNrRqAWcjyS5890FpGXAt/mOT/1j2xGMAZ6au/4wFAmg4A6ZDGx++UV3eeLn3H13Sp6vsAgKaLPvhst2E3gej1vAoSnzPoy0qC/kRUhJcGb95IEGnHjpEXp4h610JxZuc6HjqctwaAeETFRwEQxybzgNE7ryzzP9lycbVfX3oXQZX/AACjZ3epfuMtylOOGrQdg07bpzQtLYrJnHZRO3PM0kQ9aLP61NQJ3E9GLN2fGaVqsNsvRm4t6clPf4ygSgGkP35d+fpH+SwDAHkqAvk7A/np/gDSH/tg/pBRXtKDLgGQHnSp/HFK8/IeB6nSkFnwBzsPGbAdg4byT0f8u96bUT9jd2npEg1f7bP+4ZRrHOfB8UkmazuoDH3caWr/kHoU9az/S4qiZr1M+4Gai8pe46m42HH1KIoa9vDh0Jf47HJaw+2P0rZSFAVQ+QNepsW+HPDsXCpFUdT2R3/1TLnf/6XKIBpNC12+qljXMtCUOn/Zt2M9lulyPZ/Z5MEJu+nZMSqeVr+mt6LvxpIua2uyUAz/avDxz+GfhrvK6x0rvHyWvn7acqWfNcQFNngqGZM64RgPcPrHyQvtRngltuF1/rR/u8959yud+sbz1tQUAY+Vp6IM1Y5Rh3xkG+9+6qbjKDp+c+0b/5E0OvEv6K4ArUJRUsE3NbfqRDfOdOXBd5yNimd9ojAmV1mnT3PG35AB8Np+MGpd5fMNVQv2JrVGwt933wzDtGPUGueKg1M9lulaPQA6rjWddJwLj0v3zuzyXW19gmmDPgRuUw8qR/gCZ8fPfvXodPzSlNaAF54DFrtGbl2gAMQHnwMtky4Fpilg5ZWydH4KvXiYjf1y/9ePWUlSca2XbGOyoOZn12YJ5+uBeACgzYCTSW3rmrF+/WRHrDVRw15/4dtmn9XebHVpPhIIu99+lDvPWdi4a4fGxV82cQfQwL1eKRxXNwYQ+qQM3n9OFjawsfeQ/eU4w7xbQRvXsFuwbh32oP1MZz7QwMPK3h1NvOrVEhDfz3bVE4/6zHOqzLy2S7apueOeF6eYoU+bGDz60amOTRWe+orx0dnaXNx0qCLBB2sbTdGnBOIwC+sxZCeH8nLz/F57U8zt5KKaSh/Zjq3jRjVk7n/6SWlrpMsvt2bsk80AxZIKt9raahUNr179yB1rY5/6YG3snd7vuvhxyDkrR2WqZPEHpwSykEAWEX1wemNLhiuWzEcMs1nW+c3QPselTw3yOb6k83/YmOi79GiLpH+7dHzamI29EJoO+mNN01rqpjLP+deXYu39aecKGixe7KliXcOp0/d2Lztn5diw4sh3A6LsWcxHVjDzbr/pQntm0+ld9rbbOYN3OQXOuJySLyrXQeVVGuE2nZ3Zdg1KIZ25u0EpW9EtWpLt/OYqvbrVoPm9xTYxGP53k7+bHBhuF+1dc1tjiuvDVXraU967mNlcFUlg9+iuZ74eue/bNv2jXQPk3FZeKiuDBp/8eHCUPmavfM+zqS6Oryv2jdUrn2LYALDr3x1OOJDfJ/fdX8a3CwG4hQd5yPbOitSLSdVvUbQzZ2ULJyZ2muLYHzzxkw/PZ+dK2PhzPRigui3RZUnK9ElszJqaFdL3p3Us+KPkUErfzwFh7e3d6DEnMMljHlTXvW7hQR4ArEaLdmRE6lXDGQBSDvcfCFkJIzOfs3KMqfkQftYpn+scR7imnlfJrX0lkS2Z+5/+uJsn4qPYiOq1RFFfC5g7WdbkoNg6H0JAfgtOVrfgrcLFRSuPV38qpFm7+9MqYuVTDwaur7UOkDvuCgQsFfh2zvpPFa32uWPFtwrfde7ZvXYFAukhZ7xpBANc2tDB3wxmQkbqKZYsSTZNXz6S5+NyUPHj9RfcVl41d9wLxckeky3V841Din58EWQPE8daBn/U7KSWPzx+ejKNldG7rn2f4exZm4v0nKPHeRizo+DDw6ndPBOz1yadWG+9K1x2dU/WcR4GKJbRkc+jJEWgLUzsm9BwWwvFJRcDeLicpfBxOagIcua4415z5WjX77/O0w9yGjh9yrd/2i3c3sTWnfFmF28wazV+/q9z79bpziNLGuCJZZYdbkHSqWFIdogClor4+Q1T5WMahhQDwJooh6pTehph7yprjAnMhqu9BNld6PTwSrYs95toa2LrzlA9gDCQB3hHx3QVRsc4M/WsLmppW/GcR3ybF3GJ6xjQ4XTk/+a5wdLNmd2moFWnmKErf6prUrXntx+FFKffkx2Yrhi559/dlXefPQlcEvhvULwCkPrwx6UqkGrZYpETr1fDE/N5v76yvoVuVuwbRSPSh2ebxLiWNWjBcgI5p1aTqZmHc86+lOnsrvRWn7s/OsyyQP06OyQWb83qo2FBdfD3ODKv/6jaHfldXbbEdetmoHJSNgCgkzXurpyCSQAOrl6JVhEI3MEDcE74ody6ldQJeMp/gcFfzshaVGcsbq5zi7ZA/aY2dbrUN+qwuFt1a37lm+6jdNkEKtpxM0QIU9u6RWyqgcXd1GV8z18iImob1dzl4Wld5DJhLQ9oJXEH/6b8jvJBy41jAABx+daIkbhXOhfM+/H70B/nW+8qEF0FQkNn1lWgFK2XjnaglUA6FBYCAFL7K7+ZBlmiDnUWlo79F9b/9FCtU7rycymKElP5+RRFycTi3GoPxW85luVXfze/Vq+pst3zBP8RmjZqxVkR2KDN+OiUrx7WHAXvSQ0z5w2xs2wY8vL/vBqGtAxwjO1OARQ1PbVhw3UUletrSVE9N79EpfuADCqSJ2x4cHc9ClTgb30o1JrAnbPbTXMwtWYrgc2VbGmi/J/jxSp05jq/uJNxP8Kj5udfpP/Kh8WLBEQC2RPbpi6YU+Xh6OTqjrOzIqteJiAStXB5c6eeZmjgxPG+ONLs5O7BOiliL2zo5WvCQQK9D2tluz8684gtOrhcW+9Qo7lbnjX+9JDXVzGRcoc5kEtEfCAb8JwLyCV8ESSibOGbklSaLxQAErkQgERYk4HkUWK9ibYwdeR8eE8woN2xzwIHcx3MO9xNajjTAvUd9G78ki70pqHb9hFlfdY/WPUg2+mwvgvfyOdBdlYgJCPa5uwXfWCfg2s9X0g6BeaMn/P1U/vU869GTw4FB6Ye8fsiyz4UkETXMDpQskM8yhWm1trYcMO02Rifw9MjtGvHKNp1Y6QLTK0FBtbdqgLdVQxOgzse/WRiD1WPDo3OPyd9XbCkZxUcw6oYn6xNiwuWZwHAqiN+coc5CBuTkPVKPsEF/OylwqxfgISrmQdVFz4ZqX0/B6yEWrK9WXZ0ydl1WJvHtKQe6f8hyuy1lUBOoL0IxqzlhG77UiLetWNINxfCIXPMq8uYyISUyMK9megrb7u05RcACq3A9wWqNZ74EEFe23DatfWiGAuYOWuxQWLn27LmIpZ1Lm/oMMMMZi30Z1xfE9RYQ2Xp1fTqKvdJb6c3c8NoSENHg6JAARRFBbpF+D8IhjDXdiosKVD+iVOz7ClQlQ7uiyEKjPdZ798q5wxfSHV0Cd/1TlBFa1+Mt2c+gK8mPKfB7Y9HTtTGDq+Pk6gpLFgodI5aS/Ca9Gtz5pOhQdVvPgoFBCJpIFwAgO8CwUrJuB3LML7P+SI8PR6IcVjWYj28+JUO7i3DwlX/d8o/Ej+tw3gXDHl89q15geV7T452g4m1UOttArNWjr4HDkewYCqulZL9lz521UkC2Ubd7aHK7xzOjqBnQE4+M1W+UIMFEqe3+vmawMJFR22CgmvJ7mM5bQJlHOrZ1aTMphmXCdRSx139zeme39xHxdAZ45Ivvmc71ZOGw2rcXeswxAL1BbobwK+QHjnbL5gz72/Gu/XlPoF6Kx/giTi5G0eDbEU7b4UIYWKnWzNb6b1fsmgWsWoncIN0lD1rFoqa0WP5oOLRibNDORhkK085OaAzTC2cdL65c9HNA9RU9rcfLN93cqS7VhKoz/JR2jHCPTR6tWYub9WKhYIe0uzkbiNZLmIvbOLGQqEC/ZYPUHRtd5OpbLYwH6+vF6gVCwVNKvKOnQ1gs4i9u8EiSGsWCn2XDxTSrN39RrLVeyjZmT3KVc8G8EvuHM6d2oElz4p2a9VCoffyAcofHfsttIfm71chI71vF4DvpGcD+IU5+2zYKWJTjvfvjDI7Z20l0ADkA8gk++RTmQ+y/ZEk6mvBdIkBJ7BUxF7e1MHfTKsmGIOQD/D31eTWE5nlStG6f4O0b6GgS/nD46cm+jHy4vFGio01FGphIPKBIu/IiYBhmr9fvi9ztBtM+U561OipjuzugaJwzYvYkn3ZOrBQGIp8gNJ7h7PDNR1kO7PNz9cEFk56eZLpKwquJbceo2ET6HAG9xYKFRiOfIDnOQeoaZpE9+46xyEWMBXq+xKDCumx031HavDirQRtWChUYEjyAaTZyT5qD7IV7coNEcLEluPVAKxQeu+XLLWL2KKNT7RioVCBYckHFY9OnA34SJ03ylMz9cRCQY+imweocHXsGOX7MrVkoVCBgckHeHH78L1wd9rOxds69TSDubNeWCjoIc1O9hlBu4j9bbPWLBQqMDj5AIV/7G4SRq+F+TiJF2gLUwcWl6xrgYq8Y2eH0Cti727SooVCBQYoHyikWbv7jqi7j1Gy68ooV5jY6JOFgh4ldw7nhtVtxyhKztXxGgpDlA9Q/vD4b+O71+Ho8KG+XQBLrQ3gs0phzj6buorY1GMDtGqhUIFhykdpxwirbZDtjw2t9dRCQY86i1jxZm1bKFRgqPJRDrJNqCnviuL+DbKHqZ1WEscR5Q+Pn5pQkx1D2arTuQnGcOWDCumRE0MCVT0p339qtBtM+QID6azXhOzugcLwFioelOy/oh9rKAxYPkDp3SPZYe+e4HV2u5+vCRq46LWFgh4F15JFo99pAh051LurSZmtrhaJVMGg5QMU3TygiK6egntxjkMs9Gg6ITMqpMdO+4+oduvWeh1ZKFRg4PIBpNnJXasMshUlSwzGQkGP0nu/ZFUpYos2PNWVhUIFBi8fVDw8eXbIIOXf5WmnBnRGmb2zgTd6qlN084AiTGnHKN9/SncWChUYvnyAkjuH74W5AxBv79TTrLYtmQ0VaXZy1+GWwO9bdGmhUIExyAcovLrXfkrJRl6gbe1bMhssFXm/nB7svsFKpxYKFRiHfKDIv7jCOkYv+rIcUXJn250IvdvlSY82p2MCz7nJsQ6uhmqhoINlx/5NXXRrodAd3Lf0zJo0tWhiqBYKein8p7G10bXq6KGNjoIF1/vl6BxHfaq3tMn7mm4CKxD5EBhA5ENgAJEPgQFEPgQGEPkQGEDkQ2AAkQ+BAUQ+BAYQ+RAYQORDYACRD4EBRD4EBhD5EBjA6YSN4hcAYFchBQCr93RKjFHDqXwKmwPATOXFQyIfbSH7CyW3CrWxZEhP1pUQ2OR/HSrgh7TB3LdMuA1h+ClgcS7niSBUxy6QB6CnFtq13AZxPQK4JOM+FYTqhAAYpY355dzKp/2ktQBwavjwU1pIC+EVH/CAUG10qjlu+3ziNRG4/PUi9M3TQmIIldj1P6qVuovrcR/+zC3Ab6P9/b8n8tEmY3laqbs4HzacmHwdNs+BS0a90kvv+JCnlbqLc/nwP5cgaHPv1m6ttZEaQiWOPbRSd3Hc9okFAi95I/eyFVGPVqkYZ6KVcLjVaGsA3gC8iXq0yvVJ5dHp5VoIiIw6Gx95CYrV9pHbImd25LwCI/IxNmT7L0R4gao/ZXD83mj2j6KvDqf6bA4A+PYkAKAZxykhAABOfGKzTrnhomDByEVbXnAbGpnvY1TcmnxzddDrb9o5nj/1qILL8EjlZUQUJD3/pnm1O8MHbo/+pA13ZQSRj9FQeujYpHdOo+FHPYxvFN6YqzBJ5WUsnI1+sVrVWUbNFveancxVE4jIxzh4EHlx6ThzSiU94qiY89w0gUjlZQzINufOqmVk1ixkwMaDMc04KCqIfAyfiozdk6Jr14bd7Jwfmk+1Zj1oUnkZPNcn/r2+f53fse0aLw7sGJyXPq3uAAhM4TqY95a8hJer7Gm57NNjO+t2DM7lEz4fwBiuQ3lfke3/NcITNE8GqD/5owSW7RicV15BADCQ61DeU058Yr3WUw33gm9HLGTVjsG5fDzcgEBjPAxF99yafGPlMDU/YKc4SzbtGNw3ncNJ3cUJBYs3fRWtQV/q43V3oq+zJSCuT9QBbrbBP8Zd+pw8/a3WO7Clh45O6qbpyw8TbMPoNbfrgvt0t3Lsb9zq0QVno0tWaaweNPu+5+fs2DG4HzY0jWzBgi+EKjz43n2JPd3+lkq6ex2cNrUH87KDlnxkT5gE4WV/m8nrxnBsN6vINt+aJWLqidmoDzYdmNaCqYBoyWfNA77WMudtpCFBOgtbH6nISJ4YyUaTw+6zG6tahjO0Y9CST9m0zlrKnHfZ8vQ+F7Y+Q+X64n6JbBXHbVafjho7kNEpiPpvMv2fvJxUX5XkJShWstNlUtKnx46I/zCxY+i/fAivkO3/dao6Y8w0MJs8OGFvlLPGAqIpH85Hh/QwZH3jxLahP/JYzw6Hr68u6hms6fnzpFlhINyalPNDICdfq9Nai/DDGg5Dk8rrLR6YV7ng667HWZ2CpOKvXDnzPeiDndHT22miTXryod6fKqShQ5WLYl3HRknpoaMTNB9jpgE/4lGi7ZQm6r9IKq+3+PcygMu6jkU1zkbJf+BUPQCaLvLVxI5B5PMWj7ocBHw4XZqpHg/Cs5aMqWENBZt0++nlNLXXY+h95VUZ8pPDienasbzOntPPGoD8ll7sScSKhYIeZsEfbFbXjmEQpc+Tzb6CyRe0FFjzmdsA5Np8H7BY1+lGRWqkaKWW1APAdtaEVWueq/MGBz0vCbvpfbr32G8AgC227Mf1XWwwsUsosOKEv9xmXspLOq9c4moN8PXF/eJpjbiLvd7ku9hLCgEAiVCDbmOblWeix3xI345Br/RRqxKdX9MDWa4GVTJHX6YW+DO2AYVW4Pei+UKXcE7K8Lxvd/0wgZ69ZvJj4NwmZcOld4X4kgLAtzeVzyRytUL1S8yPuEK7CcTJuI88XwSxV75VPkT5chEkIrFQCCB1/Q9eyM8XCtXyzL73/OeHEy8AE7XS9jmXhxgPBfrGRf/WGMPYX1hHF9n+X8NpG6pjzozmZQx8kQsnAQAv8CB2UkCeCyeBNGZCPyeInQR0/TKb9FEibTsGJ7+b3C+A7jg4NKLdvP7D4vBF8BLX0wDWn1+CdFfl32rhOOlX6aYeXMT0XSybAvFhmOj5/f2tOmwYnpjBX9OJdhE9dMNL6lDPvGWxLX6nQKX8/HLsZ/1/fpm3LLbF7xfPr7/4fEBs/5SXtH1z+Gr4oh30OvFc2LwoChRAoXX8mQV/imOjMN3vzE4/YEXsHmr4P3xxrJ86nin/c5w0STvfzdkT8PcHPyZGO+Gp5NYSr+XqFHwCXsHtsTzR+txW4i4AIHlyzHSg8jpi2Kwuu1tNeTFdnfN12v+YEj7xQxoOuTRadAZfObuAD37hq5t86EN/uAZKZKjWPi/TSSwKkp5/oaaFImzbs0k88aQ2f04DAMibAE0gnuyhvH5+7h/4qleUDuu/6wANOwbr8pHmpcAp5UxO1XuJEXv6AbD6U+w1LN4nsR/bYbLGy7daCLoYPSw9dDTUR92X+iyxW4RLvuE/KC9FaWdepMy83CP8B8DmklMXh895VmrWxPypj9bb1bmvlMkCGl5lutM/mO7Uunnt+Z2TmvfoKbVuLX/WU/6s5742e21jzAA72S8BvY+mdY9SJxnXXrraac2uW3b8+EWpOwAg1Vqe6f6v9k9APLvIZYb6xlG+rG+Heu6X0/2aia6PLLBq1ydeNtXN93K6XzOR++YW3ZrEn3vmW09NP236Ymm5W+15T2ud19eBHZnkSMhcL81f3l7eu5Wy91rBvYqKp/RF00AAQGrXvO/3ybXd83rwnftYznaSU5/ylF9qX4+hjR+2FwvHoVxMT8jRRsc9mgeshU2QTmZqyDbfnKm9MWYa1GnH0IZ85jL14GJ6AqOlQmoQh6aBwKmry7c6aynE11RkJIdGaDvQurCddXNlqyk2NT3W/+liNy6nK7UzWdMZlfSxUQDA8AO2d5SN5nlF2kunrGJEnD6uCfBYeSY6pqaGk/7Lp6V5/XgAwBzuGwWlC6N5yHdZ8+o6Qovf89+MnEd6VXO9ougP/stnNdgb9X/ChnnvySsvHFgLtOG+7VPMAyAD7lRet9Rm09nz7P+11qd2s5LylBN9p/PyLFWbUTUdl5eEhERLIEmvvJofcobmiyGqvVtW2zsN+/304oRWRoEn8YDWWfW+nMSb4OQ0SctGi94Lms3f/85QU8aYkJCQ1JpHoDLSFYBkTEjULVVPz02ren9cxau/JOkKSJa/8bXq31URf1YU48Uzb1GDEV7TykvectTxlXHyxwAA6fAlo2KF9EreVNXe1TU9tGE/rQw2BgCAtze8EQgEaiPEqjgFeaVHhb01Zugp2KcY6Vx9gCVD8cYE8UhBUZC1GJ65am1Vua8Y6g7g3H+/5MUcfv2RU15XI/K/KEp++eXrJk1Jlb/f8ChJMa4xTB0a1fRD0rTyolw7U+uVxi1gy/whSJZTCZl2s0TLuq/z+nhVoy/4y2wyQ63W9Y2UfI2WX/CX2WT2jURCZl9QAF49w5l1mOYnX3zXC5R88d1p6hjDjBGzVlNv7U4LrzZsKBBcVHjyVvjEJSQOdc9QDE7K9Bw2X3F9zvl1zedbS1Yr0AkAmnry7gGJmY3+4y5fcrvl/HP/PTQrgIdFP7njZ1PJ6qd9oniJmb0VQGJm76g3YlhxWRHtd2f104WKf1ZcjfSrrpKSneLhLWBqKaxZJBqXz2tH9xzy6m+xBwB+wtW5vUdAvHDusejRz9Kw4MG04OS5ayXCuXOVV2sl2Xsr+/CvnmUvnDZtkHQH5t4HwjvMXSjR9ffTOZZesz/4YYPsnfuXd83mXZbj8WPJ3tkfOwcEfHx14eyO8xXf+I65rQCAuDG9BiIxe7bfqIqpznN4Szr7hnfhAb+6AXz5qA/n/ZyevXe2KZB4b/ZfuxUA4saEfKbAsDkxQ1/+n+88Z1xwHje0olqQh2dbzmqBhi2b1lLEaNzzCggOne9d7U7mXE/PDcByz2D43SgGFiNwqmdbObIyczoBi9FWnhXs6TkLwOtnWcF+WJCfOddz6lKkIqXgpI67Hmb3q1/TniTDIk0GePw5Z/CQt3/X4ZWZLbJPChe5KkRJBcuQviZ9m2mwAgAChod+6Z0529t7M9K3mbpPdbD3cHr1qsRjsOm31/NGeHp/htPSu09vB/OAwcN5N1NRkvRUgZD/fuyGgDGm1YK8nugWyYeZoPbOg6YTNqhmnTuvyqus1YYlroMEtjJKXkCBoijllA1KOXUj7cqcvZVTOKwfUXKlV5XPrB9REAfZyigZKEzjQ0TVHTKXNGjOgidM4bkKmx+aEdP23ScyFPOxS/rhZQA2vabwvjOFvFExHwCaenr/+MROpnhRAMgbSewqpTBh9xhehugpkGODR5ADjXp35QlNAbh68uqlwu+gbQZ6HU/c2bV6SEVrS0Y7wNS2SR21k8alz7pTT+GZve4UFooQkNKpbc7Rqb0CU/e869B5S1HqSuWf/m7inFZVnwX0PFYwRDRmUOBTe2yY3hYL9XLgQ+uYtXXO2Whfxdyt/EVGDe6OEbn/VdhTXfoUTYt9Cq/Z3/SxxwiKAhWX+RQdw/oMythZb73z4IyL9fpMWTSEh5khG2G/vbW3PfaVtr54szkVFpaJcUN4qPyZ9/i+oIJaLr6+ul5lGACA8v0nRopgyneoc9IzPZNpQIe3b8kl4IsglwAiPgCJ3BOQS4QCSIR8KQRSCLI9IRHyJUK+NF8kr7ySS0T5IgCvnyGbLwKk+Z4SEaT5Sr+qs6Pilcn0/eLJ77v7BCsTLoVAOfFdAqGcL4EnILESIBt8ESQQygWvPofyC0CaL+ID2crMzOaLXn8eUb4IcgmEAkAuF0CeL8IVgUwkkQsF8nwRrnZQljVnt/j61oeFE41spyefIR1ouOKGne+pfFDx+OipsJ7aD/fuOrshfJg60lrXov9Gi/cV0+ahvXalhbdiwSs1KNp1a4QzTKyF9LrkRD76i0W7z7J/FI3Roh2jPPVk3wG8Mnsh3ZVe+m/z0lnIeoCtv8e5rwYEact4kr25Q0wDmDenP9mJlD56Dc8pyDstKrwrC17VyeMkalxjmDZRp7Qj8tFzzNzCeu1NC2/GdTglyeLhLWDCF6qlCCIfvceqi6t4ZcdgFmb81sKRtN6zeLAUqtnJ1fu2DwFoMqDt8TlD1FnnpyZ/bHCL5KO+UO3pTaT0MQR4Tcd2PzQzui0LXqmgKE4+2gGmNo7q65PIxzBo0NY5Z7N9GAed+PL9J0eKUN+ybguFCsi+zoaCTY8WWfP8RrI9An9ua6/Z9dFAoNnKJFL6GA6CwZ2OTJ/Mqh3jbrz9DNoWChUQ+RgQpq6hvXalh7FmxyjafWuEM0z5Tho3ymmZTON3ay2H3iWy/ftpMq2BwivJohBWmkDlaZl9O/P+Z+fIIHvpnWVayuhAN6YQ+VRFIT13uL+6ByirIHtrhx4NYC5gNJ5ETz4KqQ5bsPUEBrH9q/Yov59xeQpDO8bjjVRAY5g0dmDmDfcnKRPYR3Zr78spDOwYJbuzh7eAibUj06YvkY9hUnB1b4eRmtY7R9N7d+HRm05YB0Q+BkpF/vHTgz/SpFr/Y5NbHz7qO7CxTTaRj8FSevfQzag26r5VFF8SqKGFQgVEPgZM0Y2djaeo1YkvP5A5UgRTCwGjA3DfQORj0EizdvceQb8Jc257r+6aWyhUQORj2FQ8PnpqUg96u17eTWjyEV/N6YR1QORj6JTc31U8mYYdo2hP7ghnmFo7sGmnIvIxfAqvJLccXUeRUp5+qm9nXpk9EwuFCoh8jADFkzNH+tV6zLJ4R4ceDWDmaKOGr3Qg8jEKyu9niCd3qenp441gw0KhAiIfI0F2Y3/FZJV2jJI9V4a3gClfwMHkHCIfo+HJtb3tR7xrxzh2qI8XDxYCTrY1JvIxHiryj5/+aFD1JtD1jSLWLBQqIPIxJl7cy7gRWcWOUZRYEuhAf8MD9SHyMS6Kbuy0m1zZiS//+RSrFgoVEPkYG9Ks3b1GNABwfnuv7vVhrsmByrQh8jE6yvOOnprY7UFik4/4MLW35zQsIh8jpOT+rjxeMOsWChUQ+Rglf389iV9mp+6GB+pDZqEbJU0u8c1bteB+hQpZJmicUA7sWyhUQEofAgOIfAgMIPIhMIDIh8AAIh8CA4h8CAwg8iEwgMiHwAAiHwIDiHwIDCDyITCAyIfAACIfAgOIfAgMIPIhMIDMNjQmilUcifPYhcMASelDYACZbWhUpD9Afw8thkdKH6Nis+J5uxwthkdKH+Mi2tQ20yZV0TSAdznLOeDJQUU0p8GR0se4iFu8JpAH/JCaF1oB9K/gODgiHyPD5kRToQ+vySM+bPx57WUcnwFP5GNcRMc4I/3TCoCfZedTsafX2JsKLoMjbR/joxi43ic/VQHEcaodIh9jYxIPwFjrB9t4POCEKbDC4zGX4ZFRZ2OCjDoTDAkiHwIDSNvHmDC7/+qv1P6WlX9xubkYafsYKd6HyQ4bBH2HyIfAACIfAgOIfAgMIPIhMIDIh8AAIh8CA8iwoRHy5Kgif1vjzh25LxvIsKER8q/TMwCnenMvH1J5GSENR/EAfjctfFsiH2NkDIBIbbRLiHyMkW7WwFBtfFoiH2OkYQBPK3UXkY9xMl47dReRj3Hiy9NK3UXkY5xYTdFK3UXGffSW5XlM3lY1aZ4+ZvMb0XNIRp31lWOxuqsZ4u970DtKjshHb+msO/lY51m0puWQtH0IqqDZpiGlj95C6a5ZSjtkUvoQGEDkQ2AAqbz0Fh1WXrQhpQ+BAUQ+BAaQyktvIZUXwcgh8iEwgFReeos6lVfGFgW+c9d+HIl8jIJHwzzgrPJJhmIwhzUMkY9x4OEFJPMH72ntlXDSL5p39ifFdxIMvvPzsHkV1+bdWan4lJuiicjHOPjczntOgK/lzzsT7n1+INljwVKe8ykFZJejAhQjXoxYwxtxhZMvTeSjt6jVcZ/iYVXPcsmQTN7JgjtPJf4jPXlKHxq6Klpduf0T7/blrvXUCJquQyIf48DDC8DW0Mwudv4+cDr1AACe4wUAwKrVHNN5XpwES+RjHMyxw6InXrMHBYVPPInxg4UXeYsC3S4W2qNL76K5PefZYyepvN4v1Km8hnoDTvWi621B619z4WQlzYUT/3ael8TEM9uq3lqJDCacjGET+RgFAgEAESAA+F6o/EcggAgQKZ9wAxl1JjCAyIfAACIfAgOIfAgMIE1nvUVFz0suAcCvuSEszxcByAY8VT6W5le5LxGycNoFKX0Mifxls30X/1z9iEC55M3fkm8UAPwWTwipdgauVAoA+PLD2P7PXt9ccIuFowZJ6WNIiHZlL9vBk8sBQCDPFyEbnoeSYr2V5Yo0X+kqYJupFYBseAJyCV8k/1ExyR3IeJbNy/67kTRfKACuCBQAJEy79EQ+eovKYUMKFJU7VxrNw9Tc5dvHK7Bz47nY5KPzPZ7uu9dnUMZgigIKr0gDKNnICuDIPe9BN8d+nFFhPYeHQyMpqjMyQgZlpPpPkBbcnkV9maXosphR/UPkY4iITdcrAODmSj/ekuXbeSEHbTecPZrq9+s6APh1aSHkR/vN5o2/uinV74XT7GjFVB7wzIoHIORho+zlzk+PmA7i3clIMA2bzuisSiIfA8T+VYmRsX3xZgBAPA9WhVY85RFwAVtNV+yGDdAZhVY8vm+l4+Z5njzIwYeIJ7cD7CG/vZzXmlnjl8hHb6mx8qJAUc6rvTcpqLx+9/Ksc8TeAUPaQOS1j9qkUFZevGPTXea5y7eH+SdRl+0o6zO57sBw/63NNkwOSPTZ1KtV+pkXqZ+0bhVtA4HqUGhiskDXuURQzbbRqiboyIt71JMX96gnKtg3UeH7+bmuAfYlJz7qdSj9vHff84cmKnzrAYfPnx813Ml+08MVLu5PdyG2oesv/3rVg3DQvl8+9ut14lDXiAZ+CcXhzZ26bf/lfJCq4udkSzt7WpEku4vpKwN+1t2gylcfuNGb3EoqL72FLBMkGDlEPgQGkMpLbyGVF8HIIfIhMIBUXnoLqbwIRg6RD4EBpPLSW8i+zgQjh8iHwABSeektu3T305bSdUgs7vrK77eLdRZ2fW8+vUnQRD56S6GUhaUQmmLRkpYzIh8CA0jTmcAAIh8CA4h8CAwg8iEwgMiHwAAiHwIDiHwIDCDyITCAyIfAACIfAgOIfAgMIPIhMIDIh8AAIh8CA4h8CAwg8iEwgMiHwAAiHwIDiHwIDCDyITCAyIfAACIfAgP+H/LQpGBLK3UeAAAAAElFTkSuQmCC
USB/UART1 Command 模式说明
M2351 Secure Bootloader 除了可执行 Secure Boot 验证外,另一个功能为进入 USB/UART1 command 模式做代码的更新和配置区的设定。
透过 PC 端的 Nuvoton NuMicro® Secure ISPTool 即可和 Secure Bootloader 内的 USB/UART1 command 模式做传输。
本章节将会对 USB/UART1 command 模式做基本的介绍。
USB 界面
在 M2351 Secure Bootloader 提供的 USB command 模式内,用户无需做任何事先的配置,只要透过 USB 线和 PC 端的 Secure ISPTool 做连接后即可正常工作。
UART1 界面
在使用 M2351 Secure Bootloader 提供的 UART1 command 模式前,则需将目前芯片 UART1 的脚位和 PC 串口做连接,之后便可和 Secure ISPTool 做正常联机。
可透过更改配置区CONFIG3 来决定 UART1command模式的脚位:
000:UART1_TXD (PB.7),UART1_RXD (PB.6)
001:UART1_TXD (PA.9),UART1_RXD (PA.8)
010:UART1_TXD (PF.0), UART1_RXD (PF.1)
011:UART1_TXD (PB.3),UART1_RXD (PB.2)
Others:UART1_TXD (PA.3),UART1_RXD (PA.2)
UART1/USB Command 流程
下列流程图说明在 Secure Bootloader 程序内的 UART1/USB Command 模式和 PC 端的 Secure ISPTool 联机后的主要处理流程。
data:image/png;base64,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
以上透过 M2351 Secure Boot 验证的程序为例,详细解释系统开发商如何确保必须要受到保护的开机代码没有被更改,意即可以确认系统启动后的行为都在程序开发者的规划内,进而可以达到数据不被窃取的目的。另由于M2351系列为带TrustZone功能,对Non-secure 程序开发者而言,另可以使用 Secure Bootloader 提供的 Non-secure callable API 来实现对 Non-secure 内存的读写和其他配置区的设定。不需要 Secure 程序开发者额外提供这些应用的 API 给 Non-secure 程序开发者使用。
而终端产品的应用可能是没有预留 ICE 脚位的。此时如果有需要做代码的更新,即可以执行 Secure Bootloader Non-secure callable API 所提供的 USB/UART1 command模式和 PC 端的Nuvoton NuMicro® Secure ISPTool 来实现代码的更新。
欢迎关注新唐的产品官网以获取更多的讯息,我们也会继续介绍M2354系列的安全启动做法。
资源
Nuvoton NuMicro M2351 和 M2354 系列资源
data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhAQAAAAAWyO/XAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAd2KE6QAAAIOSURBVFjD7ZgxjqQwFEQLETj0EXyT5mJIIHExuImP4NCBRY3qm+luzUgbbLCfldqBRfcjQP6ucn2DfxgrPvRD/5YWAEMZiYlbBuLGsAMIznQhj7LkwILEEyN5kPSmM8LBhorYEPa4Jh4F6Q60jKyIW+ah/+5CufX69jW9A1V9udrW60UOP6vvQU0LcwrHc/qllH9PbZTxMoquih+u4kDLLBl0t0j1EVviwS0HX6rpxJJ5xtVkmvCIDfSlZcwYuHZB1AcW6mV6U4CnjExrykMvQ5bmS7km7lEeK9OXDGwEZ9oQTswJwNj3Wti/n/yoxClTrUOZ+ylu+qAzRQpnbCmwLLkOZA4mDV9qMlCY2GNLdeJqR1EKvrQAdeoRZ04V+tx3r3Okg+LgA3ZArnjtPz+q4DWptICWE0sOuxKPL7UIURbZK2Cmb0YbfKk2v7YZ9OHhjD2HvU52J6rULDcbykJAR9EeeQd6RhKIZhmXNIIzNatfsq2fhR1aMHSmqmWx4HW5xZWkXamqqvxs5qFYkbSSz/PIiVrmiisw8RJnnV69hhd9tjwHW6oKXjBf86W915gTzTK6kamD9KVXX6ZMKPNgs+bMndrdyAzu0aK9LLe8UpAXtX5/TdZwfBvteAta9FPZwgL98eYbvrSbh4UJe6IztbuRTVPrgqjv+vWi/X4yW9P/6jqCL73nHfKH/tf0C/KxTLMHRbTCAAAAAElFTkSuQmCCdata:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAOEAAADhAQAAAAAWyO/XAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAd2KE6QAAAILSURBVFjD7ZgxrqQwEEQLOXDoI/gmcDEkI3ExuImP4NABolbVMDOrWWmDDX6PVuPAAh6BZXdXdRv8y1jwpV/6r7QBGBoyhhYqkFbGDUB0poXcW7FvmScCuZP0pjPiziNz54G4pSVzb8ifQBsy2ULlrm+fQrkSY1qr9rTGT6A6Xy7oQKiRAu+n70EtF+Yc9+f0R6b8PLWh5ByTHW2p8V1VHGib0ZGW3Ecg9zFZVqw1OlNck6j+OzLGdIDOtLAP2r8zKSFQyFOTO41SVm2iFMTkf8neNEj059ynFkilgY3oTIF4pkV5Ga5Yez050kDLBe5tloIEWn7Ql2qcSk6FXh/IGk+U6k2PS1m5pSP3iYtZ0cOP/Cj6pIXrlw4t9zc1c6NrVXUD284ovwReUedFFWsjSu1QTbih6Oe10peSAkGSBpjodwlt9KXt8kb06Sn/E9dXr+FDSYUZrRwkICvaEt2pec+R45ZMMqDVPytVLyrvVvBj4Hq3QVYY+tKrJjQ1u9XC+kZnKu/Z7lhTVW8uDtCXcpHeU4u8k9Nenan1Gqb8PLK5uNU5zvRxvn18VKrROkhfevVlpWLEnDHcVu5Oy2XbqprVY+uk27POcaN3v887OU1ow0fQdrX6avrxeP0AWmqfrNVPa7X2n87U7kaO+4pL3n1VPM70vhuxq0m72OrDe6b8PPW6Jf7S/5j+Akufc+vEz+yZAAAAAElFTkSuQmCC
这算是微控制器安全启动的软硬兼施 你好,有无相关的代码资料发一份
页:
[1]