侵权投诉

OTFDEC硬件模块基于STM32H735G-DK板的验证研发

STM32单片机 2021-07-05 14:03 次阅读

前言

STM32H73x系列开始,我们引入了一个新外设模块,OTFDEC。它的全名叫做on the fly decryption。它的引入,可以帮助大家解决代码保护的痛点。

OTFDEC简介

大家都知道,代码存储在片内Flash,只要做好了JTAG调试端口的保护和片上关键代码的隔离,在防止逻辑攻击和直接探测层面,还是相当安全的。但是片上Flash毕竟容量有限,在一些应用中我们需要把代码放到片外Flash存储甚至直接从片外Flash执行。片外Flash相比片内Flash,在抗攻击方面就脆弱得多。片外Flash一般没有什么硬件层面的保护,只要知道了它的料号,它的读写时序都是可以查到的,那么读出来里面的内容就不是什么难事。

所以大家一个自然的想法就是把代码加密后再放到片外Flash上,这样即使别人读出里面的密文代码,只要没有密钥,也无法获知代码的有效信息。

4630e482-dc58-11eb-9e57-12bb97331649.jpg

就比如胶片中这样的典型拓扑结构:加密代码放在外部的Octo-SPI Flash中。

对这种自然的做法,以往的MCU在执行片外加密代码时,需要先调用OSPI驱动,把密文代码读进来,比如放到SRAM中。然后使用MCU的软件或者硬件解密,把代码明文恢复到SRAM的另一个区域。最后MCU再从这块SRAM执行明文代码。

现在我们引入了OTFDEC这个硬件模块,它位于总线矩阵和Octo-SPI接口之间。把它配置好之后,内核执行片外Flash上的密文代码(在这里Octo-SPI Flash的映射地址是0x9000 0000开始),无需中间再用SRAM倒一次手,而是在OTFDEC的作用下,直接把解密后的代码送到总线矩阵上供内核执行了。也就是说,有了OTFDEC的配合,对于CPU来说,执行外部Flash上的加密代码,就和执行片上Flash的明文代码是一样的。

466e6df2-dc58-11eb-9e57-12bb97331649.jpg

为了尽量减少OTFDEC解密造成的延迟,OTFDEC被设计工作在AES-128-CTR模式下。不使用AES的链表模式,就是为了尽量缩短对目标地址上密文解密的时间。因此存储在外部Octo-SPI Flash上的加密代码也需要使用同样的AES-128-CTR运算得到。

有一点需要注意的是:为了达到这样的使用效果,Octo-SPI需要配置到memory map模式。

目前,STM32系列家族中,集成了这个OTFDEC模块的有STM32H73x系列,STM32L56x系列,和STM32U585系列。

467efdde-dc58-11eb-9e57-12bb97331649.jpg

今天我们不是介绍OTFDEC怎么使用,而是回答前段时间在给客户介绍OTFDEC的时候,大家一个比较共同的问题:相对于直接执行外部Flash上的明文代码,执行外部Flash的加密代码,OTFDEC解密操作引入的延迟有多少?

实验设计

468aadbe-dc58-11eb-9e57-12bb97331649.jpg

我们接下来设计一个实验,验证在OTFDEC参与下,内核执行外部Flash上的密文代码效率到底如何,用数据说话。

我找了mbedTLS中一个自测程序Crypto_SelfTest,验证一下把它加密后放在外部Flash,内核执行完整套自测程序需要的时间花销,和执行外部明文代码的差异。为了进一步说明问题,还加了一个场景,就是这个自测程序明文放在片内Flash,内核执行它的花销会快多少。

这个Crypto自测程序经过最高优化等级编译后,大小差不多在63K作用的样子。

469e92f2-dc58-11eb-9e57-12bb97331649.jpg

第一个场景就是最普通的,直接把测试程序灌到片上Flash运行。

我们先来看一下这个自测程序,主要就是执行selftests这个函数数组里的自测程序。用户可以在mebdtls_conf.h头文件中去选择哪些自测子项被包含进去。现在我选择了6个自测子项。

