Multi Source Translation Content

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Multi Source Translation Content

ディスカッション

ソート順:
如何解释 MC33665 TPL2 消息 我正在学习 MC33665 数据表。5.2.3 TPL2协议,消息长度为48bit,但是第二个16bit数据大于16bit,我该如何理解 我的意思是 MS =1bit,RADD=7bit,MADD=1bit,CADD=3bit,DADD=6bit,总共 18bit,大于 16bit? 回复:如何解释 MC33665 TPL2 消息 Hi, AN13281 被归类为需要保密协议 (NDA) 的安全文件。 您可以直接从以下位置下载: https://www.nxp.com/webapp/sd/collateral/1644500428545720962128?version=0.1 或来自: https://www.nxp.com/mynxp/secure-files 如果您的安全访问权限有任何问题,请联系支持人员。 BRs, Tomas 回复:如何解释 MC33665 TPL2 消息 我在哪里可以获得 AN13281。我的安全访问出错了。我拿到 MC33665A 数据表后它就不能用了 回复:如何解释 MC33665 TPL2 消息 Hi, 请查看我们的 AN13281 - 它详细描述了 TPL2 消息帧并提供了其他有用的信息。 BRs, Tomas
記事全体を表示
关于Android和Linux千兆以太网性能差距 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 千兆以太网应该是我们imx6平台最漂亮的功能之一,它将给众多客户带来更加丰富多彩的梦想。 但最近很多人反映使用Android和Linux在性能上存在很大的差距。现在让我在此进行探索。 同样的硬件,同样的内核,性能却不同,为什么? 在linux下,其数据吞吐量可以达到400Mbps,在JB下,只能达到200Mbps。 从下面的信息我们可以看出它应该与丢帧有关。 root@android:/# busybox ifconfig eth0 eth0 链路封装:以太网 HWaddr 00:04:9F:02:6C:E1 inet地址:192.168.0.100广播:192.168.0.255掩码:255.255.255.0 inet6 地址:fe80::204:9fff:fe02:6ce1/64 范围:链接 上行广播运行多播 MTU:1500 度量:1 RX 数据包:7382672错误:71828 丢弃:789 超限:71828 帧:71828 TX 数据包:4147006 错误:0 丢弃:0 超限:0 载波:0                collisions:0 txqueuelen:1000 RX 字节数:2568845018(2.3 GiB)TX 字节数:284789020(271.5 MiB) 在TCP协议栈中,iperf测试用例涉及三个缓冲区:tcp_mem;tcp_rmem;tcp_wmem。 它们都由三个变量描述,这些变量对 iperf 测试结果有很大影响。 在Linux中,我为它们获取了一个快照:      root@sabresd_6dq:/# cat /proc/sys/net/ipv4/tcp_mem      18240      24320     36480      root@sabresd_6dq:/# cat /proc/sys/net/ipv4/tcp_rmem      4096       87380     778240      root@sabresd_6dq:/# cat /proc/sys/net/ipv4/tcp_wmem      4096       16384     778240 在 Android 中,我也将它们与以下内容进行比较:      root@sabresd_6dq:/# cat /proc/sys/net/ipv4/tcp_mem      9285      12380     18570      root@sabresd_6dq:/# cat /proc/sys/net/ipv4/tcp_rmem      4096       87380     396160      root@sabresd_6dq:/# cat /proc/sys/net/ipv4/tcp_wmem      4096       16384     396160 tcp_mem 变量定义 TCP 堆栈在内核内存管理中的行为方式。第一个值告诉内核低阈值。 第二个值告诉内核从什么时候开始降低内存使用率。第三个告诉内核最多可以使用多少个内存页。 如果达到该值,TCP 流和数据包就会开始被丢弃,直到达到安全水平。 在 tcp_rmem 中,第一个值定义每个 TCP 连接的最小接收缓冲区,并且该缓冲区始终分配给 TCP 套接字。第二个值定义 默认接收缓冲区大小。第三个指定了可以为 TCP 套接字分配的最大接收缓冲区。 在 tcp_wmem 中,还给出了三个变量来描述每个 TCP 套接字的 TCP 发送缓冲区。 我们可以在内核代码中检查这些值是如何产生的。在 kernel_imx/net/ipv4/sysctl_net_ipv4.c 中有一个算法+450。 限制= nr_free_buffer_pages() / 8;     limit = max(limit, 128UL); sysctl_tcp_mem[0] = 限制 / 4 * 3; sysctl_tcp_mem[1] = 限制; sysctl_tcp_mem[2] = sysctl_tcp_mem[0] * 2; /* 将每个插槽的限制设置为不超过压力阈值的 1/128 */ 限制 = ((无符号长整型)sysctl_tcp_mem[1]) << (PAGE_SHIFT - 7); max_wshare = min(4UL*1024*1024,限制);     max_rshare = min(6UL*1024*1024, limit);     sysctl_tcp_wmem[0] = SK_MEM_QUANTUM;     sysctl_tcp_wmem[1] = 16*1024; sysctl_tcp_wmem[2] = max(64*1024,max_wshare);     sysctl_tcp_rmem[0] = SK_MEM_QUANTUM;     sysctl_tcp_rmem[1] = 87380; sysctl_tcp_rmem[2] = max(87380,max_rshare); 从上面的算法中,我们可以看到 tcp_mem、tcp_wmem[2]、tcp_rmem[2] 都与 nr_free_buffer_pages() 相关,nr_free_buffer_pages() 代表 ZONE_DMA 和 ZONE_NORMAL 内可分配的可用 RAM 数量。 所以到这里,我们就能找到Android和Linux之间性能差距的根本原因了。运行不同的操作系统时,可用 RAM 之间存在很大差距。 事实上,在android中,Google已经引入了一种通过属性来调整这些值的机制。 现在我们使用默认的AOSP值,您可以在device/fsl/imx6/etc/init.rc中引用它们。对于wifi和以太网,它们都使用net.tcp.buffersize.wifi。 # 定义各种网络的 TCP 缓冲区大小 # 读取最小值、读取初始值、读取最大值、写入最小值、写入初始值、写入最大值 setprop net.tcp.buffersize.default 4096,87380,110208,4096,16384,110208 setprop net.tcp.buffersize.wifi524288,1048576,2097152,262144,524288,1048576 setprop net.tcp.buffersize.lte524288,1048576,2097152,262144,524288,1048576 setprop net.tcp.buffersize.umts4094,87380,110208,4096,16384,110208 setprop net.tcp.buffersize.hspa4094,87380,262144,4096,16384,262144 setprop net.tcp.buffersize.hsupa4094,87380,262144,4096,16384,262144 setprop net.tcp.buffersize.hsdpa4094,87380,262144,4096,16384,262144 setprop net.tcp.buffersize.hspap4094,87380,1220608,4096,16384,1220608 setprop net.tcp.buffersize.edge4093,26280,35040,4096,16384,35040 setprop net.tcp.buffersize.gprs4092,8760,11680,4096,8760,11680 setprop net.tcp.buffersize.evdo4094,87380,262144,4096,16384,262144 我尝试改变上述值,但不幸的是没有得到明显的改善。嗨,为什么? 那么另一个话题,tcp_mem 和 tcp_rmem 如何在内核中协同工作?在 android 中,我们只有办法调整 tcp_rmem 或 tcp_wmem 设置,而没有办法调整 tc_mem。 以“iperf -c”为例,tcp_rmem将根据千兆以太网时钟的频率进行填充。然后它将 根据tcp_mem的大小重新打包,如果tcp_mem较小,则会触发更多次,如果超过最大值 将会触发丢帧。然后将通过 TCP 启动重新传输。最后,性能就会下降。这就像使用千兆上网但用的是垃圾笔记本一样。 您仍然无法享受千兆以太网的良好性能。 为什么内核在 ipv4 中这样计算 tcp_mem?也许他们考虑的是单一高带宽和多连接之间的平衡。 你可以想象如果我们将 tcp_mem 更改为使用一个很大的值,它可能会导致主板由于内存分配不足而拒绝连接 在 tcp 初始化中。在这里我将给出几种提高我们的Android以太网性能的方法。 在电路板设计阶段扩大内存大小。 我已经通过在我们的 SabreAuto 板上测试再次检查了这一点,该板的内存为 2G,其下载速度可以达到 270 Mbps,而通过 Sabresd 则可达 50Mbps。 尽量使用老版本的android,如果能用ICS,可以放弃JB4.3。与较新的 Android 版本相比,旧版本占用的内存更少,并且会留下更多的可用内存。使用 ICS,我们可以达到 380 Mbps 的下载速度,而在 JB4.3 中,只能达到 210 Mbps。 如果您在非常重要的情况下使用 sabresd 的千兆以太网,那么如果您可以抛出其他内存消耗器(如 GPU),则可以平衡它。我已经检查过,如果我们禁用 GPU,JB4.3 中的性能可以达到 340 Mbps,提高约 50%。 改变tcp_mem算法,扩大其最大值阈值。就像您可以将上面的“sysctl_tcp_mem[2] = sysctl_tcp_mem[0] * 2”更改为“sysctl_tcp_mem[2] = sysctl_tcp_mem[0] * 3”。您可以看到不再出现丢帧现象。或者您也可以参考如何:网络/TCP/UDP 调整来对其进行硬编码。但正如其作者所说,不建议用于支持多个用户或多个连接。因为它可能导致主板由于内存分配不足而拒绝连接。 通过 android 中的以下补丁调整 tcp_rmem 和 tcp_wmem。您将获得双向 320Mbps。但是如果您使用 ifconfig 工具设置静态 ip,您将无法设置这些参数。对于AOSP的框架现在只支持DHCP。对于这种情况,您可以在进行测试之前在控制台中手动回显这些参数。 Gerrit 代码审查 Gerrit 代码审查 更改内核的调度策略配置。 禁用 CONFIG_FAIR_GROUP_SCHED 并且仅启用 CONFIG_RT_GROUP_SCHED 会带来一些增强。 经过上述更改,我已经使用 android4.3GA 在 Sabresd RevC1 上进行了测试,双向速率均可达到390~400Mbps。 回复:关于Android和Linux之间的千兆以太网性能差距 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我也想让客户关注这个主题,以便他们可以分享他们的结果。 顺祝商祺! —马赫什 回复:关于Android和Linux之间的千兆以太网性能差距 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi Jianzheng, 您能否将此文档留在此审核区域(而非您的私人空间),直到审核过程完成?当文档在自己的空间中,并且没有被限制查看时,社区中的每个人都可以看到该文档。在将文档移至公共社区之前,我们希望从中删除所有审核意见。 谢谢! 授予 回复:关于Android和Linux之间的千兆以太网性能差距 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 您能否尝试像我在本文中提供的补丁一样更改tcp_rmem 和 tcp_wmem 的大小? 回复:关于Android和Linux之间的千兆以太网性能差距 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, 我们正在使用 Android ICS(3.0.35 内核)开发 i.MX6Q,并且有以下疑问。 1) 您提到,通过使用 Android ICS,您已经实现了 380 Mbps 的下载速度(来自主板的 iperf -c)。我想知道它是否稳定(差异很小)?或者下载时速度是否会出现波动(200~400Mbps范围内)? 2)如果波动结果范围是 200~400Mbps,您知道如何解决这种不稳定性吗? 谢谢! 阿吉斯·PV 回复:关于Android和Linux之间的千兆以太网性能差距 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我建议您在文档评论中“@提及”您的审阅者(如本文所示),并要求他们成为您的指定审阅者,并将他们引导至此暂存区域的主页以获取审阅者的说明。基本上,他们所要做的就是审查文档,向您提供一些反馈,然后在您做出必要的更改后,他们会重新审查并提交“我同意”的评论。相当简单。
記事全体を表示
「Configure...「Dio」ブロック内の「」ボタン エラー「指定されたパスが見つかりません。」「構成...「Dio」ブロックの「」ボタン。 私はこのトレーニングビデオを段階的に追っています。 https://www.nxp.com/design/training/deploying-autosar-and-non-autosar-software-components-on-nxp-s32k3-with-mathworks-tools:TIP-AUTOSAR-SOFTWARE-NXP-S32K3-MATHWORKS-TOOLS 9:42に、「Configure...「Dio」ブロックの「」ボタンをクリックすると、EBTresosが開きます。 しかし、私はこのエラー情報を得ました。 私のハードウェア設定: EB tresos v29をインストールしました。 Re:「Configure...「Dio」ブロック内の「」ボタン Hi, @xianzhi_g , S32K3 のモデルベース デザイン ツールボックスにご関心をお寄せいただき、ありがとうございます。 直面している問題は、EB tresos フォルダが見つからないことです。次の図に示すように、C:\EB\tresos\bin ではなく C:\EB\tresos パスを選択していることを確認します。 お役に立てば幸いです。 ドラゴス
記事全体を表示
无法在 S32K396-BGA-DC1 评估板上运行 MBDT s32k3xx_dio_ebt 示例 你好 我们最近购买了一块 S32K396-BGA-DC1 评估板,用于评估未来项目的 S32K396 MCU。 由于我们将使用 Simulink 模型进行应用程序开发,因此我尝试使用 MBDT 工具箱。 我可以毫无问题地安装工具箱,但我无法运行 s32k3xx_dio_ebt 示例。 我认为我已经在模型参数中设置了正确的目标 我正在使用安装在板上的“Open SDA”调试器。跳线 J16、J17、J18 和 J19 已相应设置。该电路板通过 USB 连接到我的笔记本电脑(电路板上的 USB 连接器旁边有绿色 LED 灯)。 模型下载参数设置如下 模型已建立,但当 Simulink 尝试将代码加载到开发板中时,过程失败 这是日志的内容 GNU gdb (GDB src=g2b2d27aa26 bld=gd2333b8c -vs=GDB-12-1 -L64 -W32 耳臂) 12.1 版权所有 (C) 2022 自由软件基金会,Inc. 许可证 GPLv3+:GNU GPL 版本 3 或更高版本 < http://gnu.org/licenses/gpl.html > 这是免费软件:您可以自由更改和重新分发它。 在法律允许的范围内,不提供任何担保。 输入“显示复制”和“显示保修”以了解详情。 该 GDB 配置为“--host=i686-mingw32 --target=arm-none-eabi”。 输入“show configuration”获取配置详细信息。 有关错误报告说明,请参阅: < https://www.gnu.org/software/gdb/bugs/ >。 在线查找 GDB 手册和其他文档资源: < http://www.gnu.org/software/gdb/documentation/ >。 如需帮助,请输入“help”。 输入“apropos word”来搜索与“word”相关的命令... 从 C:/Matlab/AddOn_2023b/Toolboxes/NXP_MBDToolbox_S32K3/S32K3_Examples/dio/s32k3xx_dio_ebt/s32k3xx_dio_ebt.elf 读取符号… tcp:localhost:7224:连接超时。 当你的目标是“exec”时,你不能这样做 顺便说一下,当发生错误时,红色 LED 会亮起。 有人能帮我吗? 谢谢 文森特 回复:无法在S32K396-BGA-DC1评估板上运行MBDT s32k3xx_dio_ebt示例 你好@Vincent_91687 很高兴听到! 我刚刚将您的附加帖子转发给了 S32 设计工作室团队。 如果您在使用 MBDT for S32K3 时遇到任何其他问题,请告知我们 谢谢! Irina 回复:无法在S32K396-BGA-DC1评估板上运行MBDT s32k3xx_dio_ebt示例 Hello Irina, 有用 ! 我知道您给我的指南,但是查看文档,我并不清楚在使用 J1 12V 电源时必须设置那些跳线。 无论如何,现在很明显我错了 顺便说一句,万一你也可以帮助我,我还有另一个关于在 S32 Design Studio 中安装 S32K396 支持包的案例: https://community.nxp.com/t5/S32K/Fail-to-install-S32K396-development-package-fails/mp/2053684#M46329 非常感谢你的帮助 此致 文森特 回复:无法在S32K396-BGA-DC1评估板上运行MBDT s32k3xx_dio_ebt示例 你好@Vincent_91687 感谢您提供的图片。我注意到,您的主板上的 J4、J6 和 J7 位于 1-2 位置,对应于 JP1 电源,如S32K396-BGA-DC1 连接器和跳线说明表所示,您可以在以下链接中找到该表 由于目前您的设置中 JP1 上没有连接,因此您需要更改跳线位置以确保 MCU 所需的电压。 为此,以及完整的逐步硬件设置,我建议您查看S32K396-BGA-DC1 评估板入门指南,以便能够根据您的硬件设计设置电源,并正确配置电路板上所有必要的跳线。 如果这有帮助,请告诉我们, Irina 回复:无法在S32K396-BGA-DC1评估板上运行MBDT s32k3xx_dio_ebt示例 Hello Irina, 感谢您的努力。 当我的电路板仅通过 J1 连接器供电(未连接 USB)时,只有 D4 LED 亮起。D1、D2 和 D3 保持关闭状态 当 USB 电缆连接时,即使 J1 未连接,D30 LED 也会亮起 当 USB 和 J10 都连接时,我仍然只有 D4 和 D30 处于打开状态。我正尝试以这种状态下载代码。 如您所见,D2、D3 和 D4 始终处于关闭状态。这是个问题吗? 谢谢 此致 文森特 回复:无法在S32K396-BGA-DC1评估板上运行MBDT s32k3xx_dio_ebt示例 你好@Vincent_91687 您的下载设置似乎正确,因为您选择使用 JTAG 将代码下载到 FLASH 存储器中。 我已尝试在我的设置上运行该示例,我想提一下我已采取的步骤: - 通过 12V CON_1_PWR J1连接器为电路板供电, - 通过SW10启用外部电源,将其切换到1-2位置(请注意,根据电路板的原理图, J3也需要放置在 1-2 位置) 执行这些操作后, D1、D1、D3、D4 LED(MCU 电源输入指示灯)也应亮起。 您能否告诉我们,按照这些步骤操作后,除了电路板上 USB 连接器旁边的 LED 灯亮起之外,MCU 电源输入指示灯是否也亮起? 谢谢! Irina 回复:无法在S32K396-BGA-DC1评估板上运行MBDT s32k3xx_dio_ebt示例 Hello Irina, 非常感谢您的帮助。 我已经更改了“配置项目模板” 我也下载并安装了 PE Micro 驱动程序(并重新启动了计算机),但不幸的是它并没有解决问题。 您能否确认我的“下载”设置是否正确? 连接失败后,我注意到日志中有一些有趣的东西 这是否意味着 MCU 已在运行? 该板是全新的,所以我猜没有可以在闪存中运行的代码 是否有任何跳线需要设置以告诉 MCU 从 JTAG 而不是闪存启动? 再次感谢您的帮助 此致 文森特 回复:无法在S32K396-BGA-DC1评估板上运行MBDT s32k3xx_dio_ebt示例 你好@Vincent_91687 通过查看您遇到的错误,我认为问题可能与缺少PEmicro 硬件接口驱动程序安装有关。这些驱动程序对于使用板载 OpenSDA 调试器是必需的。 您能否检查这些驱动程序是否已安装?如果没有,您可以从 PEmicro 官方网站下载并安装它们。 此外,如果您打算使用 S32K396-BGA-DC1,您可以直接选择我们为该板提供的默认配置项目,因为 S32K396-Q289 选择与 EVB 的 BGA-DC 版本相匹配。根据该板的硬件特性,为 S32K396-BGA-DC1 提供的配置项目启用了外设、引脚和时钟,因此从该项目开始而不是从已经选择的开始可能会很有用。   请让我们知道这是否有帮助或者是否需要我们提供进一步的详细信息。 Irina
記事全体を表示
无法通过 UUU 将 NXP 图像写入 iMX 8M nano EVK 尝试通过 UUU 将我从 NXP 下载的 imx 8 nano EVK Linux 映像写入我的 imx 8 nano EVK。我认为这应该是一件非常简单、平常的事情。但它失败了。 我下载了LF_v6.6.36-2.1.0_images_IMX8MNDDR3LEVK。 使用最新的 UUU,v 1.5.182。 UUU 识别 nano 并开始处理,但很快失败并出现错误:LIBUSB_ERROR_TIMEOUT。 我已重试多次,但每次都失败。 仅供参考:我还有一个 mini EVK,我可以毫无问题地将 mini EVK 图像写入其中。 知道是什么原因导致失败吗?又该如何解决呢? 以下是我的运行输出: PS i.MX-8M-Nano-EVK\LF_v6.6.36-2.1.0_images_IMX8MNDDR3LEVK> .\uuu.exe -lsusb uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.5.182-0-gda3cd53 Connected Known USB Devices Path Chip Pro Vid Pid BcdVersion Serial_no ==================================================================== 2:1 MX815 SDPS: 0x1FC9 0x013E 0x0001 2D2A6A09DAB58857 PS i.MX-8M-Nano-EVK\LF_v6.6.36-2.1.0_images_IMX8MNDDR3LEVK> .\uuu.exe -V . uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.5.182-0-gda3cd53 Build in config: Pctl Chip Vid Pid BcdVersion Serial_No ================================================== SDPS: MX8QXP 0x1fc9 0x012f [0x0002..0xffff] SDPS: MX8QM 0x1fc9 0x0129 [0x0002..0xffff] SDPS: MX8DXL 0x1fc9 0x0147 SDPS: MX28 0x15a2 0x004f SDPS: MX815 0x1fc9 0x013e SDPS: MX865 0x1fc9 0x0146 SDPS: MX8ULP 0x1fc9 0x014a SDPS: MX8ULP 0x1fc9 0x014b SDPS: MX93 0x1fc9 0x014e SDPS: MX91 0x1fc9 0x0159 SDPS: MX95 0x1fc9 0x015d SDPS: MX95 0x1fc9 0x015c SDP: MX7D 0x15a2 0x0076 SDP: MX6Q 0x15a2 0x0054 SDP: MX6D 0x15a2 0x0061 SDP: MX6SL 0x15a2 0x0063 SDP: MX6SX 0x15a2 0x0071 SDP: MX6UL 0x15a2 0x007d SDP: MX6ULL 0x15a2 0x0080 SDP: MX6SLL 0x1fc9 0x0128 SDP: MX7ULP 0x1fc9 0x0126 SDP: MXRT106X 0x1fc9 0x0135 SDP: MX8MM 0x1fc9 0x0134 SDP: MX8MQ 0x1fc9 0x012b SDPU: SPL 0x0525 0xb4a4 [0x0000..0x04ff] SDPV: SPL1 0x0525 0xb4a4 [0x0500..0x9998] SDPV: SPL1 0x1fc9 0x0151 [0x0500..0x9998] SDPU: SPL 0x0525 0xb4a4 [0x9999..0x9999] SDPU: SPL 0x3016 0x1001 [0x0000..0x04ff] SDPV: SPL1 0x3016 0x1001 [0x0500..0x9998] FBK: 0x066f 0x9afe FBK: 0x066f 0x9bff FBK: 0x1fc9 0x0153 FB: 0x0525 0xa4a5 FB: 0x18d1 0x0d02 FB: 0x3016 0x0001 FB: 0x1fc9 0x0152 FB: 0x0483 0x0afb Wait for Known USB Device Appear... New USB Device Attached at 2:1-2D2A6A09DAB58857 2:1-2D2A6A09DAB58857>Start Cmd:SDPS: boot -f imx-boot-imx8mnddr3levk-sd.bin-flash_ddr3l_evk 10%2:1-2D2A6A09DAB58857>Fail HID(W): LIBUSB_ERROR_TIMEOUT (-7)(20.05s) libusb: warning [libusb_exit] device 2.0 still referenced libusb: warning [libusb_exit] device 1.0 still referenced libusb: warning [libusb_exit] device 2.6 still referenced libusb: warning [libusb_exit] device 1.1 still referenced libusb: warning [libusb_exit] device 2.2 still referenced PS i.MX-8M-Nano-EVK\LF_v6.6.36-2.1.0_images_IMX8MNDDR3LEVK> i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Linux Windows 回复:无法通过 UUU 将 NXP 图像写入 iMX 8M nano EVK 您的回复促使我更仔细地查看下载选项。我现在看到有两个名称中带有“nano”:i.MX 8M Nano DDR3L EVK 和 i.MX 8M Nano EVK。我猜名称中没有“DDR3”的是DDR4。 使用非 DDR3 下载有效。 仅供参考,我使用了命令: uuu .\LF_v6.6.36-2.1.0_images_IMX8MNEVK.zip 确实希望在线信息能够更好地设计以获得成功。 谢谢你的帮助。 回复:无法通过 UUU 将 NXP 图像写入 iMX 8M nano EVK Hi, 您正在将 DDR3 二进制文件刷入 LPDDR4 板,请尝试刷入正确的LPDDR4 板。 uuu -b imx-boot-imx8mnevk-sd.bin-flash_evk imx-image-full-imx8mnevk.wic 此致 回复:无法通过 UUU 将 NXP 图像写入 iMX 8M nano EVK 再次尝试附加图片。似乎使用 jpg 文件比使用 .zip 文件效果更好。      回复:无法通过 UUU 将 NXP 图像写入 iMX 8M nano EVK 我确实附加了一个带有图像的 zip 文件,但现在在线程中看不到它。然后我尝试再次回复并附加一个简单的文本文件,但我认为它没有起作用。该文件似乎开始上传;显示在拖放框中,但随后消失了。并且消息“允许的最大附件数”计数保持在 5。因此,我怀疑图片压缩包是否附加在了我上一条消息中。 回复:无法通过 UUU 将 NXP 图像写入 iMX 8M nano EVK 也许您指的是顶部和底部的图片。随附的。 回复:无法通过 UUU 将 NXP 图像写入 iMX 8M nano EVK Hi, 感谢您对恩智浦半导体产品的关注, 您能分享一下您的两块板子的顶部和底部的图片吗? 此致
記事全体を表示
如何在 i.MX 配置工具中为 i.mx6ull 分配中断 下午好,亲爱的恩智浦!我该如何在这个工具中分配中断?我已经配置了所有引脚,现在我必须为其分配中断并为各种中断编写自己的中断处理程序。但我无法找到如何以及在何处使用此工具来执行此操作。 我正在使用 Linux,所以我认为我必须以某种方式将引脚声明为中断源,然后编写驱动程序将其分配给该引脚,但现在我不明白如何做到这一点。 聚苯乙烯 很明显我应该把 dtsi 文件放在哪里,但我应该把另外 4 个(iomux_config.c(h))放在哪里,pin_mux.c(h))SDK 中生成的文件? i.MX6 全部 i.MX6UL 回复:如何在 i.MX 配置工具中为 i.mx6ull 分配中断 谢谢你!我是这样想的,那么,我将以 Linux 风格来做这件事) 回复:如何在 i.MX 配置工具中为 i.mx6ull 分配中断 你好, @8Aineri 我问了我们的 Pin 工具成员,他们说中断向量的初始化或来自 GPIO 引脚的中断不是 i.mx 6ULL 引脚工具数据的一部分。 GPIO 中断的初始化是 GPIO 外设初始化的一部分,应该在 GPIO 驱动程序中。 和您提到的一样。 B.R 回复:如何在 i.MX 配置工具中为 i.mx6ull 分配中断 我读过这篇文章,但我找不到关于如何为引脚分配中断的解决方案。也许我应该只将引脚标记为中断,然后手动编写 Linux 驱动程序,但我找不到如何将引脚标记为中断。 我该如何理解这一点 - 我无法在此工具中将引脚标记为中断,我只能看到这个引脚是否可以成为中断,然后我应该在 Linux 设备树中手动执行此操作? 回复:如何在 i.MX 配置工具中为 i.mx6ull 分配中断 你好, @8Aineri 据我所知,配置工具中的 Pin 工具似乎没有您请求的功能(为 i.mx6ull 分配中断),此外,我还会联系所有者仔细检查这一点。 PS:我认为这个文件不用于放入SDK。请参阅附件第3章以进一步了解。
記事全体を表示
FreeRTOS プロジェクトで LPTMR KSDK ドライバーを使用する方法 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Kinetisソフトウェア開発キット(KSDK)は、Kinetisマイクロコントローラ上でアプリケーションを開発するためのソフトウェア・フレームワークです。フレームワークのソフトウェアコンポーネントには、ペリフェラルドライバー、ミドルウェア、およびリアルタイムオペレーティングシステムが含まれます。 KSDKはFreeRTOS OSを提供し、選択されたドライバーは追加のレイヤーの形でFreeRTOSサポートを提供します。このソリューションにより、RTOSベースのアプリケーションへのドライバ統合が容易になります。 FreeRTOS レイヤーを持つドライバーは次のとおりです。 • UART / LPUART / LPSCI • I2C / LPI2C • SPI / LPSPI FreeRTOS OS のドライバーは、標準の KSDK 周辺機器ドライバーの上に構築されたレイヤーで、マルチスレッド (RTOS) 認識を実現します。ラッパーは、I/O 操作が完了するまで呼び出し元のタスクをブロックし、他のタスクをバックグラウンドで実行できるようにする API を提供します。これは、基になるドライバーの非同期 API と RTOS タスク同期オブジェクトを使用して実現されます。基盤となるドライバーは、適切に動作するために有効な割り込みを必要とします。 さらに、KSDKベアメタルドライバーを使用することも可能です。このドキュメントでは、FreeRTOS および SDK 2.0 プロジェクトで LPTMR ドライバーを使用する方法について説明します。この例では、SDK 2.0、FRDMK64F、および FreeRTOS を使用しています。 FreeRTOSプロジェクトを使用して新しいSDK 2.0を作成する方法を知りたい場合は、以下のリンクを確認してください https://community.freescale.com/docs/DOC-330183 GPIOとLPTMRの例: はじめに この例では、青色の LED を 1 秒ごとに切り替えます。この例では、Timer Compare Flagビットをチェックし、このフラグが設定されると青色LEDのステータスが変わります。 サンプルコードの記述 まず、FreeRTOSプロジェクトを使用して新しいSDK 2.0を作成する必要がありますので、以下のリンクを確認してください。      https://community.freescale.com/docs/DOC-330183 2.新しいプロジェクトを作成したら、pin_mux.c を開きますポートクロックを有効にし、必要なピンをGPIOとして構成するためのファイル(FRDM-K64Fの場合、RGB LEDはGPIO信号を介して接続されます:赤からPTB22、青からPTB21、緑からPTE26)。 3.さらに、pin_mux.c で lptmr モジュールのクロックを有効にする必要がありますファイル。 4.main.c でファイルには fsl_lptmr.h を含める必要がありますとfsl_gpio.h. 5.main 関数で、新しいタスクを作成します。このタスクは、LPTMR ドライバーと GPIO ドライバーを初期化します。この例では、新しいタスク関数の名前は task_init です。 /* RTOSタスクを作成 */ xTaskCreate( task_init、                  "Task_Init"、 configMINIMAL_STACK_SIZE、 ヌル task_PRIORITY、                  NULL); 6.task_init関数コードを記述します。 ある。KSDK GPIO ドライバーの使用: GPIO を初期化するには、ユーザー ファイルでピン構成 (入力または出力) を定義します。次に、 GPIO_PinInit() 関数を呼び出します。 今回は青色LEDが接続されているピンPTB21を出力として設定しました。 gpio_pin_config_t ledB_config = {kGPIO_DigitalOutput, 0,}; GPIO_PinInit(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PIN, &ledB_config); GPIO ピンをコンフィギュレーションすると、次の GPIO 操作を使用できます。 GPIO出力操作。 GPIO_WritePinOutput  (GPIO_Type *base, uint32_t pin, uint8_t output) GPIO_SetPinsOutput(GPIO_Type ※ベース、uint32_tマスク) GPIO_ClearPinsOutput(GPIO_Type ※ベース、uint32_tマスク) GPIO_TogglePinsOutput(GPIO_Type ※ベース、uint32_tマスク) GPIO 入力操作。 GPIO_ReadPinInput (GPIO_Type ※ベース、uint32_tピン) board.h ファイルには、この操作の定義が含まれています。例えば: /*!< ターゲットLED_BLUEの切り替え */ #define LED_BLUE_TOGGLE() \ GPIO_TogglePinsOutput(BOARD_LED_BLUE_GPIO、1U<< BOARD_LED_BLUE_GPIO_PIN) b.KSDK LPTMR ドライバーを使用する場合: LPTMR_Init () は、アプリケーションの先頭で LPTMR ドライバーを使用して呼び出す必要があります。この関数は lptmr_config_t 構造体を初期化し、この構造体は LPTMR 周辺機器の構成設定を保持します。この構造体を適切な既定値に初期化するには、LPTMR_GetDefaultConfig() 関数を呼び出し、構成構造体インスタンスへのポインターを渡します。config構造体は、フラッシュに存在するようにconstにすることができます。 デフォルト値は次のとおりです。 config->timerMode = kLPTMR_TimerModeTimeCounter; config->pinSelect = kLPTMR_PinSelectInput_0; config->pinPolarity = kLPTMR_PinPolarityActiveHigh; config->enableFreeRunning = false; config->bypassPrescaler = true; config->prescalerClockSource = kLPTMR_PrescalerClock_1; config->value = kLPTMR_Prescale_Glitch_0; LPTMRを設定した後、タイマー期間を設定する必要があります。LPTMR_SetTimerPeriod() は、タイマーが 0 からここで設定されたカウント値と等しくなるまでカウントします。カウント値はCMRレジスタに書き込まれます。 最後に、LPTMR_StarTimer () を使用してタイマーを開始します。この関数を呼び出した後、タイマーはCMRレジスタ値までカウントアップします。タイマがCMR値に達してからインクリメントするたびに、トリガパルスが生成され、タイムアウト割込みフラグが設定されます。タイマー割り込みが有効になっている場合も、割り込みがトリガーされます。 この例では、次の行で LPTMR を構成して開始します。 /* LPTMR の設定 */ LPTMR_GetDefaultConfig(&lptmrConfig); /* LPTMR を初期化します */ LPTMR_Init(LPTMR0, &lptmrConfig); /* タイマー周期を設定 */ LPTMR_SetTimerPeriod(LPTMR0, USEC_TO_COUNT(1000000U, LPTMR_SOURCE_CLOCK)); /* カウント開始 */ LPTMR_StartTimer(LPTMR0);                   c.この例では、Timer Compare Flagビットをチェックし、このフラグが設定されると青色LEDのステータスが変わります。したがって、無限ループでは、LPTMR_GetStatusFlags()関数がチェックします ステータスフラグ (このフラグが設定されている場合は、LED を切り替えて、LPTMR_ClearStatusFlags() 関数を使用してフラグをクリアします。 (1) ながら    {    if (LPTMR_GetStatusFlags(LPTMR0) )           { LED_BLUE_TOGGLE();                      LPTMR_ClearStatusFlags(LPTMR0, kLPTMR_TimerCompareFlag);               } } 7.この時点で、サンプルをビルドしてデバッグできます。 完全なコード GPIO と LPTMR の例 #include #include「ボード.h」 #include「pin_mux.h」 #include 「clock_config.h」 #include「fsl_debug_console.h」 #include 「fsl_device_registers.h」 #include 「fsl_lptmr.h」 #include 「fsl_gpio.h」 /* FreeRTOS カーネルには以下が含まれます。*/ #include「FreeRTOS.h」 #include「task.h」 #include「queue.h」 #include「timers.h」 /* タスクの優先順位。*/ #define task_PRIORITY (configMAX_PRIORITIES-1) /******************************************************************************* *定義 ******************************************************************************/ /* LPTMR ドライバーのソースクロックを取得 */ #define LPTMR_SOURCE_CLOCK CLOCK_GetFreq(kCLOCK_LpoClk) static void task_init(void *pvParameters); /******************************************************************************* * Variables ******************************************************************************/ volatile uint32_t lptmrCounter = 0U; int main(void) {        /* ボード ハードウェアを初期化 します。*/ BOARD_InitPins(); BOARD_BootClockRUN();        BOARD_InitDebugConsole();        /* ここにコードを追加 */        /* RTOSタスクを作成 */ xTaskCreate( task_init、                      "Task_Init"、 configMINIMAL_STACK_SIZE、 ヌル task_PRIORITY、                      NULL); vTaskStartScheduler();        for(;;){ /* メイン関数から離れないようにするための無限ループ */               __asm(「NOP」); /* ループ中のブレークポイント停止として使用するもの */        } } static void task_init(void *pvParameters) {        for (;;){               lptmr_config_t lptmrConfig; PRINTF("初期化タスクを実行しています。\r\n");               /* イニット 出力LEDGPIO。*/               gpio_pin_config_t ledB_config = {kGPIO_DigitalOutput, 0,};               GPIO_PinInit(BOARD_LED_BLUE_GPIO, BOARD_LED_BLUE_GPIO_PIN, &ledB_config); PRINTF("LED BLUE 初期化済み \r\n");               /* LPTMR の設定 */               /*                * lptmrConfig.timerMode = kLPTMR_TimerModeTimeCounter;                * lptmrConfig.pinSelect = kLPTMR_PinSelectInput_0; * lptmrConfig.pinPolarity = kLPTMR_PinPolarityActiveHigh; * lptmrConfig.enableFreeRunning= false;                * lptmrConfig.bypassPrescaler = true; * lptmrConfig.prescalerClockSource= kLPTMR_PrescalerClock_1;                * lptmrConfig.value = kLPTMR_Prescale_Glitch_0;                */               LPTMR_GetDefaultConfig(&lptmrConfig);               /* LPTMR を初期化します */               LPTMR_Init(LPTMR0, &lptmrConfig);               /* タイマー周期を設定 */ LPTMR_SetTimerPeriod(LPTMR0, USEC_TO_COUNT(1000000U, LPTMR_SOURCE_CLOCK)); PRINTF("低電力タイマー モジュールが初期化されました \r\n");               /* カウント開始 */               LPTMR_StartTimer(LPTMR0); (1) ながら {                      if (LPTMR_GetStatusFlags(LPTMR0) ) { lptmrCounter ++; LED_BLUE_TOGGLE(); LPTMR_ClearStatusFlags(LPTMR0, kLPTMR_TimerCompareFlag); } }        } }
記事全体を表示
A71CH - 常见问题解答 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 本文收集了有关A71CH解决方案的常见问题 (FAQ) , NXP 的物联网安全 IC 支持“即插即用”物联网安全方法。 我该如何开始? 特性 支持包 订单详细信息 我该如何开始? 如何使用 A71CH 开始开发? 如何开始使用 i.MX6UltraLite? 如果我想将我的设备加入 Google Cloud IoT 核心,我该如何开始? 如果我想将我的设备加入 AWS IoT Core,该如何开始? 特性 哪些类型的凭证可以存储在 A71CH 中? 如何使用 A71CH 进行相互认证? 支持包 在哪里可以找到 A71CH 支持材料? A71CH 支持包包括什么? 订单详细信息 如何订购 A71CH Arduino 兼容开发套件? 如何订购 A71CH IC? A71CH
記事全体を表示
基于模型的 S32K144 电机控制设计方法 - 第一部分 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 简介 该应用程序基于 S32K144(gpio_s32k14_mbd_rtw)的基本 GPIO 示例。该应用程序经过扩展,可以满足运行无传感器 PMSM 磁场定向控制算法的电机控制应用的需求。因此,实现了某些模式(状态)和转换(事件)。 注意:有限状态机理论定义了状态和事件(转换)。以下设计使用的方法在某些时候似乎混合了状态和转换。有些状态仅运行一次,因此它们可能仅被视为转换。然而,该设计被视为一个示例,并且可以在对外部事件的额外检查方面进行扩展,从而使这些“一次性”状态成为实际状态。该设计因恩智浦汽车电机控制开发套件而广为人知,并得到了大多数客户的认可。因此,MATLAB Simulink 也提出了相同的概念。 有限状态机设计 应用程序结构应该引入一个系统工具来处理电机控制的所有任务以及发生故障时的硬件保护。因此,设计了一个有限状态机来使用 MATLAB Simulink Stateflow Chart(Stateflow 库/图表)来控制应用程序状态。 电机控制应用至少需要两种状态——“就绪”状态表示的“停止”和“运行”状态表示的“运行”。然而,需要实施一些额外的状态来覆盖例如上电情况,程序等待各种辅助系统(系统基础芯片、直流母线充满电、内存检查等)。此外,电机控制应用,特别是无传感器磁场定向控制需要额外的状态来校准传感器并启动具有已知位置的电机。因此,从 READY 状态到 RUN 状态的转换是通过 CALIB(传感器校准)和 ALIGN(初始转子位置对准或检测)状态的初始化序列完成的。要停止电机,应用程序通过 INIT(状态变量初始化)返回到 READY 状态。 INIT 状态旨在清除所有内部累加器和其他变量(但参数可以在运行时更改,并且不会重置为默认设置),而 RESET 状态则用于在使用 FreeMASTER 或其他用户界面更改电机控制参数的情况下启用上电或“默认配置”或“软复位”初始化。 所有状态都与状态机图表块中追踪的输出事件相链接。这些事件可用作调用处理程序(状态函数)的触发点。转换由状态机的输入值驱动,通过简单的比较将其视为事件(例如[u==e_start])。要改变状态,就应该改变事件/输入值。如果事件发生了变化,则状态机仅在存在与当前状态和事件相关联的现有动作的情况下才改变状态。 状态机设计用于应用程序中,使用事件输入(发出事件信号)、状态输出(指示当前状态)和事件触发器输出(调用状态函数/处理程序)。已构建以下应用程序来展示状态机使用的示例。 下表显示了状态和事件的命名: 状态 目的 Value 重置 开机/默认设置/软复位状态。可能包括一些硬件检查序列或故障检测。 1 Init 控制状态变量(积分器、斜坡、累加器、变量等)的初始化。可能包括故障检测 2 一切就绪 待机状态,准备开启。包括故障检测,例如直流母线过压或高温 3 CALIB 校准状态用于校准 ADC 通道(消除偏移)。包括故障检测 4 Align 对准状态,找到转子位置并准备启动。包括故障检测 5 运行 电机以开环或无传感器模式运行。包括故障检测 6 故障 故障状态关闭电源转换器和所有外围设备,进入安全状态。 7 输入事件是引发当前状态改变的触发器。 输入事件 目的 Value e_init_done 当 Init 状态成功完成任务时断言 1 e_start 当用户发送开启命令时断言 2 e_calib_done 当所有必需的 ADC 通道都校准后置位 3 e_align_done 当初始转子对准/位置检测完成时断言 4 紧急停止 当用户发送关闭命令时断言 5 e_fault 发生故障情况时断言 6 错误清除 当用户发送“清除故障”命令或情况允许时, 7 e_reset 当用户发送“重置”命令以使用默认设置重新开始时,断言 8 输出事件用于触发电机控制状态处理程序并与实际状态相对应。每次状态机调用都会触发这些事件。因此,状态机应该与控制算法保持一致。例如,它应放置在 ADC“转换完成”中断程序或 PWM 重新加载中断程序内。 有限状态机的使用 状态机应与控制算法很好地配合使用。控制电机的常用方法是将周期性中断与 ADC 转换完成或 PWM 重新加载事件(中断)联系起来。在收集所有外部信息(电压、电流、二进制输入等)之后,应在此事件处理程序中调用状态机,以让状态机决定下一步应调用哪个状态。 状态机内部的内部事件/状态处理由状态机块定义清楚地描述。输出事件触发器配置为向状态机提供清晰的基于功能的代码接口。这意味着,输出事件应连接到用于处理状态任务的函数。例如,在运行状态下,每次状态机调用都会触发 run() 输出事件,而在运行状态函数中则会调用整个电机控制算法。如果要通过输入信息来切换状态,则需要编写一个简单的条件来改变事件变量(定义为全局变量)。例如,如果用户发送“停止”命令,则事件设置为“e_stop”,状态机将切换到初始状态。 为了更复杂地触发输出功能,可以在状态机定义中编程额外的输出事件。 模板状态处理程序函数基于函数调用者块。一般来说,功能块可以与全局变量一起工作,因此不需要输入或输出。由于全局事件变量,事件驱动状态机可以对状态处理程序函数内部或状态机外部抛出的事件做出反应(例如基于其他异步中断)。下面显示了一个简单模板的示例。 在这个例子中,该函数代表重置状态,它应该在上电重置后运行,或者将所有变量设置为其默认设置。因此,第一部分专门介绍与硬件相关的设置,第二部分介绍与应用程序相关的设置。第三部分检查所有任务是否完成。如果是,则抛出 e_reset_done 事件(存储到 Event 变量中)。在这种情况下,ResetStatus 变量显然总是从零变为二,而不受其他影响。因此,最终条件可能会被删除(甚至通过编译期间的 MATLAB 优化过程)。如果存在外部条件,例如等待设置外部引脚,那么使用这样的“状态”变量作为完成状态任务的绿灯并抛出“完成”事件是有意义的。 嵌入式C代码实现 在默认设置中,MATLAB Embedded Coder 以 switch-case 结构的方式生成状态机代码。这对于进一步的代码调试或手动编辑可能不是很有用。因此,函数调用子系统块参数应按如下所示进行更改。函数打包选项设置为“不可重复使用函数”,其他设置可以保留默认值。这将使状态机代码结构保持在 switch-case 中,但是状态处理程序函数调用将生成为静态函数(而不是将代码放在 switch-case 中)。 以下代码示例是 stateMachineTest.c 中生成的状态机代码的一部分示例代码。状态机根据 State 变量进行决策,该变量内部存储在 stateMachineTest_DW.is_c1_stateMachineTest 中。根据 stateMachineTest_DW.Event,启动转换。最后,调用状态处理函数,在本例中为 stateMachineTest_Resetstate()。 void stateMachineTest_step(void) { /* ...  */       switch (stateMachineTest_DW.is_c1_stateMachineTest) { /* ... */       case stateMachineTest_IN_Reset:             rtb_y = 1U;             /* During 'Reset': ' :35' */             if (stateMachineTest_DW.Event == stateMachineTest_e_reset_done) {               /* Transition: ' :37' */               stateMachineTest_DW.is_c1_stateMachineTest = stateMachineTest_IN_Init;               /* Entry 'Init': ' :1' */               rtb_y = 2U;             } else if (stateMachineTest_DW.Event == stateMachineTest_e_fault) {               /* Transition: ' :46' */               stateMachineTest_DW.is_c1_stateMachineTest = stateMachineTest_IN_Fault;               /* Entry 'Fault': ' :18' */               rtb_y = 7U;             } else {               /* Outputs for Function Call SubSystem: ' /Reset state' */               /* Event: ' :49' */               stateMachineTest_Resetstate();               /* End of Outputs for SubSystem: ' /Reset state' */             }             break; /* ... */       }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ /* ... */ }‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 重置状态函数是根据 Simulink 模型中每个块中设置的优先级进行编译的。如果没有设置优先级,则默认优先级基于将它们添加到模型的顺序。因此,按照逻辑顺序的要求验证并最终改变优先级非常重要。此设置可以在块属性中更改,如下所示。模型更新(Ctrl+D)后,优先级设置显示为每个块右上角的数字。 状态机测试应用程序 测试应用程序旨在测试状态机的所有功能,针对 S32K144EVB。为了指示活动状态,RGB LED 二极管与闪烁频率结合使用。板载按钮 SW2 和 SW3 用于控制应用程序。该应用程序在 10 毫秒中断例程中运行(由采样时间给出)。有一个独立的 LPIT 中断控制 LED 闪烁。 上电复位后,设备被配置并进入复位状态,在此执行额外的硬件和应用程序设置。然后,应用程序进入 INIT 状态,模拟延迟约 2 秒,由蓝色 LED 二极管快速闪烁表示。延迟后,自动进入READY状态。 两个按钮均由另一个状态机处理,该状态机可检测短按和长按按钮。虽然短按没有直接指示,但长按由打开的红色 LED 二极管指示。 短按SW2,应用程序启动,首先进入CALIB状态,然后进入ALIGN状态,最后进入RUN状态。CALIB 和 ALIGN 状态由蓝色 LED 的较高频率闪烁指示,而 RUN 状态由绿色 LED 亮起指示。 该应用程序引入了速度命令的模拟,可以通过长按 SW2(向上)或 SW3(向下)在 0 到 10,000 的范围内进行更改。此外,为了模拟故障情况,一旦速度命令达到 5,000 的值,就会抛出 e_fault 事件。进入故障状态,红色 LED 闪烁表示进入故障状态。要清除故障,应同时按下 SW2 和 SW3。进入 INIT 状态,蓝色 LED 二极管快速闪烁表示进入 INIT 状态。 下表显示了功能和 LED 指示。 按钮 Press lenght 功能 SW2 短按 启动应用程序 SW2 long press 增加速度命令(红色LED二极管亮起指示) SW3 短按 停止应用程序 SW3 long press 降低速度命令(红色LED二极管亮起指示) SW2 + SW3 短按 清除故障 状态 LED 闪烁 重置 - Init 蓝色 第 50 期 一切就绪 蓝色 第 500 期 CALIB 蓝色 第250期 Align 蓝色 周期 100 运行 绿色 始终开启 故障 红 周期 100 any 红 当检测到长按 SW2 或 SW3 时始终亮起 运行示例 该示例可以与 S32K14x、v3.0.0 的基于模型的设计工具箱一起构建和运行。此版本是使用 MATLAB R2017a 创建的。在运行此示例之前,请遵循 NXP 社区页面上的说明和课程。建议使用未连接扩展板的 S32K144EVB,但此示例不使用任何硬件接口,但以下情况除外(请参阅 S32K144EVB 文档): S32K144引脚 S32K144EVB连接器 用法 PTD15 J2.2 GPIO 输出/强度:高/红色 LED PTD0 J2.6 GPIO 输出/强度:高/蓝色 LED PTD16 J2.4 GPIO 输出/强度:高/绿色 LED PTC12 J2.10 GPIO 输入/按钮 SW2 PTC13 J2.12 GPIO 输入/按钮 SW3 PTC6 J4.4 UART1/RxD/FreeMASTER PTC7 J4.2 UART1/TxD/FreeMASTER 该应用程序还可与 FreeMASTER 应用程序配合使用。用户可以连接到目标并观看或控制应用程序。FreeMASTER 项目也已附加,但是,在构建和运行应用程序后,需要在 FreeMASTER 项目设置中更新 ELF 文件位置。 示例模型
記事全体を表示
构建 SDK 1.3.2 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 我最近下载了 SDK 1.3.2从飞思卡尔的 SDK下载站点下载并有机会尝试将其安装在我身边的 P3041DS 系统上。ISO 中有很多信息,但我想我会逐步完成初始构建以记录流程。 首先要注意的是,有多个 ISO 映像可用。 我已经有一台 Ubuntu lucid 机器,我用它作为构建机器。所以我不需要虚拟图像。我需要源文件 - 所以我下载了 QorIQ_SDK_V1-3-2_SOURCE_ISO,并且我将在 P3041 上尝试这个,所以我下载了 e500mc 二进制文件。二进制文件不是必需的,但它可以显著加快构建速度。 下载完成后,首先要安装源 ISO 源 ISO 中有一个安装脚本。我运行它并让它做它的事情。值得注意的是,文档目录中包含文档。如果您访问documents/START_HERE.html,您将获得有关 SDK 的基于 html 的文档。而且,如果您继续深入研究并转到documents/sdk_documentation/pdf,您会发现一些有关各种功能的 pdf 文档。文档 QorIQ_SDK_Infocenter.pdf 是从Freescale 信息中心网站获取的 SDK 文档的完整集合。 一旦安装了源,我就对二进制文件执行相同的操作。 确保在源的顶部安装二进制文件(即在同一目录中)。 然后我们调用 FSL poky 脚本 - 来设置构建。 在这个命令中,-m 告诉它你要构建到哪台机器。-j 表示 make 要生成的作业数,-t 表示要并行运行的 bitbake 任务数。 此时我已准备好开始构建。对于想要构建的图像,我有一些选择 - 我将使用核心图像,其中包含一些更常见的包。因此,此时我需要确保我位于 build_p3041ds_release 目录中,并发出命令 bitbake fsl-image-core 这将启动构建过程。 当一切都完成后,我可以在build_p3041ds_release/tmp/demply/images目录中找到我的图像。 就我而言,我有相当多的图像,因为我实际上已经构建了核心和完整的图像。接下来,我必须抓取这些图像并将它们部署到我的目标。 QorIQ P1设备 QorIQ P2设备 QorIQ P3 设备 QorIQ P4设备 QorIQ P5设备
記事全体を表示
MPC5777C针对S32DS双核执行的优化 Hello, 现在我的 MPC5777CEVB 已经有了一个稳定的双核执行环境(顺便说一句,感谢您在之前帖子中的回答!),我正在尝试了解更精细的细节,以便获得该 MCU 的最佳性能和可预测性。在我的实验过程中,我思考了许多问题: - 让 cpu0 从一个 PFLASH 库运行代码,让 cpu1 从另一个 PFLASH 库运行代码,这是否有益(就减少资源争用而言)?在这种情况下,将 PFLASH 分成几个 TLB 条目是否有用? - 对于 SRAM 也有同样的问题:考虑到它分为三个组,有没有将其分成核心的最佳方法?我正在考虑为具有直写缓存策略和平台一致性的共享 64KB 空间设置一个 TLB 条目,然后为 cpu1 设置 192KB,为 cpu0 设置 256KB,但我不知道将一个核心绑定到 XBAR 从属端口 2 并将另一个核心绑定到 XBAR 从属端口 4 是否有任何好处,也不知道是否需要特别注意 XBAR 从属端口 2,因为(如果我理解正确的话)那里有多个存储库。 - 尽管 EVB 带有 MMO3 部件编号,但我打算在实际开发中使用 MMO4 芯片。EVB 能与 MMO4 芯片配合良好吗?我可以以最大频率运行它吗?说到这,一些文档部分指出最大频率为 300MHz,而其他部分则指出最大频率为 306MHz。哪一个是正确的? - 对于 MMO4 部件号,最大 EBI CLKOUT 是否仍保持在 66MHz?在这种情况下,我是否应该将平台时钟除以 3 并使用 50(51?)MHz 作为 CLKOUT? - 我使用 PIT0 作为触发器在两个核心中同时运行代码(以估计一个核心受到另一个核心的干扰)。如何确保两个内核在其中一个设置 PIT_TFLG0[TIF] 之前都接收到中断? - 当在两个核心上运行一些代码时(都从相同的 Flash 地址读取,一些从相同的 RAM 地址读取,一些读取(以及所有写入)到不同的 RAM 地址),使用循环 XBAR 仲裁策略,cpu0 比 cpu1 更快(~743us vs. ~799us)。当我将其更改为基于优先级时,时间保持大致相同,但两个核心的速度都稍慢一些(~748us 对比 ~805us)。在所有情况下,我都使用每个核心自己的 TBL/TBU 寄存器来测量时间,以最大限度地减少资源争用。为什么循环对两个核心都更好? -最后,在S32DS环境中是否有SDA使用的示例或文档? 谢谢! Ricardo 回复:MPC5777C针对S32DS中的双核执行进行优化 也许您需要按如下方式启用它: https://www.nxp.com.cn/docs/en/release-note/S32SDK_Power_Architecture-RN.pdf 关于中断: 两个核心的中断请求在同一周期内触发。然而,ISR 处理是特定于应用程序的。 回复:MPC5777C针对S32DS中的双核执行进行优化 Hi David, 感谢大家的回答!我将重点讨论那些我可能不理解的内容: - 我使用 PIT0 作为触发器在两个核心中同时运行代码(以估计一个核心受到另一个核心的干扰)。如何确保两个内核在其中一个设置 PIT_TFLG0[TIF] 之前都接收到中断? 我不确定我是否完全理解这一点,但 INTC 能够向两个核心发送中断请求(INTC_PSRn[PRC_SELn] = 0b)。 确实,我正在向两个核心发送中断。查看 S32DS 知识库中提供的示例时,只有一个核心服务于中断,并且必须设置 PIT_TFLG0[TIF](显然,要重置中断,直到 PIT0 再次设置它)。我想知道中断是否在同一个时钟周期内发送到两个内核,这样如果其中一个内核在 ISR 功能启动时立即设置 PIT_TFLG0[TIF],则不会存在另一个内核“看不到”中断的风险,因为其中一个内核已清除该中断。 -最后,在S32DS环境中是否有SDA使用的示例或文档? “SDA”缩写是什么意思? 我的错!我指的是小数据区。虽然我可以让它们在 GHS 环境中工作,但我不明白 gcc 如何处理它们......它正在创建 .sdata和 .sbss部分并默认在那里分配东西,但它看起来并不像在执行由 r13 索引的访问。 回复:MPC5777C针对S32DS中的双核执行进行优化 嵌入的答案: - 让 cpu0 从一个 PFLASH 库运行代码,让 cpu1 从另一个 PFLASH 库运行代码,这是否有益(就减少资源争用而言)?在这种情况下,将 PFLASH 分成几个 TLB 条目是否有用? 有两个专用闪存端口,它们不根据地址分割,因此不需要创建多个 TLB 条目。 - 对于 SRAM 也有同样的问题:考虑到它分为三个组,有没有将其分成核心的最佳方法?我正在考虑为具有直写缓存策略和平台一致性的共享 64KB 空间设置一个 TLB 条目,然后为 cpu1 设置 192KB,为 cpu0 设置 256KB,但我不知道将一个核心绑定到 XBAR 从属端口 2 并将另一个核心绑定到 XBAR 从属端口 4 是否有任何好处,也不知道是否需要特别注意 XBAR 从属端口 2,因为(如果我理解正确的话)那里有多个存储库。 SRAM 根据地址线 18 分为两半(见表 9-2)。XBAR 从属端口分配)。如果一个核心访问从属端口 2,而第二个核心访问从属端口 4(或其他),则可能会很有益,因为两个访问是并行进行的。 - 尽管 EVB 带有 MMO3 部件编号,但我打算在实际开发中使用 MMO4 芯片。EVB 能与 MMO4 芯片配合良好吗?我可以以最大频率运行它吗?说到这,一些文档部分指出最大频率为 300MHz,而其他部分则指出最大频率为 306MHz。哪一个是正确的? 300MHz 为最大未调制频率,306MHz 为包含频率调制。 - 对于 MMO4 部件号,最大 EBI CLKOUT 是否仍保持在 66MHz?在这种情况下,我是否应该将平台时钟除以 3 并使用 50(51?)MHz 作为 CLKOUT? EBI 最大频率保持不变,这实际上意味着 300MHz 版本必须使用比 264MHz 版本更低的 EBI 频率,因为 CLKOUT 分频器没有提供更多选项。 - 我使用 PIT0 作为触发器在两个核心中同时运行代码(以估计一个核心受到另一个核心的干扰)。如何确保两个内核在其中一个设置 PIT_TFLG0[TIF] 之前都接收到中断? 我不确定我是否完全理解这一点,但 INTC 能够向两个核心发送中断请求(INTC_PSRn[PRC_SELn] = 0b)。 - 当在两个核心上运行一些代码时(都从相同的 Flash 地址读取,一些从相同的 RAM 地址读取,一些读取(以及所有写入)到不同的 RAM 地址),使用循环 XBAR 仲裁策略,cpu0 比 cpu1 更快(~743us vs. ~799us)。当我将其更改为基于优先级时,时间保持大致相同,但两个核心的速度都稍慢一些(~748us 对比 ~805us)。在所有情况下,我都使用每个核心自己的 TBL/TBU 寄存器来测量时间,以最大限度地减少资源争用。为什么循环对两个核心都更好? 您可能还要注意停车管制。理想情况下,我已经回答过,每个核心访问不同的 SRAM 一半,每个核心访问不同的闪存地址(有内部预取缓冲区,但访问同一地址不会同时运行,可能会导致等待状态)。 -最后,在S32DS环境中是否有SDA使用的示例或文档? “SDA”缩写是什么意思?
記事全体を表示
加速度计:FXLN83XX 分线板 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> FXLN83XX 是一款 3 轴、低功耗、低重力加速度计,配有 CMOS 信号调节和控制 ASIC,采用小型 3 x 3 x 1 毫米 QFN 封装。X、Y 和 Z 轴的模拟输出在内部补偿零重力偏移和灵敏度,然后缓冲到输出垫。无论 VDD 电源电压如何,输出均具有固定的 0 g 偏移 0.75 V。可以使用外部电容器独立设置每个轴的输出信号的带宽。主机可以将 FXLN83XXQ 置于低电流关断模式以节省电量。 以下是从 OSH park 下载的 FXLN83XX 分线板的渲染图: 该板的布局设计: 在附件部分,您可以找到原理图源文件 (SCH)、原理图 PDF 文件、布局源文件 (BRD)、Gerber 文件 (GTL、GBL、GTS、GBS、GTO、GBO、GKO、XLN) 和 BOM 文件。    如果您对其他传感器的更多类似分线板的设计感兴趣,请前往Freescale 传感器分线板设计 - 主页Freescale 传感器分线板设计 - 主页 加速度传感器
記事全体を表示
NXP Connects - 中国 - 2018年9月5-6日 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 汽车电子 汽车雷达信号处理加速 AD/ADAS Overview  使用时间敏感网络 (TSN) 和以太网构建您的汽车网络 未来汽车网络中的 CAN——了解不同的趋势和解决方案 电气化——高压电动汽车功率逆变器系统及GD3100评测 电气化——用于高压电池管理系统的 MC3377x 电池控制器 探索汽车通用 MCU 产品组合 GPIS触摸传感解决方案 MCU:MagniV ®集成解决方案深入探究 下一代功能安全架构 NXP 的 xEV 能源管理解决方案 NXP 汽车门禁——迈向智能门禁的路线图(NFC、BLE、UWB、SE) OTA 更新——完整系统解决方案的要求 汽车电源管理解决方案_Connects China S32通用底盘概述 S32雷达处理器,产品革命 汽车网关的兴起与发展 xEV HV牵引电机功率逆变器平台 人工智能、使能技术、安全与解决方案 低成本边缘计算节点中的机器学习 (ML) 和人工智能 (AI) 愿景  边缘计算——何时、为何以及如何_Connects China 一秒内即可启动?了解详情_Connects China EdgeScale:云端安全边缘设备和应用管理解决方案_Connects China 学习如何使用 MCUXpresso 软件和工具快速启动并运行 i.MX/MCU 安全功能概述 使用 OpenWRT、Yocto、Ubuntu 还是您自己的定制 Linux ®发行版?了解恩智浦如何轻松利用多发行版方法进行软件开发_Connects China 智能机械和工业自动化 恩智浦完整的电机控制解决方案 开放工业Linux ® (OpenIL)——安全、稳健、实时的工业和自动化应用_Connects China 时间敏感网络 (TSN) 和精确时间协议 (PTP):挑战、机遇和解决方案 多媒体体验 NXP MCU 和 MPU 语音和音频解决方案,面向 AI-IoT 市场 智能网络与计算 用于移动宽带的DAS和小型基站 采用 GaN 技术,适用于 1GHz 以上蜂窝频段的高功率射频应用 采用 LDMOS 技术的蜂窝频段高功率射频应用 SD-CPE——与虚拟机(Docker 等)一起部署并由 Orchestrator 管理的 CPE SD-WAN——按需灵活网络带宽管理的概念与应用 智能世界解决方案和多模连接 快速充电器/适配器 (TEA1936+ TEA199x+ TEA1903x/05x);LLC 谐振交流/直流电源 (TEA19161+ TEA19162+ TEA1995) i.MX RT 支持和参考解决方案 i.MX RT 概述及内存扩展设计安全性 NXP无线充电解决方案及设计简介 低成本、经过生产验证的智能电子锁解决方案 MiGLO ® _连接中国 NTAG ®智能传感器_中国互联 恩智浦智能家居、楼宇和照明连接解决方案以及面向消费、医疗、工业物联网和汽车市场的 BLE 低功耗解决方案 电源调节/市场趋势以及恩智浦AC/DC电源解决方案概述 快速物联网原型开发套件_Connects China 智能放大器软件_连接中国 Type-C端到端解决方案_Connect China 低功耗物联网应用传感器的使用技巧和窍门_Connects China 新兴趋势与创新 恩智浦基于 Arm ® Cortex ® -M 内核的 MCU 产品组合概述 安全防篡改认证_Connects China
記事全体を表示
imx_builder --- 无需 Yocto 即可独立构建 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 2020年3月13日:imx_builder_03122020.tgz--- 更改 i.MX8MN 配置。 2019年12月11日:imx_builder_12112019.tgz --- 添加支持 L4.19.35_1.1.0 2019年8月28日:imx_builder_08282019.tgz --- 添加 i.MX8MM 2019年7月3日:imx_builder_07032019.tgz --- 添加 i.MX8QM: build_i.MX8 2020 年 2 月 26 日:imx_builder_02262020 --- 添加 i.MX8MN,为 build_i.MX8、build_i.MX8X 添加 spl m4,带有 L4.14.98_2.0.0_ga、L4.14.98_2.2.0、L4.19.35_1.1.0 imx_builder_02262020: imx_builder |-- atf -> bsp/imx-atf |-- bsp -> REL/rel_imx_4.19.35_1.1.0 |-- 构建 -> build_i.MX8X/L4.19.35_1.1.0 |-- 构建_i.MX6 | |-- L3.0.x | |-- L3.1x.xx | |-- L4.14.xx | |-- L4.19.xx |`-- L4.1.xx |-- 构建_i.MX8 | |-- 在_L4.14.98_2.0.0_ga 之前 | |-- L4.14.98_2.0.0_ga | |-- L4.14.98_2.2.0 |`-- L4.19.35_1.1.0 |-- 构建_i.MX8M | |-- 之前.L4.19.35 |`-- L4.19.35 |-- 构建_i.MX8MM | |-- 之前.L4.19.35 |`-- L4.19.35 |-- 构建_i.MX8MN |`-- L4.19.35 |-- 构建_i.MX8X | |-- 在_L4.14.98_2.0.0_ga 之前 | |-- L4.14.98_2.0.0_ga | |-- L4.14.98_2.2.0 |`-- L4.19.35_1.1.0 |-- dts -> linux/arch/arm/boot/dts |-- dts64 -> linux/arch/arm64/boot/dts/freescale |-- dts_uboot -> u-boot/arch/arm/dts |-- imx-mkimage -> bsp/imx-mkimage |-- linux -> bsp/linux-imx | -- m4_img | |-- m4_1_image.bin->rpmsg_lite_str_echo_rtos_imxcm4.bin | |-- m4_image.bin -> 电源模式开关.bin |`--readme.txt |-- Makefile -> 构建/Makefile |-- 其他 | |-- clk_模块 ||-- cryptodev-linux-1.8 | |-- helloworld_模块 | |-- key_blob_模块 |`-- spi |-- 出 |-- 自述文件 -> 构建/自述文件 |-- 相对 |-- scfw -> bsp/scfw |-- 设置.MK -> 构建/设置.MK |-- 工具链 |`-- scfw |-- u-boot -> bsp/uboot-imx `--版本.MK imx_builder是一组用于构建u-boot、Linux kernel、atf、scfw、imx-mkimage的Makefile。您可以称之为独立构建。 以下是尝试的步骤。 您可以使用 -n 来获取详细的构建步骤。 例如:make atf -n 制作 linux.Image -n 以 L4.14.78_ga 为例: 1. Untar  imx_builder_02282019.tgz 2.阅读里面的Standalone_Build_Preparation.pdf,准备bsp。 3.准备工具链(从 yocto 获取 populate_sdk、从 linaro 获取、从 buildroot 获取等) 4. 按照 SCFW 移植套件准备 scfw 工具链。 5. 按照Standalone_Build_Preparation.pdf 检查构建结构是否正确。 构建结构 以 L4.14.78_1.0.0_ga 为例。 在 REL 中准备 rel_imx_4.14.78_1.0.0_ga 创建指向 REL/rel_imx_4.14.78_1.0.0_ga 的符号链接 创建指向 build_i.MX8X 的符号链接   imx_builder/ |-- atf -> bsp/imx-atf |-- bsp -> REL/rel_imx_4.14.78_1.0.0_ga |-- 构建 -> build_i.MX8X |-- 构建_i.MX6 |-- 构建_i.MX8M |-- 构建_i.MX8X |   |-- Makefile -> Makefile.4.14.78_ga |   |-- Makefile.4.14.78_ga | |-- 自述文件 | |-- 设置_4.14.78_1.0.0_ga.MK | |-- 设置.MK -> 设置_4.14.78_1.0.0_ga.MK | `--版本.MK |-- dts -> linux/arch/arm/boot/dts |-- imx-mkimage -> bsp/imx-mkimage |-- linux -> bsp/linux-imx |-- Makefile -> 构建/Makefile |-- 其他 |-- 出 |-- 自述文件 -> 构建/自述文件 |-- 相对 | ` --rel_imx_4.14.78_1.0.0_ga |       |-- firmware-imx-8.0.bin |       |-- imx-atf |       |-- imx-mkimage | |-- imx-sc-firmware-1.1.bin(可选) | |-- imx-scfw-移植套件-1.1.tar.gz |       |-- linux-imx |       `-- uboot-imx |-- scfw -> bsp/scfw |-- 设置.MK -> 构建/设置.MK |-- 独立构建准备.pdf |-- 工具链 |   `-- scfw |` --gcc-arm-none-eabi-6-2017-q2-更新 |-- u-boot -> bsp/uboot-imx `--VERSION.MK -> 构建/VERSION.MK 概述 回复:imx_builder --- 无需 Yocto 即可独立构建 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 非常感谢您的脚本。 我有一个类似的,它删除了 linunx-imx、uboot-imx 中的 .git,以使 bsp 变小。 我认为到目前为止它还不是 imx_builder 的一部分。 我最初的想法是让客户了解独立构建。并且很容易看到单个步骤,这在 Yocto 中有点难以阅读。 imx_builder 适合像您这样的专业用户。您可以添加任何新功能,例如准备 bsp。 非常感谢您对我的 imx_builder 感兴趣。 回复:imx_builder --- 无需 Yocto 即可独立构建 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好, BiyongSUN ,谢谢你的更新。 这是用于填充 bsp 目录的脚本(getSw.sh)。使用版本rel_imx_5.4.24_2.1.0,对于固件 imx,i.MX_Linux_Release_Notes.pdf 具有此版本的版本 (8.8)。要使用其他 Linux 版本,请更新所需版本的 TAG 和 FWR 变量。 #!/bin/bash TAG="rel_imx_5.4.24_2.1.0" FWR="8.8" CAF="https://source.codeaurora.org/external/imx" MAD="wget https://www.nxp.com/lgfiles/NMG/MAD/YOCTO" wget ${MAD}/firmware-imx-${FWR}.bin for repo in linux-imx uboot-imx imx-atf imx-mkimage; do     git clone ${CAF}/${repo} -b ${TAG}; done ‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 回复:imx_builder --- 无需 Yocto 即可独立构建 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 在imx_builder的初始版本中,我只是添加了一个非常小的 rootfs 用于测试目的。 并且我决定不再支持rootfs。但我没有删除规则。 实际上,我通过 buildroot 制作了小型测试 rootfs。 根文件系统:rootfs.tar #$(RM)$(ROOTFS_DIR)/dev/null$(OUT_ROOTFS) # fakeroot -- sh -c 'mknod -ma=rw $$0/dev/null c 1 3 && cd $$0 && tar jfvc $$1 *' ${ROOTFS_DIR} ${OUT_ROOTFS} #$(RM)$(OUT_ROOTFS_TAR)$(OUT_ROOTFS_UBI) # 假根 -- ${FS_TAR_SCRIPT} ${ROOTFS_DIR} ${OUT_ROOTFS_TAR} # 假根 -- ${FS_UBI_SCRIPT} ${ROOTFS_DIR} ${OUT_ROOTFS_UBIFS} ${OUT_ROOTFS_UBI} ${FS_UBI_DIR} 根文件系统.tar: $(RM) $(OUT_ROOTFS_TAR) 假根 -- ${FS_TAR_SCRIPT} ${ROOTFS_DIR} ${OUT_ROOTFS_TAR} rootfs.cpio: $(RM) $(OUT_ROOTFS_CPIO) 假根 -- ${FS_CPIO_SCRIPT} ${ROOTFS_DIR} ${OUT_ROOTFS_CPIO} 回复:imx_builder --- 无需 Yocto 即可独立构建 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> imx_builder_03122020.tgz,并构建 i.MX 8MM,Makefile 已为 rootfs.tar 定义目标,但是在 SETTINGS.MK 中缺少定义的${FS_TAR_SCRIPT} : FS_DIR=${PWD}/fs FS_TAR_DIR=${FS_DIR}/tar FS_TAR_SCRIPT=${FS_TAR_DIR}/rootfs.tar.gz.sh imx_builder 中可以提供所有子目录的完整 FS_DIR 和脚本吗? 丢失的: fs/tar fs/ubi fs/cpio 回复:imx_builder --- 无需 Yocto 即可独立构建 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Hi, 是否需要进行任何修改才能启用 imx8qxp 的安全启动?
記事全体を表示
新的 KSDK 1.2 现已推出! <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 今天刚刚发布了新的 KSDK 版本 1.2。和 KDS 3.0! 点击此处下载   欲了解更多详情,请访问我们的网站Kinetis MCU 软件开发套件|Freescale和Kinetis Design Studio 集成开发|Freescale   什么是新的   新增的芯片系列支持包括:   MK10D10 MK66F18 MKL34Z4 MK11DA5 MKL02Z4 MKL36Z4 MK20D10 MKL14Z4 MKL43Z4 MK21DA5 MKL15Z4 MKV40F15 MK21FA12 MKL16Z4 MKV43F15 MK26F18 MKL17Z4 MKV44F15 MK30D10 MKL17Z644 MKV45F15 MK40D10 MKL24Z4 MKV46F15 MK50D10 MKL25Z4 MKW01Z4 MK51D10 MKL26Z4 MKW21D5 MK52D10 MKL27Z4 MKW22D5 MK53D10 MKL27Z644 MKW24D5 MK65F18 MKL33Z4 MK24F12 MK63F12   新增的外设支持包括: AOI ENC FLEXBUS FLEXIO LMEM VREF XBAR PWM   文档   Kinetis SDK v.1.2.0 发行说明http://cache.freescale.com/files/soft_dev_tools/doc/support_info/KSDK120RN.pdf?fsrch=1 Kinetis SDK v.1.2API参考手册http://cache.freescale.com/files/soft_dev_tools/doc/support_info/KSDK12APIRM.pdf?fsrch=1 Kinetis SDK v.1.2演示应用用户指南http://cache.freescale.com/files/soft_dev_tools/doc/support_info/KSDK12DEMOUG.pdf?fsrch=1 Kinetis SDK (KSDK) v.1.2入门指南http://cache.freescale.com/files/soft_dev_tools/doc/support_info/KSDK12GSUG.pdf?fsrch=1 MQX ™ RTOS for Kinetis SDK 1.2.0 发行说明http://cache.freescale.com/files/soft_dev_tools/doc/support_info/MQXKSDK120RN.pdf?fsrch=1   将 MQX RTOS 应用程序移植到 Kinetis SDK 的 MQX RTOS http://www.freescale.com/files/soft_dev_tools/doc/support_info/MQXKSDKPUG.pdf   适用于 KDS 3.0。请不要忘记访问新推出的 Kinetis Design Studio V3.0.0   尽情享受! Iva 概述 回复:新的KSDK 1.2。可用! <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 你好, Wesley Hunter , 好文章-谢谢分享! 祝你今天过得愉快! Iva 回复:新的KSDK 1.2。可用! <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 这太棒了。我一直在等待这个,这样我就可以让 KSDK 在 Eclipse Luna 上运行。它终于来了,而且运行良好。如果有人感兴趣的话,我已经整理了一篇关于如何在 Eclipse Luna 上进行设置的博客:工具链:KSDK 1.2.0 搭配 Eclipse 4.4 (Luna) 和 GNU ARM 插件 | Centaurian
記事全体を表示
DRM 屏幕捕获工具 这是DRM(Direct Render Manager)下的屏幕捕获工具。 这也是之前“drmfbcap”(DRM 帧缓冲区捕获)的修订版本。 与基于 FB 的系统不同,在基于 FB 的系统下我们可以通过读取设备节点轻松捕获帧缓冲区,而 DRM 则更加复杂且具有安全保护。没有直接从用户空间读取帧缓冲区数据的方法。 在DRM情况下,我们需要打开DRM设备,查询资源,获取并映射FB对象,然后最终读取缓冲区。 使用此工具,我们可以从 DRM 设备捕获缓冲区内容并将其输出为原始 RGB/YUV 数据。 特征: 捕获所有平面或特定平面,包括隐藏/覆盖的平面或由应用程序直接管理的平面(覆盖)。 支持 RGB 和 YUV(自动检测)。 还支持 Tile 格式(VSI Super-Tile)。 重复模式可以连续捕获帧。 该工具是作为静态链接构建的,在这种情况下,它应该可以在 Linux 和 Android 中运行。 重要提示: Linux 4.x 和 5.x/6.x 之间的 DRM 子系统行为不同。 对于 Linux 4.x ,您可以毫无问题地捕获 RGB 缓冲区。但是,没有针对 YUV(多平面)缓冲区的 API。 要捕获 YUV,请使用“kernel_0001-drm-Add-getfb2-ioctl_L4.14.98.patch”修补内核。 对于 Linux 5.x ,由于安全原因,默认不允许映射/捕获内部缓冲区。为了解决此暂时问题(仅用于调试),请使用“0001-drm-enable-mapping-of-internal-object-for-debugging_L5.x.patch”修补内核。它包含一个小的改变来移除这个保护。 两个补丁均包含在附件中。 要获取有关如何使用此工具的更多详细信息,请尝试使用“-h”选项来打印使用信息。 尽情享受! Android 图形与显示 Linux 回复:DRM 屏幕捕获工具 Hi @jagsgediya , 源代码中包含一些来自第三方的代码,因此,在检查更多许可证之前,我无法发布源代码。 你好@ChayMah , 是 回复:DRM 屏幕捕获工具 大家好, 我可以在内核 6.1 中使用该应用程序吗? 回复:DRM 屏幕捕获工具 您打算开源drmcap 的源代码吗?如果可以的话请告诉我。
記事全体を表示
S32Gブートローダーカスタマイズ このドキュメントは、ブートローダーを変更してLinuxとMCALを起動し、ブートローダー、MCAL、Linux間の競合を解決する方法を説明しています 本文说明在S32G2 RDB2板上如何定制开发Bootloader,本文示例主要实现功能是: Bootloader启动一个M核,MCAL驱动测试程序,本文分别测试了MCU,DIO,UART的MCAL驱动示例代码。 Bootloader同时启动A53 Linux 目录 1    需要的软件,工具,文档与说明... 3 1.1  软件与工具... 3 1.2  参考文档... 3 1.3  开发说明... 3 2    测试软件安装编译说明... 4 2.1  安装RTD_MCAL驱动... 4 2.2  编译MCAL驱动测试程序(以MCU为例) 5 2.3  优化重排M7 demo镜像及与MPU设置的配合... 5 2.4  去掉CLOCK INIT. 7 2.5  去掉MCU相关INIT. 8 2.6  DIO MCAL程序去掉PORT INIT. 9 2.7  UART MCAL程序去掉PORT INIT. 10 2.8 UART MCALプログラムのCLOCK TREEの修正.. 10 2.9  解决中断冲突... 11 2.10 准备A53 Linux镜像... 12 3    Bootloader工程说明... 13 3.1  关掉XRDC支持... 13 3.2  关掉eMMC/SD支持(可选) 14 3.3 セキュアブートを無効にする(オプション)14 3.4  增加MCAL驱动所需要的PORT的初始化... 15 3.5  解决Bootloader,MCAL与Linux的clock冲突... 17 3.6  配置A53 Boot sources: 34 3.7  配置M7 Boot sources: 35 3.8  关闭调试软断点:... 36 3.9  编译Bootloader工程... 37 3.10 制造Bootloader的带IVT的镜像... 38 3.11 烧写镜像... 41 4    测试... 42 4.1  硬件连接... 42 4.2  MCU MCAL+Linux测试过程... 42 4.3  DIO MCAL+Linux测试过程... 43 4.4  UART MCAL+Linux测试过程... 43 5    Bootloader源代码说明... 43 6    Bootloader定制说明... 45 6.1  QSPI NOR驱动说明... 45 6.2  eMMC/SDcard启动支持... 46 6.3  DDR初始化... 46 6.4  Secure Boot支持... 46 7    调试说明... 46 7.1  Bootloader的调试... 46 7.2  MCAL驱动的调试... 46 G3で起動できるようにATFを変更する方法を説明する文書をもう1つ追加してください。 オートモーティブ Re: S32G Bootloader Customzition 最終的に、問題は uboot の board_common.c に見つかりました。カーネル実行時に、board_cleanup_before_linux が scmi_reset_agent を呼び出します。コメントが呼び出されるとどうなるでしょうか? Re: S32G Bootloader Customzition こんにちは。MCUのフラッシュメモリの読み書きをデバッグしています。現在、Aコアがubootステージに移行するとnorflashの読み書きは正常に動作するのですが、Linuxステージになるとnorflashの機能が異常になるという問題が発生しています。 ubootステージclkダンプビューqspi_flash2xは266666666です Linuxのダンプ/sys/kernel/debug/clk/clk_summaryでは、qspi_flash2xは266666666で、その後0に変わります。 dfs1レジスタをチェックすると、dfs1はリセットされている この問題を見つけるにはどうすればよいでしょうか? Re: S32G Bootloader Customzition MコアでCANメッセージを送信したのですが、Ubootのマルチコア起動プロセス中にCANメッセージの送信が停止しました。私のATF設定は@learnxさんと同じです。原因を解析していただけますか?ありがとうございます! @Johnli Re: S32G Bootloader Customzition ありがとう! Re: S32Gブートローダーカスタマイズ ドキュメントを確認してください:llceドライバkoをロードしていることを確認してください。 S32G_Bootloader_G3_LLCELOGGER ドキュメントおよびプロジェクトにおいて、ロガー・デモ実行用G3ブートローダーカスタマイズ(G2と同様)を説明しています https://community.nxp.com/t5/NXP-Designs-Knowledge-Base/S32G-Bootloader-G3-Customization/ta-p/1769528 Re: S32G Bootloader Customzition こんにちは。質問があります。BSP38イメージを使用しています。起動後、ubootでclk dumpを使ってllce_can_peのクロック値を照会したところ、0と表示されました。ATFでデバイスツリー構成を確認しましたが、問題は見つかりませんでした。 ATF デバイスツリー構成 mc_cgm0: mc_cgm0@40030000 { compatible = "nxp,s32cc-mc_cgm0"; reg = <0x0 0x40030000 0x0 0x3000>; assigned-clocks = < & plat_clks S32GEN1_CLK_MC_CGM0_MUX0 >, < & plat_clks S32GEN1_CLK_MC_CGM0_MUX1 >, < & plat_clks S32GEN1_CLK_MC_CGM0_MUX2 >, < & plat_clks S32GEN1_CLK_MC_CGM0_MUX3 >, < & plat_clks S32GEN1_CLK_MC_CGM0_MUX4 >, < & plat_clks S32GEN1_CLK_MC_CGM0_MUX5 >, < & plat_clks S32GEN1_CLK_MC_CGM0_MUX7 >, < & plat_clks S32GEN1_CLK_MC_CGM0_MUX8 >, < & plat_clks S32GEN1_CLK_MC_CGM0_MUX9 >, < & plat_clks S32GEN1_CLK_MC_CGM0_MUX10 >, < & plat_clks S32GEN1_CLK_MC_CGM0_MUX12 >, < & plat_clks S32GEN1_CLK_MC_CGM0_MUX14 >, < & plat_clks S32GEN1_CLK_MC_CGM0_MUX16 >, <&plat_clks S32GEN1_CLK_XBAR_2X>, <&plat_clks S32GEN1_CLK_PER>, < & plat_clks S32GEN1_CLK_FTM0_REF >, < & plat_clks S32GEN1_CLK_FTM1_REF >, < & plat_clks S32GEN1_CLK_CAN_PE >, < & plat_clks S32GEN1_CLK_LIN_BAUD >, < & plat_clks S32GEN1_CLK_GMAC0_TS >, <&plat_clks S32GEN1_CLK_SPI>, <&plat_clks S32GEN1_CLK_SDHC>, <&plat_clks S32GEN1_CLK_QSPI_2X>; assigned-clock-parents = < & plat_clks S32GEN1_CLK_ARM_PLL_DFS1 >, < & plat_clks S32GEN1_CLK_PERIPH_PLL_PHI0 >, <&plat_clks S32GEN1_CLK_FXOSC>, < & plat_clks S32GEN1_CLK_PERIPH_PLL_PHI1 >, < & plat_clks S32GEN1_CLK_PERIPH_PLL_PHI1 >, < & plat_clks S32GEN1_CLK_PERIPH_PLL_PHI1 >, < & plat_clks S32GEN1_CLK_PERIPH_PLL_PHI2 >, < & plat_clks S32GEN1_CLK_PERIPH_PLL_PHI3 >, < & plat_clks S32GEN1_CLK_PERIPH_PLL_PHI4 >, < & plat_clks S32GEN1_CLK_PERIPH_PLL_PHI5 >, < & plat_clks S32GEN1_CLK_PERIPH_PLL_DFS1 >, < & plat_clks S32GEN1_CLK_PERIPH_PLL_DFS3 >, < & plat_clks S32GEN1_CLK_PERIPH_PLL_PHI7 >; assigned-clock-rates = <0>, <0>, <0>, <0>, <0>, <0>, <0>, <0>, <0>, <0>, <0>, <0>, <0>, <0>, <80000000>, <40000000>, <40000000>, <40000000>, <125000000>, <200000000>, <100000000>, <400000000>, <S32GEN1_QSPI_2X_CLK_FREQ>; }; periphpll: periphpll@4003c000 { compatible = "nxp,s32cc-periphpll"; reg = <0x0 0x4003c000 0x0 0x3000>; assigned-clocks = < & plat_clks S32GEN1_CLK_PERIPH_PLL_MUX >, <&plat_clks S32GEN1_CLK_PERIPH_PLL_VCO>, < & plat_clks S32GEN1_CLK_PERIPH_PLL_PHI0 >, < & plat_clks S32GEN1_CLK_PERIPH_PLL_PHI1 >, < & plat_clks S32GEN1_CLK_PERIPH_PLL_PHI2 >, < & plat_clks S32GEN1_CLK_PERIPH_PLL_PHI3 >, < & plat_clks S32GEN1_CLK_PERIPH_PLL_PHI4 >, < & plat_clks S32GEN1_CLK_PERIPH_PLL_PHI5 >, < & plat_clks S32GEN1_CLK_PERIPH_PLL_PHI7 >; assigned-clock-parents = <&plat_clks S32GEN1_CLK_FXOSC>; assigned-clock-rates = <0>, <S32GEN1_PERIPH_PLL_VCO_FREQ>, <100000000>, <80000000>, <40000000>, <125000000>, <200000000>, <125000000>, <100000000>; }; accelpll: accelpll@40040000 { compatible = "nxp,s32cc-accelpll"; reg = <0x0 0x40040000 0x0 0x3000>; }; Re: S32G ブートローダーのカスタマイズ こんにちは@Johnli こんにちは! 下の図の赤い枠で示されているように、一部のクロックがATFで特定のクロック値で定義されていないのはなぜでしょうか?システムはどのようにしてこのようなクロックの最終的なクロック値を決定するのでしょうか?ARM_PLL_VCOの関連レジスタを調べたところ、クロックのサイズが許可されている最大値と同じであることがわかりました。 ありがとう! Re: S32G Bootloader Customzition これは、このプロジェクトのMCUモジュールがこのクロックを動作させないことを意味します。EBでは、構成項目のプロパティを表示できます。 Re: S32G ブートローダーのカスタマイズ Hi @Johnli      您好!非常感谢~ もう一つ質問があります。共有ドキュメントやEBで「Under MCU Control」という表示をよく見かけますが、これは何のためのものなのでしょうか?RMでは関連する説明が見つかりません。この質問への回答を教えていただけますか? ありがとう! Re: S32G Bootloader Customzition 1: クロック関連のドキュメントS32G_Supplemental_documentation_on_resolving_clock_conflicts_V1-2023.07.03.pdfをご覧ください。 2: Linux クロックの初期化と構成は ATF に転送する必要があるため、コードは ATF にあります。 Re: S32Gブートローダーカスタマイズ Hi John, S32G3ブートローダーのマニュアルはありますか? どうもありがとうございました! Re: S32Gブートローダーカスタマイズ Hi John, ちょっと気になったのですが、このドキュメントは英語版がありますか? よろしくお願いいたします。 Viktor
記事全体を表示
MCX W71ナレッジハブ MCX W71ワイヤレス・マイクロコントローラは、96 MHz Arm® Cortex®-M33コアに加え、Matter™、Thread®、Zigbee®、Bluetooth® Low Energyをサポートするマルチプロトコル無線サブシステムを備えています。この無線サブシステムは独立しており、コアやメモリも専用で、メインCPUの負荷を軽減するので、プライマリ・アプリケーションの分が保持され。また、ファームウェア・アップデートによる将来のワイヤレス標準のサポートも可能です。EdgeLock® Secure Enclave Core Profileを統合した高度なセキュリティのMCX W71xは、NXPのEdgeLock 2GOクラウド・サービスによるサポートで認証情報の共有にも対応します。 シングルチップ・ソリューションとしてもホステッドアーキテクチャのコプロセッサとしても機能するMCX W71xファミリなら、インダストリアルデバイスもIoTデバイスもサポートします。   MCX W71 Block DiagramMCX W71ブロック図 書類 MCX W71 リファレンスマニュアル MCX W71 データシート Errata Secure Referenceマニュアル** 認証 評価ボード FRDM-MCXW71 ページ FRDM-MCXW71 回路図 FRDM-MCXW71 デザインファイル FRDM-MCXW71ユーザーマニュアル FRDM-MCXW71入門 アプリケーションノート AN14398:RTCをFRDM-MCXW71で使用する方法 このアプリケーションノートでは、RTCペリフェラルを設定し使用するための方法をBLEデモで説明します。 AN14416:ウォッチドッグ・タイマ・モジュールをFRDM-MCXW71 Bluetooth Low Energy Connectivity Stackで有効にする このアプリケーションノートでは、WDOGタイマを実装するプロセスをConnectivity Stackのデモで説明します。 AN14396:MCX W71でOTAP Client ServiceをBluetooth LEペリフェラル・デバイスに統合する このアプリケーションノートでは、Over the Air Programming(OTAP)Client ServiceをBLEペリフェラル・デバイスに統合する手順とプロセスを説明します。 AN14391:MCX W71 Loadpull Report このアプリケーションノートでは、ロードプル特性の測定方法と関連する結果について説明します。 AN14394:MCX W71のファームウェア・アップデート・イメージをOTAPツールで作成する このアプリケーションノートでは、イメージをMCX W71ボードにOTAPで作成し更新する手順を説明します。 AN14389:MCXW71 Bluetooth LEの電力消費分析 このアプリケーションノートには、MCXW71ワイヤレスMCXの電力消費、ハードウェアの設計、低電力動作向けの最適化に関する情報を掲載します。 AN14387:MCXW71パワーマネージメント・ハードウェア このアプリケーションノートでは、MCXW71 MCUでパワーマネージメント専用の各種モジュールの使用方法を説明します。 AN14399:MCXW71による802.15.4アプリケーションのコネクティビティテスト このアプリケーションノートでは、コネクティビティテストツールを使用してMCXW71 802.15.4のRF性能を実行する方法を説明します。 AN14374:FRDM-MCXW71 RFシステムでのBluetooth LEおよびIEEE 802.15.4アプリケーションの評価レポート このアプリケーションノートでは、FRDM-MCXW71ボードの無線周波数(RF)評価テストの結果を、BLE(2FSK変調)アプリケーションの場合とIEEE 802.15.4(OQPSK変調)アプリケーションの場合について記載します。テストの実行時に使用可能なセットアップとツールについても説明します。 AN14427:MCXW71 In-System Programming(ISP)ユーティリティ このアプリケーションノートでは、MCXW71 MCUをISPモードで起動する手順と、多様なシリアル接続を確立してMCUと通信する手順を説明します。 AN14397:MCXW71 Flash for Application and Radioファームウェアを量産時にシリアル・ワイヤ・デバッグ(SWD)経由でプログラミングする このアプリケーションノートでは、量産時に必要となる設定をすべてSWD経由で書き込み、焼き込み、プログラミングする手順を説明します。  ZigBeeプロトコル Zigbee 3.0入門: このアプリケーションノートは、Zigbee 3.0デバイスファームウェアを独自に開発するための最適な出発点へのガイダンスです。 Zigbee 3.0 Base Device Template:このアプリケーションノートには、NXP DK006 Zigbee 3.0マイクロコントローラ採用Zigbee 3.0ネットワークでのBase Deviceの機能と動作のデモを行うためのアプリケーション例を提示します。 Zigbee 3.0デバイスの開発: このアプリケーションノートでは、Zigbee 3.0 On/Off Sensorの開発の出発点をBase Device Template End Deviceアプリケーションとするための方法を説明します。このアプリケーションノートで説明するOn/Off SensorのベースとなるZigbeeデバイスタイプは、Zigbee Lighting and Occupancy(ZLO)デバイス仕様です。 Zigbee 3.0 Light Bulbs:このアプリケーションノートには、NXP DK006ワイヤレス・マイクロコントローラ採用Zigbee 3.0ネットワークでの電球のアプリケーション例を提示します。 Zigbee 3.0 IoT Control Bridge:このガイドは、ユーザーがControl Bridgeにグラフィカルユーザーインターフェース(GUI)で接続する(ホストをシミュレートする)ことでZigbeeネットワークを操作するのを許可するための情報を提供するものです。Control Bridgeとのインターフェースに使用するシリアルプロトコルに加え、関連するコマンドとレスポンスのすべてのペイロードについても記載します。 Zigbee 3.0 Green Powerデバイス:このアプリケーションノートは、Zigbee 3.0デバイスファームウェアを独自に開発するための最適な出発点へのガイダンスです。 Zigbee 3.0 センサー:このアプリケーションノートには、NXP DK006 Zigbee 3.0ワイヤレス・マイクロコントローラ採用Zigbee 3.0ネットワークでのセンサーのアプリケーション例を提示します。 Zigbee 3.0 コントローラおよびスイッチ:このアプリケーションノートには、NXP DK006ワイヤレス・マイクロコントローラ採用Zigbee 3.0ネットワークでのコントローラとスイッチのアプリケーション例を提示します。このアプリケーションノートには、Zigbee 3.0ネットワークでのZigbee Green Power (GP) (GP)Energy Harvestingスイッチの代表例も掲載します。 Zigbee 3.0クラスターの開発:このアプリケーションノートでは、Zigbee 3.0 Window Coveringデバイスの開発の出発点をBase Device Template Router Deviceアプリケーションとするための方法を説明します。このアプリケーションノートには、次の2つの使い方があります。 最後に記載した手順で作成される機能サンプルを使用してWindow Coveringデバイスを作成するための出発点として。 NXP ZCLの実装に含まれないデバイスやクラスター(メーカー固有のデバイスやクラスターなど)を作成するためのガイドとして。 サポート MCX W71に関して不明な点がありましたら、Wireless MCUコミュニティまでご質問をお寄せください。こちらです。 便利なリンク KW45/KW47/MCXW71/MCXW72でのSignal Frequency Analyzer(SFA)モジュールを使用したクロック測定 - NXPコミュニティ:このコミュニティでは、Signal Frequency Analyzerの使用方法に関する手順を提示しています。 KW45(オートモーティブ)またはK32W1/MCXW71(IoT/インダストリアル)を使用してPCBを初めて正しく構築するための最適な方法 - NXPコミュニティ:このコミュニティには、KW45またはK32W148/MCXW7を使用してPCBを構築するための重要なリンクと、無線性能、低電力、無線認証(CE/FCC/ICC)に関するあらゆる情報があります。 HCI_bbをKinetisファミリ製品で使用してDTMモードにアクセスする方法:この記事は次の2つの部分に分かれています。 HCI_bbバイナリを Kinetis製品へフラッシュする方法。 R&S CMW270を使用してRF測定を行う BLE HCIアプリケーションによるトランスミッタ/レシーバテストコマンドの設定:この記事では、ユーザーはどのようにすればシリアルコマンドをデバイスに送信できるかを示す手順を説明します。 Bluetooth LE HCI Black Boxクイックスタートガイド:この記事では、ユーザーが無線をシリアルコマンドで制御できるようにするためのシンプルなプロセスを説明します。 トレーニング MCX W71トレーニング:Secure MCUs for Matter, Zigbee, BLE MCX W シリーズトレーニング - NXP コミュニティ 機器 ワイヤレス機器:この記事には、プロジェクト開発に役立つ機器へのリンクを提示します。 開発ツール NXP MCUXpresso:編集、コンパイル、デバッグの高度な機能を備えたMCUXpresso IDEに、MCU固有のデバッグ機能が追加されています。すべての汎用Arm Cortex-Mとの接続をサポートします。 VS Code:MCUXpresso for Visual Studio Code(VS Code)は、組み込み開発者のエクスペリエンスをコードの編集と開発に向けて最適化したものです。 Zephyr RTOs  NXPアプリケーション・コード・ハブ:アプリケーション・コード・ハブ(ACH)リポジトリで、当社の専門家が開発したマイクロコントローラ・ソフトウェアのサンプル、コードスニペット、アプリケーション・ソフトウェア・パック、デモが簡単に見つかります。このスペースには、エンジニアがマイクロコントローラ・アプリケーションを迅速かつ容易に一貫性をもって探し当てるための方法があります。 NXP SPSDK:信頼性が高く使いやすいPython SDK統合ライブラリです。NXP MCUポートフォリオ全体で動作するので、お客様のクイックプロトタイピングから本番環境デプロイまで対応する強力な基盤となります。 NXP SECツール:GUIベースのアプリケーションMCUXpresso Secure Provisioning Toolは、NCP MCUデバイスのブータブル実行ファイルの生成とプロビジョニングをシンプル化するものです。 NXP OTAP Tool:ユーザーがNXP開発ボードのOver-the Air)ファームウェア・アップデートを実行するのに役立つアプリケーションです。 **セキュアなファイルに、さらなるアクセス権を要求することは必須です。 FRDMトレーニング ハンズオン・トレーニング プロトコル:802.15.4 プロトコル:BLE→コネクティビティ プロトコル:Bluetooth プロトコル:Matter プロトコル:Thread プロトコル:Zigbee
記事全体を表示
S32 Design Studio for S32 Platform 3.3 的观察点 观察点是数据的断点,通常被称为数据断点。观察点可以监视全局变量、外设访问、堆栈深度等,为调试和工作提供强大的辅助。可设置的观察点数量因 MCU 系列和实现而异。 观察点通过观察点单元实现,这些单元是 MCU/CPU 调试架构中的数据比较器,位于处理器核心附近。配置完成后,它们将监控处理器的地址线和其他信号,以检测特定的感兴趣事件。该硬件能够监控 CPU 执行的数据访问,并在特定数据事件发生时强制其停止。 与其他一些调试功能相比,设置观察点的方法在 IDE 中更加隐蔽。设置观察点最简单的方法之一是使用 Outline View(大纲视图)。在此视图中,您可以找到全局和静态变量,然后只需选择 Toggle Watchpoints(切换观察点)即可。   设置后,它们将出现在 Breakpoints(断点)窗格中,与已设置的其他断点并列显示。    观察点可以配置为在 Read(或 Load)、Write(或 Store)或两者时停止 CPU。由于观察点“监视”对内存的访问,因此它们适合跟踪对全局或静态变量的访问,以及对内存的任何数据访问,包括对内存映射外设的访问。  注意:要在 Breakpoint 视图中轻松区分 Breakpoints 和 Watchpoints,您可以选择按 Breakpoint 类型对条目进行分组。在 Breakpoints 视图中,点击 Eclipse 向下箭头图标菜单,然后您可以选择按断点类型分组,如下所示:   从上图中可以看出,设置 Watchpoint(观察点)的选项也可以直接从 Breakpoint(断点)视图中设置。   在此处设置后,您将看到未填充的对话框——只需输入地址,即可创建观察点,用于监控对该位置的访问。   在 IDE 中设置观察点的另一个位置是 Memory(内存)视图中的上下文相关菜单。   不幸的是,S32 Design Studio for S32 Platform 3.3 中的条件观察点在某些情况下可能不起作用。 调试 | Flash 编程 Eclipse IDE 使用和设置
記事全体を表示
s32k3如何恢复闪存? Hi NXP, 我正在开发用于更新应用程序的启动应用程序。当引导程序 pflash 遇到某些错误并触发 swt 重置 mcu 时,检查 plash 是否部分无法访问。如下图所示, 1. 这是一个 flash ecc 错误案例吗? 2.在这种情况下,jlink无法对闪存进行编程,您能否给出一些如何将闪存恢复到正常状态的建议? 回复:s32k3 如何恢复闪存? Hi @victory, 必须先读取闪存。 我可能会关注为什么闪烁会卡住以及为什么 MCU 必须由 WDOG 重置。 正在编程的闪存块不得被总线上的任何主机访问。 这可能需要禁用中断或将闪存驱动程序放入 SRAM。 此致, Daniel 回复:s32k3 如何恢复闪存? 我正在使用s32k312 有没有什么方法可以在不读取目标闪存区域的情况下检测错误,以了解该区域是否存在 ecc 错误并且无法访问? 回复:s32k3 如何恢复闪存? Hi @victory, 您能指定S32K3xx零件编号吗? 如果在闪存操作正在进行时重置 MCU,则无法定义闪存的内容,并且会出现 ECC 错误。 如果在读取操作期间检测到无法纠正的 ECC 错误,则会设置 MCRS[ERR] 标志。 可以抑制检测: 此致, Daniel 回复: s32k3如何恢复flash? 附加: 是否可以禁用 flash ecc 功能?
記事全体を表示