![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RT1170
文章平均质量分 92
tilblackout
score til you black out.
展开
-
I.MX RT1170之MIPI CSI摄像头初始化和显示流程详解
与MIPI DSI一样,我们可以选择不同厂家的不同摄像头,所以就有不同的配置。另外,不同摄像头的MIPI引脚定义也不太一样。常见的引脚如下:1、CLKP 和 CLKN时钟信号:这两个引脚组成时钟差分对,用于同步数据传输。作用:提供同步信号,使得主处理器和摄像头模块能够以一致的速率传输和接收数据。2、DP0 和 DN0数据通道 0:这两个引脚组成数据差分对。作用:传输视频数据和其他相关信息。数据通道 0 是必需的,能够在高速(HS)和低功耗(LP)模式下工作。3、DP1 和 DN1数据通道 1。原创 2024-06-05 07:00:00 · 1216 阅读 · 6 评论 -
I.MX RT1170之MIPI DSI初始化和显示流程详解
MIPI DSI()是一种广泛应用于移动设备显示屏的接口标准。由MIPI联盟制定,DSI接口旨在提供高效、低功耗的显示屏数据传输解决方案。本节来就通过学习I.MX RT1170单片机中的MIPI DSI接口例程,来学习MIPI DSI的初始化流程和相关的参数。原创 2024-06-04 07:00:00 · 956 阅读 · 0 评论 -
I.MX RT1170双核学习(4):FreeRTOS之消息缓冲区(Message Buffer)双核通信详解
对于RT1170来说,它有两个内核,那两个内核如何通信呢?我们可以通过MU消息单元详解来实现这些功能,但它一次只能传输32位的数据。我们知道CM7和CM4有一些公共的内存可以访问,那我们可不可以借助这些公共的内存来实现数据的交互呢?答案当然是可以的,但是双核访问这些内存就需要进行互斥。FreeRTOS实现一个了消息缓冲区(),就是用来实现这个功能,这篇文章就来介绍一下。前面我们说了,我们采用共享内存来实现消息缓冲区,那一定需要一块同时能被CM7和CM4访问的内存。所以先来看看CM7和CM4共有的内存:这里我原创 2023-12-19 07:00:00 · 2381 阅读 · 0 评论 -
I.MX RT1170双核学习(3):多核管理之MCMGR源码分析详解
从上面状态机分析可知,CM7仅用了,而CM4仅用了。在CM4启动后,先发送一个消息给CM7,然后CM7开始传给CM4,最终CM7的状态都变为,表示CM7知道CM4已经启动了,就可以执行其它操作了。原创 2023-12-18 07:00:00 · 309 阅读 · 0 评论 -
I.MX RT1170双核学习(2):双核相互激活和启动流程
本文介绍了CM7和CM4相互激活的基本设置,在SDK中,有一个MCMGR)实现了多核之间的管理操作,除了实现本文所述的设置外,还有双核之间状态的同步。下一节就来剖析MCMGR中的源码实现。原创 2023-12-14 07:00:00 · 334 阅读 · 0 评论 -
I.MX RT1170双核学习(1):双核通信之MU消息单元详解
在I.MX RT1170中,它有CM7和CM4核,而消息单元(MU)模块使SoC内的两个处理器能够通过MU接口传递消息以进行通信和协调。原创 2023-12-13 07:00:00 · 473 阅读 · 0 评论 -
ARM基础(4):L1 Cache之I-Cache和D-cache详解
在上一篇文章中,我介绍了MPU,我们知道MPU允许按区域修改一级Cache的属性,这个Cache一般为L1 Cache,它位于CPU的内部,用来加快指令和数据的访问速度。同时,CPU在处理共享数据时需要确保CPU和主存之间的数据一致性。这篇文章就来详细介绍一下L1 Cache的概念和用法。原创 2023-06-12 01:58:14 · 5734 阅读 · 0 评论 -
ARM基础(3):MPU内存保护单元详解及例子
MPU是ARM处理器中的一个特性,它提供了内存保护和访问控制的功能,通常用于实现操作系统的内存隔离和保护。比如我们可以设置所有的RAM为不可执行,这样就可以避免代码注入攻击。最近做项目过程中,使用的几个Cortex核都用到了MPU,我发现MPU不仅仅起到一个内存保护的作用,它还和Cache有关,还能加快外接存储设备的访问速度。所以这篇文章就来详细地介绍一下MPU。原创 2023-06-11 16:23:32 · 5596 阅读 · 0 评论 -
I.MX RT1170加密启动详解(3):HAB加密启动原理
上一节使用对镜像进行签名认证,这可以防止镜像被篡改。但我们还是希望Flash中的程序不会被别人看到,所以这就需要加密启动了。原创 2023-06-01 23:09:43 · 689 阅读 · 0 评论 -
I.MX RT1170加密启动详解(2):HAB认证原理
SRK表保存在image中的CSF字段,可以用CST提供的工具SRKTool生成SRK表,它需要生成的X.509公钥证书作为给SRKs的输入,然后就可以生产SRK表和SRKH。HAB认证是基于RSA或ECDSA算法的公钥密码学,它用一系列的私钥对image进行加密,然后BootROM在上电后用对应的公钥验证加密的镜像是否被修改。(2)CSF和IMG公用证书通过SRK table中的SRK验证,HAB库使用对应的公钥解密签名,然后将解密后的hash与通过实际镜像采用sha256计算出的hash进行比较。原创 2023-05-30 23:32:54 · 783 阅读 · 0 评论 -
I.MX RT1170加密启动详解(1):加密Boot镜像组成
包含FlexSPI控制器配置的参数,BootROM中将用低频的时钟和可靠的参数对Flash进行初始化,用户可以将适合自己Flash的FlexSPI配置(主要是LUT表格)按照指定格式放在此字段,BootROM会根据这个字段的配置重新初始化Flash。在这个镜像头中,有一部分的信息是用来给程序加密启动的。本文对加密镜像头中的加密部分做了一个简单的介绍,但没有深入进行介绍,不过没关系,我们只要知道在镜像头中有一些有关加密的字段,每个字段的具体含义在后续介绍了各个不同加密方式后再回来看就会恍然大悟。原创 2023-05-29 23:52:06 · 1024 阅读 · 0 评论 -
I.MX RT1170:如何在SRAM/SDRAM运行程序
如果程序链接到SDRAM中,我们还需要在镜像头中填充DCD字段,这样BootROM会通过DCD来初始化SDRAM,然后将程序从Flash拷贝到SDRAM中执行。BootROM是上电后一定会运行的BootLoader,而在这期间可能会使能一些中断、外设,然后在跳出的时候恢复最早的没有初始化的状态。对于DAP来说,需要修改这两个地方,一个是指定连接的时候运行我们的初始化SDRAM的脚本,一个是增加。到现在,对于方案②来说,如果你的程序链接在系统的SRAM中,就可以直接点调试开始运行程序了。原创 2023-05-29 00:21:23 · 1326 阅读 · 1 评论 -
I.MX RT1170启动详解:Boot配置、Bootable image头的组成
每次上电的时候都将执行里面的代码,它完成了对于特定引脚上的FlexSPI、SEMC和SDHC接口的初始化,并从这些接口连接到的Flash和RAM中引导程序启动。是NXP提供的一个软件,可以用来生成Bootable image,当然还有一些其它的功能,比如生成可以与Flashloader能识别的指定协议的镜像文件,可以实现修改eFuse、烧录Flash、AES固件加密等功能。其中镜像的绝对起始地址为0x30000000,程序镜像的大小为0x1000000(实际保存的是Flash的大小)。原创 2023-05-28 22:28:19 · 2724 阅读 · 0 评论