然后在自测程序开始运行之前,通过检测是否有用户按键按下,来决定是否开启Cache。STM32H735集成ARM Cortex-M7内核,自带32K指令Cache和32K数据Cache。

46aff402-dc58-11eb-9e57-12bb97331649.jpg

因为要测量运行这给自测程序的时间花销,因此我们使能一个内核计数器,然后在每个测试子项的开始复位该计数器,在测试子项结束后把当前计数器的值,记录到全局变量的时间戳数组中。最后在6个测试子项都完成后,根据时间戳数组里记录的值,和当前内核运行频率,转换成时间花销。

由于场景1,是最普通的用法,即程序运行在片上Flash,因此它的链接文件就是STM32Cube包中的缺省配置。我这里以IAR为例,展示了这个测试场景下,code的存放地址,包括复位和中断向量表的存放地址。

46be78ba-dc58-11eb-9e57-12bb97331649.jpg

第二个场景,自测程序运行在外部Flash。而STM32是不能从外部Flash启动的,我们按照常规的做法,从片上Flash首地址启动,因此在片上Flash我们放一个Bootloader。它的功能很简单,就是初始化OSPI接口,并把它配置到memory-map模式。然后调整堆栈指针SP,以及PC指针,跳到0x9000 0000开始的OSPI外部Flash首地址运行。而那里,则是我的Crypto自测程序。

在场景2的自测程序工程Crypto_Selftest_ext_plain中,和之前的工程相比,只需要稍微做两处修改。链接文件,把复位和中断向量表放到0x9000 0000的地方,并且调整内核寄存器的VTOR值。这样子,一旦有任何中断或者异常,都是去位于0x9000 0000处的向量表取执行地址。

46c7eb84-dc58-11eb-9e57-12bb97331649.jpg

第三个测试场景,boot loader工程相比第二个测试场景中,需要增加对OTFDEC的配置。而烧录在0x9000 0000的内容,应该是从场景2下第二个工程生成的project.bin,加密后的密文。这里,左边的Bootloader里是OTFDEC在解密,右边是通过PC端工具预先把代码做加密。

由于是AES是对称加解密算法,因此OTFDEC的加密参数配置,要和PC端加密工具的参数一致。

46d5cc0e-dc58-11eb-9e57-12bb97331649.jpg

我们先来设置OTFDEC的解密参数,密钥key和初始向量IV。

密钥由用户自己指定,在代码里我们设置在Key数组中。按照数组的写法,考虑到ARM Cortex-M内核是小段对齐,因此这16字节的密钥,在memory中的存储顺序,应该如左下图所示。注意,我这里刻意让16字节的密钥中,每个字节的内容都不一样。为什么?我们接下来看。

OTFDEC的IV,HAL驱动封装了一个结构体给用户来填写。由Nounce,OTFDEC将要作用的外部Flash地址范围,以及将要存放在外部Flash那个地址范围里代码的版本号。Nounce,也是由用户自己设定,我这里仍然刻意让8个字节的内容都不相同。

46e34cb2-dc58-11eb-9e57-12bb97331649.jpg

接下来我们要配置PC端加密工具的参数了。这里我们使用openssl。

在OTFDEC的解密密钥设置好了之后,我们在openssl中使用的密钥要以字节为单位,在16个字节的范围内,头尾交换一下。但是注意,字节里面的bit顺序不变,也就是每个字节的值不变,只是换了新的位置。这就是为什么我前面故意把OTFDEC的密钥中,16个字节的内容每个字节值都不一样,就是为了方便比对每个字节的移动位置。

为什么要这样调换,这是因为OTFDEC电路设计造成的,我们没有必要去追究原因,知道在这样的设计下,我们该怎么做就可以了。

大家注意胶片里贴出来的openssl的命令,-K字符后跟着就是密钥,这是以字节为单位的字节串。也就是说第一个字节是0x9A,接着的字节分别是0xBC, 0xDE,和胶片中下面的表格中字节顺序排列一样的。

