ARM学习(29)NXP 双coreMCU MCXN94学习
笔者来介绍一下NXP 双core板子 ,新系列的mcxn94
1、MCX 新系列介绍
恩智浦 MCU 系列产品包括 Kinetis 、LPC 系列,以及 i.MX RT 系列,现在又推出新系列产品 MCX 产品,包括四个系列,目前已经发布产品的是 MCX N 系列。
-
MCX N 系列,高性能微控制器,面向边缘安全智能微控制器,主要应用在物联网以及工业应用产品。
- 主频 150MHz 至 250MHz 512KB-2MB
- 广泛的外设,包括神经处理单元 (NPU) 和 DSP
- EdgeLock® 安全子系统
- 智能外设
-
MCX A 系列,主要针对优化成本和上市时间为主要考虑因素的产品。
- 主频 48 MHz - 180 MHz ,32KB-1MB
- 内置定时器,引脚数低,单引脚电源
- 适用于成本受限的应用
-
MCX W 系列,低功耗无线连接产品,支持多协议。
- 32MHz - 96MHz
- 多协议无线设备
- 低功耗BLE、Thread和Zigbee射频器件,面向工业物联网与Matter应用
- 片上集成减少了外部 BOM
-
MCX L 系列,针对超低功耗应用产品。
- 50Mhz - 100 MHz,可选 50% 倍频
- 极低的功耗和漏电
- 适用于具有低功耗要求的应用
-
MCX C 系列,针对超低功耗应用产品。
- List item 48MHz,32KB–256KB
- 易于使用的外设
- 面向入门级应用的高性价比的设计
笔者来看一下MCXN947的框图,如下图所示,需要的组件直接看下图
- CPU0和CPU1 都是Cortexm33 内核,ARMv8-M架构,150MHZ,不过Core0的内核支持的外设组件更多,支持DSP、FPU、DSP、ETM和TrustZone, and coprocessor interface。
- 2MB的内部FLash 512KB的SRAM
- 支持系统组件、安全组件、Debug组件、通信组件、模拟组件和timers组件

2、MCXN94内存映射
MCXN994的内存如下图所述:




注意:上述空间安全和非安全的空间是重叠的。

-
0x0 - 0x001FFFFF:internal Flash 地址,2MB Size,分为两个bank,可配置,每个bank 是1MB,看上图可以看到,目前每个Program Flash均是1MB,N947是2MB,N946是1MB,可以看数据手册。
-
0x08000000 -0xFFFFFFF:FlexSPI 外设,可接Norflash,存放代码,最大128MB,与0x80000000 外设地址重叠
-
0x10000000 - 0x 101FFFFF:internal Flash 地址,2MB Size,分为两个bank,可配置,每个bank 是1MB,与上面0x0 重叠
-
0x13000000 - 1303FFFF: ROM Code的地址
-
0x14000000 - 0x14017FFF:RAMX,code bus总线上面,适合放code代码
-
0x18000000 - 0x1FFFFFFF:FlexSPI 外设,可接Norflash,存放代码,最大128MB,与0x90000000 外设地址重叠
-
0x20000000 0x20007FFF :RAMA - RAMH地址,RAM,可以用到存放core1的代码,以及一部分当中共享空间
- RAMA相对特殊,被分为4个bank,每个bank8K,可以在低功耗场景下作为retaintion for data,每个bank都是独立编程的电源控制 ,不支持ECC
- 其他bank都有独立的电源开关,可以根据需要进行开关,RAMG和RAMH作为ECC数据空间
下图为 RAM空间配置ECC的设置,
- 可以看到RAMX 和RAMB 使用RAMH进行ECC数据空间,默认这两块校验是开着的,所以RAMH无法作为数据访问
- RAMC、D、E、F使用RAMG作为ECC数据校验
- RAMA 没有ECC数据校验


下图分别为core0和core1的内存空间分布:
Flash:768KB的FLash
RAM0:304KB的RAM空间
RAM1:104KB的RAM空间,用来存放core1的代码
RAM3:共享空间代码


cache部分:
- 由memory map地址上面 可以看到地址的cache 部分,Flash部分才有Cache,RAM部分均不被cache
- 分为两种cache,一种是LPCAC,低功耗的cahce,针对所有的flash地址(包括内部flash + flex spi flash),大小为16KB,SYSCON LPCAC Control (LPCAC_CTRL) register可以配置本cache,如下图第一张图
- 一种是CACHE64,只针对FlexSPI的地址范围,大小为16KB, CACHE64_POLSE寄存器可以配置cache属性,如下图第二种图


