|

大家好,我是痞子衡,是正经搞技术的痞子。今天痞子衡给大家介绍的是i.MXRT1170双核下不同GPIO组的访问以及中断设计。( v/ Z2 j0 h; W. }3 n( y# o
在双核 i.MXRT1170 下设计应用程序,有一个比较重要的考虑点是片内外设资源共享以及任务分配问题,同样一个任务既可以放在默认主核 CM7 下做,也可以放在默认从核 CM4 下去完成。如果这个任务跟片内外设有关,那就得考虑该外设是否在两个核下设计与使用一致,这在项目开始前必须要调研清楚。# @ ~. S% \9 f
今天痞子衡和大家聊一聊 i.MXRT1170 的 GPIO 外设使用在两个核下有什么异同以及注意点,在正文开始之前,建议大家先浏览一下痞子衡之前写的关于 GPIO 的两篇文章:《以i.MXRT1xxx的GPIO模块为例谈谈中断处理函数(IRQHandler)的标准流程》、《聊聊i.MXRT1xxx上的普通GPIO与高速GPIO差异及其用法》。
8 O" h% U) ]) G y; w0 O, P* oNote:本文内容虽以 i.MXRT1170 为例,但同样适用 i.MXRT1160。一、从引脚看GPIO分组先聊聊 GPIO 分组,目前 i.MXRT1170 芯片封装主要是 BGA289,除去电源、地、时钟、专用外设引脚外,可用作通用 I/O 的引脚剩下 174 个,而芯片内部 GPIO 模块多达 16 个(GPIO1-13、CM7_GPIO2-3),显然 GPIO 模块太富裕了,显得硬件 I/O 引脚资源有点紧张,所以避不可免地多个 GPIO 模块要复用硬件 I/O 引脚,复用关系如下:* M; f( y" U7 D
- GPIO1 与 GPIO7 复用同一组 I/O 引脚,共 32 个 pin。
- I$ p: x8 ^) U) @- GPIO2 与 GPIO8 以及 CM7_GPIO2 复用同一组 I/O 引脚,共 32 个 pin。
7 h. n8 c3 ~! i$ ?6 N. a6 J4 @- GPIO3 与 GPIO9 以及 CM7_GPIO3 复用同一组 I/O 引脚,共 32 个 pin。
W5 K- b4 Q I6 f- GPIO4 与 GPIO10 复用同一组 I/O 引脚,共 32 个 pin。
) K- X* I0 ]2 ~& M) P- GPIO5 与 GPIO11 复用同一组 I/O 引脚,共 17 个 pin。
6 @' B4 {% J7 Z* O2 B- GPIO6 与 GPIO12 复用同一组 I/O 引脚,共 16 个 pin。: E4 ?# t# g2 U3 b1 f
- GPIO13 独享一组 I/O 引脚,共 13 个 pin。下图是 i.MXRT1170 GPIO 相关的 Pinmux 表,其中 GPIO1-6、GPIO13 主要在 Alt5 选项里,GPIO7-12 主要在 Alt10 选项里,并且大部分 I/O 引脚默认功能就是 GPIO(见表中 DEF 一栏)。此外表中并未看到 CM7_GPIO2-3 选项,这是因为其和 GPIO2-3 共用了 Alt5 选项(需进一步通过 IOMUXC_GPR->GPR40-43 寄存器设置)。 |
|