4711371c-dc58-11eb-9e57-12bb97331649.jpg

然后来看IV。

OTFDEC的IV,我们在代码中,给HAL驱动封装出来的OTFDEC_RegionConfig结构体每个成员赋值好了之后。这个IV在使用openssl的时候,又需要做怎样的调序呢?如图所示:第一个32位的字,来自Nounce[1]。这个4字节组成的32位字里面,字节顺序也是依次头尾交换了一下。第二个32位字,来自Nounce[0],字节调位顺序也是一样。第三个字的高2位字节来自Version,字节调位顺序和前面一样。第四个32位字来自起始地址的移位和regionID的拼接。

大家注意胶片里贴出来的openssl的命令,-iv字符后跟着就是初始向量,这也是以字节为单位的字节串。也就是说第一个字节是0x13,接着的字节分别是0x57, 0x9B,和胶片中下面的表格中字节顺序排列一样的。

471f243a-dc58-11eb-9e57-12bb97331649.jpg

openssl命令的密钥和IV输入的内容确定了,还有一件很重要的需要调整的事情:OTFDEC将要解密的对象。

它并不是直接的把明文代码Project.bin,使用openssl按照前面的参数加密就好了。仍然是由于不同AES运算工具对字节排序的不同,需要做手动调整。这里我们使用PC端的脚本工具,srec_cat先做输入字节流的填充,然后使用xxd工具,对字节顺序做调整。调整的规则和前面的密钥是一样的,即,对每16字节的内容:在16个字节的范围内,头尾交换一下,字节里面的bit顺序不变,也就是每个字节的值不变,只是换了新的位置。经过调序后的字节流再送到openssl做加密,密文同样还要经过一次相同规则的字节调序,才得到最终可以烧写到片外Flash(0x9000 0000),由OTFDEC做实时解密的加密代码。

472bfc3c-dc58-11eb-9e57-12bb97331649.jpg

打开cmd命令窗口,切换到在这个文档配套的参考例程包里的Utilities/ExtTools目录下,依次输入前一页胶片里的命令,得到预处理阶段的最后输出,即Project_pad_pre_enc_post.bin。

4738a284-dc58-11eb-9e57-12bb97331649.jpg

479bdf52-dc58-11eb-9e57-12bb97331649.jpg

我们可以使用STM32CubeProgramer来验证OTDEC配置好了之后,从0x9000 0000的地方看到的就是明文代码的样子。

验证步骤请参照胶片中的指示。

47a8210e-dc58-11eb-9e57-12bb97331649.jpg

接下来我们让板子脱机运行,把场景3运行起来。从板载的LCD屏幕可以看到自测程序完成后,打印出来的时间花销。

根据我复位的时候是否按下用户按键,可以展现使能Cache和不使能Cache的效果。

从total time cost这一行可以看出,不是能Cache,执行时间要8秒;而使能了Cache,执行时间只要0.2秒。

47b65ed6-dc58-11eb-9e57-12bb97331649.jpg

我们再把场景1和场景2下,启动工程和自测工程下载到板子上分别运行,再记录各自的时间花销。

图中红色数字是未开Cache的情况,绿色数字是开启Cache的情况。

结论

可以得出结论:代码运行在外部Flash的时候,运行明文和使用OTFDEC运行密文,效率相差无几;要提高代码运行在外部Flash的效率,主要加速措施是使能内核自动的Cache。

文章出处:【微信公众号:STM32单片机

责任编辑:gt

原文标题:信息安全主题 | OTFDEC efficiency 基于 STM32H735G-DK 板的验证

文章出处:【微信号:STM32_STM8_MCU,微信公众号:STM32单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
分享:

评论

相关推荐

沁恒(WCH)和RT-Thread达成合作,共建RISC-V应用生态

沁恒微电子就RISC-V开发应用生态建设与睿赛德科技(RT-Thread)签署合作协议,双方将紧密合....
发表于 09-18 17:37 773次 阅读
沁恒(WCH)和RT-Thread达成合作,共建RISC-V应用生态

