Multi Source Translation Content

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Multi Source Translation Content

Discussions

Sort by:
i.MX 数据表中 NVCC 的含义 你好 我正在查看 i.MX 数据表,经常看到以 NVCC_* 开头的引脚名称。 能否请您解释一下 NVCC 代表什么? 此外,名称中包含 NVCC 的徽章有何意义? 感谢您的支持。 顺祝商祺! Re: Meaning of NVCC in i.MX Datasheet 您指的是哪种产品? NVCC 是"Nominal Voltage Common Collector" 的缩写,NVCC_* 引脚是为一组 I/O 焊盘(如 GPIO、UART、SPI 等)提供电压的电源引脚。 如 NVCC_SD 为 SD 卡接口引脚供电。 Re: Meaning of NVCC in i.MX Datasheet 你好,丽塔、 谢谢您的解释。我所指的产品是 i.MX93。 我知道 NVCC 代表标称电压共集电极,而 NVCC_* 引脚是为特定 I/O 组(如 GPIO、UART、SPI)提供电压的电源引脚。NVCC_SD 为 SD 卡接口供电的例子非常有用。 感谢您的支持。 致以最诚挚的问候, tkato Re: Meaning of NVCC in i.MX Datasheet 你好@tkato, 不客气。 如有任何疑问,您可以创建新的主题,与我们自由联系。 祝您有美好的一天 顺祝商祺! Rita
View full article
如何在全新项目(自定义板)中设置 CMake 以正确添加/参考 MCUXpresso SDK 你好,恩智浦社区! 我正在尝试建立一个新的资源库,以便在 MCXN947 上编译代码。目标是建立一个支持 MCXN947 的多个板变体的单一存储库(在我的项目中被称为 " dcm "、dcm1212 " 和 " mcxn947-eval ")。最后一个(mcxn947-eval)以 MCXN947 的 FDR 板为基础,上面附有子板。目前只有它能编译,所以如果您正在研究这个问题,不用担心其他的。 在我当前的文件夹结构中,我希望有(见所附项目): -我的应用程序层的应用程序文件夹 -ecu 文件夹,用于将不同的板变体抽象到应用程序中(根据通过 CMake 预设选择的变体编译一个子文件夹) -我的部分库子模块的模块文件夹,包括用于抽象应用程序 sdk 的通用 HAL 层 -mcuxpresso-sdk 文件夹包含我的 sdk 对于 SDK 文件夹,我使用了 Github mcuxsdk-manifests 并对 yml 进行了自定义,使其仅提取 MCXN 系列和我感兴趣的元器件。对于查看所附项目的任何人来说,在 mcuxpresso-sdk 文件夹内进行简单的"west update" 就能得到我需要的东西。 我现在似乎很难弄明白如何设置 CMake 系统,让所有内容都能很好地编译在一起。我的大多数项目都使用 CMake 库的概念,以干净、漂亮的方式添加每个子文件夹。但是,我无法使用 SDK 做到这一点。 目前,我的最佳解决方案是手动添加 SDK .c我需要在 ecu\ sources\ mcxn947-eval\ 板 CMakeLists 里面的文件。老实说,这样做非常麻烦,而且不能完全奏效(例如,在 peripherals.c 中初始化 FlexComm硬件故障)。我看了恩智浦社区的一些帖子,但似乎都不适合我。我在使用它们时总是会遇到一些编译或配置问题。 注意:由于最终的生产版本(dcm 和 dcm1212)将在自定义板上运行,所以我正在尝试摆脱 " 板定义的 " 设置。这就是为什么 mcxn947-eval 目前不使用 SDK 中的 frdm 板设置的原因。 MCX N Re: How to setup CMake in a fresh project (custom board) to add/reference the MCUXpresso SDK properl 你好@汤姆-德博埃里奥 我认为你可以使用这种结构。 repo/ │ ├─ app/ # 应用层(与主板无关)├─ ecu/ │ ├─ dcm/ │ ├─ dcm1212/ │ └─ mcxn947-eval/ # 基于 FRDM 的自定义变体 │ ├─ 模块/ │ └─ hal_generic/ │ │ mcuxpresso-sdk/ # 从西部拉出 SDK CMake 系统已经知道哪些文件属于每个元器件。您不应手动列出这些内容。 BR 哈利 Re: How to setup CMake in a fresh project (custom board) to add/reference the MCUXpresso SDK properl 谢谢你,哈里。 我同意这是最适合我的项目的结构。我的问题是不知道如何在项目根目录下创建 CMake,以正确添加和编译 application/ecu/modules 文件夹和 sdk 文件夹。 对于我手动编写的 ony,我只需通过 CMake"add_subdirectory" 进行编译,其中每个子文件夹都将包含各自的 CMake,以创建 CMake 库。然后,我通过"traget_link_libraries" 在 CMake 根目录中将它们链接在一起。我举了这两个 CMake 的例子,就像我现在一样(稍微简化了一点,这样我们就不用担心不同的版本目标了)。 我缺少的是如何将SDK添加到这个整体版本系统中,并确保我的ecu文件夹可以访问它。 Re: How to setup CMake in a fresh project (custom board) to add/reference the MCUXpresso SDK properl 你好@汤姆-德博埃里奥 我刚测试过。 结构是 BR 哈利 Re: How to setup CMake in a fresh project (custom board) to add/reference the MCUXpresso SDK properl 你好@汤姆-德博埃里奥 我们采用了拖放功能,使用户更容易向项目中添加源代码。该功能目前是一项试验性功能,用户必须在分机设置中启用。用户只需将源代码放入项目,项目的 CMakeLists.txt 文件就会自动更新。 要启用该功能: 打开扩展设置 选中启用将文件添加到项目 重新启动工作区 对于硬件故障,请检查时钟、引脚复用器等是否存在冲突。 最后要启用自定义板(在 mcuxsdk 存储库之外),请按照 https://mcuxpresso.nxp.com/mcuxsdk/latest/html/develop/sdk/custom_board_development.html#enable-a-cu 中的步骤操作... BR 哈利 Re: How to setup CMake in a fresh project (custom board) to add/reference the MCUXpresso SDK properl 您能否分享该示例中 CMakeList.txt 根目录的内容? Re: How to setup CMake in a fresh project (custom board) to add/reference the MCUXpresso SDK properl 事实上,@Harry_Zhang,您是否介意分享一下您在这里设置的整个项目? 感谢你们迄今为止提供的所有帮助! Re: How to setup CMake in a fresh project (custom board) to add/reference the MCUXpresso SDK properl 你好@汤姆-德博埃里奥 我刚刚测试了我下载的这个示例。 您可以下载它。 定制板开发 — MCUXpresso SDK 文档 BR 哈利
View full article
PN532 标签仿真 NFC 工具显示 NULL 所有数据 目前正在使用 PN532 (UM0701-02 ) 模块接口,通过基于 IRQ 状态模型的 SPI 通信与 STM32WL 微控制器连接。我将一步步解释我是如何处理状态机的 第 1 步: SPI 配置 - 时钟 2Mhz 和 8 位模式 第 2 步: 在启动 PN532 模块后,我发送了 SMA 配置,然后正在等待第一个 IRQ 的 ACK,之后我将等待第二个 IRQ 的 SMA 配置响应。我没有收到任何错误信息。请注意我使用的以下配置 pn532_packetbuffer[0] =pn532_command_samconfiguration; pn532_packetbuffer[1] = 0x01;// 正常模式; pn532_packetbuffer[2] = 0x14;// 超时 50ms * 20 = 1 秒 pn532_packetbuffer[3] = 0x01;// 使用 IRQ 引脚! 步骤 3:收到 SMA 配置回复后, 。 我已经开始发送 TgTarget 启动命令。对于这条命令,我只收到 ACK,当电话接近模块时,我才收到回复。 uint8_tcommand[] ={ pn532_command_tginitastarget、 5,// 模式:仅 PICC,仅被动 0x04, 0x00, // SENS_RES 0x00, 0x00, 0x00,// NFCID1 0x20, // SEL_RES 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// FeliCaParams 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,// NFCID3t 0,//一般字节的长度 0//历史字节的长度 }; 如果(uidPtr != 0) {//如果设置了 uid,则将 3 个字节复制到 nfcid1 memcpy命令 + 4, uidPtr、 3); }} 这条命令也得到了成功的回复。 因此,现在我有了手机 NFC 信息,如 NFC 支持类 注:到此为止,我得到了正确的 IRQ Assert、ACK 和命令回复。 第 4 步: 响应后,我将开始发送 TgGetTarget 命令(0x86)。第一次,比如当我将手机靠近 PN532 时,得到的响应为 0x87,错误代码为 0x13。像 RF 版本一样。之后,我尝试了两种方法来恢复通信。最初的方法是发送 Inrelease 命令 0x52、0x00,然后获取 IRQ,并得到 53 和 0x00 的响应。然后再次发送 TgTartget Command Initi 命令,就像再次执行步骤 3 一样。请注意,在这之后的一段时间里,我得到了对 0x86 的正确回复。 现在我还有一个问题,在我发送 Inrelease 或 TgTarget 命令后,NFC Tools Mobile 显示的所有数据,如序列号和其他信息都显示为零。并展示 felica 技术。但使用的是 ISO1884A A 类卡枚举。 现在我想知道为什么会出现这种情况。如果我遗漏了任何序列。请尽快为我们提供指导。我们正处于项目收尾阶段。 已经有人向我推荐了表格,但我没有得到答复 互联标签解决方案 接触式智能卡读卡器芯片 HITAG读卡器IC 面向读卡器系统的MIFARE SAM NFC 控制器解决方案 NFC 前端解决方案 NFC读卡器库 Re: PN532 Tag emulation NFC Tools showing NULL all the data 请问谁能对此问题提供支持 Re: PN532 Tag emulation NFC Tools showing NULL all the data 我并不想存储任何数据。首先,我发送带有所需参数的 0x8C(TgInitAsTarget)命令,然后等待 0x8D 响应。我正确收到了 0x8D 响应。之后,我发送 TgGetData (0x86) 命令,希望收到状态为 0x00 的 0x87,但大多数时候收到的是状态为 0x13 的 0x87。出现这种情况时,我再次发送 TgInitAsTarget (0x8C) 命令,再次收到正确的 0x8D 响应。这次,当我发送 0x86 时,我收到了状态为 0x00 的 0x87 以及 APDU 数据。这种行为在摩托罗拉和 Realme 等较新的手机上运行正常,但在较旧的三星手机上,我总是在 0x86 之后收到状态为 0x13 的 0x87,即使在多次间隔之后也是如此。收到 0x8D 后,我尝试以不同的时间间隔发送 0x86,例如 1 毫秒、10 毫秒、20 毫秒、50 毫秒、80 毫秒、100 毫秒、120 毫秒和 140 毫秒,但在较旧的三星设备上我仍然收到 0x13。如有遗漏,请指教。还要注意一件事,如果我得到 0x87、0x13 我也尝试过轮询,那时我得到 0x29。 Re: PN532 Tag emulation NFC Tools showing NULL all the data 这是因为没有内存来存储数据。 请参阅应用笔记中的第 3.3.7.2 章 Re: PN532 Tag emulation NFC Tools showing NULL all the data 我们仍然面临这个问题,请任何人支持解决这个问题。我不知道我们会遇到什么问题。
View full article
S32K324 HSE固件如何安装? 我正在开发S32K324,S32K324哪里可以找到安装HSE固件的软件工程? Re: S32K324 HSE固件如何安装? Hi 请从S32K3 标准软件> 汽车软件 - S32K3 - HSE 固件 > S32K344 HSE FW 0.2.40.0 SR 版本下载。注意:此版本支持 S32K344、S32K324 和 S32K314。HSE_DEMOAPP_S32K3XX_0_2_40_0.exe可以在S32K311 HSE FW 0.2.40.0 RTM版本中找到。 如果您没有 Lauderbach,只有 PEMicro 或 J-Link 调试器,请下载S32K3_HSE_DemoExamples 。建议参考HSE 固件安装中的讨论。 由于资源有限,我们目前无法支持客户通过通用电子邮件帐户(例如 gmail.com 或 qq.com 或类似帐户)发信。请确保您在与 NXP 沟通时使用您的公司电子邮件地址,以便我们能够相应地优先处理您的问题。感谢您的理解。 此致, 罗宾 -------------------------------------------------------------------------------- 笔记: - 如果这篇文章回答了您的问题,请点击“标记正确”按钮。谢谢你! - 我们会关注上次发帖后七周的帖子,之后的回复将被忽略 如果您稍后有相关问题,请打开一个新线程并参考已关闭的线程。 --------------------------------------------------------------------------------
View full article
启动 QSPI 时 S32g274a 中的 LLCE 固件加载失败 大家好, 我们正在使用 S32g274a,其中所有 LIN 核心都用作 UART,我们还使用中断转发来让 LIN 核心在有 rx 数据时获取中断。一切都与调试器完美配合。但我们面临的问题是,当我们将图像刷入外部启动存储器(如 qspi flash)并从中启动时,代码会在 llce_firmware_load() 处停止。 有什么方法可以解决这个问题吗? S32G2 #LLCE 回复:启动 QSPI 时 S32g274a 中的 LLCE 固件加载失败 你好@naveenkumar_muthusamy , 您能提供更多有关您的设置的信息吗? 我了解您在这个项目中使用 Core M7,我的理解正确吗? 我知道您使用的是定制板而不是 RDB2,我的理解正确吗? 您使用的 LLCE FW 是什么版本? 您使用的 RTD 是什么版本? 您是从一个例子开始您的项目吗?如果有的话,哪一个? 您以前能够从 QSPI 启动 LLCE 应用程序吗? 您能描述一下构建二进制文件并将其刷入 QSPI 闪存的一般过程吗? 您如何识别程序正在阻止上述函数llce_firmware_load() 中的执行。 提前感谢提供的信息。
View full article
如何在元层中编译 Cargo Build 我按照这个例子继承了 cargo.bbclass 并编译了一个简单的项目: https://www.youtube.com/watch?v=aPsMuSU-Btw 但是,我收到以下错误: ``` 注意:执行任务 错误:my-test-0.1-r0do_compile:执行错误('/opt/yocto/imx-6.6.3-1.0.0-build/build_fsl-imx-wayland/tmp/work/armv8a-poky-linux/my-test/0.1/temp/run.do_compile.24257',101,无,无) 错误:故障日志文件存储在:/opt/yocto/imx-6.6.3-1.0.0-build/build_fsl-imx-wayland/tmp/work/armv8a-poky-linux/my-test/0.1/temp/log.do_compile.24257 日志数据如下: | DEBUG:执行 shell 函数 do_compile | 注意:使用来自 /opt/yocto/imx-6.6.3-1.0.0-build/build_fsl-imx-wayland/tmp/work/armv8a-poky-linux/my-test/0.1/rust-targets/ 的 rust 目标 | 注意:cargo = /opt/yocto/imx-6.6.3-1.0.0-build/build_fsl-imx-wayland/tmp/work/armv8a-poky-linux/my-test/0.1/recipe-sysroot-native/usr/bin/cargo | 注意:cargo build -v --frozen --target aarch64-poky-linux-gnu --release --manifest-path=/opt/yocto/imx-6.6.3-1.0.0-build/build_fsl-imx-wayland/tmp/work/armv8a-poky-linux/my-test/0.1/git//Cargo.toml | 错误:锁定文件 /opt/yocto/imx-6.6.3-1.0.0-build/build_fsl-imx-wayland/tmp/work/armv8a-poky-linux/my-test/0.1/git/Cargo.lock 需要更新,但已传递 --frozen 以防止发生这种情况 | 如果您想尝试在不访问网络的情况下生成锁定文件,请删除 --frozen 标志并改用 --offline。 |警告:/opt/yocto/imx-6.6.3-1.0.0-build/build_fsl-imx-wayland/tmp/work/armv8a-poky-linux/my-test/0.1/temp/run.do_compile.24257:185从'“cargo”build -v --frozen --target aarch64-poky-linux-gnu --release --manifest-path=/opt/yocto/imx-6.6.3-1.0.0-build/build_fsl-imx-wayland/tmp/work/armv8a-poky-linux/my-test/0.1/git//Cargo.toml“$@”'退出101 | 警告:回溯(BB 生成的脚本): | #1: oe_cargo_build, /opt/yocto/imx-6.6.3-1.0.0-build/build_fsl-imx-wayland/tmp/work/armv8a-poky-linux/my-test/0.1/temp/run.do_compile.24257,第 185 行 | #2:cargo_do_compile,/opt/yocto/imx-6.6.3-1.0.0-build/build_fsl-imx-wayland/tmp/work/armv8a-poky-linux/my-test/0.1/temp/run.do_compile.24257,第 157 行 | #3: do_compile,/opt/yocto/imx-6.6.3-1.0.0-build/build_fsl-imx-wayland/tmp/work/armv8a-poky-linux/my-test/0.1/temp/run.do_compile.24257,第 152 行 | #4:主要的,/opt/yocto/imx-6.6.3-1.0.0-build/build_fsl-imx-wayland/tmp/work/armv8a-poky-linux/my-test/0.1/temp/run.do_compile.24257,第 198 行 错误:任务(/opt/yocto/imx-6.6.3-1.0.0-build/sources/meta-my-test/recipes-cargo/install/my-test_0.1.bb:do_compile)失败,退出代码为“1” 注意:任务摘要:尝试了 5745 项任务,其中 5743 项无需重新运行,1 项失败。 ``` 我已经运行了“bitbake -f my-test core-image-minimal”。BBLAYERS 也被附加。 简单来说:如何编译并安装 Rust 程序到 iMX93EVK 中? 回复:如何在元层中编译 Cargo Build 好的 回复:如何在元层中编译 Cargo Build 我是一个傻瓜,更确切地说是一个新手。我所指的 repo( https://gitlab.com/pbarker.dev/rust/print-rand )没有 Cargo.lock 文件。我在我的机器上手动运行了复制的文件,瞧! 下载 repo 的路径默认为“/opt/yocto/imx-6.6.3-1.0.0-build/build_fsl-imx-wayland/tmp/work/armv8a-poky-linux/my-test/0.1/git/”。好吧,我可以以某种方式覆盖它。这不是一个问题。希望将来能帮助其他新手。 编辑:其他一些陷阱: * 在我的情况下,“IMAGE_INSTALL”不起作用,但“CORE_IMAGE_EXTRA_INSTALL”允许我将自定义层的 bb 文件添加到“bitbake core-image-minimal”构建中。据我所知,食谱名称无关紧要。 * 第一次运行时,我遇到了丢失的板条箱哈希值。幸运的是,修复方法已经打印出来了。在 `.bb` 文件旁边添加 `.inc` 文件就足以解决这个问题,而无需修改 .bb文件 `cargo bitbake` 命令生成。 回复:如何在元层中编译 Cargo Build cbugk-dannie cbugk-dannie 贡献者 I 顺便说一句,原帖中的这一行告诉我货物本身是可以运行的: ``` 错误:锁定文件 /opt/yocto/imx-6.6.3-1.0.0-build/build_fsl-imx-wayland/tmp/work/armv8a-poky-linux/my-test/0.1/git/Cargo.lock 需要更新,但已传递 --frozen 以防止发生这种情况 ``` 我所不知道的是不知道如何在普通的货物项目中使用默认的 Yocto 行为 --frozen。 但我认为这超出了 NXP 的范围。不过,你们还是在这个论坛的其他一些帖子上对脚本和所有内容发表了评论。所以认为值得一试,如果有任何这样的建议我将不胜感激。 回复:如何在元层中编译 Cargo Build 首先,谢谢。 当将 `DEPENDS += " meta-rust "` 添加到 bb 文件时,出现以下错误。我以为 `meta-rust` 已经被吸收到 `oe-core` 中了,那么在 nanbield 上我真的需要它吗? ``` 加载缓存:100% |##############################################################################################################################| 时间:0:00:00从依赖缓存加载了 5451 个条目。注意:解决任何缺失的任务队列依赖关系错误:没有提供“meta-rust”(但/opt/yocto/imx-6.6.3-1.0.0-build/sources/meta-my-test/recipes-my/company/my-test_0.1.bb取决于或需要它)错误:所需的构建目标“my-test”没有可构建的提供程序。 缺失或无法构建的依赖链为:['my-test', 'meta-rust'] 摘要:有 2 条错误消息,返回非零退出代码。 ``` 编辑:我还将其作为 imx-setup-release.sh 中“BBLAYERS”的另一个回显添加到 repo 工具的清单中。然而,nanbield 与这种运作方式不兼容: ```错误:rust-layer 层与仅支持以下系列的核心层不兼容:nanbield(该层与 mickledore honister hardknott gatesgarth kirkstone 兼容)```
View full article
FS26 TRK2 UVフォールト FS26 と s32k344 を使用していますが、FS_OVUV_REG_STATUS レジスタには SPI を介した TRK2 の低電圧が示されています。しかし、TRK2には負荷はなく、2.2uF/50Vと100nF/100Vの2つのコンデンサがあるだけです。マルチメータとオシロスコープでTRK2電圧を測定しましたが、5Vに等しい、つまり正しいです。誰かが私がこれを解決するのを手伝ってくれますか? 日時:FS26 TRK2 UV障害 私はあなたのケースに取り組み始めています、私はすぐにあなたに連絡します。
View full article
S32K312 FLASH HELLO ,EXPERT: i am using S3K312 CHIP, I want to use flash and eeprom function without autosar(MCAL),There are some issues troubling me: 1. in the drivers group, i only found C40 ip and cache ip conponent ,what's the meaning of C40? 2. in the MCAL group, i can use FLS and FEE ,is it used for autosar standard interface? 3. in the MCAL i found a component named Mem_43_INFLS_TS,what's the meanning of Mem_43_INFLS_TS at last, if i want to develp FLASH AND EEPROM without autosar ,which component i could use,which demo or example is useful for my requirement ? thanks Re: S32K312 FLASH thank you Re: S32K312 FLASH Hi @PINKMAN, 1. The C40 driver is a non-AUTOSAR IP layer. You can refer to the 02: S32K3xx Real-Time Drivers (RTD) training and chapter 21 (Embedded Flash Memory c40asf) from the S32K3XX reference manual. 2. Yes, the FEE and FLS drivers are derived from MCAL. 3. Depending on which AUTOSAR version you are trying to use, the flash driver changes. For example, you can see included in the SW32K3_S32M27x_RTD_4.4_4.0.0_P20 the driver Fls_TS_T40D34M40I0R0. On the other hand, SW32K3_S32M27x_RTD_R21-11_4.0.0_P19 includes the Mem_43_INFLS_TS_T40D34M40I0R0 driver. This is because in Autosar R21-11, the Fls Driver has been replaced by Mem_InFls/Mem_ExFls. You can refer to the official Specification of Memory Access from AUTOSAR. 4. Any example which includes the "IP" word refer to the non-AUTOSAR (low level) drivers. So, for example "C40_Ip_Example_S32K344". Best regards, Julián
View full article
BFU660F 的 Spice 型号 您好, 能否提供 BFU660F 的香料型号? 谢谢! 约翰 Re: Spice Model for BFU660F 您好, ,我试图将此模型用于 Orcad PSpice,但似乎无法识别某些参数(例如:...M参数......),软件就会出错。请提供可在 orcad PSpice 中导入的 BFU660F 模型, ,谢谢您的支持 ,致以最诚挚的问候 Jonata Re: Spice Model for BFU660F 亲爱的艾丽卡 我想在 LTSPICE 中使用 2 发射器模型。 请发布 BFU660F 的 4 针型号。 顺祝商祺! 诹访仁 Re: Spice Model for BFU660F 嗨,艾丽卡、 谢谢你的香料模型。 您可以关闭此主题。 顺祝商祺! 约翰 Re: Spice Model for BFU660F 您好。 SPICE 模型附后。 希望对你有所帮助。 此致问候
View full article
PCAL 6534 電源シーケンス 最初にオンにする必要がある電源は、VDD(P) または VDD(I2C_BUS) ですか? PCAL6534 には電源シーケンスが必要ですか? Re: PCAL 6534 Power sequence こんにちは、 正確なタイミングシーケンスは指定されていません。デザインで最初に VDD_I2C に電源を投入する場合は、I²C 通信を試行する前に、VDD_P が速やかに上昇し、POR しきい値に達することを確認してください。POR リセット遅延時間は、VDD_P がしきい値を超えてから約 1 µs であることに注意してください。SO、信頼性の高い動作を確保するには、VDD_P が安定した後、I²C トランザクションを開始する前に短い遅延 (数マイクロ秒など) を許可します。 BRs、トーマス Re: PCAL 6534 Power sequence タイミングを含む正確な電源シーケンスはありますか? 実際、デザイン上、VDD_I2C は VDD_P よりも先に電源が投入されます。 Re: PCAL 6534 Power sequence こんにちは、 VDD(P) は最初に電源を投入するか、少なくとも VDD(I2C_BUS) より遅くは投入しないでください。これにより、通信が開始される前に内部回路とレジスタが適切に初期化されます。 BRs、トーマス
View full article
有关针对 i.MX8ULP EVK(Core M33)的 Zephyr 开发的询价 您好,NXP团队, 我目前正在做一个项目,需要在 i.MX8ULP EVK 的 Core M33 上运行 Zephyr 实时操作系统。我想检查一下是否有任何现有的开发或引用可以在 i.MX8ULP 的 M33 内核上运行 Zephyr。 具体来说,我正在寻找 Zephyr 官方支持:i.MX8ULP 的 M33 内核是否正式支持 Zephyr?如果是,是否有任何现有的板配置或开发资源可用? 现有工作或社区贡献:是否有任何正在进行的开发工作或社区贡献可能有助于在此平台上运行 Zephyr? 参考项目:任何可以帮助将 Zephyr 移植到此平台的参考项目、示例应用程序或文档。 已知限制:在 i.MX8ULP M33 内核上使用 Zephyr 时,是否存在任何已知限制或挑战? 如能提供相关资源或文件的指导或指点,将不胜感激。 提前感谢您的帮助! Re: Inquiry on Zephyr Development for i.MX8ULP EVK (Core M33) 我想分享一下,我已经使用 Zephyr 成功编译并启动了 i.MX8ULP 的自定义板配置。板现在可以识别出来了,构造得很干净。 但是,我在早期初始化时遇到了一个阻塞问题: upower_checkreqWithArgs () 函数目前依赖中断驱动的回调(upower_IRQHandler)来设置标志(CallbackStatus)。由于 Zephyr 内核在此阶段尚未初始化,中断被禁用,调用会陷入等待该标志的 while 循环。 复杂性: 如果我提前启用中断以允许 IRQ 启动,就会遇到 UsageFaults 和堆栈损坏,这可能是由于过早访问或上下文不匹配造成的。 目标: 我想消除中断依赖关系,只在早期启动期间在轮询模式下处理upower请求。理想情况下,我想复制 IRQ 的功能--手动检查状态并设置标志--而不依赖于中断上下文。 有没有不带中断的 upower 驱动程序? Re: Inquiry on Zephyr Development for i.MX8ULP EVK (Core M33) 大家好, 感谢您之前的指导。我想分享一下,我已经使用 Zephyr 成功编译并启动了 i.MX8ULP 的自定义板配置。板现已获得认可,建设得井井有条,这是向前迈出的一大步。 但是,我在早期初始化过程中遇到了阻塞问题: 🧩 问题: UPOWER_CheckReqWithArgs() 函数目前依赖于中断驱动的回调(uPower_IRQHandler)来设置标志(callbackStatus)。由于 Zephyr 内核在此阶段尚未初始化,中断被禁用,调用会陷入等待该标志的 while 循环。 ⚠️ 复杂性: 如果我提前启用中断以允许 IRQ 启动,就会遇到 UsageFaults 和堆栈损坏,这可能是由于过早访问或上下文不匹配造成的。 🎯 目标: 我想消除中断依赖关系,只在早期启动期间在轮询模式下处理upower请求。理想情况下,我想复制 IRQ 的功能--手动检查状态并设置标志--而不依赖于中断上下文。 🧠 我需要什么: -关于如何安全地进行轮询以确保 UPower 请求完成的指南。 -参考任何表示请求完成的内部状态标志或寄存器。 -在 Zephyr 早期启动期间,在 i.MX8ULP 的轮询模式下使用 uPower 的任何已知注意事项或最佳做法。 如果您曾在恩智浦平台上使用过 uPower 或早期阶段的 Zephyr,希望您能提供任何见解或建议,我们将不胜感激。 再次感谢! Re: Inquiry on Zephyr Development for i.MX8ULP EVK (Core M33) 官方 Zephyr 支持:不,我们不支持 i.MX8ULP 的 M33。 i.MX8ULP 支持 HiFi4 DSP 内核 (ADSP) -https://github.com/zephyrproject-rtos/zephyr/tree/main/soc/nxp/imx/imx8ulp 现有工作或社区贡献:如何在 DSP 上运行 Zephyr 的示例(参见 https://www.nxp.com/docs/en/application-note/AN13970.pdf)可以作为一个起点。 关于如何在 Zephyr 中添加 M33 支持,可以参考其他示例,如 i.MX95 的 M7 支持(https://github.com/zephyrproject-rtos/zephyr/pull/74920/commits)。- i.MX943 上的 M33 支持(参见 https://github.com/zephyrproject-rtos/zephyr/pull/91107/commits)。 参考项目:上述 PR、参考手册或此处的其他文档、i.MX Linux 用户指南、应用笔记 AN5317 已知限制:不适用 Re: Inquiry on Zephyr Development for i.MX8ULP EVK (Core M33) 你好@sujitp: i.MX 8ULP 不在我们目前的计划中。 我们的重点是在 Cortex-A 内核上启用 Zephyr。 很抱歉,目前还没有这方面的文件。 也许我们将来会考虑 8ULP 计划,但需要了解更多的要求,才能做出评估。 此致 丹尼尔 Re: Inquiry on Zephyr Development for i.MX8ULP EVK (Core M33) AN13970是关于 HiFi4-DSP 的,与 im8ulp core m33 无关。 Re: Inquiry on Zephyr Development for i.MX8ULP EVK (Core M33) 你好,苏吉普 根据https://docs.zephyrproject.org/latest/boards/nxp/index.html 支持的恩智浦 i.MX MPU 板包括: ... ... 遗憾的是,这里没有列出 i.MX 8ULP。 我建议你参考 AN13970,它描述了在 Arm Cortes-A 或 Cortex-M 内核上运行 Zephyr 以及如何实现它。 此致 丹尼尔
View full article
使用 usbdm 对 68HC912B32 编程 我正在尝试对一块装有这种芯片的旧板进行编程,但是对这个微控制器系列来说是全新的,所以不胜感激。 我下载并安装了 USBDM_4_12_1_340_Win.msi Windows 软件,并运行了"USBDM Memory Dump" 应用程序,转储了 68HC912B32 芯片上的闪存(地址范围 0x8000-0xFFFF)。 我还查看了"HCS12 Programmer" 或"Flash programmer" 应用程序,但其下拉菜单列表中没有 MC912B32 芯片。我还用 " Detect Chip " 按钮尝试了 " 设备选择 " 但它无法检测到我的芯片。 我不需要完整的开发环境/集成开发环境,只需要能够转储闪存、更换损坏的微控制器并用转储的程序对新微控制器进行编程。 这个 4 岁的https://community.nxp.com/t5/OSBDM-and-TBDML/program-the-HC12-B-Family-of-MCU/td-p/1324102这个问题很有趣,但并没有提供解决方案。 我的首选操作系统是 Linux 而不是 Windows,因此我非常乐意尝试基于 Linux 的解决方案。 对如何安装一个有效的编程环境有什么想法吗? 非常感谢 汤姆-克兰 Re: Programming a 68HC912B32 with usbdm 嗨,@pgo、 感谢您的跟进。我取得了一些进展。 Code Warrior 5.2 不支持 68HC912B32 的解决方案是安装 Code Warrior 5.1。这里建议https://community.nxp.com/t5/CodeWarrior-for-MCU/CodeWarrior-Development-Studio-for-HCS12-X-Microcontrollers/m-p/603056。 在 5.1 版中(见所附屏幕截图 Code-warrior2-run-as-administrator-MC68HC912B32+USBDM.jpg),MC68HC912B32 芯片已出现并可以选择。 但是,"连接 "下拉菜单中没有列出 USBDM 或 TBDML 选项。 在重新安装 Code Warrior 5.1 后,我重新安装了 USBDM 及其驱动程序,并将 USBDM 插入电脑。 为了检查 USBDM 未出现在 "代码勇士连接 "菜单中是否是因为 USBDM 不支持 68HC912B32,我尝试选择了 USBDM 支持的其他芯片。 我选择了 MC9S12A128B。 现在 “连接” 菜单增加了 3 个条目:" TBDML ", " HCS 串行监测 " & " USBDM "。请参阅所附屏幕截图 Code-warrior2-MC68HC9S12A128B+USBDM.jpg。 除了尝试修改 USBDM Tcl 代码以支持 68HC912B32 外,是否还有任何其他软件/硬件应用程序或其他选项可与 USBDM pod 一起使用以对该芯片进行编程? 如果没有,是否有其他支持 S/W 的硬件/软件选项可以让我对 68HC912B32 的闪存进行编程? 我的板只有用于调试/编程的 6 针 BDM 插槽 —— 所以必须假设制造商最初就是这样编程的,除非它是在焊接之前断路完成的,这似乎不太可能... 谢谢! 汤姆 Re: Programming a 68HC912B32 with usbdm 嗨,汤姆 很抱歉,我已经无法访问 Codewarrior(或 Windows!),因此无法亲自检查。 当我在恩智浦网站(https://www.nxp.com/products/68HC912B32)上搜索 68HC912B32 时,最终会找到您下载的 Codewarrior 版本,因此这似乎是正确的版本。 我不知道为什么 B32 没有出现。 对不起! Re: Programming a 68HC912B32 with usbdm 嗨,Pgo、 感谢您的跟进。 我已经部分拆解了之前转储的图像,所以应该可以拼凑出一个 .asm文件放入代码勇士项目中。 我找不到 Codewarrior 第 6 版的下载地址,但还是从https://www.nxp.com/design/design-center/software/development-software/codewarrior-development-tools/codewarrior-legacy/codewarrior-development-studio-for-hcs12x-microcontrollers-classic-ide-v5-2:CW-HCS12X下载了。 链接。 它被列为版本 5.2,重要的是,在 " 支持的设备 " 的 " Expand All " 复选框下列出了 68HC912B32。 安装 + 运行应用程序并检查版本号,显示的是 5.9 而不是 5.2。请参见所附截屏图片。 正在调用 " 启动对话框..." 和 " 创建新项目 " 提供了一个可选择芯片系列的弹出窗口。请参阅所附的截屏图片。 它只列出了 HCS12 & HCS12X 系列。 将这些节目扩展到家庭成员。请参阅所附的截屏图片。不出所料,其中没有 HCS912B32。 是我做错了什么,还是漏掉了什么显而易见的东西? 非常感谢 汤姆-克兰 Re: Programming a 68HC912B32 with usbdm 嗨,汤姆 很抱歉,USBDM 编程器不太可能适用于对您的芯片进行编程。 正如其他主题所指出的,这需要开发 TCL 脚本来完成基本工作(芯片启动、大量擦除等),并开发目标代码来完成块编程。 这是一项艰巨的工作,而且不能保证这种方法一定有效,因为 USBDM 采用的方法可能与早期的芯片不兼容。 可以使用位于 https://github.com/podonoghue/usbdm-eclipse-makefiles-build 的代表为 Linux 版本 USBDM。 我认为最好的办法是检查 Codewarrior V6(我认为)是否支持该芯片的 TBDML(USBDM 与之兼容)。 我不确定这是否允许独立编程,而不是从源代码进行调试开发。 仅适用于窗口。 再见
View full article
S32G2 上的 LLCE CAN 通信问题 - 发送/接收报文时偶尔出现故障 在开发过程中,LLCE CAN 模块遇到了一些问题: ​设备详情:​ 定制设计的硬件 CPU 型号:S32G274 RTD 版本:4.0.2 LLCE 版本: 1.0.8 ​问题 1.​ 一个通道能正确接收信息,但无法发送信息。只有重新启动后才能恢复正常运行。 使用 Lauterbach 调试时,函数 Can_43_LLCE_SendWritecmd 返回 CAN_BUSY。 通过强行修改 Can_au16TransmitHwObjectCen[x] 的值为非零值进行的进一步测试表明, Can_Llce_write 函数也返回 CAN_BUSY。 ​问题 2.​ 一个通道在发送和接收信息时都出现故障。需要重新启动才能恢复。 以下是通过 Can_Llce_ProcessErrorNotification 获得的错误信息: error->eNotifId:2 error->ErrorInfo->eModuleId:102 error->ErrorInfo->eErrorCode:7 我们希望得到解决这些问题的指导。谢谢! Re: LLCE CAN Communication Issue on S32G2 – Occasional Failures in Sending/Receiving Messages 嗨,zhuyz 感谢您的回复。 建议优先进行单通道测试,并尽可能延长向通道发送帧的时间间隔。 错误信息表示接收端已达到最大硬件对象数,即报文缓冲区已满,无法接收新报文。您可以尝试增加帧时间间隔并添加缓冲区进行测试。 BR 乔伊 Re: LLCE CAN Communication Issue on S32G2 – Occasional Failures in Sending/Receiving Messages 你好,Joey_z ,感谢您的跟进。 您可能没有看清楚我的问题--主要问题是出现问题后,我再也无法通过这个通道接收/发送信息,而不仅仅是偶尔掉帧。 根据我通过劳特巴赫获得的信息,我怀疑 LLCE 本身存在问题,而不是外部因素造成的。能否请您再次回顾一下我最初的问题? Re: LLCE CAN Communication Issue on S32G2 – Occasional Failures in Sending/Receiving Messages hi,zhuyz 感谢您的回复。 请尝试用这种方法测试您的问题。 1.尝试降低 CAN 负载,增加 CAN 帧的时间间隔,检查丢帧现象是否得到缓解。 2.尽量保持测试方法简单,优先考虑单通道测试和只发送或接收帧的测试。例如,首先测试有问题通道的发送功能。 3.你们的 CAN 测试设备是什么?请确保测试设备可靠。 希望这能帮到你。 BR 乔伊 Re: LLCE CAN Communication Issue on S32G2 – Occasional Failures in Sending/Receiving Messages 你好,Joey_z, 我没有用它来路由 CAN 帧,我只是用它来发送和接收 CAN 帧。 关于您提到的 CAN 环回模式,我前面提到的问题 1 就是用这种方法检测到的。 你的回答让我有点困惑。我希望您能提供一些故障排除方法和可能的原因。 因为对我来说,LLCE 是一个黑盒子,我目前没有能力继续排除故障。 Re: LLCE CAN Communication Issue on S32G2 – Occasional Failures in Sending/Receiving Messages 嗨,zhuyz 感谢您提供的信息。 路由 CAN 帧 "是指 LLCE 中的 CAN2CAN/CAN2ETH/ETH2CAN 功能。您使用过吗? 如果您只是使用 LLCE 发送和接收 CAN 帧,我建议您可以尝试使用 CAN 环回演示进行测试。您需要修改关联客户板的代码。 关于问题发生的概率相对较低,而且不是每次都能重现。 如果要进行接收帧然后在 CAN 信道中发送的测试,建议考虑接收和发送之间的间隔时间。 BR 乔伊 Re: LLCE CAN Communication Issue on S32G2 – Occasional Failures in Sending/Receiving Messages 你好,Joey_z ,感谢您的回复。 我没有使用 LLCE CAN 演示测试这个特定通道,因为在我的案例中,问题并不总是与固定通道相关联。此外,该问题出现的概率相对较低,而且并非每次都能重现。 关于问题 1,我正在使用它收发 CAN 报文。我不太清楚你说的 "路由 CAN 帧 "是什么意思。 所有 20 个通道都在使用,而且都在 M7-0 内核上运行。 Re: LLCE CAN Communication Issue on S32G2 – Occasional Failures in Sending/Receiving Messages hi,zhuyz 感谢您与我们合作。 您是否使用过 Can_Llce_DS_Can2Can_S32G274A_M7 的 LLCE CAN 演示来测试问题通道? 关于问题 1,您是用它来路由 CAN 帧还是只发送报文? 您使用的是哪个频道?您只在 S32G 上使用了 M 内核? BR 乔伊
View full article
S32G: BSP43 ATF 和 linux 能否在不支持任何 uboot 的情况下为 scmi nvmem 工作? 专家们好 客户:福特 平台:S32G2 软件/模块:BSP43 SCMI 客户正在尝试启用 nvmem scmi 读取 soc_major& soc_minor。它们使用 BSP43 ATF 和 linux,但使用自己的引导加载器。他们在内核启动期间看到了一些错误。 客户的问题是:BSP43 ATF 和 linux 能否在不支持任何 uboot 的情况下使用 scmi nvmem? 提前感谢您的专业支持。 顺祝商祺! 狮子座 Linux BSP Re: S32G: Could BSP43 ATF and linux work for scmi nvmem without any uboot support? 你好@ghennadi_procopciuc 谢谢您的回答。 那么,我可以这样理解吗? 客户没有在 M7 端启用 SRM,而 ATF 和 Linux 都能正常工作,就像启用了 SMR 一样。 BR、 狮子座 Re: S32G: Could BSP43 ATF and linux work for scmi nvmem without any uboot support? 你好@LeoLiAP、 从提供的日志中可以明显看出,福特是在没有SRM的情况下启动他们的平台,如以下行所示:注意:BL31:SR M禁用版本。这意味着不需要 SCMI NVMEM,因为 TF-A 不会处理该协议。 由此产生的错误在意料之中: 错误:代理 1 协议 0x82 消息 0x0:不支持 [0.333763] arm-scmi 固件:scmi:无法 获取版本 [0.334178] scmi-nvmem scmi_dev.6:无法检索 SCMI NVMEM 操作 [0.334658] scmi-nvmem:对 scmi_dev.6 的探测失败 ,错误- 95 福特使用的似乎是混合设置--FF-A 没有配置 SRM,因此 SCMI 命令在本地处理,而不是转发到 M7 内核。但是,Linux仍然希望通过设备树支持SCMI NVMEM,这会导致不匹配。 最简单的解决方法是更新 Linux 设备树以使用 SIUL2 NVMEM,而不是依赖 SCMI NVMEM。 此致, 根纳迪 Re: S32G: Could BSP43 ATF and linux work for scmi nvmem without any uboot support? 错误日志如下。
View full article
编译新项目时遇到的问题 我刚刚设置了开发环境,我打算学习如何使用 S32K312 安装完IDE、ADE更新包和RTD软件包后,我创建了一个简单的项目,遇到了以下编译问题。 把新创建的项目放到另一位同事的电脑上(他的电脑和我的电脑有相同的开发环境),编译时没有任何问题。 请帮帮我,我已经重新安装了 3 次。 这是为什么? S32K312EVB-Q172 S32DS-S32PLATFORM Re: ‌Problems encountered during compilation of a new project 我把它安装到了我的电脑上,操作是一样的,但这台电脑出了问题。你提到的参考手册似乎没有提供太多有用的信息。 Re: ‌Problems encountered during compilation of a new project 我的问题还没有解决。使用 FSL 仍有问题,使用 Gnu 则太慢。 Re: ‌Problems encountered during compilation of a new project 我很高兴你解决了这个问题。 另一方面,我发现您没有按照 RTD 4.0.0 的安装流程进行安装。 更多详情,请参阅SW32K3_S32M27x_RTD_R21-11_4.0.0_D2311_ReleaseNotes.pdf。 Re: ‌Problems encountered during compilation of a new project 我还发现了一个问题,即在C/C++版本 的工具链编辑器中选择FSL Make Builder作为当前生成器时,会出现上述编译错误。不过,选择其他选项也能成功编译。这意味着什么? Re: ‌Problems encountered during compilation of a new project 感谢您关注我们的产品并为我们的社区做出贡献。 请分享你的 " 安装详情 " 的屏幕截图,你可以在 " 帮助 " 税务摊销收益中找到。
View full article
S32 汽车平台:先进控制系统的性能 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 燃烧和发动机控制正在转向计算密集型技术。了解 S32 汽车平台如何利用 Arm ® NEON 和数学加速来支持这一趋势。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 燃烧和发动机控制正在转向计算密集型技术。了解 S32 汽车平台如何利用 Arm ® NEON 和数学加速来支持这一趋势。
View full article
Let´s start with KSDK! What is it KSDK? = Kinetis Software Development Kit Kinetis SDK v2 is a collection of comprehensive software enablement for NXP Kinetis Microcontrollers that includes: •system startup •peripheral drivers •USB and connectivity stacks •Middleware •Real-time operating system (RTOS) kernels. Documents – Release Note, API Reference Manual, Getting Started with KSDK, for USB – User Guide, USB Composite Device Guide, USB Device Reference Manual and USB Host Reference Manual. All these documents is possible to find at Software Development Kit for Kinetis MCUs|NXP or \SDK_2.0_selected_device\docs KSDK Structure Diagram KSDK Features •ARM® and DSP standard libraries, and CMSIS-compliant device header files which provide direct access to the peripheral registers •Open-source peripheral drivers •Open-source RTOS wrapper driver •Real time operation systems (RTOS) including FreeRTOS OS, μC/OS-II, and μC/OS-III •Stacks and middleware in source or object formats including: − CMSIS-DSP -  a suite of common signal processing functions − FatFs - a FatFile System for small embedded systems − mmCAU - Memory-Mapped Cryptographic Acceleration Unit − SDMMC - software component supporting SD Cards and eMMC − DMA Manager - software component used for managing on-chip DMA channel resources − mbedTLS and WolfSSL - cryptographic SSL/TLS libraries − lwIP and USB Stack - a light-weight TCP/IP stack KSDK Evolution KSDK v1/v2 – what new features KSDK 2.0 brings •MQX Kernel removed from KSDK -> focus on FreeRTOS •MQX RTCS Ethernet and MFS File System Stacks -> lwIP and FatFS •OSA, Power Manager and Clock Manager -> no longer required by the drivers •USB Stack re-write -> BSD licensed solution •No platform library -> single project with all needed files •Mbed TLS now included as part of the accelerated cryptography drivers •Eliminates separate HAL and Peripheral Driver -> single driver for each peripheral •Processor Expert -> Kinetis Expert Tool •Updates for KDS -> via online update tool •Installation of KSDK -> KEX Tool (smaller download & sizes) •KEX Tool -> pin muxing selection & generation, clock configuration, low power estimation Simplified folder structure KSDK highlights & benefits •Collection of software enablement offered by free •KSDK is fully supported in these IDE: − Atollic® TrueSTUDIO® − GNU toolchain for ARM® Cortex® -M with CMake build system − IAR Embedded Workbench − Keil™ MDK-ARM − Kinetis Design Studio IDE •KSDK supports most of Kinetis MCUs •Created examples for drivers, USB, RTOS, demo applications •Start with development without device register knowledge Support & download Official support of KSDK: Kinetis Software Development Kit Create new SR according to: How to submit a new question for NXP Support More about KSDK... KSDK Official Website www.nxp.com/ksdk Introducing Kinetis SDK v2 https://community.freescale.com/docs/DOC-329783 Kinetis SDK 2.0 Transition Guide Kinetis SDK 2.0 Transition Guide KSDK Community https://community.freescale.com/community/kinetis/kinetis-software-development-kit Let´s continue in reading! See Let´s start with FreeMASTER!​
View full article
例MPC5777C GHS714 外部SRAM_test ******************************************************************************** *詳細な説明: *アプリケーションは基本的な初期化を実行し、次に外部のEBIを初期化します * SRAMをMPC5777C-516DSに接続し、ブロックの書き込みと読み出しでテストします。 *データ。 * * ------------------------------------------------------------------------------ ※テストHW:MPC5777C-512DS Rev.A + MPC57xx マザーボード Rev.C ※MCU:PPC5777CMM03 3N45H * Fsys: PLL1 = core_clk = 264MHz, PLL0 = 192MHz *デバッガ:Lauterbach Trace32 * 対象:internal_FLASH *端末:19200-8-パリティなし-1ストップビット-eSCI_Aのフロー制御なし * EVB接続:位置1-2のジャンパーJ4(CS0を選択) * ******************************************************************************** ******************************************************************************** *詳細な説明: *アプリケーションは基本的な初期化を実行し、次に外部のEBIを初期化します * SRAMをMPC5777C-516DSに接続し、ブロックの書き込みと読み出しでテストします。 *データ。 * * ------------------------------------------------------------------------------ ※テストHW:MPC5777C-512DS Rev.A + MPC57xx マザーボード Rev.C ※MCU:PPC5777CMM03 3N45H * Fsys: PLL1 = core_clk = 264MHz, PLL0 = 192MHz *デバッガ:Lauterbach Trace32 * 対象:internal_FLASH *端末:19200-8-パリティなし-1ストップビット-eSCI_Aのフロー制御なし * EVB接続:位置1-2のジャンパーJ4(CS0を選択) * ********************************************************************************
View full article
编写 K32L3A MCU 闪存 IFR 字段                                      编写 K32L3A MCU 闪存 IFR 字段 简介 K32L3A60VPJ1AT MCU 是下一代 Kinetis 双核设备。该设备带来了传统 Kinetis 设备不支持 的处理和多任务处理功能。此外, K32L3A60VPJ1AT 还提供了改进的功耗和安全功能。这 些安全功能的一些重要方面在于非易失性信息寄存器(IFR)存储区域以及该区域的编程方 式。 IFR 存储器区域是与主阵列分离的具有受限访问的储器空间,并且由可擦除 IFR 区域和 不可擦除 IFR 区域组成。不可擦除的 IFR 区域包括程序的一种标识符和版本标识符。可擦 除的 IFR 区域具有闪存安全性,闪存选项,批量擦除启用以及控制设备行为的其他此类功 能。在旧版 Knietis 设备中,主闪存阵列的某些字段(闪存地址 0x400-0x40F)在引导时配 置了 IFR。但是,在 K32L3A60VPJ1AT 中,不再以这种方式控制 IFR 存储区。尝试配置这些 设置时,这会带来挑战。 本文档的目的是解释如何更改这些设置,并提供一些有关如何进 行这些更改的选项。 配置 IFR 字段的第一步是了解如何通过硬件对这些字段进行编程。使用称为“程序索引命令” 的特殊闪存命令对 IFR 字段进行编程。编程后,必须先擦除这些字段,才能重新编程闪存 配置值。擦除这些值的唯一方法是通过批量擦除。这提供了安全性,因为在不删除用户代 码的情况下也无法更改 IFR 值。此外,更改用户代码映像不会影响引导加载程序的操作, 从而确保可以执行安全的引导功能。此处描述了写入可擦除 IFR 值的过程: 1.使用程序索引命令(0x43)写入 FCCOB0。 2.用要编程的索引写入 FCCOB1.可能的索引列在“可擦除 IFR 映射”表中(K32L3A6 参考 手册中的表 16.4.1.2)。 3.将 FCCOB2 和 FCCOB3 写入 0x00,因为此命令不使用它们。 4.用所需的值写入 FCCOB4 - FCCOBB。(请注意, 并非所有索引都使用所有 FCCOB 字 段。请确保查阅 Erasable IFR Map 表,其中 FCCOB 字段用于您正在编程的索引。) 5.将 0x70 写入闪存状态寄存器(FSTAT),以清除上一个闪存命令中可能存在的任何错 误。(请注意,此命令必须是字节写操作。) 6.将 0x80 写入闪存状态寄存器(FSTAT)以启动已编程的闪存命令。 7.轮询 FSTAT 寄存器,直到 CCIF 位字段(位字段 7)为 1(‘1’)为止。(请注意, 用您 的脚本语言可能无法执行此操作,或者仅等待 flash 命令完成执行可能会更容易。在这 些情况下,等待时间比典型的 Program Index 命令完成时间 110us 长的多) 对 IFR 进行编程后,应回读 IFR 以验证其是否正确完成。其过程如下: 1.使用读取索引命令(0x41)写入 FCCOB0. 2.将 FCCOB1 写入要读取的索引。可能的索引列在“可擦写 IFR 映射“表中(K32L3A6 参 考手册中的表 16.4.1.2)。 3.用 0 写入 FCCOB2-FCCOBB。结果将存储在 FCCOB4-FCCOBB 中,因此,应清除这 些内容以确保收到正确的结果。 4.将 0x70 写入闪存状态寄存器(FSTAT),以清除上一个闪存命令中可能存在的任何 错误。注意,该命令必须是字节写入。 5.将 0x80 写入闪存状态寄存器(FSTAT)以启动已编程的闪存命令。 6.轮询 FSTAT 寄存器,直到 CCIF 位字段(位字段 7)为 1(‘1’)为止。(请注意,在您 的脚本语言中可能无法执行此操作,或者只是简单地等待 flash 命令完成执行可能会 更容易。在这些情况下,等待时间要比最长的读取索引命令完成时间 35us 长的多) 使用程序索引命令时,必须知道要修改哪个索引才能创建正确的 Flash 命令。索引列表可 以在 K32L3A60VPJ1AT 参考手册的 Flash 章节的 IFR 描述部分中找到。 有几种不同的选项可用于对 FORT 字段进行编程。这些选项是: 1.使用 Kinetis Flash 工具 2.使用 blhost 3.调试器脚本 4.用户软件中的子例程 选项#1: Kinetis Flash 工具 使用 Kinetis Flash Tool 可能是更改 IFR 值的·最方便的方法。 Kinetis 闪存工具使用 UART 或 USB 协议与 K32L3A6 引导加载程序接口并写入所需的 IFR 字段。 Kinetis Flash 工具的最大优 点之一是,它为用户提供了一个图形界面,可以轻松的对 IFR 字段进行编程。下图是 Kinetis Flash 工具的图片,并突出显示了对 IFR 字段进行编程时要使用的重要输入控件和选 项卡: 1.此字段是端口集框。他选择与引导加载程序通信时要使用的接口(UART 或 USB)。此 框还允许配置接口。有关默认配置,请查阅 K32L3A6 参考手册。 2.这是“Flash 实用工具”选项卡。选择此选项卡以查看此图像中显示的控件。 3.这是索引输入字段。应在此处输入要编程的 IFR 的索引。 4.这是十六进制数字字段。该值将在“索引”字段中指示的 IFR 索引处进行编程。此处的 值应为十六进制格式,而不能包含前面的“0x”。 5.这是字节计数字段。这告诉实用程序要编程多少个字节,并且必须是该 IFR 索引的值, 请参考参考手册中的“可擦除 IFR 映射表”。 6.这是程序按钮。填写完所有字段后,单击此按钮可以对所需的 IFR 位置进行编程。 选项#2: BLOHOST MCUBoot 软件包还包括一个命令行可执行文件,可与引导加载程序交互。该工具 blhost 还 可用于对 IFR 字段进行编程。“flash-program-once”命令应用与对所需的 IFR 位置进行编程。 该命令的语法如下: flash-program-once 因此,例如, 如果要使用 0xFFFFF3FF 编程 FOPT IFR 字段(记录索引 0x84),则使用此命令 的正确语法应为 flash-program-once 0x84 4 FFFFF3FF 编程后,“一次刷新读取”命令可用于回读并验证已编程的 IFR 字段。以下是使用以前的 IFR 位置的示例 flash-read-once 0x84 4 以下是使用 blhost 擦除设备,对 FOPT IFR 进行编程以及从命令行读回 FOPT IFR 的完整示 例。 选项#3:调试器脚本 简单的调试器脚本是写入 IFR 值的另一种便捷方式。调试器脚本在调试会话启动过程的后台 执行(因此是用户的隐藏操作),通常可以使用任何文本编辑器轻松地对其进行编辑。但是, 更改值可能更麻烦,因为这通常必须由用户在每次编程时手动完成。考虑到这一点,最好为 不同的配置使用不同的连接脚本 使用调试器脚本的第一步是编写调试器脚本。调试器脚本的功能和语法取决于您的工具链。 就本文档而言,我们将重点介绍 MCUXpresso IDE。 MCUXpresso IDE 使用与调试器无关的 PokeXX 和 PeekXX 命令(其中 XX 是 8、 16 或 32,具体取决于要对所需寄存器进行字节访 问,半字访问,还是字访问)。因此,无论您使用 JLink 或 CMSIS-DAP 进行调试,还是使用 任何其他调试器,在设备上运行的相同命令将继续起作用。下面是一个 MCUXpresso 连接脚 本示例,该脚本写入 FOPT 寄存器,然后将其读回以打印到调试日志。 5140 REM ====================Program FOPT=================================== 5150 poke32 this 0x40023004 0x43840000 5160 REM Stuff FCCOB registers with desired FOPT value 5170 Poke32 this 0x40023008 v% 5171 Print “New Val “;~s% 5180 Poke32 this 0x4002300c 0x00000000 5180 Poke8 this 0x40023000 0x70 5190 Poke8 this 0x40023000 0x80 5200 wait 1000 6000 REM ================== Read FOPT ===================================== 6001 REM Now read the FOPT back 6010 Poke32 this 0x40023004 0x41840000 6020 Poke32 this 0x40023008 0x00000000 6030 Poke32 this 0x4002300c 0x00000000 6040 Poke8 this 0x40023000 0x70 6050 Poke8 this 0x40023000 0x80 6060 wait 1000 6070 s% = Peek32 this 0x40023008 6080 Print "New FOPT Val ";~s% 请注意,在上面的脚本中, v%是所需的 FOPT 值,并且它已在未显示的脚本部分中定义 (第 164 行)。 162 REM This is the value to be written to the FOPT 164 v% = 0xfffff3ff 编写脚本后,必须告知 MCUXpresso 使用连接脚本。这是在“调试配置”窗口中完成的。假设 已创建调试配置,请单击绿色错误图标旁边的箭头,然后选择“调试配置”。 在出现的对话框中,选择要使用的调试配置,然后选择“Linkserver 调试”选项卡。在“连接脚 本”字段中,将 MCUXpresso 指向连接脚本的位置。 这就是在 IDE 中需要完成的所有工作。现在,所选的调试配置应使用编写的脚本。 一些调试器将允许脚本的独立命令行运行,例如 JLink 调试器。由于 JLink 是我们遇到的最 受欢迎的外部调试器之一,因此下面提供了使用此脚本进行编程的示例。 //现在对 FOPT 进行编程 w4 0x40023004, 0x43840000 //43 选择程序索引命令。 84 选择 FOPT IFR 字段。 //用我们要写入的 FOPT 值填充 FCCOB 寄存器(4-7)。 //**(启动设置) ** w4 0x40023008, 0xfffff3ff //写入 0xFFFF_1FFF 以从内部 Flash 引导 M4。声明 NMI 引 脚将强制从 ROM 引导。 //用伪值写入 FCCOB 寄存器 8-B。 w4 0x4002300c, 0x00000000 //写入 FSTAT 寄存器以清除可能存在的任何错误。 w1 0x40023000, 0x70 //启动 flash 命令。 w1 0x40023000, 0x80 //等待 flash 命令完成。 Sleep1 //现在读回 FOPT w4 0x40023004, 0x41840000 //43 选择程序索引命令。 84 选择 FOPT IFR 字段。 //用我们要写入的 FOPT 值填充 FCCOB 寄存器(4-7)。 //**(启动设置) ** w4 0x40023008, 0x00000000 //写入 0xFFFF_F1FF 以从内部 Flash 引导 M0+。声明 NMI 引脚将强制从 ROM 引导。 //用伪值写入 FCCOB 寄存器 8-B。 w4 0x4002300c, 0x00000000 //写入 FSTAT 寄存器以清除可能存在的任何错误。 w1 0x40023000, 0x70 //启动 flash 命令。 w1 0x40023000, 0x80 //等待 flash 命令完成。 Sleep1 //读回内存以验证重置后应该显示的 FOPT 设置。 mem32 40023000, 4 选项#4: 用户软件中的子例程 有时,系统的要求将阻止实施上述任何方法来对 IFR 值进行编程。在这种情况下,您可能需 要实现自己的子例程来对 IFR 进行编程。这样做的过程与调试器脚本方法基本相同,只是用 代码而不是外部脚本编写。要记住的一个关键是您可能需要擦除整个闪存。因此,此子例程 应放在 RAM 内存中。由于正在执行闪存操作,因此将其置于 RAM 中将防止发生某些闪存 错误。 结论 总之, IFR 寄存器是非易失性信息寄存器,用于控制 K32L3A MCU 的某些行为。 IFR 分为可 擦除 IFR 空间和不可擦除 IFR 空间,它们都不是主闪存阵列的一部分。对这些值进行编程需 要使用特殊的闪存命令,并且要求自上次批量擦除以来尚未写入这些值。通常,有四种不同 的编程 FOPT 寄存器设置的方法。四种方法是: 1.Kinetis Flash 工具 2.BLHost 命令行界面 3.调试器脚本 4.用户软件子程序 每种方法都有其优点,因此,您应该选择一种满足您需求并且最方便的方法。但是,无论选 择哪种方法,在写入可擦除 IFR 字段之前都不能对 IFR 值进行编程。在尝试对任何 IFR 字段 进行编辑之前,最好执行批量擦除(可以使用本文档中介绍的任何方法进行擦除)。 Technologies
View full article
Sensor Toolbox GUI インストーラ Rev.4.2.0.8 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 以下は、Sensor Toolbox GUIのリビジョン4.2.0.8のインストーラーファイルです <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 以下は、Sensor Toolbox GUIのリビジョン4.2.0.8のインストーラーファイルです 加速度センサ 圧力センサ タッチ・センサ
View full article