恩智浦去年年末发布了全球首创多核Cortex®-M33微控制器后,备受关注。
今年上半年又上市了搭载这款芯片的恩智浦官方开发板LPCXpresso55S69,板载调试器,配合恩智浦MCUXpresso IDE开发工具,开箱即用,可以快速评估使用这颗Armv8-M 架构 Cortex M33 双核100Mhz 微控制器 。
恩智浦LPCXpresso55S69开发板简介:
恩智浦LPCXpresso55S69开发板的包装还是恩智浦一贯的风格,彩色硬纸盒外包装箱,盒子内部上下减震海绵,开发板使用静电袋封装,不管运输还是存放,都可以对开发板起到很好的保护左右。
和开发板配套的还有一条usb数据线和说明彩页:
按照彩页说明运行板子内预装的 demo程序,下载 SDK IDE等相关开发工具和软件搭建开发环境,即使第一次使用恩智浦开发板,简单的开箱上手引导还是很有必要也比较友好的。
恩智浦LPCXpresso55S69开发板搭载LPC55S69 双Cortex-M33 核心MCU芯片,板载Debug调试器,板载音频模块和三轴加速度芯片,还有丰富的接口,如下:
- 1,LPC55S69 双核 Cortex-M33 微控制器,位于板子中心,最大的那颗芯片。
- 2,音频模块。包含一颗WM8904音频芯片和音频输入/输出接口。
- 3,三轴加速芯片,型号为NXP MMA8652FCR1
- 4,板载debug 调试器
- 5,高速USB接口,全速USB接口,插口类型为 micro-USB。
- 6,单独USB电源接口
- 7,TF 卡槽
- 8,RGB led 灯
- 9,Arduino 扩展接口,Mikreo扩展接口,PMOD 扩展接口
板载 Debug 调试器使用自家芯片 LPC4322 实现,同时支持 CMSIS-DAP 和 SEGGER J-Link 协议,使用配套的烧录工具,可以很方便升级调试器固件,切换两种协议。
板载 Debug 调试器不仅用于LPC55S69 下载调试,还能用于第三方开发板下载调试;也可用第三方调试器下载调试 LPC55S69 芯片;只需要调整跳线开关即可,详细可以参考官方提供的开发板的原理图。
恩智浦LPCXpresso55S69开发板可以使用 usb 电源接口供电外,还可以使用两个 usb 接口供电,或者 debug 接口供电,也就是板上 4 个 USB 接口都是可以供电的,比如:下载调试的时候,只需要一条usb线,连接电脑和板子的debug 接口即可实现供电和下载调试的功能。
LPC55S69芯片:
LPC55S6x MCU家族是全球首款基于通用Cortex-M33的微控制器,该高效率MCU家族采用Armv8-M架构,性能和高级安全功能达到新水平,包括TrustZone-M和协处理器扩展。LPC55S6x家族利用协处理器扩展型号,大幅提高信号处理效率,采用专有DSP加速器,使计算的时钟周期减少了10倍。还可选择使用第二个Cortex-M33内核,支持灵活地平衡高性能与功率效率。
恩智浦LPCXpresso55S69开发板的芯片型号为LPC55S69,属于LPC55S6x MCU家族中的一款双核心MCU处理器,重点特性如下:
- Arm Cortex-M33内核:
- Arm Cortex-M33处理器,运行频率高达100 MHz
- TrustZone,浮点运算单元(FPU)和存储器保护单元(MPU)
- ARM Cortex-M33内置可嵌套向量中断控制器(NVIC)
- 非屏蔽中断(NMI)输入,多种中断源可供选择
- 协处理器:
- Arm Cortex-M33协处理器
- 运行频率高达100 MHz
- 这个处理器的配置不包括MPU、FPU、DSP、ETM和TrustZone
- 系统节拍定时器
- CASPER加解密协处理器,提供对非对称加密算法的硬件加速
- PowerQuad提供对DSP计算(定点和浮点) 的加速
- 片上存储器:
- 多达640 KB片上闪存程序存储器,带闪存加速器和256字节页擦写功能
- SRAM高达320 KB,其中系统总线上有288 KB,内核总线有32 KB
- 安全特性:
- 启用Arm TrustZone
- PRINCE模块对写入到片上闪存的数据进行实时加密,在读取加密闪存数据时进行解密,以保护代码
- AES-256加密/解密引擎
- 安全散列算法 (SHA1/SHA2) 模块支持通过专用DMA控制器的安全引导。
- 通过专用SRAM上的芯片指纹,提供物理不可克隆功能(PUF); PUF可以生成、存储和重建从64到4096位长度不等的密钥。包括用于密钥提取的硬件
- 随机数生成器(RNG)
- 唯一的128位设备识别序列号(UUID)。
- 安全通用IO
LPC55S69芯片TrustZone 安全特性
是Armv8-M 核心的特性,地址空间被分为安全空间和非安全空间,地址是不同的,创建程序的时候需要特别设置
LPC55S69 双核
主核心协核心的结构,MCUXpresso IDE 创建的工程,需要先创建协核心core1的程序,然后再创建主核心core0程序,包含协核心程序,程序链接时候地址空间自己分配。两个核心之间通信和资源共享是通过核心间mailbox 实现的,稍后通过demo小程序看这个特性
软件支持:
恩智浦官方提供LPCXpresso55S69开发板的全方位支持:链接地址
提供LPCXpresso55S69开发板的软件开发工具包6.2_LPCXpresso55S69,可以直接下载使用,能够运行于 windows macOS linux 三大平台,同时支持多种开发集成环境工具,如:恩智浦提供的MCUXpresso IDE,GCC ARM Embeded,IAR,Keil MDK。
下载 SDK 的时候可以根据自己需要定制,有一些中间件可选,同时支持 FreeRTOS 系统。
恩智浦提供的MCUXpresso IDE 开发环境集成了配置工具,可以通过图形界面配置时钟,引脚等,点点鼠标更新代码搞定,所见即所得
恩智浦提供1.0_842软件,用于升级更新板载 Debug 调试器的固件,
使用 program LPC-Link2 with CMSIS-DAP更新板载调试器截图:
Demo 小程序
1, 点灯小程序
这个demo 的意义在于使用MCUXpresso IDE v11.0.0集成开发环境创建一个项目,跑通整个开发流程。
MCUXpresso IDE v11.0.0是基于 eclipse cdt 二次开发的,容易上手,打开软件加入 SDK,创建程序点灯:
填写代码,烧录下载,搞定
2, 多核心程序:
需要在 SDK 组件中选择 multicore 中间件
MCUXpresso IDE v11.0.0集成开发环境创建的多核心程序是主核心协核心的模式,启动时候主核心core0先启动,然后复制协核心代码到ram中,协核心core1再启动。所以烧录到 flash 中的代码其实是链接了 core0 和 core1 所有的代码,ram 中按照地址划分为 core0 和 core1 两个区域分别给两个核心使用, 如下:
Core0 程序中:Core0分配了 640KB flash 空间,Ram0 是给core0 使用的,Ram1是给core1 使用的,rpmsg_sh_mem是共享内存,两个核心之间交换数据用的
Core1程序:只有 Ram1 和 rpmsg_sh_mem
程序运行结构通过串口输出:
程序运行流程:首先core0先启动,随机数填充两组5x5 矩阵,然后发起 eRPC请求,core1 收到请求完成矩阵乘积回应core0,core0 把矩阵乘积打印出来。
Core0程序代码片段:调用core1矩阵乘法运算
Core1 程序代码片段:core1代码中的矩阵乘法运算erpcMatrixMultiply
eRPC是 NXP 的项目用于多核心单片机通信,同时也是开源项目,详细的情况可以参考 github: https://github.com/EmbeddedRPC/erpc
3,安全非安全空间:
安全模式地址空间,都是1,3 开头,地址的第28位为1
非安全模式地址空间,是0,2 开头,地址第28位为0
安全非安全空间分开,物理空间也是相互分开的
程序运行结果:
安全空间先打印 Hello from secure world!
准备好了非安全空间之后,跳转进入非安全空间,打印Welcome in normal world! 等
安全空间代码:
非安全空间代码:
总结:
恩智浦发布基于双核Cortex®-M33微控制器后,又推出LPCXpresso55S69 开发板,通过开发板把Armv8-M系列的高效微控器切切实实带来到开发者面前,用户可直接上手了解Armv8-M 核心特性;
LPCXpresso55S69 开发板还是一款双核心Cortex®-M33开发板,双核协同工作,高效运作;配套的软件开发包和开发工具,配置工具,等软件简化开发过程,降低了学习成本,作为嵌入式从业人员,Armv8,双核心,等一些新的东西,还是很有必要早早接触了解为好。
电路城原创内容,未经允许,不得转载!
板卡评测合作邮箱:yanfen.mo@supplyframe.cn