MSK调制解调器的matlab仿真

继续讲解程序!MSK也能进行相干解调?是的!同样是采用锁相环!先来看看MSK的优点,这是由于下面的这....
的头像 通信工程师专辑 发表于 09-18 11:43 102次 阅读
MSK调制解调器的matlab仿真

介绍3种方法跨时钟域处理方法

跨时钟域处理是FPGA设计中经常遇到的问题,而如何处理好跨时钟域间的数据,可以说是每个FPGA初学者....
的头像 FPGA设计论坛 发表于 09-18 11:33 610次 阅读
介绍3种方法跨时钟域处理方法

机智云追踪外卖骑手保温箱硬件开发和项目演示

01 本章实现功能介绍 追踪外卖骑手的保温箱的GPS定位信息以及外卖箱是否被人打开,以防止骑手在送餐....
的头像 机智云开发者 发表于 09-18 11:03 103次 阅读

深入探究Linux系统噪音统计(osnoise tracer)

在Linux系统中作为一个普通线程是非常苦逼的。不仅NMI 、硬中断、软中断可以打断它,甚至其它普通....
的头像 Linux阅码场 发表于 09-18 10:53 143次 阅读
深入探究Linux系统噪音统计(osnoise tracer)

SAM系列MCU中的定时器的可能应用场景

SAM 器件上的各种定时器 简介 定时器是基于单片机的嵌入式应用中的基本模块。很难想象不使用定时器如....
的头像 Microchip微芯 发表于 09-18 10:39 132次 阅读

200万颗芯片已接入鸿蒙智联 芯海科技营收大涨

近日,芯海科技发布2021年上半年业绩报告,公司实现销售收入27,458.26万元,较上年同期增长7....
的头像 电子发烧友网 发表于 09-18 09:59 148次 阅读

永磁无刷直流电机与永磁同步电机有哪些不同之处

永磁无刷直流电机与永磁同步电机的传感器有哪些不同? 永磁无刷直流电机与永磁同步电机的反电势波形有哪些不同? ...
发表于 09-18 08:10 0次 阅读

avr单片机INT0是如何去模拟代码的

avr单片机INT0是如何去模拟代码的?怎样去编写其代码?...
发表于 09-18 06:49 0次 阅读

ARM单片机有哪几种?分别有哪些优缺点

为什么MCU、DSP和FPGA会同时存在呢? ARM单片机有哪几种?分别有哪些优缺点? ...
发表于 09-18 06:05 0次 阅读

移植RT-Thread的原理与方法

大家好我是惊觉。是的,失踪人口回来了。最近参加了rt-thread的国产MCU移植活动,移植rt-t....
的头像 RTThread物联网操作系统 发表于 09-17 09:41 108次 阅读

三菱交流伺服系统伺服故障和报警代码

伺服故障和报警代码大全,超实用!使用三菱交流伺服系统主要由三个系列:MR-ES、MR-J2S、MR-J3。通常故障情况可由伺服...
发表于 09-17 08:54 0次 阅读

如何利用51单片机制作从左至右再从右制作的流水灯呢

如何利用51单片机制作从左至右再从右制作的流水灯呢?如何编写其代码程序?...
发表于 09-17 06:52 0次 阅读

如何对MCU看门狗IWDG的喂狗时间进行配置

如何对MCU看门狗IWDG的喂狗时间进行配置? 如何对MCU看门狗WWDG的喂狗时间进行配置? ...
发表于 09-17 06:20 0次 阅读

松下伺服报警代码保护功能

《松下伺服故障报警代码分析及处理》由会员分享,可在线阅读,更多相关《松下伺服故障报警代码分析及处理(2页珍藏版)》请在人人文...
发表于 09-17 06:20 0次 阅读

用于16位MCU的MCP3901ADC评估板用户指南