CPU型号对应的外设资源如下图所示:



3、mcxn94 启动方式
启动方式就两种:内部Flash Boot,ISP Boot。通过ISPMODE(P06) 引脚决定。
- 从flash 启动会寻找有效Image,如果使能恢复Image Flash,会从恢复ImageFlash里面找,如果还找不到,就进入ISP 模式
- 从ISP Boot,可以UART/IIC/SPI/USB支持下载代码

ISP 下载时,配置引脚可以决定下载方式,也可以禁止ISP模式,


3.1 boot device
boot device:从内部flash boot,外部Flash FlexSPI NorFlash boot(偏移是0x1000),SPI Flash Nor Recovery Boot,第二个bootloader Boot。

基于BOOT SRC可以决定是从内部flash还是外部Flash boot。
3.2 Internal Flash Boot
内部Flash的boot流程如下图所示:

- 支持双ImageBoot,根据Image Header在0x24为处理版本来决定
3.3 external Flash Boot
外部Flash从FlexSPi Flashboot,需要在0x400 有FCB信息,512Byte。


boot流程如下:

4、mcxn94 代码下载
5、参考
1、恩智浦新系列产品 MCX系列产品
2、MCXNx4xRM-MCXN947 用户参考手册
相关文章:
ARM学习(29)NXP 双coreMCU MCXN94学习
笔者来介绍一下NXP 双core板子 ,新系列的mcxn94 1、MCX 新系列介绍 恩智浦 MCU 系列产品包括 Kinetis 、LPC 系列,以及 i.MX RT 系列,现在又推出新系列产品 MCX 产品,包括四个系列,目前已经发布产品的是 MCX N 系列。…...
视频剪辑免费素材哪里能找到?
在创作视频时,素材的选择至关重要。为了让您的项目更具吸引力和专业性,我整理了8个剪辑必备素材网站,它们提供了丰富多样的资源,从高清视频到优质音乐,应有尽有。让我们一起探索这些资源丰富、质量上乘的平台ÿ…...
多线程为什么是你必需要掌握的知识
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、多线程是什么?二、多线程学习的必要性1.提升代码性能2.更优秀的软件设计和架构3.更好的工作机会 总结 前言 相信每一位开发者,都应…...
转转上门履约服务拆分库表迁移实践
文章目录 1 背景2 数据迁移方案2.1 方案一:双写新旧库2.2 方案二:灰度开关切换新旧库 3 迁移细节3.1 业务代码改造3.2 数据同步3.3 数据一致性校验 4 总结5 参考资料 1 背景 随着业务不断发展,一个服务中部分功能模块适合沉淀下来作为通用的…...
upload-labs 1-19关 攻略 附带项目下载地址 小白也能看会
本文章提供的工具、教程、学习路线等均为原创或互联网收集,旨在提高网络安全技术水平为目的,只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途,如有侵权请联系小编处理。 环境准备: 1.靶场搭建 下…...
如何设置SQL Server的端口:详细步骤指南
如何设置SQL Server的端口:详细步骤指南 在SQL Server中,配置端口是确保数据库服务能够正确通信的重要步骤。无论是为了提高安全性还是满足特定的网络配置需求,正确设置SQL Server的端口都是必要的。本文将详细介绍如何设置SQL Server的端口…...
昇思25天学习打卡营第16天|Diffusion扩散模型,DCGAN生成漫画头像
Diffusion扩散模型 关于扩散模型(Diffusion Models)有很多种理解,本文的介绍是基于denoising diffusion probabilistic model (DDPM),DDPM已经在(无)条件图像/音频/视频生成领域取得…...
【吊打面试官系列-Dubbo面试题】Dubbo SPI 和 Java SPI 区别?
大家好,我是锋哥。今天分享关于 【Dubbo SPI 和 Java SPI 区别?】面试题,希望对大家有帮助; Dubbo SPI 和 Java SPI 区别? JDK SPI JDK 标准的 SPI 会一次性加载所有的扩展实现,如果有的扩展吃实话很耗时&…...
7.31 Day13 网络散记(http,https...)
http固定对应80端口 https固定对应443端口...
LumaLabs 用例和应用分析
介绍 LumaLabs AI 是一家尖端技术公司,通过创新使用人工智能 (AI) 和神经渲染技术,彻底改变了 3D 内容创作领域。本报告深入探讨了 LumaLabs AI 的各种用例和应用,重点介绍了其在不同行业中的能力、优势和潜在影响。 LumaLabs AI 概述 LumaL…...
leetcode88.合并两个有序数组(简单题!)
思路:合并两个数组,再进行排序(利用快速排序) class Solution(object):def quicksort(self, num, i, j):if i>j: # 跳出循环的条件要出来return left iright jtemp num[i]while left < right:while left < right and…...
鸿蒙(HarmonyOS)DatePicker+TimePicker时间选择控件
一、操作环境 操作系统: Windows 11 专业版、IDE:DevEco Studio 3.1.1 Release、SDK:HarmonyOS 3.1.0(API 9) 二、效果图 可实现两种选择方式,可带时分选择,也可不带,使用更加方便。 三、代码 SelectedDateDialog…...
2024年和2025年CFA FRM CAIA ESG自己整理的资料
本人金融女一枚,CFA FRM CAIA ESG已过,研究生学历,职位投资经理。从事金融快5年了,月薪30000,周未双休五险一金。工作很充实也很累,每天失眠,思考了很久,还是决定离职了,…...
AMD第二季度财报:数据中心产品销售激增,接近总收入一半
#### 财报亮点 7月30日,AMD公布了截至6月29日的第二季度财务业绩,利润超过了华尔街的预期。根据TechNews的报道,最值得注意的是,AMD现在近一半的销售额来自于数据中心产品,而非传统的PC芯片、游戏主机或是工业与汽车嵌…...
ThreadLocal详解及ThreadLocal源码分析
提示:ThreadLocal详解、ThreadLocal与synchronized的区别、ThreadLocal的优势、ThreadLocal的内部结构、ThreadLocalMap源码分析、ThreadLocal导致内存泄漏的原因、要避免内存泄漏可以用哪些方式、ThreadLocal怎么解决Hash冲突问题、避免共享的设计模式、ThreadLoca…...
FastGPT、Dify、Coze产品功能对比分析
在当前的人工智能领域,模型接入、应用发布、应用构建、知识库和工作流编排等功能是衡量一个AI平台综合能力的重要指标。本文将对FastGPT、Dify和Coze这三款产品的功能进行详细对比分析,以帮助用户更好地了解它。 订阅模式及市场概况 在订阅模式及市场概…...
【Linux】缓冲区的理解
目录 一、实验现象二、初步认知缓冲区2.1 缓冲区的刷新策略2.2 缓冲区在哪里 三、缓冲区模拟实现四、再次全面理解缓冲区4.1 用户强制刷新缓冲区(fflush/fsync) 一、实验现象 我们先来看一个现象: 在显示器中打印内容时,fprintf先打印出来,w…...
基于单片机的电梯控制系统的设计
摘 要: 本文提出了一种基于单片机的电梯控制系统设计 。 设计以单片机为核心,通过使用和设计新型先进的硬件和控制程序来模拟和控制整个电梯的运行,在使用过程中具有成本低廉、 维护方便、 运行稳定 、 易于操作 、 安全系数高等优点 。 主要设计思路是…...
IP-GUARD文档云备份服务器迁移数据操作说明
一、功能简介 使用文档云备份过程可能出现需要迁移旧数据到新目录的情况(如一开始存储目录设置 不合理,之后变更存储目录),下面介绍迁移备份数据到新目录的方法,迁移后可正常查看、 下载、删除原备份文件。 二、同一计算机上迁移存储目录 当仅需要将存储目录迁移到同一计…...
linux常用命令ls详细说明
目录 1.ls的基本功能就是显示当前目录的文件和目录 2.ls输出是按照字母顺序排列的 3.默认不显示隐藏内容,加上参数-a可以显示隐藏的文件和文件夹 4.-R参数可以地柜列出当前目录以及它包含的字目录中的文件 5.-l参数辉显示长列表,也可以显示文件更多信…...
如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
Rust 异步编程
Rust 异步编程 引言 Rust 是一种系统编程语言,以其高性能、安全性以及零成本抽象而著称。在多核处理器成为主流的今天,异步编程成为了一种提高应用性能、优化资源利用的有效手段。本文将深入探讨 Rust 异步编程的核心概念、常用库以及最佳实践。 异步编程基础 什么是异步…...
让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
华为OD机考-机房布局
import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...
【C++进阶篇】智能指针
C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...
破解路内监管盲区:免布线低位视频桩重塑停车管理新标准
城市路内停车管理常因行道树遮挡、高位设备盲区等问题,导致车牌识别率低、逃费率高,传统模式在复杂路段束手无策。免布线低位视频桩凭借超低视角部署与智能算法,正成为破局关键。该设备安装于车位侧方0.5-0.7米高度,直接规避树枝遮…...
Axure 下拉框联动
实现选省、选完省之后选对应省份下的市区...
