ARM学习(28)NXP 双coreMCU IMX1160学习

news2024/11/18 23:34:23

笔者最近接触到一块IMXRT1160的双core板子,特依次来记录学习一下

1、IMXRT1160 板子介绍

介绍一下NXP的Demo板子,是一个双core的板子,Cortexm7和Cortexm4,总计1MB的RAM空间,256KB的ROM空间,提供了丰富的内存接口,包括SDRAM、Nand Flash、Nor Flash、SD/eMMC,QSPI以及HyperRAM FLash。支持从fuseboot、ISP 串行下载和内部boot启动。

模块结构框图如下:
在这里插入图片描述

板子框图如下:
在这里插入图片描述
内部boot启动支持多种启动:
在这里插入图片描述
支持DAP-Link和Jtag调试。DAP-LINK或者OpenSDA,可参考这篇文章:OpenSDA调试器背景与架构。

再来看一下其内核的特性:
CortexM7内核:一个core,基于arm V7E-M

  • 64位,AMBA4 AXI总线,32位 AHB 外设端口,32位AMBA AHB 从机端口,AMBA APB Coresight debug组件
  • 32KB的指令cache以及32KB的带ECC校验的数据cache
  • 可配置的512 TCM (默认256 data 和256 指令)
  • 16个region的MPU
  • NMI + 240 IRQ
  • 带WFIWFE的睡眠和深度睡眠
  • 支持SWD以及JTAG
  • 双core锁步机制双核Lock-Step、SVN。
    在这里插入图片描述
    CortexM4内核:1个core,基于ARMv7-ME指令集,
  • AHB LMEM (对于TCM和cache的memory控制)
  • 可配置的256KB的TCM,(默认128的指令TCM和128的数据TCM)
  • 16KB的code bus cache和16KB的系统bus cache
  • 集成TCM的ECC校验和代码奇偶校验
  • FPU(浮点运算单元)、集成NVIC(可嵌套中断)、WIC(唤醒中断控制器)、MPU(内存保护单元)、MMCAU(加密加速单元)和MCM(复杂控制模块)

在这里插入图片描述

2、IMXRT1160 内存布局

2.1、M7内存布局

在这里插入图片描述

在这里插入图片描述
memory说明:

  • 0x80000000:SEMC接口,可以接SDRAM,
  • 0x30000000:FlexSPI,可以作为QSPI访问Flash,作为mempory memory map的存放flash的地址。
  • 0x20360000: 128KB的 专有的OCRAM/FlexRAM空间
  • 0x20200000:64KB,可作为双core共享空间
  • 0x202C0000:64KB,可作为双core共享空间
  • 0x20200000:映射到M4的空间,256KB,作为CM4运行代码的位置,也是M4TCM的位置,这部分如果CM4 断电情况下,CM7无法访问。
  • 0x20000000:DTCM的位置,可都配置数据TCM,,可以配置256 KB DTCM,可最大配置512KB
  • 0x00000000:ITCM的位置,可都配置为指令TCM,也可以配置256 KB ITCM,可最大配置512KB
  • 0x40000000 - 0x41000000:CM4和CM7的外设地址,从这里可以看出来,外设是共享的,两者都可以访问。

可以通过NXP的IDE MCUXPRESS的例程里面看到相关的memory配置。
在这里插入图片描述
通过上面可以看到,代码执行在0x30000000位置,0x20000000是CM7数据位置,rpmsh_sh_mem是双核共享的空间。

当然从这里我们也可以推测其是XIP(excute in place),在Flash上面执行代码。

2.2、M4内存布局

在这里插入图片描述
memory说明:

  • 0x20200000:64KB,可作为双core共享空间
  • 0x202C0000:64KB,可作为双core共享空间
  • 0x20200000:CM4的空间,256KB,OCRAM,可以用来放数据和代码,
  • 0x20000000:System TCM(128KB),映射到 0x20220000,存放数据
  • 0x1FE00000:Code TCM (128KB),映射到 0x20200000,存放代码,
  • 0x08000000:FlexSPI,可以接QSPI,作为CM4的启动代码位置。

NXP的IDE MCUXPRESS的例程里面看到相关的memory配置。
在这里插入图片描述

2.3 ROM的空间

在这里插入图片描述

  • 0x00200000:ROM的空间位于0x00200000,大小是256KB
  • 0x20240000:ROM所占用的RAM空间,所以不能作为boot image的一部分,当ROM code执行完成之后,可以释放出来使用。如果ROM的API被用户使用,那么该空间需要保留出来。