用于16位MCU的MCP3901ADC评估板用户指南(深圳中远通电源技术有限公司招聘)-请注意以下有....
发表于 09-16 17:58 5次 阅读
用于16位MCU的MCP3901ADC评估板用户指南

MCU低功耗

MCU低功耗 1.shuroff Mode--关断模式和Stop Mode停止模式有哪些区别?什么情况下用关断模式或停止模式 2.Deep Sle...
发表于 09-16 16:48 104次 阅读
MCU低功耗

浮标水质在线监测系统用处

浮标水质在线监测系统FT-SZFB对于水体来说,生物毒性是一个重要的指标,目前站房的生物毒性监测设备....
发表于 09-16 16:17 32次 阅读

​开发板上玩GTA RISC-V多项移植项目成功运作中

电子发烧友网报道(文/周凯扬)RISC-V近期再度掀起了不小的热度,苹果招募RISC-V程序员负责其....
的头像 电子发烧友网 发表于 09-16 11:59 140次 阅读
​开发板上玩GTA RISC-V多项移植项目成功运作中

盘点主流步进电机主控芯片​内核硬,性能高

电子发烧友网报道(文/李宁远)说到电机主控芯片,市面上国内国外对应的产品都非常多,很难用好或者不好来....
的头像 电子发烧友网 发表于 09-16 10:38 136次 阅读
盘点主流步进电机主控芯片​内核硬,性能高

嵌入式开发中实用的宏打印函数

宏打印函数在我们的嵌入式开发中,使用printf打印一些信息是一种常用的调试手段。但是,在打印的信息....
的头像 FPGA之家 发表于 09-16 10:05 98次 阅读
嵌入式开发中实用的宏打印函数

使用Kotlin替代Java重构AOSP应用

两年前,Android 开源项目 (AOSP) 应用团队开始使用 Kotlin 替代 Java 重构....
的头像 谷歌开发者 发表于 09-16 09:26 101次 阅读
使用Kotlin替代Java重构AOSP应用

大联大品佳集团推出基于Microchip、onsemi和OSRAM产品的CAN/LIN通讯矩阵式大灯解决方案

