Multi Source Translation Content

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Multi Source Translation Content

讨论

排序依据:
HSE 应用程序更新 - 如何在全内存模式下更新应用程序 我正在阅读 745220-S32K3 HSE 培训 - 2022 年 10 月(2.0)、有关全内存的 HSE FW 更新程序的章节。 我有点困惑,似乎这样做的目的是更新 HSE FW 本身,而不是更新应用程序代码。 我本以为 HSE FW 会在出厂时被固定,并用于验证应用程序下载的 OTA。 如何更新应用程序代码?能否对下载进行加密并使用 HSE 进行解密? S32K344-WB Re: HSE Application Update - How to update the application in Full Memory Mode RM758225-RM00286 HSE-B 固件参考手册——V2.5 (2.5) .pdf。是我需要的。谢谢。 Re: HSE Application Update - How to update the application in Full Memory Mode A1。 请阅读表 37。RM758225-RM00286 HSE-B 固件参考手册的主要目录——V2.5 (2.5) .pdf。 HSE 固件存储在安全的 HSE 内存区(HSE 代码闪存)中。 请阅读 RM758225-RM00286 HSE-B 固件参考手册 ——V 2.5 (2.5) .pdf 的固件安装期间的第 3.2.4 章闪存布局 (FULL_MEM) 以及 S32K344、S32K314 和 S32K324 设备的 3.5.5 闪存 布局。 A2.HSE 可在现场更新,但不能卸载。您无需在每次下载应用程序时更新 HSE FW。 请阅读 RM758225-RM00286 H SE-B 固件参考手册第 11 章 HSE 固件更新 ——V2.5 (2.5) .pdf。 很抱歉,我对此不太熟悉。与 HSE 相关的问题不适合在公众场合讨论。建议在 https://www.nxp.com/support/support:SUPPORTHOME?tid=sbmenu 上提交 支持票单 。我的同事会帮你的。 Re: HSE Application Update - How to update the application in Full Memory Mode 谢谢您的回复。这就解决了一个问题。 在我的项目中,我有一个引导加载器和一个应用程序。引导加载程序只加载一次,在现场永不更新。通常情况下,我会使用引导加载程序下载新的应用程序映像并写入闪存。 我通常使用 CRC 校验的基本方法来验证新图像。 在阅读有关 HSE 的信息后,我发现它似乎可以用来对应用程序进行更安全的更新。从您的电子邮件和文件中,我现在明白了必须首先加载 HSE FW。 这就是我对整个过程的理解,假设我使用的是全内存方法,而不是 A/B 交换。 我安装了 HSE FW,我想应该有相关的 HSE 硬件。HSE 是否有自己的受保护存储区,还是使用产品板的 NVM 来存储密钥。?HSE 固件存储在产品闪存中还是存储在安全的 HSE 存储区中? HSE 可在现场更新,但不能卸载。每次下载应用程序时都需要更新吗? 当我通过像 ARINC 429 这样的通信总线下载新应用程序时。HSE 固件对此进行了身份验证。据我所知发送方使用对称密钥创建 GMAC 代码,该代码与新的应用程序映像一起通过总线发送。HSE 通过自己的密钥副本重新创建 GMAC。然后将两者进行比较,以验证应用程序映像。 使用的钥匙可以更换吗?怎么做 总的来说,这似乎不太安全。我错过了什么?如果黑客得到了这个密钥,他们就可以下载他们想要的软件。 此外,是否有可能在下载前对图像进行加密,然后让 HSE 使用不同的非对称密钥进行解密?怎么做? 因为我将使用全内存模式,所以我想我不需要创建 NVM 密钥目录。是这样吗?BSB 使用 ADKP 一次性生成密钥。存放在哪里? HSE 是否会自动验证下载,还是需要我提出申请?如果现在由 HSE 来完成这项任务,那么我的引导加载程序在验证过程中扮演什么角色?引导加载程序仍需要为下载新映像提供便利。 谢谢您的帮助。请纠正我说的任何不正确的地方。如果您能更好地解释这个过程,那就再好不过了。 Re: HSE Application Update - How to update the application in Full Memory Mode HI 是的。 这是为了更新 HSE FW 本身,而不是更新应用程序代码。 关于 OTA,建议参考之前的讨论:带 A/B 交换 OTA 更新的双应用程序引导加载器 - S32K3XX 祝好, Robin ------------------------------------------------------------------------------- 注: - 如果本帖回答了您的问题,请点击"ACCEPT AS SOLUTION" 按钮。谢谢! - 我们会在最后一次发帖后的 7 周内跟踪主题,之后的回复将被忽略 如果您以后有相关问题,请另开新主题并参考已关闭的主题。 -------------------------------------------------------------------------------
查看全文
PCF2131TFY バッテリー消費量 PCF2131TFY を使用している製品では、一部のボードで数日のうちにバッテリーが消耗するという断続的な問題が発生しています。装着されている電池はCR2032です。この問題を診断するために考慮すべき事項や検討すべき点はありますか?それとも、この部分に既知の問題があるのでしょうか? Re: PCF2131TFY Battery Draw 結局、問題はすべての PCB 上に過剰かつ洗浄されていないはんだフラックスがあり、それが過剰な電流の引き込みとバッテリーの消耗を引き起こしていたことが判明しました。 Re: PCF2131TFY Battery Draw 未使用のピンについては、以下の提案設定に従ってください。 お客様は、アプリケーションで使用していない場合は、CLKOUT ピンと TS1-4 ピンをオープンのままにしておくことができます。 CLKOUT_ctlレジスタ(13h)ビット[2:0] = 111bを設定することにより、CLKOUTピンをハイインピーダンスモードに設定できます。また、Control_4レジスタ(03h)のビット[7:4] = 0000b、Control_5レジスタ(04h)のビット[7:4] = 0000bに設定して、TS1-4ピンを非アクティブピンに設定します。   Re: PCF2131TFY Battery Draw プライベートメッセージを送信しました。 Re: PCF2131TFY Battery Draw ハイ ここで回路図を共有してもらえますか?
查看全文
マターのサンプルアプリからシリアル出力がない こんにちは。FRDM -MCXW71ボードを使って、NXPのGitHubリポジトリにあるマターサンプル(light-switch-combo-app、Lock-app、contact-sensor-appなど)を実行しようとしています。READ.mdに記載されているセットアップ手順はすべて慎重に実行しました。blhostを使用して最新のNBU .sb3イメージをCM3コアに書き込み、 J-Linkを使用して.srecファイルをCM33コアに書き込みました。電源、USB接続、シリアル設定など、すべて確認済みで、問題はありません。 それにもかかわらず、シリアルモニターにはまったく出力が表示されません。スイッチを一度押しても、ただ静かにそこに留まります。また、LED 2も点滅していません。 ハードウェアの問題を排除するために、簡単な Hello World デモと LED 点滅デモもフラッシュしてみましたが、シリアルに正しく出力されるSO、UART は間違いなく動作しており、LED もすべて正常です。 同じ問題に遭遇した人はいますか?ご提案があればぜひお願いします! よろしくお願いします! FRDMトレーニング プロトコル:Matter Re: No Serial Output from Example Apps in Matter サポートしていただき本当にありがとうございます!最新バージョンを試したところ、MCXW71 ボード上でプログラムを正常に実行でき、すべてが期待どおりに動作しているようです。 さらに、私はもともと次のリンクの例に従っていました: https://github.com/nxp-appcodehub/ap-frdm-mcxw71-light-switch-combo-app/tree/main/examples/light-switch-combo-app/nxp/mcxw71およびhttps://github.com/NXP/matter/tree/release/v1.4.0/examples/light-switch-combo-app/nxp/mcxw71 Re: No Serial Output from Example Apps in Matter こんにちは、 使用している NXP マター Github リリースへのリンクを正確に教えていただけますか?デフォルトのブランチは release/v1.4.0 です。最新リリースの 1 つは v1.4.0.2 です: https://github.com/NXP/matter/tree/v1.4.0.2/examples/contact-sensor-app/nxp これを試してみてはいかがでしょうか? 当社側で問題を再現できるようになるまで、VS Code を使用して問題のデバッグを試してみることができます。環境の設定方法の詳細については、開発ツールセクションのリリースノートをCANください: https://github.com/NXP/matter/releases/tag/v1.4.0.2 BR、 ミハイ
查看全文
BUG 报告:JN5189DK6 ZCL OTA 代码中使用端点索引代替端点 ID ZCL 代码在内部使用端点索引( psZCL_Common->psZCL_EndPointRecord的索引)并通过eZCL_SearchForEPIndex和u8ZCL_GetEPIdFromIndex在注册时提供的 ID 之间进行映射。 当前的 ZCL OTA 代码错误地使用了在两个位置需要 ID 的索引。当端点 ID 连续且从 1 开始时,由此引起的问题就会被隐藏。 细节: SDK版本:2.6.15 - JN5189DK6/中间件/无线/zigbee/ZCL/Clusters/OTA/Source/OTA.c // // The u8SourceEndPointId > u8ZCL_GetNumberOfEndpointsRegistered // range check is incorrect and needs to be removed // PUBLIC teZCL_Status eOtaFindCluster( uint8 u8SourceEndPointId, tsZCL_EndPointDefinition **ppsEndPointDefinition, tsZCL_ClusterInstance **ppsClusterInstance, tsOTA_Common **ppsOTACustomDataStructure, bool_t bIsServer) { if(u8SourceEndPointId > u8ZCL_GetNumberOfEndpointsRegistered()) { return(E_ZCL_ERR_EP_RANGE); } // check EP is registered and cluster is present in the send device if(eZCL_SearchForEPentry(u8SourceEndPointId, ppsEndPointDefinition) != E_ZCL_SUCCESS) { return(E_ZCL_ERR_EP_RANGE); } if(eZCL_SearchForClusterEntry(u8SourceEndPointId, OTA_CLUSTER_ID, bIsServer, ppsClusterInstance) != E_ZCL_SUCCESS) { return(E_ZCL_ERR_CLUSTER_NOT_FOUND); } // initialise custom data pointer *ppsOTACustomDataStructure = (tsOTA_Common *)(*ppsClusterInstance)->pvEndPointCustomStructPtr; if(*ppsOTACustomDataStructure==NULL) { return(E_ZCL_ERR_PARAMETER_NULL); } return(E_ZCL_SUCCESS); } // // FIXED // PUBLIC teZCL_Status eOtaFindCluster( uint8 u8SourceEndPointId, tsZCL_EndPointDefinition **ppsEndPointDefinition, tsZCL_ClusterInstance **ppsClusterInstance, tsOTA_Common **ppsOTACustomDataStructure, bool_t bIsServer) { // check EP is registered and cluster is present in the send device if(eZCL_SearchForEPentry(u8SourceEndPointId, ppsEndPointDefinition) != E_ZCL_SUCCESS) { return(E_ZCL_ERR_EP_RANGE); } if(eZCL_SearchForClusterEntry(u8SourceEndPointId, OTA_CLUSTER_ID, bIsServer, ppsClusterInstance) != E_ZCL_SUCCESS) { return(E_ZCL_ERR_CLUSTER_NOT_FOUND); } // initialise custom data pointer *ppsOTACustomDataStructure = (tsOTA_Common *)(*ppsClusterInstance)->pvEndPointCustomStructPtr; if(*ppsOTACustomDataStructure==NULL) { return(E_ZCL_ERR_PARAMETER_NULL); } return(E_ZCL_SUCCESS); } 和 回复:BUG 报告:JN5189DK6 ZCL OTA 代码中使用了端点索引而不是端点 ID 这是第二项。系统说我已经没有时间编辑该消息了,尽管时间大约为 30 秒: // // The *eOtaTimeUpdate* function expects an endpoint ID, not an index // PUBLIC void vOtaTimerClickCallback(tsZCL_CallBackEvent *psCallBackEvent) { #if (defined(OTA_SERVER) && defined(OTA_PAGE_REQUEST_SUPPORT)) || defined(OTA_CLIENT) int i; uint8 u8NumberOfendpoints; u8NumberOfendpoints = u8ZCL_GetNumberOfEndpointsRegistered(); // find price clusters on each EP - if any for(i=1; i<(u8NumberOfendpoints+1); i++) { // deliver time to any EP-server/client eOtaTimeUpdate(i, TRUE, psCallBackEvent); eOtaTimeUpdate(i, FALSE, psCallBackEvent); } #endif } // // FIXED // PUBLIC void vOtaTimerClickCallback(tsZCL_CallBackEvent *psCallBackEvent) { #if (defined(OTA_SERVER) && defined(OTA_PAGE_REQUEST_SUPPORT)) || defined(OTA_CLIENT) int i; uint8 u8NumberOfendpoints; u8NumberOfendpoints = u8ZCL_GetNumberOfEndpointsRegistered(); // find price clusters on each EP - if any for(i = 0; i < u8NumberOfendpoints; i++) { uint8_t u8EndpointId = u8ZCL_GetEPIdFromIndex(i); // deliver time to any EP-server/client eOtaTimeUpdate(u8EndpointId, TRUE, psCallBackEvent); eOtaTimeUpdate(u8EndpointId, FALSE, psCallBackEvent); } #endif }
查看全文
MPC5746C 的寄存器保护 这些是我为 MPC5746C 实现寄存器保护下锁定机制的模块。 0xFFFB0140, /* CMU------------*/ 0xFFFB0040, /* FXOSC----------*/ 0xFFFB0180, /* MC_CGM --------*/ 0xFFFB8000, /* MC_ME ---------*/ 0xFFFA8000, /* MC_RGM --------*/ 0xFFF50000, /* MEMU_0 -------*/ 0xFFFB0080, /* PLLDIG --------*/ 0xFFFA0400, /* PMCDIG --------*/ 0xFFFC0000, /* SIUL2 ---------*/ 0xFFFB0100, /* SXOSC ---------*/ 0xFFF9C000 /* LPU_CTL -------*/ 样本 1:(0xFFFB0000,偏移 - 0x4,32 位保护) 寄存器:与 ME_MCTL(模式控制寄存器,32 位保护,偏移 0x4,见表 77-5)匹配。 基地址:0xFFFB0000。 保护大小:32 位(所有四个字节均受保护)。 计算 正常地址:基数 + 偏移量 = 0xFFFB0000 + 0x4 = 0xFFFB0004 镜像地址(区域 3):基数 + 0x2000 + 偏移 = 0xFFFB0000 + 0x2000 + 0x4 = 0xFFFB2004 软锁定位地址(区域 4): 区域 4 中的偏移量:offset/4 = 0x4 / 4 = 0x1。 地址: base + 0x3800 + offset/4 = 0xFFFB0000 + 0x3800 + 0x1 = 0xFFFB3801。 对于 32 位寄存器,所有四个 SLB(SLB0—SLB3)控制四个字节(例如,0x4 到 0x7)。 软锁定 选项 1:写入镜像地址: 向 0xFFFB2004 写入 32 位值(例如,0x80000000 可启动模式转换;有关有效值,请参阅 MC_ME 章节)。 这将更新 0xFFFB0004 的 ME_MCTL,并在 0xFFFB3801 的 SLBRn 寄存器中设置 SLB0-SLB3。 示例*(volatile uint32_t *)0xFFFB2004 = 0x80000000; 选项 2:直接写入 SLB: 写入 0xFFFB3801,设置 SLB0-SLB3。 写入 0xFF(WE0—WE3=1,SLB0—SLB3=1)以锁定所有四个字节。 示例*(volatile uint8_t *)0xFFFB3801 = 0xFF; 解锁 写入 0xF0 至 0xFFFB3801(WE0-WE3=1,SLB0-SLB3=0)以清除 SLB0-SLB3,解锁寄存器。 示例*(volatile uint8_t *)0xFFFB3801 = 0xF0; 硬锁定 将 0x00000001 写入 0xFFB3FFC 以设置 GCR.HLB,锁定 SLB 直到 RESET。 示例*(volatile uint32_t *)0xFFFB3FFC = 0x00000001; 下面是一个寄存器设置示例,它的所有 4 个地址设置都是启用的,可以是 R/W。 下面是一个寄存器设置示例,其中基址 + 偏移& 镜像地址已启用,可以设置为 R/W,其他地址不能设置。 这带来了一个严重的问题,因为 SLB 位确认了软锁定,而 GCR 位的设置则是为了实现硬锁定。 对于所有 MC_CGM 带帽寄存器,我都发现了同样的问题。 这些不同行为的原因是什么?有些地址可以修改和变更,有些则被保留。 Re: Register Protection for MPC5746C 你好 如果我硬锁任何一个模块,所有其他模块都会自动被硬锁定,这在电源模式下会出现问题。因为我不希望 FXOSC/SXOSC 和 CMU 在这里被硬锁定。 寄存器保护采用 P 桥。 petervlna_0-1754636157965.png PBRIDGE 上有 MC_CGM 模块: petervlna_1-1754636218800.png 然后将外设映射到 MC_CGM 下。看来您需要使用 SLB 而不是 HLB 来解决这个问题。 因为 HLB 会锁定整个 MC_CGM。 顺祝商祺! Peter Re: Register Protection for MPC5746C 嗨,彼得 、 感谢您的帮助。我现在可以为所有模块配置软锁和监测 SLB 了。 我还有一个关于硬锁 GCR 位的问题。根据您的解释,所有 MCCGM 上限模块(即 CMU、FXOSC、SXOSC、PLDIG 和 MCCGM)应具有一个共同的基地址,即 0xFFFB0000。 现在根据第 77.1.1 节寄存器保护配置,N OTE讨论了电源模式下的操作。 mayank22_0-1754552830865.png 正如我所说,在相同的基本地址下,如果我硬锁任何一个模块,所有其他模块都会自动被硬锁定,这在低电源模式下会出现问题。因为我不希望 FXOSC/SXOSC 和 CMU 在这里被硬锁定。 有没有办法解决这个问题? 感谢并致意 Re: Register Protection for MPC5746C 你好 以下是 SLB 的结果 CMU_LFREFR 32 - 地址基数和偏移量 CGM 模块的基数为 0xFFFB_0000 CMU 偏移为 0x140 petervlna_0-1753947014813.png CGM LFREFR 从模块基数偏移 0x14C petervlna_1-1753947034996.png petervlna_4-1753947541951.png 我通过写入镜像为 CMU_LFREFR 设置了 SLB petervlna_3-1753947365013.png 顺祝商祺! Peter Re: Register Protection for MPC5746C 嗨,这也不起作用。 CMU_LFREFR 32 偏移 0xCh 受保护的大小-16(字节 2 和 3) 0xFFFB0000,/* CMU----------*/ 基地址 -0xFFFB000C 镜像地址 -0xFFFB200C SLB - 0xFFFB3803 GCR - 0xFFFB3FFC mayank22_0-1753789974341.png Re: Register Protection for MPC5746C 你好 查看简单测试:MC_CMU - CSR petervlna_0-1753772600568.png 基地址 - 0xFFFB014C - 这是偏移地址。不是基地。 MC_CMU 模块的基数为 0xFFFB 0140。 镜像地址 -0xFFFB214C 即基座 + 偏移 + 镜像 SLB -0xFFFB3943 以参考手册中的整个 CGM 的地址为基准: petervlna_1-1753772881109.png 所以计算结果是 0xFFFB0000 + 3800 + SLB 的位置 GCR - 0xFFFB413C 同上 0xFFFB0000+3FF0 顺祝商祺! Peter Re: Register Protection for MPC5746C 嗨,彼得,这里有一些 SLB 和 GCR 失效的示例。 请检查这些地址并确认它们是否显示不同的行为。如果不是,那么这些模块会有什么问题? 1.MC_CMU - 0xFFFB0140 - { MODULE_CMU, 0xC,REG_SIZE_16}, CMU_LFREFR 基地址 - 0xFFFB014C 镜像地址 -0xFFFB214C SLB -0xFFFB3943 GCR - 0xFFFB413C mayank22_0-1753700010986.png 2.MC_CMU - 0xFFFB0140 { MODULE_CMU, 0x18,REG_SIZE_32}, CMU_MDR 基本地址 - 0xFFFB0158 镜像地址 - 0xFFFB2158 SLB - 0xFFFB3946 GCR - 0xFFFB413C mayank22_1-1753700066515.png 3.PLLDIG 0xFFFB0080 - PLLDIG_PLLCR { MODULE_PLLDIG, 0x20, REG_SIZE_16}, PLLDIG_PLLCR 基本地址 - 0xFFFB00A0 镜像地址 - 0xFFFB20A0 SLB - 0xFFFB0F5D GCR - 0xFFFB407C mayank22_4-1753700213295.png 4.PLLDIG 0xFFFB0080 - { MODULE_PLLDIG, 0x28,REG_SIZE_32}. { MODULE_PLLDIG, 0x28,REG_SIZE_32}, PLLDIG_PLLDV 基本地址 - 0xFFFB00A8 镜像地址 - 0xFFFB20A8 SLB - 0xFFFB388A GCR - 0xFFFB407C mayank22_5-1753700236791.png 5.PMCDIG 0xFFFA0400 - { MODULE_PMCDIG, 0x0,REG_SIZE_32}. { MODULE_PMCDIG, 0x0,REG_SIZE_32}、 基本地址 - 0xFFFA0400 镜像地址 - 0xFFFA2400 SLB - 0xFFFA3C00 GCR - 0xFFFA43FC mayank22_6-1753700259740.png 6.PMCDIG 0xFFFA0400 - { MODULE_PMCDIG, 0x10,REG_SIZE_32}.{ MODULE_PMCDIG, 0x10,REG_SIZE_32}、 基本地址 - 0xFFFA0410 镜像地址 - 0xFFFA2410 SLB - 0xFFFA3C04 GCR - 0xFFFA43FC mayank22_7-1753700335502.png Re: Register Protection for MPC5746C 你好 我已经检查了 PREG_PROT,它的行为就像参考手册中描述的那样: 在 ME_CGM 寄存器 SC_DC0 上: 基数:0xFFFB0000 + 偏移 7E8 镜像0xFFFB07E8 = 基数 (0xFFFB0000) + 偏移 (7E8) + 镜像 (0x2000) 在示例中,我通过软锁锁定了 SC_DC0 形式的 ME_CGM 模块。 petervlna_0-1753172674705.png 具体情况如下: petervlna_1-1753172729779.png 区域 4:为 1.5 KB,包含软锁位,区域 1 中每字节一位。与一个模块寄存器字相关的四个软锁位排列在存储器映射中的字节边界处。软锁定位寄存器可使用位掩码直接写入。 因此,必须将软锁定位的面积除以 8,才能看到相应的 SLB 设置。 基础(模块的)+ 3800 +(区域 1 的每字节一位) petervlna_2-1753172994361.png petervlna_3-1753173019294.png 对于硬锁位,整个模块只有一个。 区域 5 的大小为 512 字节,用于保存保护模式的配置位。每个模块都有一个配置硬锁位,可以防止对软锁位进行任何进一步的修改,并且只能在设置后通过系统 RESET 来清除。其他位如果被设置,将允许用户访问受保护的模块。 基数(模块) 0xFFFB0000 + 偏移 3FFC 因为 GCR 位于 5 号区域的末端。 petervlna_5-1753173243793.png petervlna_4-1753173057363.png 顺祝商祺! Peter Re: Register Protection for MPC5746C 你好 我会进行测试,并尽快给您答复。 顺祝商祺! Peter
查看全文
RW612 和开放线程函数 txpower 使用搭载 McuXpresso/Zephyr 4.2.0 的 u-blox IRIS-W106-10B (RW612)。大多数功能在 openthread 中都能正常运行。设备可以进入网状网络和 ping 等。但是软件中缺少一些功能。例如,使用 OTplatradiosetTransmippower () 会导致 RESET。 旁注:API 应支持带符号的整数,因为例如,-1 dBm 是有效的设置。 我注意到有一个例子是供应商设置的发射功率,在我将其插入后它不起作用。我认为它应该连接到 OTPlatradiosetTransmitpower () 函数中。 #define spinel_prop_vendor_nxp_get_set_txpowerlimit_cmd(spinel_prop_vendor__begin+ 0x10B) 另外,也许相关的是,获取 eui64 不起作用。我重新设计了该函数以返回 hwinfo 地址的低 8 字节:hwinfo_get_device_id。我怀疑这可能不正确。 从 C 应用程序设置 Tx 功率对我们的应用程序至关重要。 谢谢 Re: RW612 and Openthread function txpower 你好@joanou. 我可以推断你正在将 OpenThead 示例移植到 Zephyr,如果我说错了,请指正。正如我之前提到的,我建议你将Zephyr存储库中的OpenThread Shell示例作为参考和/或测试,以检查与传输功率控制相关的其他移植细节,本示例中包含了该示例。 如果该示例对您有用,请告诉我。 Re: RW612 and Openthread function txpower 您好, 我在使用 nxp_ot_cli 样本时进行了一些定制。下面是 main()。 我还为spinel 的 SPINEL_PROP_VENDOR_NXP_GET_SET_TXPOWERLIMIT_CMD 回调 添加了供应商钩子。 我为 modules/openthread/platform/radio_spinel.cpp 添加了以下内容 +otError otPlatRadioGetVendorMaxTransmitPower(otInstance *aInstance, uint8_t *aPower) +{ + otError error; + + OT_UNUSED_VARIABLE(aInstance); + + if (psRadioSpinel == NULL) + { + otLogWarnPlat("psRadioSpinel for max tx get is null"); + return OT_ERROR_GENERIC; + } + + VerifyOrExit(aPower != NULL, error = OT_ERROR_INVALID_ARGS); + error = psRadioSpinel->GetVendorMaxTransmitPower(*aPower); + +exit: + return error; +} + +otError otPlatRadioSetVendorMaxTransmitPower(otInstance *aInstance, uint8_t aPower) +{ + if (psRadioSpinel == NULL) + { + otLogWarnPlat("psRadioSpinel for set max Tx power is null"); + return OT_ERROR_GENERIC; + } + + OT_UNUSED_VARIABLE(aInstance); + return psRadioSpinel->SetVendorMaxTransmitPower(aPower); +} + 修改了 openthread 模块,以支持供应商钩子。 修改:include/openthread/platform/radio.h 修改: src/lib/spinel/CMakeLists.txt 修改: src/lib/spinel/radio_spinel.cpp 修改: src/lib/spinel/radio_spinel.hpp 修改: src/lib/spinel/spinel.h 修改: src/lib/spinel/spinel_driver.cpp SPINEL_PROP_VENDOR_NXP_GET_SET_TXPOWERLIMIT_CMD = (SPINEL_PROP_VENDOR__BEGIN + 0x10B)、   int main(void) { 日志文件("nxp_ot_cli entry"); k_sleep(K_MSEC(500)); ot_context = openthread_get_default_context(); __确定(ot_context != NULL, "Fatal: OpenThread context not available!"); ot_instance = openthread_get_default_instance(); __确定(ot_instance != NULL, "Fatal: OpenThread instance not available!"); 日志文件("设置开放线程领导权重"); otThreadSetLocalLeaderWeight(ot_实例, 2); 日志文件("完成设置领导权重"); k_sleep(K_MSEC(500)); 日志文件("设置 openthread 无线电最大发射功率为 12/2 dBm ..."); 错误 err1 = otPlatRadioSetVendorMaxTransmitPower(ot_instance, 12); 日志文件("设置开放线程无线电最大发射功率: %s(错误=%d)", otThreadErrorToString(otThreadErrorToString(err1), err1); k_sleep(K_MSEC(500)); uint8_t aPower = 0; 日志文件("获取开放线程无线电发射功率 ..."); 错误 err2 = otPlatRadioGetVendorMaxTransmitPower(ot_instance, &aPower); 如果((aPower % 2 == 0))     { 日志文件("获取开放线程无线电发射功率为 %u或 %u.0 dBm、 %s(err=%d)", aPower, aPower/2, otThreadErrorToString(err2), err2);    } 不然     { 日志文件("获取开放线程无线电发射功率为 %u或 %u.5 dBm、 %s(err=%d)", aPower, aPower/2, otThreadErrorToString(err2), err2);    } //LOG_INF("Loop now"); 虽然(1)     { 日志文件("现在循环"); k_sleep(K_MSEC(1000));    } 返回 0; } Re: RW612 and Openthread function txpower 你好,@joanou,希望你一切都好。 您是在自定义应用程序中进行测试,还是在任何现有示例中进行测试?如果是现有范例,您做了哪些修改? 此外,能否请您测试一下 openthread"shell" 示例?该示例提供了一条更改传输功率的输入命令。 请告诉我这是否对您有效,或者您是否看到了不同的行为。
查看全文
MIMXRT1160 独特 ID 电子保险丝 MIMXRT1160 在 0x900-0x910 处有一个 64 位的唯一 ID 熔丝。该值可以用作设备唯一 ID,还是跨处理器/批次的 " 唯一 "?如果是这样,还有其他预编程的寄存器或熔丝可用作设备唯一ID吗? 谢谢! Re: MIMXRT1160 Unique ID eFuse 你好@tbonkers、 感谢您提供的最新信息。 关于 " 我的要求是为每台设备都有一个唯一的 ID,我想如果我能使用熔丝 0x900 的值那就太好了。" 你是说你使用了熔丝 0x900 的值,一个 32 位数据?如果是这样,我认为这不是一个好的选择,因为 32 位数据并不是唯一的。 但是,如果你使用熔丝值 0x900 和 0x910,那么 64 位数据是唯一的(唯一 ID),那就没问题了。 希望它能帮到你。 敬上 MayLiu Re: MIMXRT1160 Unique ID eFuse 你好, 我的要求是为每台设备都有一个唯一的 ID,我想如果我能使用熔丝 0x900 的值那就太好了。 从你的回复中,我了解到每个单位的熔丝值确实是唯一的-如果我错了,请纠正我。 谢谢 Re: MIMXRT1160 Unique ID eFuse 你好@tbonkers、 非常感谢您关注我们的产品并使用我们的社区。 是的,IMXRT1160 具有恩智浦配置的 64 位唯一 ID。 mayliu1_0-1754970106981.png 关于 "如果是这样的话,还有其他预编程的寄存器或熔丝可用作设备唯一 ID 吗?" 能否告诉我您的要求的更多细节? 在 IMXRT1160 中,已经在 0x900-0x910 处提供了一个 64 位设备唯一 ID 熔丝。 mayliu1_1-1754970965556.png 顺祝商祺! MayLiu
查看全文
MemAccおよびFeeモジュールの追加に失敗しました こんにちは、 使用したバージョン: TresOs バージョン 29 RTD - SW32K3_RTD_R21-11_3.0.0_P07 説明: サードパーティの Mcal 統合ヘルパーを使用して RTD をベクター スタックに統合しましたが、Davinici コンフィギュレータから構成する fee および MemAcc モジュールを確認できませんでした。tresos インストール フォルダの下には、これらのモジュールのプラグインも利用できないようです。以下のスクリーンショットと似ていますが、プラグインが利用可能かどうかをどのように確認すればよいのでしょうか。 Fee および MemAcc モジュールのプラグインを RTD から tresos フォルダーにコピーしようとしましたが、残りの他のモジュールが削除されました。この問題を解決するためにご協力いただけませんか。 vasavi_0-1755167663340.png ありがとう、 ヴァサヴィ Re: MemAcc and Fee modules are fails to add こんにちは@vasavi Davinici コンフィギュレータは当社の製品ではなく、当社がそれについてほとんど知らないため、テクニカル サポートを提供することはできません。 Vector のテクニカル サポートを参照することをお勧めします。 Re: MemAcc and Fee modules are fails to add こんにちは ベクタースタックの FEE モジュールと RTD パッケージの Mem_43_INFLS を使用できますか? ありがとう、 ヴァサヴィ Re: MemAcc and Fee modules are fails to add こんにちは@vasavi おそらくインストールエラーです。 以下はRTD 3.0.0をインストールしているスクリーンショットです。EB Tresos の P07。 あなたが説明した問題は発生しませんでした。 Senlent_0-1755227011318.png 当社は Davinici に対する技術サポートを提供していません。
查看全文
有没有软件可以通过 UART 将程序下载到 S32K144? 之前,我没有使用 Rappid。我不确定这个软件是否还能使用。因此,我想问问是否有其他软件可用?不少 Re: Is there any software that can download programs to the S32K144 via UART? 你好@jfm2 Rappid 引导加载器是过时的软件,已不再维护,最后一个版本已有 10 年历史。 我们为 S32K1 设备的引导加载程序提供以下资源:   使用 UART 的 “S32K1xx 引导加载程序” 应用笔记: https://www.nxp.com/docs/en/application-note/AN12218.pdf https://www.nxp.com/docs/en/application-note-software/AN12218SW.zip   应用笔记 “S32K1xx 固件更新” 讨论 A/B 交换和使用 CAN: https://www.nxp.com/docs/en/application-note/AN12323.pdf https://www.nxp.com/docs/en/application-note-software/AN12323SW.zip 我们为 S12Z、S32K1xx 和 S32K344 提供了 UDS 引导加载程序演示: https://community.nxp.com/t5/S32K-Knowledge-Base/Unified-bootloader-Demo/ta-p/1423099 请注意,这是非官方演示版,仅按原样提供,不提供任何保证和支持,不是生产代码。它使用 CAN 和 LIN。 如果您正在寻找生产代码,有一些第三方提供闪存引导加载程序,例如 https://www.vector.com/int/en/products/products-a-z/embedded-components/flash-bootloader/ 此致, Lukas
查看全文
我有一个关于使用 MM9Z1I638 打开安全模式的问题 我对使用MM9Z1I638打开安全模式有疑问。看了手册,知道了FSEC寄存器是用来打开安全模式的,但是这个寄存器好像不支持直接写,需要通过FLASH编程来写入。写入的地址段为P_FLASH块的0xFF_FE0F字节,支持的最小扇区大小 P_FLASH为512字节。我按照擦除扇区、校验扇区、写入扇区的流程写入字节,但是发现每次擦除扇区之后软件都会运行到非法的地方。检查后发现,这个扇区存储的所有信息都是地址 回复:我有一个关于使用 MM9Z1I638 打开安全模式的问题 你好,喇嘛,谢谢你的例子
查看全文
S12ZVLA128 的统一引导加载程序 大家好,恩智浦社区, 我目前正在从事一个涉及 S12ZVLA128 微控制器的项目,我正在寻找有关统一引导加载程序的更多详细信息,特别是有关闪存加载程序部分。 据我了解,引导加载程序通过 UDS(统一诊断服务)接收闪存加载程序。但是,我想知道是否有任何配置或选项允许我使用直接加载到闪存中的闪存加载程序,而不是通过 UDS 接收它。 您能否提供一些有关如何针对此场景配置引导加载程序的指导或文档?任何示例配置或参考都将不胜感激。 谢谢您的帮助!
查看全文
对 i.MX8MP 中的 GPT 的疑问 阅读 IMX8MPRM 文档,我发现有 6 个可用的 GPT。 第 12 章描述了 GPT,并说它有两个输入 GPT_CAPTURE1 和 GPT_CAPTURE2,可用于触发定时器计数器的捕获。 在第 8 章“芯片 IO 和 Pinmux”中,我只能找到 2 个名为 GPT1_CAPTURE1 和 GPT1_CAPTURE2 的捕获输入。 这是否意味着在 6 个 GPT 中,只有 GPT1 具有使用捕获功能的能力? 感谢并致意 回复:对 i.MX8MP 中的 GPT 的疑问 是的,对。
查看全文
A2T27S020NR1 S 参数 大家好,我正在使用 A2T27S020NR1 LDMOS 晶体管。有人可以分享这个设备的 S 参数数据吗?我需要它来设计一个工作在 2.4 GHz 的功率放大器。                      
查看全文
RT 1170 双 SDRAM 16 位连接 计划使用带有 RT1172 的双 256Mbit SDRAM,而不是单个 512MBit 芯片,但由于 GPIO 引脚短缺,我想使用 16 位数据总线。 参考手册仅提到 CS0 和 CS1 是可能的,我假设两个芯片之间的所有其他线路都是并联的。 MIMXRT1170-EVKB具有 32 位数据总线连接,其中地址和命令组并行连接,但 16 位数据总线是分开的。 您能否确认这种 16 位双 SDRAM 连接是否可行,并在可能的情况下提供原理图示例。 另外,您是否有关于单 16 位 SDRAM 数据传输速率与双 16 位 SDRAM 的基准信息 i.MXRT 101x
查看全文
LS1028 内核版本高于 5.10 甚至连meta-freescale的现任“大师”也为linux-qoriq构建了5.10内核。 这是古老的 - 甚至 Yocto 本身也对此抱怨,因为它期望 scarthgap 和 master 中至少有 5.15(对于 glibc)。 此外,我们正在将 NVME 连接到 PCIe 端口,我真的希望有一些相当新的内核更改(6.1)来改善我们的电源管理。 由于我们不会使用任何 GPU 或网络,因此不需要固件 blob,据报道,LS1028 应该可以与主线一起使用。 我尝试构建 6.6 linux-fslc 内核,并进行了一些配方修改,然后让 ls1028ardb 板启动到内核中。然而,DMA 控制器无法正确加载,因此无法实现太多的功能。我正在研究是什么阻止内核访问 SD 设备,因为它卡在等待该设备(并加载 rootfs)时。 有没有人取得任何进展来使 LS1028 内核稍微不那么过时? 回复:LS1028 内核版本高于 5.10 哇,又一个 NXP 覆盖 OpenEmbedded。到底有多少个? 回复:LS1028 内核版本高于 5.10 确实,其中也有一个 6.6 内核配方。 主线内核也可以运行,只是驱动程序选择的问题导致它无法正常启动。找到所有需要的驱动程序非常麻烦,需要通过从设备树中获取“兼容”字符串来找到它们,然后在其上 grep 以找到相关的代码文件,然后在该目录中 grep Makefile 以获取启用它所需的 Kconfig 项。 回复:LS1028 内核版本高于 5.10 这里有https://github.com/nxp-qoriq/meta-qoriq有较新内核可用的 repo。据我所知,新的 meta-qoriq Yocto 版本 scarthgap 将于 6 月底上市,因此一旦完成,我猜他们也会在 meta-freescale 中对其进行更改。
查看全文
Generate a single PWM cycle in eFlexPWM without using reload interrupt Hi, In eFlexPWM peripheral, is it possible to generate a single PWM cycle, but without using the reload interrupt to finish the cycle? Thanks in advance Re: Generate a single PWM cycle in eFlexPWM without using reload interrupt Hi @zorrotz, Thanks for the clarifications. After looking into it, I have arrived at the conclusion that the only way of doing single PWM pulses is indeed by using the reload interruption. BR, Edwin. Re: Generate a single PWM cycle in eFlexPWM without using reload interrupt Hi @EdwinHz , My part number is MKV46F128VLL16. The IDE version is MCUXpresso IDE v11.9.0 [Build 2144] and the SDK is 2.8.0. Regards Re: Generate a single PWM cycle in eFlexPWM without using reload interrupt Hi @zorrotz, Could you please share what your part number is, as well as the SDK and IDE versions that you are using? BR, Edwin.
查看全文
S32G3 Linux BSP 38.0 linuxptp包问题 大家好,社区。 我正在使用S32G-VNP-RDB3板,构建Linux BSP 38.0来开发 PFE 和 PTP。 根据用户手册,linuxptp 工具( ethtool、ptp4l等)是默认安装的。但是,当我在 Linux BSP 上运行ethtool或ptp4l命令时,它会输出未找到命令。 我按照用户手册使用 YOCTO 构建了 BSP,我还需要为 linuxptp 做些什么额外的事情吗? 回复:S32G3 Linux BSP 38.0 linuxptp 包问题 谢谢,这非常有帮助。 回复:S32G3 Linux BSP 38.0 linuxptp 包问题 谢谢你的回答。 我使用“fsl-image-auto”而不是“base”重新构建,并且 PTP 功能已启用。 谢谢。 哦,还有一件事,你能告诉我如何在 SD 卡上设置预建的 tgz 文件吗?SJA1110 交换机固件是否包含在这个预建的 tgz 文件中?
查看全文
S32G3内存支持列表 嗨,恩智浦的同事们 我看到数据表中的 S32G3 支持 DDR ,NOR Flash 和 EMMC,但您能否提供经过兼容性测试的 DDR 和其他存储器的列表? 如果市场上任何符合 LPDDR4 协议的 DRAM 都可以与最大密度为 4GB 的 S32G3 连接,您是否没有进行过适应性测试? 期待回复。 谢谢! 回复:S32G3内存支持列表 ----这个不太常规,虽然LPDDR4协议是标准的,但是各个DDR厂家也确实有些差异,这也是为什么很多SOC提供了列表,理论上可以,但是并不适合直接使用的原因。 ----其他EMMC和NOR也是这样吗?
查看全文
起動時にSIGTRAPを受信するMCALの例 皆さん、こんにちは。 私はS32K3X4EVB-T172を使用しており、USB-OpenSDA(J40)で接続され、+ 12V電源で接続されています。 s32DS 3.6.0をインストールしましたが、Platform_Software_Integration_S32K3XX と SW32K3_S32M27x_RTD_R21-11_5.0.0。 S32K3XX Autosar R21-11 RTD 5.0.0 の例、特に Port_Example_s32k344 の例を試しました。 コードをビルドして起動すると、ユーザーLEDが赤く点灯します(例でコード化されているように)が、スクリーンショットに示すように、プログラムはすぐにSIGTRAPで一時停止します。 Capture.PNG MCALも使用している例Uart_Example_S32K344でも同じSIGTRAPの問題が発生しています。 MCALを使用しない例のSiul2_Port_Ip_Example_S32K344を試してみても問題はありません。この例は完璧に実行できます。 このSIGTRAPがMCALの例に表示される理由を理解するのを手伝ってもらえますか? 感謝 ピエール Re:起動時にSIGTRAPを受信するMCALの例 こんにちはペトル、 無限ループで変化はありません。 SIGTRAP割り込みは、LEDが1回、2回、または3回点滅した後に発生します。そのため、プログラムの終了には到達しませんでした。
查看全文
JN5189 I was using OM15080-JN5189, and the firmware was the factory firmware. When conducting the zgwui test with the nxp tool, no matter what instructions were sent, there was no response. I performed the operation according to the ttug.pdf file.May I ask how I should configure it or what firmware to flash? 2025-04-24_164053.png 回复: JN5189 Hello. You can download JN-AN-1244 from here: https://www.nxp.com/webapp/sps/download/license.jsp?colCode=JN-AN-1244 BR, Mihai 回复: JN5189 Thank you for your reply. I can use it now, but I can't find the file JN-AN-1244. Could you please give me the relevant link? liushuiwuqing_0-1745909577846.png Re: JN5189 Hello, Hope you are doing well. Could you clarify what the "ttug.pdf" refers to? What is the process that you did to program the devices? Is there a specific guide or document you are following? I would recommend checking out the following documents: Zigbee 3.0 Getting Started DK6 Production Flash Programmer User Guide included in the SDK files under this path: SDK\docs\DK6-UG-3127-Production-Flash-Programmer Zigbee 3.0 IoT Control Bridge UserGuide under the path JN-AN-1247.zip\JN-AN-1247\Doc Best Regards, Ana Sofia.
查看全文