3、IMXRT1160板子 boot启动

IMXRT1160的启动方式较为多样,上面已经介绍,主要有以下几种方式。通过对Boot Mode的两个输入引脚采样,来决定才有什么方式来Boot。
在这里插入图片描述

  • 从Fuse boot
  • 串行download下载
  • 内部boot
  • NXP内部保留使用
    在这里插入图片描述

3.1 Fuse Boot

与 Internal Boot 非常类似,只有一个不一样的点,那就是GPIO Boot PIn引脚被忽略。rom code只使用Boot efuse 的设置。

启动流程由BT_FUSE_SEL的值来决定,

  • 如果为1,则从boot device来启动
  • 如果来0,则从串行下载启动。

首次板子运行时,BT_FUSE_SEL的值可能为1,但是boot device里面没有Image,可能无法启动,这个时候需要强制设置BT_FUSE_VAL为0,下载一个引导程序到Boot device,然后修改了BT_FUSE_SEL的值,下一次ROM code根据新的eFUSE设置就从boot device启动了。
在这里插入图片描述

3.2 Serial Downloader

通过串口或者USB-HID遵循一定的命令协议,来把用户的程序下载到板子里面。例如STM32的FlyMCU,也叫做ISP模式。就是利用ROM的来进行下载。

3.3 Internal Boot

从内部设备进行启动,方式比较多,通过boot的引脚来决定,如前面所述,这里介绍了串行Flash启动的方式。
在这里插入图片描述
在这里插入图片描述
boot device的配置如下:配置串行Flash的实例,Flash类型,是否自动检测RAM还是XIP方式等
在这里插入图片描述
在这里插入图片描述
串行Flashboot的流程如下:

在这里插入图片描述
Image Vector Table:Image的向量表如下:

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1720891.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【GD32】05 - PWM 脉冲宽度调制

PWM PWM (Pulse Width Modulation) 是一种模拟信号电平的方法,它通过使用数字信号(通常是方波)来近似地表示模拟信号。在PWM中,信号的占空比(即高电平时间占整个周期的比例)被用来控制平均输出电压或电流。…

IDEA一键启动多个微服务

我们在做微服务项目开发的时候,每次刚打开IDEA,就需要把各个服务一个个依次启动,特别是服务比较多时,逐个点击不仅麻烦还费时。下面来说一下如何一键启动多个微服务。 操作步骤 点击Edit Configurations 2.点击“”,…

BSD盲区检测系统性能要求及试验方法

相关术语 盲区检测(bsd,blind spot detection)试验车辆(subject vehicle)目标车辆(target vehicle)横向距离(lateral distance):试验车车身最外缘(不包含外后视镜)与目标车辆车身最外缘(不包含外后视镜)之间的横向距离。 纵向距离(longitudinal distance):试验…

用windows server backup备份文件夹到网络共享文件夹并恢复

一、备份 开始 运行windows server backup,在右边的窗格中点击“备份计划” 选择备份配置 因为我们要备份的是一个文件夹,所以,选“自定义”,卷即为磁盘分区。 选择要备份的项 点击添加项目,可依次添加多个备份项目。 勾选需要…

职场思考-阅读专业与技能同步增长(12)

我们可以发现一个人“逆袭”的关键就是先要改变自己的思想,而机遇、资源都是外部条件。 改变思想无非也就几个途径: 一是阅读换脑,二是遇贵人点拨,三是社会“碰壁”后的反思并改正 对于职场进阶而言,阅读更是必要手段 …

知名专业定制线缆知名智造品牌推荐-精工电联:解决水下机器人线缆行业痛点的领航者

在科技日新月异的今天,精工电联作为高科技智能化产品及自动化设备专用连接线束和连接器配套服务商,致力于为高科技行业提供高品质、高性能的集成线缆和连接器定制服务。我们不仅是高品质定制线缆供应商,更是水下机器人线缆行业痛点的有效解决…

Dynamics CRM 修改新建记录的CreatedOn字段值

CRM在创建新记录时,一些系统属性例如创建者、创建时间是取当前创建记录的人以及当前的时间,而有时这些属性需要更改,例如创建时间,这个场景更多的用在数据迁移的时候,老数据有他的原始创建时间,不能因为迁移…

Linux网络-使用Tcp协议进行网络通信并通过网络接口实现远端翻译