大联大控股宣布,其旗下品佳推出基于微芯科技(Microchip)PIC16F1779、安森美(ons....
发表于 09-15 15:11 1028次 阅读
大联大品佳集团推出基于Microchip、onsemi和OSRAM产品的CAN/LIN通讯矩阵式大灯解决方案

魔方网表,无代码开发平台NCDP的无冕之王

NCDP也就是No-code development platform,无代码开发平台,我第一次听到....
的头像 话说科技 发表于 09-15 14:34 83次 阅读

51单片机的启动文件作用是什么

在我们使用kei c51创建一个51单片机项目时,会有如下图所示的提示: 一般情况下,需要选择“是”....
的头像 嵌入式ARM 发表于 09-15 09:12 181次 阅读
51单片机的启动文件作用是什么

便携式可燃气体检测仪设计方案

便携式可燃气体检测仪系统以MQ-2气体传感器和STC89C52RC主控芯片为核心设计家用燃气报警器装....
发表于 09-15 09:06 25次 阅读

如何充分利用Heroku CI

ci/cd heroku 持续集成和持续交付(CI / CD)是当今软件工程开发过程中的最佳实践。  持续集成 (CI)允许开发人...
发表于 09-15 08:43 0次 阅读

代码生成有哪些用途

代码生成有许多用途:  我们可以从模式或现有信息源中生成重复代码。 例如,我们可以从数据库模式文件生成数据访问对象...
发表于 09-15 08:04 0次 阅读

Air101原理图v1

基本信息合宙Air101是一款QFN32封装,4mmx4mm大小的mcu.QQ群:106164296....
发表于 09-13 18:40 10次 阅读

增量式PID算法的STM32实现 分析比例、积分、微分三个环节

虽然PID不是什么牛逼的东西,但是真心希望以后刚刚接触这块的人能尽快进入状态。特地分享一些自己如何实....
发表于 09-13 16:37 691次 阅读
增量式PID算法的STM32实现 分析比例、积分、微分三个环节

FastThreadLocal快在哪里

blog.csdn.net/mycs2012/article/details/90898128 1 ....
的头像 Android编程精选 发表于 09-13 09:17 132次 阅读

C++基础语法友元类和友元函数

本期是C++基础语法分享的第五节,今天给大家来分享一下: (1)explicit(显式)关键字; (....
的头像 C语言编程学习基地 发表于 09-12 09:52 190次 阅读

一条SQL语句是怎么被执行的

一直是想知道一条SQL语句是怎么被执行的,它执行的顺序是怎样的,然后查看总结各方资料,就有了下面这一....
的头像 Linux爱好者 发表于 09-12 09:44 168次 阅读
一条SQL语句是怎么被执行的

这辆新能源汽车卖了37万辆,它的元器件供应商“赚大钱”了吗?

宏光MINI EV自上市以来一炮而红,在上个月共销售出32000多辆,据统计该网红电动汽车自2020....
的头像 电子麦克风 发表于 09-12 07:35 2101次 阅读
这辆新能源汽车卖了37万辆,它的元器件供应商“赚大钱”了吗?

如何通过Python脚本实现WIFI密码的暴力破解

前言 本文将记录学习下如何通过 Python 脚本实现 WIFI 密码的暴力破解,从而实现免费蹭网。....
的头像 马哥Linux运维 发表于 09-10 17:09 323次 阅读
如何通过Python脚本实现WIFI密码的暴力破解

软件工程师为什么要写文档

在大多数软件工程师对编写、使用和维护代码的抱怨中,一个常见的问题是缺乏高质量的文档。缺乏文档有什么副....
的头像 Linux阅码场 发表于 09-09 11:26 249次 阅读

MCU之TIMER脉冲发送功能的知识要点

本文介绍了华芯微特公司的MCU之TIMER脉冲发送功能的知识要点。 TIMER脉冲发送 1TIMER....
的头像 MCU开发加油站 发表于 09-09 10:05 227次 阅读
MCU之TIMER脉冲发送功能的知识要点

使用deepstream-test的范例代码修改车牌识别与遮盖

前一篇文章提到使用deepstream-test的范例代码,修改成“车牌识别”与“遮盖(redact....
的头像 NVIDIA英伟达企业解决方案 发表于 09-09 10:04 176次 阅读
使用deepstream-test的范例代码修改车牌识别与遮盖

在STM32G4片内不同存储空间运行的速度差异

最近有人问起程序在STM32G4片内不同存储空间运行的速度差异。说实在的,这个很难说死或说出个绝对的....
的头像 茶话MCU 发表于 09-09 09:57 235次 阅读
在STM32G4片内不同存储空间运行的速度差异

骑手保温箱追踪及温湿度监测4G设备接入机智云教程

01 前言 利用机智云提供的通用版App即使不懂云和App开发,也可以在不用写任何代码的情况下,轻松....
的头像 机智云开发者 发表于 09-09 09:16 147次 阅读
骑手保温箱追踪及温湿度监测4G设备接入机智云教程

缺货涨价成本增长之际 成都高新区IC设计产业园聚焦西部IC产业

汽车产业缺芯也不是一天两天了,我们看到8月底汽车芯片巨头瑞萨电子完成了对Dialog Semicon....
发表于 09-08 17:06 1553次 阅读

瑞萨电子推出32位RX671 MCU,实现高性能和高能效可支持非接触式HMI功能

RX671 MCU提供多种封装形式,引脚数从48至145不等,拥有高达2MB闪存和384KB SRA....
发表于 09-08 14:54 2198次 阅读
瑞萨电子推出32位RX671 MCU,实现高性能和高能效可支持非接触式HMI功能

UWB技术在汽车数字钥匙上的应用和方案

2021 年 4 月以来,随着苹果 AirTag 的发布,市场上又掀起了新一轮对 UWB 技术的关注....
的头像 电子发烧友网 发表于 09-08 14:47 402次 阅读

Kitronik ARCADE游戏手柄实现连连看

连连看相信大家都玩过,但这个用Kitronik AR CADE游戏手柄来玩连连看的项目你相信是一个高....
的头像 电子森林 发表于 09-08 11:47 221次 阅读
Kitronik ARCADE游戏手柄实现连连看

如何把Docker Registry迁移到Harbor

“要如何将 docker registry 中的镜像迁移至 harbor?本文介绍了四种具体的思路和....
的头像 马哥Linux运维 发表于 09-07 16:29 300次 阅读
如何把Docker Registry迁移到Harbor

最为精简的一个Linux Fork炸弹解析

转自:http://blog.saymagic.cn/2015/03/25/fork-bomb.ht....
的头像 Linux爱好者 发表于 09-07 16:12 115次 阅读

浅析奥迪电池管理系统

前段时间向公众号“汽车ECU开发”运营的吴飞兄弟要了奥迪E-tron的一些资料,涉及的比较细,我觉得....
的头像 汽车电子设计 发表于 09-06 15:06 526次 阅读

出货量超3亿颗!灵动十年MCU探索进入爆发期,跃升智能家电和工业市场

8月31日,第六届“灵动MM32协作大会”在深圳星河丽思卡尔酒店盛大开幕。灵动董事长吴忠洁博士在大会....
的头像 章鹰 发表于 09-06 08:09 3584次 阅读
出货量超3亿颗!灵动十年MCU探索进入爆发期,跃升智能家电和工业市场

使用Intellij IDEA的一些小技巧

https://blog.csdn.net/linsongbin1/article/details/....
的头像 Android编程精选 发表于 09-05 15:03 318次 阅读

内联汇编代码中的关键语法规则讲解

一、基本 asm 格式 1. 语法规则 2. test1.c 插入空指令 3. test2.c 操作....
的头像 硬件攻城狮 发表于 09-05 09:46 227次 阅读

国货之光!这家芯片龙头又攻克关键技术,将抢占新MCU​市场!

三星成立之初,仅只一个售卖大米和面条的杂货铺,但经过李秉哲和李健熙两代企业家领导下,三星已经成长为国....
发表于 09-04 15:01 104次 阅读

汇春科技:得心应手,自驾未来

导读 : 自动驾驶有多热?据不完全统计,2021年1月至今,行业投融资事件已超50起,投融资金超70....
的头像 汇春科技 发表于 09-03 14:57 2654次 阅读

力合微推出首款物联网MCU芯片

力合微作为物联网通信芯片领先企业,利用其多年来大规模出货的电力线通信SoC芯片已经内含MCU所具有的....
发表于 09-03 11:47 1313次 阅读
力合微推出首款物联网MCU芯片

GD32以广泛布局推进价值主张,为MCU生态加冕!

金光一先生代表兆易创新在本次全球MCU生态发展大会上带来的演讲介绍了公司近年来取得的成绩,未来新产品....
发表于 09-02 16:04 1687次 阅读
GD32以广泛布局推进价值主张,为MCU生态加冕!

瑞萨电子RA MCU集成micro-ROS框架,简化专业机器人开发

 瑞萨与eProsima携手,推动机器人技术在工业和物联网领域的应用,EK-RA6M5评估套件现已成....
发表于 09-02 15:57 1251次 阅读
瑞萨电子RA MCU集成micro-ROS框架,简化专业机器人开发

兆易创新GD32广泛布局驱动MCU创新

2021年8月26日,由全球电子技术领域知名媒体Aspencore主办的“全球MCU生态发展大会”暨....
的头像 兆易创新GigaDevice 发表于 09-02 15:41 941次 阅读

C语言代码中的extern

在你的C语言代码中,不知能否看到类似下面的代码: 这好像没有什么问题,你应该还会想:“嗯⋯是啊,我们....
的头像 STM32嵌入式开发 发表于 09-02 15:13 205次 阅读
C语言代码中的extern

你们知道指针和引用正确的使用场景吗

先解决两个疑问 ◆ 指针和引用的不同之处是什么? ◆ 何时用用指针?何时用引用? 指针和引用的不同之....
的头像 STM32嵌入式开发 发表于 09-02 14:37 180次 阅读
你们知道指针和引用正确的使用场景吗

国产额姆休(MCU)这次要稳了

最近,麦克疯了想说的话题有很多,例如美国传言要复供HW,汽车自动驾驶进入回调期,中国电信回归A股股份....
的头像 电子发烧友网 发表于 09-02 14:19 762次 阅读

Vivado调用Questa Sim或ModelSim仿真小技巧

Vivado调用Questa Sim或ModelSim仿真中存在的一些自动化问题的解决方案。 Viv....
的头像 FPGA之家 发表于 09-02 10:12 203次 阅读
Vivado调用Questa Sim或ModelSim仿真小技巧

TMS320F28076 TMS320F2807x Piccolo 微控制器

C2000™32位微控制器在处理,传感和驱动方面进行了优化,可提高实时控制应用中的闭环性能,例如工业电机驱动,光伏逆变器和数字电源,电动车辆与运输,电机控制以及传感和信号处理.C2000产品线包括Delfino™高端性能系列和Piccolo™入门级性能系列。 TMS320F2807x微控制器平台属于Piccolo™系列,适用于高级闭环控制应用,例如工业电机驱动,光伏逆变器和数字电源,电动车辆与运输以及传感和信号处理。数字电源和工业驱动器的完整开发包作为powerSUITE和DesignDRIVE方案的一部分提供。 F2807x是基于TI行业领先的C28x内核的32位浮点微控制器。此内核的性能通过三角运算硬件加速器得到了提升,该加速器利用CPU指令(如正弦,余弦和反正切函数)提高了转矩环路和位置计算中常见的基于三角运算的算法性能。 F2807x微控制器系列采用一个CLA实时控制协处理器.CLA是一款独立的32位浮点处理器,运行速度与主CPU相同。该CLA会对外设触发器作响响应,并与主C28x CPU同时执行代码。这种并行处理功能可有效加倍实时控制系统的计算性能。通过利用CLA执行时间关键型功能,主C28x CPU可以得到释放,以便用于执行通信和诊断等其...
发表于 01-08 17:49 648次 阅读
TMS320F28076 TMS320F2807x Piccolo 微控制器

CC3200MOD SimpleLink Wi-Fi CC3200 片上因特网无线 MCU 模块

使用业界首款可编程FCC,IC,CE和Wi-Fi认证无线微控制器(MCU)模块,内置Wi-Fi,开始您的设计连接。 SimpleLink CC3200MOD专为物联网(IoT)而创建,是一个集成了ARM Cortex-M4 MCU的无线MCU模块,允许客户使用单个设备开发整个应用程序。凭借片上Wi-Fi,互联网和强大的安全协议,无需先前的Wi-Fi体验即可加快开发速度。 CC3200MOD将所有必需的系统级硬件组件(包括时钟,SPI闪存,RF开关和无源元件)集成到LGA封装中,以便于组装和低成本PCB设计。 CC3200MOD作为完整的平台解决方案提供,包括软件,样本应用,工具,用户和编程指南,参考设计以及TI E2E支持社区。 应用MCU子系统包含行业标准的ARM Cortex- M4内核以80 MHz运行。 该器件包括各种外设,包括快速并行相机接口,I2S,SD /MMC,UART,SPI,I2C和四通道ADC。 CC3200系列包括用于代码和数据的灵活嵌入式RAM;带外部串行闪存引导程序和外设驱动程序的ROM;用于Wi-Fi网络处理器服务包,Wi-Fi证书和凭证的SPI闪存。 Wi-Fi网络处理器子系统具有Wi-Fi片上网络,并包含一个附加功能专用的ARM...
发表于 08-20 17:53 482次 阅读
CC3200MOD SimpleLink Wi-Fi CC3200 片上因特网无线 MCU 模块