文章目录 Tcp协议Tcp协议常见API接口1. int socket(int domain, int type, int protocol);2. int bind(int socket, const struct sockaddr *address, socklen_t address_len);struct sockaddr 3. int listen(int socket, int backlog);4. int accept(int socket, struct socka…

【设计模式】结构型-门面模式

前言 在软件开发中,设计模式是解决特定问题的经验总结,为开发者提供了一种可复用的解决方案。其中,门面模式(Facade Pattern)是一种结构型模式,旨在为复杂系统提供简化的接口,使客户端与系统之…

Java(十一)---String类型

文章目录 前言1.String类的重要性2.常用方法2.1.字符串的创建2.2.字符串的比较2.2.1.比较是否引用同一个对象2.2.2.boolean equals(Object anObject) 方法:2.2.3.int CompareTo(String s)2.2.4.int compareToIgnoreCase(String str) 方法: 2.3.字符串的查…

算法(十四)动态规划

算法概念 动态规划(Dynamic Programming)是一种分阶段求解的算法思想,通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推(分治)的方式去解决。动态规划中有三个重点概念&#xff…

C 基础 - 预处理命令和基本语法详解

#include <stdio.h> //预处理指令int main() //函数 {printf("Hello, World!"); //输出语句return 0; //返回语句 } 目录 一.预处理指令 1.#define #ifdef #ifndef #if #else #elif #endif 2.#inlcude a.新增一个文件 b.#include c.运行结果 d.扩…

AI炒股-批量爬取网易财经的要闻板块

工作任务和目标&#xff1a;批量爬取网易财经的要闻板块 在class"tab_body current"的div标签中&#xff1b; 标题和链接在&#xff1a;<a href"https://www.163.com/dy/article/J2UIO5DD051188EA.html">华为急需找到“松弛感”</a> 第一步&…

【原创教程】MES服务器与成品打标机控制说明

1 实现的功能及应用的场合 MES即制造执行系统(manufacturing execution system,简称MES),即在加强MRP计划的执行功能,把MRP计划同车间作业现场控制,通过执行系统联系起来。 MES是一个生产管理智能化的一个系统,是用于生产时记录数据、产量等信息的智能管理系统。 该项…

WebGL画粗线

目录 前言 基本思路 求左右端点 实现 组织数据 顶点着色器计算端点坐标 效果 前言 WebGL绘制模式有点、线、面三种&#xff1b;通过点的绘制可以实现粒子系统等&#xff0c;通过线可以绘制一些连线关系&#xff1b;面就强大了&#xff0c;通过面&#xff0c;我们可以…

材质技术在AI去衣中的作用

随着人工智能技术的飞速发展&#xff0c;越来越多的应用场景开始涌现。其中&#xff0c;AI去衣技术作为一种新兴的图像处理技术&#xff0c;已经在很多领域得到了广泛的应用。而在AI去衣技术中&#xff0c;材质技术起到了至关重要的作用。本文将详细介绍材质技术在AI去衣中的作…

【前缀和 记忆化搜索】LeetCode1444. 切披萨的方案数

本文涉及的基础知识点 C算法&#xff1a;前缀和、前缀乘积、前缀异或的原理、源码及测试用例 包括课程视频 动态规划 记忆化搜索 LeetCode1444. 切披萨的方案数 给你一个 rows x cols 大小的矩形披萨和一个整数 k &#xff0c;矩形包含两种字符&#xff1a; ‘A’ &#xff…

生成式AI,在云端的绽放与盛开

编辑&#xff1a;阿冒 设计&#xff1a;沐由 毫无疑问&#xff0c;生成式AI已然成为当今技术发展和应用创新的重要引擎之一。 过去的一年多时间里&#xff0c;我们每个人都在目睹和见证着生成式AI是如何以移山倒海的力量&#xff0c;为诸多行业带来革命性乃至颠覆性的变革&…

Python3位运算符

前言 本文介绍的是位运算符&#xff0c;位运算可以理解成对二进制数字上的每一个位进行操作的运算&#xff0c;位运算分为 布尔位运算符 和 移位位运算符。 文章目录 前言一、位运算概览1、布尔位运算符1&#xff09;按位与运算符 ( & )2&#xff09;按位或运算符 ( | )3…

输入输出安全防护指南

输入输出安全防护指南 在现代网络应用程序中&#xff0c;输入输出的安全性是至关重要的。未经验证的输入和未编码的输出可能导致严重的安全漏洞&#xff0c;如SQL注入、跨站脚本攻击&#xff08;XSS&#xff09;等。本文将详细讨论如何通过输入验证和输出编码来确保应用程序的…