Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
Android 14 以降のパフォーマンスの問題 (フレームの不具合) こんにちは、 IMX8MP をベースにしたカスタム ボードを使用していますが、Android 11 から Android 14 にアップグレードしたときにパフォーマンスの問題がいくつか発生しました。デバイスの使用時に、トランジションやアニメーションが遅く感じることに気づきました。 評価のために、IMX8MP EVK ボードで同じテストを実行しました。デバイスの gfxinfo を調べたところ、 Janky フレーム、Number High 入力レイテンシ、および GPU パーセンタイルに大きな違いがあることがわかりました。 Android 11: Total frames rendered: 1372 Janky frames: 204 (14.87%) 50th percentile: 7ms 90th percentile: 34ms 95th percentile: 77ms 99th percentile: 200ms Number Missed Vsync: 91 Number High input latency: 274 Number Slow UI thread: 89 Number Slow bitmap uploads: 1 Number Slow issue draw commands: 61 Number Frame deadline missed: 145 50th gpu percentile: 2ms 90th gpu percentile: 3ms 95th gpu percentile: 3ms 99th gpu percentile: 4ms Android 14: Total frames rendered: 1136 Janky frames: 429 (37.76%) Janky frames (legacy): 600 (52.82%) 50th percentile: 29ms 90th percentile: 73ms 95th percentile: 113ms 99th percentile: 250ms Number Missed Vsync: 130 Number High input latency: 755 Number Slow UI thread: 254 Number Slow bitmap uploads: 3 Number Slow issue draw commands: 376 Number Frame deadline missed: 429 Number Frame deadline missed (legacy): 342 50th gpu percentile: 4ms 90th gpu percentile: 23ms 95th gpu percentile: 23ms 99th gpu percentile: 24ms Android 15: Total frames rendered: 1093 Janky frames: 318 (29.09%) Janky frames (legacy): 639 (58.46%) 50th percentile: 18ms 90th percentile: 97ms 95th percentile: 105ms 99th percentile: 109ms Number Missed Vsync: 221 Number High input latency: 1028 Number Slow UI thread: 145 Number Slow bitmap uploads: 0 Number Slow issue draw commands: 317 Number Frame deadline missed: 318 Number Frame deadline missed (legacy): 309 50th gpu percentile: 11ms 90th gpu percentile: 4950ms 95th gpu percentile: 4950ms 99th gpu percentile: 4950ms これは既知の問題ですか、それともこの問題を解決する方法についてのヒントはありますか? Android Re: Android 14+ performance issues (Janky frames) こんにちは@JK-dev 、 データをありがとうございます。社内で調査を行い、何か発見したらご連絡いたします。 Re: Android 14+ performance issues (Janky frames) こんにちは、 @JuanJorge_Mendoza さん、 A16とA13でテストをしました。 Android 16: Total frames rendered: 946 Janky frames: 414 (43.76%) Janky frames (legacy): 631 (66.70%) 50th percentile: 30ms 90th percentile: 113ms 95th percentile: 200ms 99th percentile: 350ms Number Missed Vsync: 180 Number High input latency: 764 Number Slow UI thread: 265 Number Slow bitmap uploads: 7 Number Slow issue draw commands: 384 Number Frame deadline missed: 414 Number Frame deadline missed (legacy): 366 50th gpu percentile: 11ms 90th gpu percentile: 4950ms 95th gpu percentile: 4950ms 99th gpu percentile: 4950ms Android 13: Total frames rendered: 1000 Janky frames: 284 (28.40%) Janky frames (legacy): 397 (39.70%) 50th percentile: 12ms 90th percentile: 69ms 95th percentile: 129ms 99th percentile: 250ms Number Missed Vsync: 122 Number High input latency: 446 Number Slow UI thread: 176 Number Slow bitmap uploads: 1 Number Slow issue draw commands: 242 Number Frame deadline missed: 284 Number Frame deadline missed (legacy): 248 50th gpu percentile: 3ms 90th gpu percentile: 23ms 95th gpu percentile: 24ms 99th gpu percentile: 4950ms Re: Android 14+ performance issues (Janky frames) こんにちは@JK-dev 、 はい、同じテストを実行して結果を転送してください。 よろしくお願いいたします。 フアン・ホルヘ Re: Android 14+ performance issues (Janky frames) こんにちは、 @JuanJorge_Mendoza さん、 返信ありがとうございます!Janky フレームのテストとして、システムを起動して 1 回再起動しただけで、初回起動時の最適化によって問題が発生しないようにし、設定アプリ内を移動しました。次に、次のように gfxinfo を読み取ります。 adb shell dumpsys gfxinfo これが有効なテストであるとおっしゃるなら、A12、A13、A16 で喜んで実行します。 Re: Android 14+ performance issues (Janky frames) こんにちは@JK-dev 、 いいえ、それは問題ではないはずです。 Janky フレームをテストするために使用したテストを共有していただけますか?また、可能であれば、A12 と A13 でも同じテストを実行していただけますか?問題がどこで発生し始めたのかを追跡するのに役立ちます。 よろしくお願いいたします。 フアン・ホルヘ Re: Android 14+ performance issues (Janky frames) こんにちは@danielchen 、 ディスプレイは 720p の解像度のみをサポートします。これは問題ではないと思います。 Re: Android 14+ performance issues (Janky frames) こんにちは@JK-dev どのようなディスプレイ解像度を使用していますか?これを下げると GPU/CPU 負荷が軽減され、全体的なパフォーマンスが向上するかどうかを確認してください。 Re: Android 14+ performance issues (Janky frames) @danielchen返信ありがとうございます。以前にもこの投稿を見たことがありますが、私の理解では、userdebug ビルドではなくユーザー ビルドを使用すれば問題はなくなるはずという意味ですが、実際はそうではありません。私たちにとっては、ユーザー イメージと userdebug イメージで同じようですが、システム全体でデバッグ可能をオフにする別の方法はありますか? Re: Android 14+ performance issues (Janky frames) こんにちは@JK-dev はい、これは Android 14 以降の i.mx8mp における既知の問題です。 Android 14 以降では、デバッグ アプリのより広範なトレースとメモリ トラッキングが有効になり、以前のバージョンと比較してレンダリングが 1.5 ~ 2 倍遅くなる CAN があります。これは、UI Thread、GPU スケジューリング、および入力レイテンシに影響します。 簡単な回避策と詳細については、以下のリンクを参照してください。 https://community.nxp.com/t5/i-MX-Processors-Knowledge-Base/Android-14 での低パフォーマンス/ta-p/1991262 よろしくお願いします。 ダニエル Re: Android 14+ performance issues (Janky frames) こんにちは@JK-dev 、 応答が遅くなり申し訳ありません。8MP の GUI を最適化するのにしばらく時間がかかりました。 パッチ「0001-MA-22638-Update-expected-present-time-to-optimize-re.patch」は、framework/native のリフレッシュ レートを最適化するために使用されます。vendor/nxp-opensource/imx にさらに2つのパッチを適用する必要があります。   問題が解決したかどうかお知らせください Re: Android 14+ performance issues (Janky frames) こんにちは、 @JuanJorge_Mendoza さん、 返事が遅くなってごめんなさい。休暇中でした。パッチをありがとうございます!パッチをテストしたところ、ナビゲーション時に若干の改善が見られることがわかりました。ただし、負荷が高かったり、アニメーションが増えたりすると、システムは非常に遅くなり、ほとんどのフレームが非常に遅れて到着します。これを再現するには、たとえば、「設定」->「アプリ」->「すべてのアプリ」->「システムアプリを含める」に移動して、そのリストをスクロールします。フレームの 50% 以上が遅れていることがわかります。 Re: Android 14+ performance issues (Janky frames) 負荷が高かったり、アニメーションが増えたりすると > 前より悪くなりましたか?このパッチを使用した場合と使用しない場合の具体的なパフォーマンス比較データはありますか? Re: Android 14+ performance issues (Janky frames) こんにちは@joanxie 、 いいえ、パフォーマンスは以前より少し良くなっています。 パッチなしの場合: Total frames rendered: 1015 Janky frames: 376 (37.04%) Janky frames (legacy): 731 (72.02%) 50th percentile: 31ms 90th percentile: 150ms 95th percentile: 200ms 99th percentile: 400ms Number Missed Vsync: 262 Number High input latency: 1167 Number Slow UI thread: 368 Number Slow bitmap uploads: 1 Number Slow issue draw commands: 26 Number Frame deadline missed: 376 Number Frame deadline missed (legacy): 386 50th gpu percentile: 4ms 90th gpu percentile: 11ms 95th gpu percentile: 11ms 99th gpu percentile: 12ms パッチを適用すると: Total frames rendered: 2078 Janky frames: 594 (28.59%) Janky frames (legacy): 1050 (50.53%) 50th percentile: 21ms 90th percentile: 133ms 95th percentile: 200ms 99th percentile: 400ms Number Missed Vsync: 367 Number High input latency: 2045 Number Slow UI thread: 567 Number Slow bitmap uploads: 4 Number Slow issue draw commands: 68 Number Frame deadline missed: 594 Number Frame deadline missed (legacy): 580 50th gpu percentile: 4ms 90th gpu percentile: 11ms 95th gpu percentile: 11ms 99th gpu percentile: 12ms ご覧のとおり、パッチにより Janky フレームの数が減り、50% パーセンタイルも改善されましたが、まだ十分ではありません。 Re: Android 14+ performance issues (Janky frames) 操作は UI 経由で行いましたか? はいの場合、スクリプトや特定の手順はありますか?その後、Androidチームに転送してさらに検証とデバッグを行うことができます Re: Android 14+ performance issues (Janky frames) こんにちは@joanxie 、 基本的には以前行ったテストと同じものです。Android チームにとって十分なテストとは何でしょうか? Re: Android 14+ performance issues (Janky frames) 彼らは、パフォーマンステストを実行して詳細なパフォーマンス低下データを表示するスクリプトを提供してもらい、それを再現してもらいたいと思っています。なぜなら、彼ら側では同じ問題が見つからないからです。 Re: Android 14+ performance issues (Janky frames) この問題には解決策があります。 https://www.linkedin.com/posts/kalkov_embeddedandroid-nxp-aosp-share-7490309949391089664-ifxq/?utm_source=share&utm_medium=member_desktop&rcm=ACoAADU1d0wBcGPG6tNYlHxJaSFzHqMEI3XBUJY https://emteria.com/blog/nxp-imx8m-plus-android-scroll-fix
記事全体を表示
i.MX8MP_EVK:YOCTO 编译错误 do_package()(问题:tar & *at()) 您好, 以下是我的 Yocto 构建参数: 发布版本: imx-linux-walnascar 电路板支持包 版本: imx-6.12.49-2.2.0 机器: imx8mpevk 发行版: fsl-imx-xwayland 过去几个月我一直成功地使用这个版本环境。然而,我突然开始遇到附件中的错误。 为了排查问题,我彻底清理了构建环境,重新初始化了代码仓库( repo init ),再次同步了所有内容,并执行了一次全新的构建。但遗憾的是,问题依旧存在。 请查阅附件中的日志文件。我希望您能帮忙找出根本原因并提出解决方案。 i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) bitbake imx-image-core Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) 你使用的是哪个“bitbake 命令”? 我会进行核实。 Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) 感谢您的反馈, 我已检查过我的构建环境,它已经与您推荐的配置相符。 主机操作系统: Ubuntu 22.04.5 LTS (Jammy) GNU tar 版本: GNU tar 1.34 $ cat /etc/os-release PRETTY_NAME="Ubuntu 22.04.5 LTS" ... $ tar --version tar(GNU tar)1.34 然而,我仍然遇到同样的故障。 Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) 请检查 tar 版本,如果主机是 Ubuntu 24.04,而 tar 版本是 1.35。 在容器或虚拟机内构建: Ubuntu 22.04 LTS GNU tar 1.34 Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) 请查收以下文件, 这里我粘贴一些错误信息。 调试:正在执行 Python 配方 extend_recipe_sysroot 注意:直接依赖项为 ['/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/binutils/binutils-cross_2.44.bb:do_populate_sysroot', '/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/gcc/gcc-cross_14.3.bb:do_populate_sysroot','/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/quilt/quilt-native_0.68.bb:do_populate_sysroot', '/home/vvdn/LWT_Build/sources/poky/meta/recipes-kernel/kern-tools/kern-tools-native_git.bb:do_populate_sysroot','virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-core/coreutils/coreutils_9.6.bb:do_populate_sysroot','virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/bison/bison_3.8.2.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/dwarfsrcfiles/dwarfsrcfiles.bb:do_populate_sysroot','virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/flex/flex_2.6.4.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/patch/patch_2.7.6.bb:do_populate_sysroot','virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/pkgconfig/pkgconfig_git.bb:do_populate_sysroot','virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/pseudo/pseudo_git.bb:do_populate_sysroot','virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-devtools/rpm/rpm_4.20.0.bb:do_populate_sysroot', 'virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-extended/bc/bc_1.08.1.bb:do_populate_sysroot','virtual:native:/home/vvdn/LWT_Build/sources/poky/meta/recipes-kernel/kmod/kmod_34.1.bb:do_populate_sysroot'] 注意:已安装到系统根目录:[] 注意:由于 sysroot 中已存在以下软件包,因此跳过:['gettext-minimal-native', 'binutils-cross-aarch64', 'cmake-native', 'gcc-cross-aarch64', 'libtool-native', 'm4-native', 'quilt-native', 'texinfo-dummy-native', 'kern-tools-native', 'linux-libc-headers', 'file-native', 'openssl-native', 'coreutils-native', 'expat-native', 'ncurses-native', 'readline-native', 'util-linux-libuuid-native', 'zlib-native', 'bison-native', 'dwarfsrcfiles-native', 'elfutils-native', 'flex-native', 'git-native'、'gnu-config-native'、'json-c-native'、'libedit-native'、'lua-native'、'make-native'、'patch-native'、'perl-native'、'pkgconfig-native'、'pseudo-native'、'python3-native'、'rpm-native'、'bc-native'、'bzip2-native'、'libarchive-native'、'libidn2-native'、'lzlib-native'、'xz-native'、'zstd-native'、'kmod-native'、'acl-native'、'attr-native'、'curl-native'、'gdbm-native'、'gmp-native'、'gnutls-native' 'libtasn1-native', 'libcap-native', 'libffi-native', 'libgcrypt-native', 'libgpg-error-native', 'libmicrohttpd-native', 'libmpc-native', 'libunistring-native', 'mpfr-native', 'nettle-native', 'p11-kit-native', 'popt-native', 'sqlite3-native'] 调试:Python 函数 extend_recipe_sysroot 已完成 调试:正在执行 Python 函数 sstate_task_prefunc 调试:Python 函数 sstate_task_prefunc 已完成 调试:正在执行 Python 函数 do_package 调试:正在执行 Python 函数 package_setup_pkgv 调试:Python 函数 package_setup_pkgv 已完成 调试:正在执行 Python 函数 package_convert_pr_autoinc 调试:Python 函数 package_convert_pr_autoinc 已完成 调试:正在执行 Python 函数 package_prepare_pkgdata 注意:已安装到 pkgdata-sysroot:[] 调试:Python 函数 package_prepare_pkgdata 已完成 调试:正在执行 Python 函数 perform_packagecopy 错误:执行 exec_func_python() 自动生成的 Python 函数时出错: 导致此异常/失败的 Python 调用堆栈跟踪如下: 文件:'exec_func_python() autogenerated',行号:2,函数: 0001: *** 0002:perform_packagecopy(d) 0003: 文件:'/home/vvdn/LWT_Build/sources/poky/meta/classes-global/package.bbclass',行号:363,函数:perform_packagecopy 0359: rpath_replace (dvar, d) 0360:} 0361:perform_packagecopy[cleandirs] = "${PKGD} " 0362:perform_packagecopy[dirs] = "${PKGD} " *** 0363: 0364:python populate_packages() { 0365: oe.package.populate_packages(d) 0366:} 0367:populate_packages[dirs] = " ${D} " 文件:'/usr/lib/python3.10/subprocess.py'行号:421,函数:check_output 0417:否则: 0418:空 = b'' 0419: kwargs['input'] = 空 0420: *** 0421: 返回 run(*popenargs, stdout=PIPE, timeout=timeout, check=True, 0422: **kwargs).stdout 0423: 0424: 0425:class CompletedProcess(object): 文件:'/usr/lib/python3.10/subprocess.py'lineno: 526, function: run 0522: # 我们不调用 process.wait()作为。 __exit__它能帮我们做到这一点。 0523:提高 0524: retcode = process.poll() 0525:如果检查并返回代码: *** 0526: 引发 CalledProcessError(retcode, process.args, 0527: output=stdout, stderr=stderr) 0528: 返回 CompletedProcess(process.args, retcode, stdout, stderr) 0529: 0530: 异常:subprocess.CalledProcessError:命令“tar --exclude=./sysroot-only”-cf - -C /home/vvdn/LWT_Build/build/tmp/work/imx8mpevk-poky-linux/linux-imx/6.12.34+git/image -p -S .| tar -xf - -C /home/vvdn/LWT_Build/build/tmp/work/imx8mpevk-poky-linux/linux-imx/6.12.34+git/package' 返回非零退出状态 2。 子进程输出: 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径库 无法为“lib”分配绝对路径。 tar:./usr/lib:无法创建目录:地址错误 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径库 无法为“lib”分配绝对路径。 获取到未知目录的 *at() 系统调用,文件描述符为 4 文件描述符 4 的未知基本路径,路径库 无法为“lib”分配绝对路径。 tar:./usr/lib:无法创建目录:地址错误 tar:./usr/lib/modules:无法创建目录:没有该文件或目录 Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) 我似乎没有权限下载该附件。 请您再发送一次好吗? Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) 嗨@yipingwang 期待您能尽快提供调试方面的支持。 Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) 在你的 Ubuntu 电脑上,使用命令“sudo apt install tar=1.34+dfsg-1build3” Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) @Sanjiv_Mns这个问题解决了吗? Re: i.MX8MP_EVK: YOCTO Compilation Error do_package() (Issue: tar & *at()) 嗨@abannish 请尝试以下命令,对我有用…… wget http://archive.ubuntu.com/ubuntu/pool/main/t/tar/tar_1.34+dfsg-1build3_amd64.deb sudo dpkg -i tar_1.34+dfsg-1build3_amd64.deb sudo apt-mark hold tar
記事全体を表示
S32K312温度传感器读数不准确 您好,NXP团队, 我正在研究S32K312内部温度传感器,需要帮助解决温度读数不正确的问题。 我已查阅过类似的帖子并确认了基本配置,但ADC结果并未反映环境温度。 我目前已经完成了以下工作: (1)已启用 TEMPSENSE 时钟 -附截图 SunLucas_0-1784265425989.png (2) ADC配置 ADC实例:ADC0 通道:温度传感器(TEMPSENSE) 触发模式:软件触发 SunLucas_1-1784265855587.png (3)测量程序 定期启动ADC转换 等待转换完成标志 读取ADC数据寄存器 SunLucas_3-1784266057594.png (4)结果 然而,转换后的温度值与实际环境温度不符。 SunLucas_4-1784266156349.png 非常感谢您能提供关于 S32K312 温度传感器的任何指导、说明或参考代码。   感谢您的支持!   顺祝商祺! Re: S32K312 temperature sensor inaccurate reading 您好@SunLucas 温度通道需要相对较长的采样时间,最小采样时间为 1.2 微秒。 因此,请检查采样时间设置。 Re: S32K312 temperature sensor inaccurate reading 我进一步将ADC电压参考值切换到0x50 ,但问题仍然存在: 温度读数与环境温度( 28°C )有明显偏差。 通过 API 获取的温度数据表现出严重的波动,如附图所示。 SunLucas_2-1784276930276.png SunLucas_1-1784276815975.png Re: S32K312 temperature sensor inaccurate reading 您好@SunLucas 然后,您应该将TempSense 电压供应设置为:5V * 16 = 0x50 Re: S32K312 temperature sensor inaccurate reading TempSense电压供应配置为0x58,硬件VDD_HV_A供电电压为5V SunLucas_1-1784274126228.png Re: S32K312 temperature sensor inaccurate reading 您好@SunLucas 请检查“TempSense 电压供应”,并告诉我您当前硬件的 VDD_HV_A 供电电压是多少。 Re: S32K312 temperature sensor inaccurate reading 您好@SunLucas 你可以把你的 EB 配置文件发给我,我帮你检查一下。 需要注意两点:第一,温度传感器的参考电压必须与板载 VDD_HV_A 匹配;第二,采样时间。一旦你确认了这两点正确无误,那么本模块就没有其他需要注意的事项了。 Re: S32K312 temperature sensor inaccurate reading 我已将采样时分比从 2 改为 4,但采集到的温度数据仍然不正确。请帮我找出根本原因。详细配置如下: SunLucas_0-1785819399965.png SunLucas_1-1785819416950.png SunLucas_2-1785819429465.png SunLucas_3-1785819445393.png
記事全体を表示
Feedback on UI editor bugs in GUI Guider v2.0.0 I encountered several bugs while using GUI Guider v [your version number] that affected development efficiency, and I would like to report them to the development team: Drag and drop layouts, resulting in layout loss: When I drag controls in the UI editor to adjust the layout, the operation occasionally fails, and the latest layout changes are lost, causing the interface to revert to its previous state. Duplicate and unremovable control names: During operation, sometimes multiple controls with identical names may appear, and these controls cannot be deleted via the right-click menu or the Delete key. The only solution is to log back into the software; only then will these "ghost" controls disappear.
記事全体を表示
S32K324 FlexIO SPI 主控仿真(S32DS 3.5 / RTD 4.0.0) 你好, 我正在配置 S32K324 上的 FlexIO 模拟 SPI 主设备,使其与外部 SPI 从设备通信。由于我们定制电路板上的走线布局,指向该设备的物理线路连接到了芯片的默认 FlexSPI0 引脚。因此,我必须使用模拟的 Flexio_Spi 驱动程序栈。 这是我的配置 BUS_FLEXSPI0_UP_SBC_CS PTD8 fxio_d11 BUS_FLEXSPI0_UP_SBC_CLK PTD9 fxio_d0 BUS_FLEXSPI0_UP_SBC_MOSI PTD15 fxio_d10 BUS_FLEXSPI0_UP_SBC_MISO PTD22 fxio_d27 我的环境: IDE:S32 平台的 S32 设计工作室(版本:3.5,内部版本号:240726 更新 13) CPU:S32K324 SDK:实时驱动程序 (RTD) 版本 4.0.0(正式版) NXP 是否有官方的应用笔记或指南专门介绍 RTD 4.0.0 的端到端集成堆栈?我需要一份参考,引用,内容涵盖从工具中分配引脚、映射移位器/定时器,到在主应用程序代码中初始化驱动程序的所有内容。 Re: S32K324 FlexIO SPI Master Emulation (S32DS 3.5 / RTD 4.0.0 ) 你好@Kazarian , 据我所知,目前还没有**专用的**应用笔记描述如何将 FlexIO 模拟的 SPI 完整地集成到 S32K324 和 RTD 4.0.0 中,并采用这种精确的引脚分配。 最接近的官方参考资料是 S32K3 RTD 软件包中包含的示例项目。请查看与 Lpspi_Flexio_Ip_Transfer_S32K344 类似的 RTD 示例。 本示例演示了基于 FlexIO 的 SPI 传输的预期 RTD 集成流程,包括 FlexIO SPI 驱动程序初始化以及 LPSPI 和 FlexIO SPI 实例之间的关系。   对于您的定制板,需要调整的主要要点如下(作为一般性指导): 引脚配置 在“引脚”工具中将列出的引脚配置为 FlexIO 信号: PTD8 → FXIO_D11,片选 PTD9 → FXIO_D0,时钟 PTD15 → FXIO_D10,MOSI PTD22 → FXIO_D27,MISO 请确保 MISO 引脚已启用输入缓冲。 另外,请查看 S32K324 IOMUX/引脚图文档,确认这些 FlexIO 功能是否适用于您的特定封装。 FlexIO SPI 配置 在 FlexIO SPI 配置中,应将 SPI 信号映射到相应的 FlexIO 引脚编号,而不仅仅是物理 MCU 引脚: SCK = FXIO_D0 MOSI = FXIO_D10 CS = FXIO_D11 MISO = FXIO_D27 根据生成的配置,分配所需的 FlexIO 定时器和移位器。 顺祝商祺! 帕维尔
記事全体を表示
問題:CONFIG_IMX_RPMSG_TTYモジュールとして構築されているのに、Androidをフラッシュした後に「セットされていない」と表示されます こんにちは、NXP チームの皆様、 私は Android 16 BSP を搭載した i.MX8M Mini LPDDR4 EVK を開発中 で、Cortex-A53とCortex-M4間のRPMsg通信を有効にしようとしています。 設定 カーネル設定でNXP RPMsg TTYドライバーを有効にしました: CONFIG_IMX_RPMSG_TTY=m SharedBoardConfig.mkにもモジュールを追加しました。 $(KERNEL_OUT)/drivers/rpmsg/imx_rpmsg_tty.ko モジュールは正常にビルドされました。 生成されたカーネル設定により、有効になっていることが確認できます。 grep CONFIG_IMX_RPMSG_TTY out/target/product/evk_8mm/obj/KERNEL_OBJ/.config 出力: CONFIG_IMX_RPMSG_TTY=m モジュールも正常に生成されました。 out/target/product/evk_8mm/vendor_dlkm/lib/modules/imx_rpmsg_tty.ko そしてAndroidイメージにパッケージ化されています。 実行時観測 ボードにファームウェアを書き込んだ後、実行中のカーネル構成ではRPMsgモジュール構成が報告されません。 adb shell zcat /proc/config.gz | grep RPMSG 出力: CONFIG_GKI_HIDDEN_RPMSG_CONFIGS=y # CONFIG_RPMSG_WWAN_CTRL is not set # CONFIG_RPMSG_TTY is not set # CONFIG_SND_SOC_FSL_RPMSG is not set CONFIG_RPMSG=y CONFIG_RPMSG_CHAR=y # CONFIG_RPMSG_CTRL is not set # CONFIG_RPMSG_NS is not set # CONFIG_RPMSG_QCOM_GLINK_RPM is not set # CONFIG_RPMSG_VIRTIO is not set また、 adb shell zcat /proc/config.gz | grep IMX_RPMSG 何も出力しません。 しかし、対応するRPMsgモジュールは正常にロードされます。 lsmod | grep -i rpmsg 出力: snd_soc_imx_rpmsg snd_soc_rpmsg_ak4497 imx_audio_rpmsg snd_soc_fsl_rpmsg imx_pcm_rpmsg i2c_rpmsg_imx virtio_rpmsg_bus rpmsg_ns これは、モジュールが正しくビルドされロードされているものの、 /proc/config.gzにその設定が反映されていないことを示しています。 質問 Android 16 BSPの/proc/config.gzは、ベンダーモジュール構成ではなく、基本のGKIカーネル構成のみを反映することは期待されますか? imx_rpmsg_tty.koがビルド・パッケージされているのに、なぜCONFIG_IMX_RPMSG_TTY=mが/proc/config.gzに表示されないのでしょうか? 実行中のカーネル構成にベンダーモジュールオプションを含めるには、追加の設定が必要ですか? この挙動はAndroid GKIやvendor_dlkmモジュールのパッケージングに関係しているのでしょうか? ご説明いただければ幸いです。 Android i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: Issue: CONFIG_IMX_RPMSG_TTY is built as a module but appears as "not set" after flashi こんにちは@vp1 お元気でお過ごしのことと思います。 どのデバイスツリーを使っているのか教えていただけますか? imx8mm-evk-rpmsg.dtsを使ってみてもらえますか? よろしくお願いいたします。 サラス。 Re: Issue: CONFIG_IMX_RPMSG_TTY is built as a module but appears as "not set" after flashi こんにちは、 @Manuel_Salas さん。 ご返信ありがとうございます。 現在、私のAndroid AOSPビルドはデバイスツリーimx8mm-evk.dtsを使っています。imx8mm-evk-rpmsg.dtsも利用可能で、うまく構築されているようです。 起動時にimx8mm-evk.dtsではなくimx8mm-evk-rpmsg.dtsを使うようにAndroidビルドの設定方法を教えていただけませんか? Android BSP、U-Boot、またはimx-mkimageで、どのデバイスツリーをパッケージして読み込むかを選べる特定の設定はありますか? ご指導ありがとうございました。 よろしくお願いします、 ヴィカス・パティル
記事全体を表示
S32K312温度センサの不正確な読み取り NXPチームの皆様、こんにちは。 S32K312内部温度センサーの作業をしていて、誤った温度表示の助けが必要です。 似たようなスレッドを見て基本的な構成を確認しましたが、ADCの結果は周囲温度を反映していません。 これまでにやったこと: (1) TEMPSENSEクロック有効 -スクリーンショット添付 SunLucas_0-1784265425989.png (2) ADC構成 ADCインスタンス: ADC0 チャネル:温度センサ(TEMPSENSE) トリガーモード:ソフトウェアトリガー SunLucas_1-1784265855587.png (3)測定手順 定期的にADC変換を開始する 変換完了フラグを待機します ADCデータレジスタを読み取る SunLucas_3-1784266057594.png (4)結果 しかし、変換された温度値は実際の周囲温度と一致しません。 SunLucas_4-1784266156349.png S32K312温度センサに関するご説明や説明、参照コードがあれば大変ありがたいです。   ごサポートありがとうございます!   よろしくお願いいたします。 Re: S32K312 temperature sensor inaccurate reading こんにちは、@ SunLucas 温度チャネルは比較的長いサンプリング時間を必要とし、最低でも1.2マイクロ秒です。 したがって、サンプリング時間の設定を確認してください。 Re: S32K312 temperature sensor inaccurate reading さらにADC電圧の基準を 0x50に切り替えましたが、問題は解決しません。 温度測定値は周囲温度( 28℃ )から大きく乖離している。 API経由で取得した温度データは、添付のグラフに示すように、大きな変動を示しています。 SunLucas_2-1784276930276.png SunLucas_1-1784276815975.png Re: S32K312 temperature sensor inaccurate reading こんにちは、@ SunLucas 次に、 TempSenseの電圧供給を5V * 16 = 0x50に設定してください。 Re: S32K312 temperature sensor inaccurate reading TempSenseの電源電圧は0x58に設定されており、ハードウェアのVDD_HV_A電源電圧は5Vです。 SunLucas_1-1784274126228.png Re: S32K312 temperature sensor inaccurate reading こんにちは、@ SunLucas 「TempSense電圧供給」を確認し、現在お使いのハードウェアのVDD_HV_A供給電圧を教えてください。 Re: S32K312 temperature sensor inaccurate reading サンプリング時間分割比を2から4に変更しましたが、収集した温度データは依然として不正確です。根本原因の特定にご協力ください。詳細な設定は以下のとおりです。 SunLucas_0-1785819399965.png SunLucas_1-1785819416950.png SunLucas_2-1785819429465.png SunLucas_3-1785819445393.png Re: S32K312 temperature sensor inaccurate reading こんにちは、@ SunLucas あなたのEB設定ファイルを送ってください。私が確認します。 注意すべき点は2つあります。まず、テンパーセンサーの基準電圧がオンボードVDD_HV_Aと一致しなければなりません。次に、サンプリング時間です。この2つの点が正しいことを確認したら、このモジュールに関して他に注意すべき点はありません。
記事全体を表示
问题:CONFIG_IMX_RPMSG_TTY 已构建为模块,但在刷写 Android 系统后显示为“未设置”。 您好,NXP团队: 我正在使用i.MX8M Mini LPDDR4 EVK开发Android 16 电路板支持包。,并尝试在 Cortex-A53 和 Cortex-M4 之间启用 RPMsg 通信。 配置 我在内核配置中启用了NXP RPMsg TTY驱动程序: CONFIG_IMX_RPMSG_TTY=m 我还将该模块添加到了SharedBoardConfig.mk 文件中: $(KERNEL_OUT)/drivers/rpmsg/imx_rpmsg_tty.ko 模块构建成功。 生成的内核配置确认该功能已启用: grep CONFIG_IMX_RPMSG_TTY out/target/product/evk_8mm/obj/KERNEL_OBJ/.config 输出: CONFIG_IMX_RPMSG_TTY=m 模块也已成功生成: out/target/product/evk_8mm/vendor_dlkm/lib/modules/imx_rpmsg_tty.ko 并代码包,软件包到 Android 镜像中。 运行时观察 刷写板后,运行中的内核配置不报告 RPMsg 模块配置。 adb shell zcat /proc/config.gz | grep RPMSG 输出: CONFIG_GKI_HIDDEN_RPMSG_CONFIGS=y # CONFIG_RPMSG_WWAN_CTRL is not set # CONFIG_RPMSG_TTY is not set # CONFIG_SND_SOC_FSL_RPMSG is not set CONFIG_RPMSG=y CONFIG_RPMSG_CHAR=y # CONFIG_RPMSG_CTRL is not set # CONFIG_RPMSG_NS is not set # CONFIG_RPMSG_QCOM_GLINK_RPM is not set # CONFIG_RPMSG_VIRTIO is not set 还, adb shell zcat /proc/config.gz | grep IMX_RPMSG 没有返回任何输出。 但是,相应的 RPMsg 模块已成功加载: lsmod | grep -i rpmsg 输出: snd_soc_imx_rpmsg snd_soc_rpmsg_ak4497 imx_audio_rpmsg snd_soc_fsl_rpmsg imx_pcm_rpmsg i2c_rpmsg_imx virtio_rpmsg_bus rpmsg_ns 这表明模块已正确完成版本构建并加载,但/proc/config.gz没有反映它们的配置。 问题 是否预期 /proc/config.gz 在 Android 16 电路板支持包。上只反映基本的 GKI 内核配置,而不反映供应商模块配置? 为什么CONFIG_IMX_RPMSG_TTY=m在/proc/config.gz中仍然看不到,即使imx_rpmsg_tty.ko已构建为版本并打包为代码包,软件包? 运行内核配置是否需要额外配置才能包含供应商模块选项? 这种行为是否与 Android GKI 和vendor_dlkm模块打包有关? 任何解释都将不胜感激。 Android i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Re: Issue: CONFIG_IMX_RPMSG_TTY is built as a module but appears as "not set" after flashi 你好@vp1 希望你一切都好。 请问您使用的是哪种设备树? 请尝试使用imx8mm-evk-rpmsg.dts文件。 顺祝商祺! 萨拉斯。 Re: Issue: CONFIG_IMX_RPMSG_TTY is built as a module but appears as "not set" after flashi 嗨@Manuel_Salas , 感谢您的反馈, 目前,我的 Android AOSP 构建正在使用设备树 imx8mm-evk.dts。我可以看到 imx8mm-evk-rpmsg.dts 也可用,并且构建成功。 请问如何配置 Android 构建,使其在启动时使用 imx8mm-evk-rpmsg.dts 而不是 imx8mm-evk.dts? Android BSP (电路板支持包)、U-Boot 或 imx-mkimage 中是否有任何特定配置来选择打包和加载哪个设备树? 感谢您的指导。 此致, 维卡斯·帕蒂尔
記事全体を表示
[S32G3]LLCECANのCan_SharedMemoryワード0で異常値が発生しました。 NXPのエキスパートの皆様、こんにちは。 私たちのプロジェクトにおけるLLCE CAN 機能に異常がありました。時折、送信は正常なのにECUから報告された特定のCANメッセージの受信に問題が起きました。デバッグの結果、CAN割り込みは通常通りトリガーできることが判明しましたが、u32Word0の読み取りはCan_SharedMemoryから0x18008から0x1800fに変わり、異常な値でした。計算されたu32MbMessageIdは0でした。これによりメッセージが失われました。 RxMbDescIdxには値があり、変化していました。また、word1は0になることもありましたが、これも変化していました。この状況は断続的に起こり、影響を受けたCANラインもランダムでした。 この状況の分析にご協力ください。デバッグ用のスクリーンショットを以下に添付します。次のデバッグ手順はどのように進めればよいでしょうか?あるいは、どのような解決策がありますか? LLCEのバージョンは1.0.10です。 。 LLCE_Abnormal.png Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. こんにちは、 canhe お問い合わせいただきありがとうございます。 もう少し詳しく教えていただけますか? 1. あなたはどのバージョンのRTDを使用していますか? 2. 自分でボードやソフトウェアを使っていますか? BR ジョーイ Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. こんにちは、 canhe   承知いたしました。ご質問の優先順位を上げさせていただきます! 1. 受け取ったCANフレームは外部デバイスから来たものか、それともCANoeデバイスからのものか教えていただけますか?受信はCANフレームですか、それともCANFDフレームですか? 2. 設定されたボーレートは何ですか?どのポートを使用していますか? 3.フレームは内部コアで処理されますか、それともCAN2CAN経由でルーティングされますか? BR ジョーイ Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. NXPのエキスパートの皆様、こんにちは。 情報同期:異常な状況では、Can_Llce_GetControllerModeを通じてコントローラーの状態を「スタート」と読み取り、Can_43_LLCE_SetControllerModeインターフェースを通じて「停止>開始」の切り替えを実行します。異常なCANは回復可能です。word0の値から判断すると、LLCEの内部DTEカーネルが共有メモリにデータを転送する際にエラーが発生したようです。 現在、異常発生確率は依然として約20 %-30%とかなり高い。当チームは関連する秘密保持契約書に署名済みです。この問題の処理を優先していただけますか? Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. こんにちは、ジョーイ お返事ありがとうございます。この問題は、デバッグコードを追加する前に発生していました。具体的な原因を確認するために、デバッグコードを追加しました。デバッグコードは、特定の状態を読み取るだけです。共有メモリの値が異常なようです。パッチが提供されました。 Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. こんにちは、 Can_Llce_ProcessRxMbに何らかの変更を加えたようですね。変更前に何か問題はありましたか?修正されたコードを教えてもらえますか? Joey_z_0-1785135823536.png BR ジョーイ Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. こんにちは、ジョーイ 1.バスの乗車率は40%から50%の間で、それほど高いとは言えない。 2. BCAN_RXFIFO_OVERRUNは異常な状況下で発生していますが、正常動作時にもこの通知を確認しています。 3. 現在、LLCEにはルーティング機能は有効になっていません。ホストにデータを転送するだけです。使用されるフレームのほとんどはCAN FDであり、少数のCANフレームも存在します。 Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. こんにちは、 canhe 情報提供ありがとうございます。 問題に直面したシナリオ 1.In、CANバスのバス負荷はどれくらいでしたか?バスの乗車人数は多すぎますか? 2.フレーム損失が発生した場合、通知にはエラーが表示されますか?エラーメッセージが表示された場合は、私にお知らせください。 Joey_z_0-1785211817403.png 3. エラーはいつ発生しますか?ルーティング処理中ですか、それともフレームがホストに送信されるときですか?使われているのはCANフレームですか、それともCAN FDフレームですか? BR ジョーイ Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. こんにちは、 canhe 1.バス負荷を軽減するテストを行い、問題のあるフレームの頻度が減少するかどうかを観察します。 2.また、画像に示されているパラメータの数値を増やしてみてください。 Joey_z_0-1785313583389.png BR ジョーイ Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. こんにちは、ジョーイ お返事ありがとうございます。負荷率を下げて、再度テストを実施します。2つ目の点として挙げられたMBサイズについてですが、20から300に増やしてみましたが、それでも異常が見られました。 さらに、LLCEには共有メモリの処理に関する内部ロジックがあるかどうかご存知ですか?「word0」フィールドに異常値が発生するのはどのような状況下でしょうか?例えば、「word1」の値が「word0」に書き込まれる場合。 Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. こんにちは、ジョーイ 1.受信したCANフレームは外部ECUから送信されました。現在、この異常はCANOE装置を用いたシミュレーションにより、試験台上で再現されている。実際には、どちらの状況でも異常事態が発生している。受信メッセージの大部分はCANFDフレームであり、少数はCANフレームです。 2. アービトレーションセグメントのボーレートは500k、データセグメントは2M、サンプリングレートは80%に設定されます。コントローラはBCAN1-BACN5を使用しています。 3. フレームは内部コアによって処理されます。 Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. こんにちは、 canhe 詳細な情報を提供していただきありがとうございます。 皆さんは受信フレーム操作にBCAN1-BACN5を使用していますか? 私はあなたと同じバージョンのLLCEと設定を使用して1つのポートで受信テストを行いましたが、あなたと同様のエラーは発生しませんでした。 Joey_z_0-1785405650366.png BR ジョーイ Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. こんにちは、ジョーイ 主にBCAN1〜BCAN3を使ってほとんどのアプリケーションメッセージフレームを受け取ります。BCAN4は現在、データの送受信に対応していません。BCAN5は内部バスにコネクテッドされ、少数のメッセージを送信します。 Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. こんにちは、ジョーイ 助けてくれてありがとう。この事件は完了しました。追跡番号は00997151です。 Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. こんにちは、 canhe 下記のリンクからケースを作成してください。 https://support.nxp.com この問題については、関連するCASE情報を記入してください。ソフトウェアチームやLLCEの専門家に内部チャネルを通じて連絡するお手伝いをいたします。 BR ジョーイ Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. こんにちは、 canhe 以前のテストによると。 CANバスロードを減らして単一のCANチャネルを使うことには問題が起きませんか? BR ジョーイ Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. こんにちは、ジョーイ 現地のサポートや中国のオンラインサポートのために、現地のFAE(フィールドアプリケーションエンジニア)に連絡するのが都合が良いかお伺いしてもよろしいでしょうか?これは問題をより迅速に解決するのに役立つと思います。
記事全体を表示
Flash 配置混乱 RT1176 八路 DDR 您好,恩智浦 我在配置Macronix Octal DDR模式的闪存时遇到了一些问题。 我正在基于 NXP FMU-6XRT 参考设计的定制板上使用 PX4 代码栈。我使用的是 MX25UM51245G 而不是 MX25UM51345G,但这两个部件之间的差异很小。 我尝试在 Macronix 八进制 DDR 模式下运行它,并启用 DQS 外部采样,采样频率至少为 100MHz。参考设计运行频率为 200MHz。启动内存配置即使在 166MHz 的频率下也能成功测试所需配置的内存。 我尝试的配置是以下默认配置。第一个程序“g_flash_config”可以成功启动、写入、读取等,但对于软件来说并不理想。"g_flash_fast_config" 失败。 我尝试在“fast_config”的DTR模式下将频率降低到166MHz、133MHz、50MHz和30MHz,但都没有效果。 我尝试使用从启动内存配置生成的 FCB,但由于结构布局存在一些差异,因此很难将其应用于 PX4 代码。 我也尝试过 csHoldTime、csSetupTime 和 dataValidTime 的不同组合,但都没有结果。 我尝试在低频 DTR 八进制中使用 DQS 内部模式,但也没有成功。 接下来我还可以尝试什么? #include /**************************************************************************** * Public Data ****************************************************************************/ locate_data(".boot_hdr.conf") const struct flexspi_nor_config_s g_flash_config = { .memConfig = { #if !defined(CONFIG_BOARD_BOOTLOADER_INVALID_FCB) .tag = FLEXSPI_CFG_BLK_TAG, #else .tag = 0xffffffffL, #endif .version = FLEXSPI_CFG_BLK_VERSION, .readSampleClksrc=kFlexSPIReadSampleClk_LoopbackInternally, .csHoldTime = 1, .csSetupTime = 1, .deviceModeCfgEnable = 1, .deviceModeType = kDeviceConfigCmdType_Generic, .waitTimeCfgCommands = 1, .controllerMiscOption = (1u << kFlexSpiMiscOffset_SafeConfigFreqEnable), .deviceType = kFlexSpiDeviceType_SerialNOR, .sflashPadType = kSerialFlash_1Pad, .serialClkFreq = kFlexSpiSerialClk_100MHz, .sflashA1Size = 64ul * 1024u * 1024u, .dataValidTime = { [0] = {.time_100ps = 0}, }, .busyOffset = 0u, .busyBitPolarity = 0u, .lookupTable = { /* Read Dedicated 3Byte Address Read(0x03), 24bit address */ [0 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x03, RADDR_SDR, FLEXSPI_1PAD, 0x18), //0x871187ee, [0 + 1] = FLEXSPI_LUT_SEQ(READ_SDR, FLEXSPI_1PAD, 0x04, STOP_EXE, FLEXSPI_1PAD, 0),//0xb3048b20 }, }, .pageSize = 256u, .sectorSize = 4u * 1024u, .blockSize = 64u * 1024u, .isUniformBlockSize = false, .ipcmdSerialClkFreq = 1, .serialNorType = 2, .reserve2[0] = 0x7008200, }; const struct flexspi_nor_config_s g_flash_fast_config = { .memConfig = { .tag = FLEXSPI_CFG_BLK_TAG, .version = FLEXSPI_CFG_BLK_VERSION, .readSampleClksrc=kFlexSPIReadSampleClk_LoopbackInternally, .csHoldTime = 3, .csSetupTime = 3, .deviceModeCfgEnable = 1, .deviceModeType = kDeviceConfigCmdType_Spi2Xpi, .waitTimeCfgCommands = 1, .deviceModeSeq = { .seqNum = 1, .seqId = 6, /* See Lookup table for more details */ .reserved = 0, }, .deviceModeArg = 2, /* Enable OPI DDR mode */ .controllerMiscOption = (1u << kFlexSpiMiscOffset_SafeConfigFreqEnable) | (1u << kFlexSpiMiscOffset_DdrModeEnable), .deviceType = kFlexSpiDeviceType_SerialNOR, .sflashPadType = kSerialFlash_8Pads, .serialClkFreq = kFlexSpiSerialClk_133MHz, .sflashA1Size = 64ul * 1024u * 1024u, .dataValidTime = { [0] = {.time_100ps = 10}, }, .busyOffset = 0u, .busyBitPolarity = 0u, .lookupTable = { /* Read */// EEH+11H+32bit addr+20dummy cycles+ 4Bytes read data /* Macronix manual says 20 dummy cycles @ 200Mhz, FlexSPI peripheral Operand value needs to be 2N in DDR mode hence 0x28 */ [0 + 0] = FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0xEE, CMD_DDR, FLEXSPI_8PAD, 0x11), //0x871187ee, [0 + 1] = FLEXSPI_LUT_SEQ(RADDR_DDR, FLEXSPI_8PAD, 0x20, DUMMY_DDR, FLEXSPI_8PAD, 0x28),//0xb3288b20, [0 + 2] = FLEXSPI_LUT_SEQ(READ_DDR, FLEXSPI_8PAD, 0x04, STOP_EXE, FLEXSPI_1PAD, 0x00), //0xa704, /* Read status */ [4 * 2 + 0] = FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0x05, CMD_DDR, FLEXSPI_8PAD, 0xfa), [4 * 2 + 1] = FLEXSPI_LUT_SEQ(RADDR_DDR, FLEXSPI_8PAD, 0x20, DUMMY_DDR, FLEXSPI_8PAD, 0x04), [4 * 2 + 2] = FLEXSPI_LUT_SEQ(READ_DDR, FLEXSPI_8PAD, 0x04, STOP_EXE, FLEXSPI_1PAD, 0x00), /* Write enable SPI *///06h [4 * 3 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x06, STOP_EXE, FLEXSPI_1PAD, 0x00),//0x00000406, /* Write enable OPI SPI *///06h [4 * 4 + 0] = FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0x06, CMD_DDR, FLEXSPI_8PAD, 0xF9), /* Erase sector */ [4 * 5 + 0] = FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0x21, CMD_DDR, FLEXSPI_8PAD, 0xDE), [4 * 5 + 1] = FLEXSPI_LUT_SEQ(RADDR_DDR, FLEXSPI_8PAD, 0x20, STOP_EXE, FLEXSPI_1PAD, 0x00), /*Write Configuration Register 2 =01, Enable OPI DDR mode*/ //72H +32bit address + CR20x00000000 = 0x01 [4 * 6 + 0] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x72, CMD_SDR, FLEXSPI_1PAD, 0x00),//0x04000472, [4 * 6 + 1] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x00, CMD_SDR, FLEXSPI_1PAD, 0x00),//0x04000400, [4 * 6 + 2] = FLEXSPI_LUT_SEQ(CMD_SDR, FLEXSPI_1PAD, 0x00, WRITE_SDR, FLEXSPI_1PAD, 0x01),//0x20010400, /*Page program*/ [4 * 9 + 0] = FLEXSPI_LUT_SEQ(CMD_DDR, FLEXSPI_8PAD, 0x12, CMD_DDR, FLEXSPI_8PAD, 0xED),//0x87ed8712, [4 * 9 + 1] = FLEXSPI_LUT_SEQ(RADDR_DDR, FLEXSPI_8PAD, 0x20, WRITE_DDR, FLEXSPI_8PAD, 0x04),//0xa3048b20, }, }, .pageSize = 256u, .sectorSize = 4u * 1024u, .blockSize = 64u * 1024u, .isUniformBlockSize = false, .ipcmdSerialClkFreq = 1, .serialNorType = 2, .reserve2[0] = 0x7008200, }; Re: Flash configuration confusion RT1176 Octal DDR 你好@SimonHugr , 如果您计划使用 DDR 模式,请记住还必须考虑字节交换配置。本文提供了一些有用的信息,说明在使用 DDR 模式时,MX25UM51245GXDI00 的字节交换为何如此重要。 我强烈建议使用启动内存配置来生成 FCB,安全配置工具v26.6 提供了 MX25UM51245G 的模板,可以作为您配置的良好起点。另外,您可能也知道,这个工具可以帮助您测试配置。 此外,我建议查看这篇社区帖子,特别是从第 15 点开始的步骤。该部分更详细地解释了安全配置工具如何生成启动内存配置,并有助于阐明该工具生成的参数和输出。 最后,您可以使用 flexspi_nor_polling_transfer_cm7 示例来验证生成的 FCB,并在继续进行启动配置之前验证读取和写入操作是否正常工作。 BR 哈比卜 Re: Flash configuration confusion RT1176 Octal DDR 很遗憾,目前还没有结果。我仍然认为这与数据顺序互换有关,我可能漏掉了一些配置字节…… Re: Flash configuration confusion RT1176 Octal DDR 谢谢你,马斯米塞姆 事实上,我注意到例如数据应该互换一下。我将再次检查我的查找表。 Re: Flash configuration confusion RT1176 Octal DDR 参考此帖: https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs/Internal-Boot-from-Flash-memory-not-starting-on-imxRT1176-custom/mp/1830699 我应该通过编辑 misc 选项来交换数据顺序,根据 Zephyr RTOS 的说明(https://github.com/zephyrproject-rtos/hal_nxp/blob/3a36ee1f8b9fc2168fc0bf80377ace8298292993/mcux/mcux-sdk-ng/devices/RT/RT1170/MIMXRT1176/drivers/romapi/fsl_romapi.h#L340-L355 ) 数据交换字节已经插入,但我感觉好像漏掉了什么。 .pageSize = 256u, .sectorSize = 4u * 1024u, .blockSize = 64u * 1024u, .isUniformBlockSize = false, .ipcmdSerialClkFreq = 1, .isDataOrderSwapped = true .serialNorType = 2, .reserve2[0] = 0x7008200, Re: Flash configuration confusion RT1176 Octal DDR 嘿@SimonHugr , 我首先要确认的是 MX25UM51245G 和 MX25UM51345G 之间的实际区别。虽然零件编号非常相似,但它们并不是完全相同的设备。根据 Macronix 的数据手册,MX25UM51345G 明确支持 DOPI(双倍传输速率 OPI)字节模式数据序列,而 MX25UM51245G 属于不同的产品型号。这会影响 FlexSPI 控制器使用的命令格式、字节顺序和 LUT 配置。 您还可以对比一下我的配置,我的配置适用于 MX25UM513 和 MX25UW6345G: https://github.com/Masmiseim36/Coremark_iMXRT/blob/master/XiP/flexspi_flash_OSPI_Macronix.c 雷加尔斯 Re: Flash configuration confusion RT1176 Octal DDR 你好,哈比卜 对于我们的固件,我无法使用安全配置工具生成 FCB,而是需要在固件启动时加载 FCB,因此我需要创建 mem_config 和 flash_config 结构并自行配置。 我发现 Zephyr 项目在 flash_nor_config 中引用了一个 isDataOrderSwapped 字节。 https://github.com/zephyrproject-rtos/hal_nxp/blob/3a36ee1f8b9fc2168fc0bf80377ace8298292993/mcux/mcux-sdk-ng/devices/RT/RT1170/MIMXRT1176/drivers/romapi/fsl_romapi.h#L347-L348 Claude 提到 controllerMiscOption 的第 5 位有一个 padSettingOverride 位,第 7 位有一个 dataSwap 位,但我不太确定 LLM 是否严重地臆造了这些信息。 使用安全配置工具生成 FCB 并使用此工具将其转换为 C 结构体时 https://community.nxp.com/t5/i-MX-RT-Crossover-MCUs-Knowledge/i-MX-RT-FLEXSPI-booting-guide/ta-p/1669262 我没有设置第 5 位或第 7 位,所以我认为 LLM 有问题,但是 isDataSwapped 已设置,并且在 FCB 中通常被引用为 reserved0[0]。 我在安全配置工具中找不到 MX25UM51245G 的模板,只有 MX25U51245G(四闪存)、MX25UM51345G 和 MX25UMxxx45G 的模板。 但我尝试过的所有八进制DDR配置都无法启动。 有趣的是,尽管 BT_FUSE_SEL = 1 且引脚 BOOTMODE0/1 = 0,MCU 在某些配置后通常会自动进入 ISP 模式。这种情况并不稳定,我不确定是什么配置导致了这个问题。 MCU在读取闪存失败后是否会进入ISP模式? 谢谢 BR Re: Flash configuration confusion RT1176 Octal DDR 你好@SimonHugr , 很抱歉,MX25UM51245G 没有模板,只有 MX25U51245G 和 MX25UM51345G 可用。 根据您的描述,使用您当前的启动内存配置设置,与闪存设备的通信似乎工作正常。单击“转换为完整 FCB”后,该工具会将配置编程到闪存中,然后使用您指定的参数将其读取回来,如下所述: Habib_MS_0-1784753481563.png 如果所选设置中有任何一项不被闪存设备支持,该工具应报告类似于以下内容的错误: Habib_MS_1-1784753506390.png 为了进一步验证社区帖子中提到的使用 FCB 变流器生成的 LUT 是否正常工作,请您在从内部 RAM 运行应用程序时,使用 flexspi_nor_polling_transfer_cm7 SDK 示例进行测试。如果您对示例有任何疑问,请随时联系我。 此外,您能否提供一些关于您尝试启动的应用程序的更多详细信息? -这是 SDK 示例还是您自己的应用程序? 你使用的是哪个集成开发环境(IDE)? -您的应用程序是执行 XIP 还是非 XIP? -除了启动过程之外,您是否在任何其他阶段访问过闪存? 关于进入 ISP 模式,请确保您的定制板上的启动引脚符合MIMXRT1160/1170 硬件开发指南第 5 章“启动、复位和其他”中提到的建议?这样做是为了避免与启动引脚相关的任何硬件问题。 回答您的问题,如果没有有效的镜像文件,您可以进入ISP模式,如图10-1所示的RM“启动流程”: Habib_MS_2-1784754516601.png BR 哈比卜 Re: Flash configuration confusion RT1176 Octal DDR 你好,哈比卜。 我现在至少已经让八进制 SPI STR 模式在 200MHz 下工作了。问题出在一些未描述的神秘的“reserve2”字节上。我还选择在设备模式序列之上设置一个配置命令序列,并添加一个额外的字节。 设置字节交换并没有起到任何作用,但我对在 200MHz STR 八进制下能够达到的速度感到满意。 顺祝商祺!
記事全体を表示
S32K324 FlexIO SPIマスターエミュレーション(S32DS 3.5 / RTD 4.0.0) こんにちは、 S32K324上でFlexIOエミュレーションによるSPIマスターを構成し、外部のSPIスレーブデバイスと通信できるようにしています。当社独自の基板における配線経路の都合上、このデバイスを対象とする物理的な配線は、チップのデフォルトのFlexSPI0ピンに接続されています。したがって、エミュレートされたFlexio_Spiドライバースタックを使う必要があります。 これが私のセットアップです BUS_FLEXSPI0_UP_SBC_CS PTD8 fxio_d11 BUS_FLEXSPI0_UP_SBC_CLK PTD9 fxio_d0 BUS_FLEXSPI0_UP_SBC_MOSI PTD15 fxio_d10 BUS_FLEXSPI0_UP_SBC_MISO PTD22 fxio_d27 私の環境: IDE:S32 Design Studio for S32 プラットフォーム(バージョン:3.5、ビルドID:240726 Update 13) CPU:S32K324 SDK:リアルタイム・ドライバ(RTD)バージョン4.0.0(本番リリース) RTD 4.0.0専用のエンドツーエンド統合スタックを示す公式のNXPアプリケーションノートやガイドはありますか?ツール内のピン割り当て、シフターやタイマーのマッピング、ドライバの初期化まで、メインアプリケーションコード内のすべてを網羅したリファレンスが必要です。 Re: S32K324 FlexIO SPI Master Emulation (S32DS 3.5 / RTD 4.0.0 ) こんにちは、 @Kazarian さん、 私の知る限り、RTD 4.0.0およびこのピン割り当てを対象としたS32K324向けにFlexIOエミュレートされたSPIの完全なエンドツーエンド統合を説明した専用のアプリケーションノートはありません。 最も近い公式な参照は、S32K3 RTDパッケージに含まれる例プロジェクトです。Lpspi_Flexio_Ip_Transfer_S32K344と同様のRTDの例を確認してください。 この例は、FlexIOベースのSPI転送における意図されたRTD統合フローを示しており、FlexIO SPIドライバーの初期化やLPSPIとFlexIO SPIインスタンス間の関係も含まれます。   カスタムボードを作成する際に考慮すべき主なポイントは以下のとおりです(一般的なガイドラインとして)。 ピンの構成 PinsツールにリストされているピンをFlexIO信号として設定します。 PTD8 → FXIO_D11、チップセレクト PTD9 → FXIO_D0、クロック PTD15 → FXIO_D10、MOSI PTD22 → FXIO_D27、MISO MISOピンが入力バッファを有効にしていることを確認してください。 また、S32K324 IOMUX/pinoutのドキュメントで、これらのFlexIO機能があなたのパッケージに対応していることも確認してください。 FlexIO SPI構成 FlexIO SPI構成では、SPI信号を物理的なMCUピンだけでなく対応するFlexIOピン番号にマッピングします。 SCK = FXIO_D0 MOSI = FXIO_D10 CS = FXIO_D11 MISO = FXIO_D27 生成された構成に合わせて、必要なFlexIOタイマーとシフターを適切に割り当ててください。 よろしくお願いいたします。 パベル
記事全体を表示
IMX8M Plus GPU 动态随机存取存储器(DRAM) 竞争 我们在 IMX8M Plus 上运行 Yocto Linux。 我们注意到,在任何 GPU 活动期间,CPU 访问内存时都会出现巨大的延迟峰值(1-3 毫秒峰值)。这是一个大问题,因为我们使用 XDP 进行网络连接。 我们尝试调整 IMX8MP_ICM_A53、IMX8MP_ICM_GPU3D 和 IMX8MP_ICM_GPU2D,将它们设置为 7、2、2 以进行 QoS 控制。这使得延迟峰值出现的频率降低,但它们仍然存在。我们发现的唯一选择是完全不进行任何 GPU 活动或从设备树中删除 GPU,但这对于我们的使用场景来说是不可接受的。是否还有其他设置可以调整以缓解这种现象?GPU锁定动态随机存取存储器\(DRAM\)的时间不能超过50-100微秒。 图形与显示 Linux Re: IMX8M Plus GPU DRAM contention 嗨@richardlovgren , 感谢您联系恩智浦技术支持! 请问您使用的是哪个BSP版本? 这个问题在 EVK 上也会出现吗?还是只出现在你的定制硬件上? 能否也提供日志文件、设备树以及其他相关信息,以便我能够调查和诊断问题? 此外,请分享重现问题的具体步骤,以便我可以在我的环境中尝试重现该问题。 此致, 查维拉
記事全体を表示
[S32G3]LLCECAN 的 Can_SharedMemory 字 0 中出现了异常值。 各位NXP专家,大家好! 我们的项目中,S32G399A 的 LLCE 罐功能使用出现了异常。有时,ECU 报告的某个 CAN 消息接收出现问题,而变速箱运行正常。经过调试,发现 CAN 中断可以正常触发,但是从 Can_SharedMemory 读取的 u32Word0 从 0x18008 变为 0x1800f,这是一个异常值。计算出的 u32MbMessageId 为 0。这导致消息丢失。 RxMbDescIdx 有一个值并且正在变化,word1 有时为 0,但也在变化。这种情况偶有发生,受影响的 CAN 总线也是随机的。 请帮忙分析一下这个问题,调试截图如下。我应该如何进行下一步的调试?或者有哪些解决方案? LLCE 版本为:1.0.10 。 LLCE_Abnormal.png Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. 嗨, canhe 感谢您与我们联系。 您能提供更多信息吗? 1. 您使用的是哪个版本的RTD? 2.你们使用的是自己的电路板和自己的软件吗? BR 乔伊 Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. 各位NXP专家,大家好! 同步信息:在异常情况下,我们通过 Can_Llce_GetControllerMode 读取控制器状态为“启动”,然后通过 Can_43_LLCE_SetControllerMode 接口执行“停止->启动”转换。异常的CAN可以恢复。从 word0 的值来看,LLCE 的内部 DTE 内核在向共享内存传输数据时似乎出现了错误。 目前,异常概率仍然相当高,约为 20 %-30% 。我方团队已签署相关保密协议文件。请优先处理这个问题好吗? Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. 嗨, canhe   好的,我们会提高您问题的优先级! 1.请问您收到的 CAN 帧是来自外部设备还是来自 CANoe 设备本身?它接收到的是 CAN 帧还是 CANFD 帧? 2.设定的波特率是多少?你使用的是哪个端口? 3.帧是由内部核心处理还是通过 CAN2CAN 路由处理? BR 乔伊 Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. 嗨,canhe 您似乎对 Can_Llce_ProcessRxMb 进行了一些修改。在修改之前,您是否遇到过任何问题?能否分享一下修改后的代码? Joey_z_0-1785135823536.png BR 乔伊 Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. 嗨,乔伊 感谢你的回复。这个问题在我添加调试代码之前就出现了。我添加了调试代码以确认具体原因。调试代码只是读取某些状态。共享内存的值似乎异常。补丁已提供给您。 Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. 嗨, canhe 谢谢你提供的信息。 1.在您遇到问题的情况下,CAN总线的总线负载是多少?公交车载客量是否过高? 2.当发生丢帧时,通知是否会报告任何错误?如果您收到任何错误信息,请与我分享。 Joey_z_0-1785211817403.png 3.错误发生在路由过程中还是帧发送到主机时?使用的是 CAN 还是 CAN FD 机架? BR 乔伊 Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. 嗨,乔伊 1.总线载荷率在 40% 到 50% 之间,这似乎不是很高。 2. BCAN_RXFIFO_OVERRUN 是在异常情况下发生的,但我在正常操作期间也观察到了此通知。 3. 目前,LLCE 尚未启用路由功能;它仅将数据转发到主机。大部分帧使用 CAN FD 格式,少量使用 CAN 格式帧。 Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. 嗨,乔伊 感谢你的回复。我将降低负载率并再次进行测试。关于您提到的第二点,即 MB 大小,我已经尝试将其从 20 增加到 300,但仍然出现异常。 此外,您是否了解 LLCE 在处理共享内存方面是否有任何内部逻辑?在什么情况下“word0”字段会出现异常值?例如,如果将“word1”的值写入“word0”。 Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. 嗨,乔伊 1.接收到的 CAN 帧源自外部 ECU。目前,已使用 CANOE 设备在测试台上进行模拟,重现了该异常情况。事实上,这两种情况下都出现了异常情况。接收到的消息大部分是 CANFD 帧,只有少量是 CAN 帧。 2. 仲裁段的波特率设置为 500k,数据段的波特率设置为 2M,采样率为 80%。控制器使用 BCAN1-BACN5。 3. 这些帧由内部核心进行处理。 Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. 嗨, canhe 1.测试降低总线负载,观察问题帧的频率是否降低。 2.另外,尝试增加图中所示参数的数值。 Joey_z_0-1785313583389.png BR 乔伊 Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. 嗨, canhe 感谢您提供详细信息。 你们都使用 BCAN1-BACN5 执行接收帧操作吗? 我在接收测试中,使用与你相同版本的 LLCE 和相同的配置,在一个端口上进行测试,并没有遇到与你类似的错误。 Joey_z_0-1785405650366.png BR 乔伊 Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. 嗨,乔伊 我们主要使用 BCAN1-BCAN3 来接收大部分应用程序消息帧。BCAN4目前不具备发送或接收数据的功能。BCAN5 连接到内部总线,并传输少量消息。 Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. 嗨, canhe 请尝试通过以下链接创建案例。 https://support.nxp.com 关于这个问题,请填写相关的案例信息,我会通过内部渠道帮您联系软件团队和 LLCE 专家。 BR 乔伊 Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. 嗨,乔伊 请问您是否方便联系当地的现场应用工程师(FAE)以获得中国境内的现场支持或在线支持?我认为这有助于我们更快地解决问题。 Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. 嗨, canhe 根据之前的测试结果。 降低 CAN 总线负载并使用单个 CAN 通道会给您带来任何问题吗? BR 乔伊 Re: [S32G3]An abnormal value has occurred in the Can_SharedMemory word0 of LLCECAN. 嗨,乔伊 感谢您的帮助。我已经结案了。追踪号码为:00997151。
記事全体を表示
CGM用MCX W23パワープロファイルツール このページは、連続血糖モニタリング(CGM)用Kinetis MCX W23パワープロファイルツールに特化しています。 これにより、CGMアプリケーションの消費電力を推定し、ソリューションのバッテリー寿命を評価するのに役立ちます。 このページには、以下の用途向けの専用電源プロファイルツールが掲載されます。 MCX W23製品を使ったCGMのフルアプリケーション christophe_menard_0-1786027418500.png AN14157 消費電力分析 AN14660 電源管理 id: ワイヤレス・コネクティビティ フォーラム [開始日: 2026年7月31日]
記事全体を表示
S32K344のハードウェアQSPIは、(連続クロック)構成をサポートしていますか? タイトルにあるように、下流のデバイスがこのクロックに基づいてデータを処理できるように、クロックを継続的に出力したいと考えています。 Re: S32K344的硬件QSPI,是否支持(连续时钟/ Continuous SCK)的配置? こんにちは@Zhangbohanさん 残念ながら、S32K3 SPIモジュールは連続的なSCKをサポートしていません。一つの選択肢は「連続転送」を使用することです。 「マスターモードでは、CONTは新しいフレームを開始するコマンドワードを受信するまで、フレームサイズの末尾でPCSをアサートした状態を維持します。」 もう一つの選択肢は、GPIOを使ってCSとして機能し、ソフトウェアで制御することです。 いずれの場合も、SPI SCKはSPI TXバッファにデータを送り込む際に生成される。標準ドライバー(MCALまたはRTD)を使う場合、SCKパルスはドライバーによってFIFOにデータをプッシュすることで制御されます。ユーザーはそれをコントロールできません。 私の知る限り、連続SCKモードをサポートしているのはS32K9-K7-K6デバイスのDSPIモジュールだけです。S32K39リファレンスマニュアルより: Julin_AragnM_1-1785269564354.png よろしくお願いします、 ジュリアン Re: S32K344的硬件QSPI,是否支持(连续时钟/ Continuous SCK)的配置? ご回答いただき、誠にありがとうございます。解決策を再検討した結果、別の質問が浮かびました。S32K344はQSPI経由でのDMA転送をサポートしていますか?レジスタレベルでは関連するレジスタを確認しましたが、QSPI_IPにはイネーブルやチャネル設定オプションがありません。MCALレイヤーで設定できるようです。そのため、QSPI+DMAがサポートされているのか、また関連するサンプルコードがあるのかが不明です。既存のサンプルコード「Mem_43_EXFLS」ではDMAは使用されていないようです。 Re: S32K344的硬件QSPI,是否支持(连续时钟/ Continuous SCK)的配置? こんにちは@Zhangbohanさん はい、QSPIインスタンスはDMAの使用をサポートしています。考慮事項については、S32K3XXリファレンスマニュアルの第78.5.4.1章を参照してください。 Julin_AragnM_1-1785887187504.png しかし、QSPI_IPとDMAを組み合わせた例は知りません。 よろしくお願いします、 ジュリアン
記事全体を表示
MCX W23 功率我的分析工具(适用于 CGM) 本页面专用的 Kinetis MCX W23 用于连续血糖监测 (CGM) 的功率我的工具。 它将帮助您估算 CGM 应用中的功耗,并评估解决方案的电池寿命。 本页面将包含专用的电源分析工具,用于: 使用MCX W23产品进行CGM全面应用 christophe_menard_0-1786027418500.png AN14157 功耗分析 AN14660 电源管理单元 id:无线连接论坛 [开始日期:2026年7月31日]
記事全体を表示
カーネル6.12におけるLS1046A 10GB SFP+の設定 こんにちは、 私はLS1046Aを搭載したカスタムボードを持っていて、はんだ付けされたSFP+ 10GBモジュールでfm1-mac9を使用しようとしています。 SERDES 1 の私の RCW は 0x1040 です。 hugoacata_0-1784298387879.png つまり、FM1からMAC9の10GBはRCWの視点から見て十分にカバーされています。SFPの電源やレーザーは正常なようですが、前のSFPと連携・連携できず、DTBの設定が間違っているのではないかと疑っています。 これがそのMACアドレスの現在の設定です。 xfi10g: ethernet@f0000 { ステータス = "正常"; pcsphy-handle = <&pcsphy6>; pcs-handle = <&pcsphy6>; pcs-handle-names = "xfi"; 物理接続タイプ = "10gbase-r"; 固定リンク { 速度 = <10000>; 全二重通信; }; }; mdio@f1000 { ステータス = "正常";   pcsphy6: イーサネット-phy@0{     compatible = "fsl,lynx-pcs";     reg = <0x0>;   }; }; sfp_mac9: sfp { 互換 = "SFF,SFP"; I2Cバス = <&i2C3>; status = "OK"; }; 参考までに、私はlinux-qoriqカーネル6.12を使っていますが、SFPは起動時にEEPROMを正しく読み込んでいます。 fm1-mac9でこのタイプの接続を実行する適切な例はありますか? Re: LS1046A 10GB SFP+ Configuration on kernel 6.12 LS1046ARDBごとに変更するのはどうでしょうか。fm1-mac10はSFP+で、ドライバーもSFP+をサポートしているので。 https://github.com/nxp-qoriq/linux/blob/lf-6.12.49-2.2.0/arch/arm64/boot/dts/freescale/fsl-ls1046a-rdb.dts#L156
記事全体を表示
S32K344的硬件QSPI,是否支持(连续时钟/ Continuous SCK)的配置? 如题,我希望连续输出时钟,便于我下游设备基于此时钟做数据处理。 Re: S32K344的硬件QSPI,是否支持(连续时钟/ Continuous SCK)的配置? 你好@Zhangbohan , 遗憾的是,S32K3 SPI 模块不支持连续 SCK。一种方法是使用“连续传输”: "在主模式下,CONT 信号会在帧大小结束时钳位 PCS 信号,直到收到开始新帧的命令字为止。" 另一种选择是使用 GPIO 作为 CS,并通过软件进行控制。 无论哪种方式,当数据被推送到SPI发送缓冲区时,都会生成SPI SCK信号。如果使用标准驱动器(MCAL 或 RTD),则 SCK 脉冲将由驱动器通过向 FIFO 推送数据来控制,用户无法控制。 据我所知,只有 S32K9-K7-K6 设备的 DSPI 模块支持连续 SCK 模式。摘自S32K39参考手册: Julin_AragnM_1-1785269564354.png 此致, 朱利安 Re: S32K344的硬件QSPI,是否支持(连续时钟/ Continuous SCK)的配置? 非常感谢您的回复,我重新评估了我的方案,再请教您一个问题,S32K344,QSPI是否支持DMA传输,我在寄存器层面看到了有相关寄存器;但是在QSPI_IP中,没有使能和通道配置选项;在MCAL层,似乎可以配置。这让我不太确定,是否有QSPI+DMA的支持,是否有相关例程?现有的例程“Mem_43_EXFLS”,我看到里面没有使用DMA。 Re: S32K344的硬件QSPI,是否支持(连续时钟/ Continuous SCK)的配置? 你好@Zhangbohan , 是的,QSPI实例支持DMA使用,您可以参考S32K3XX参考手册的78.5.4.1章节了解相关注意事项。 Julin_AragnM_1-1785887187504.png 但是,我目前还没有看到任何 QSPI_IP + DMA 的示例。 此致, 朱利安
記事全体を表示
iMX937的深度睡眠模式 我正在使用 iMX95lpddr5 evk,触发了深度睡眠模式,想知道 A55、M7 和 M33 中已暂停和未暂停核心的状态、时钟频率和功耗。 Re: Deep Sleep Mode of iMX937 在 i.MX95 LPDDR5 EVK 上,“深度睡眠”对应于 i.MX 95 Suspend / DSM 风格的低功耗模式。A55 处于挂起/断电状态;M33 未运行应用程序工作负载,通常显示为时钟门控/空闲状态;M7 的状态取决于您是否也将其挂起或将其保留为唤醒/实时核心。AN14449 中的功耗数据是SoC 轨/组的总功耗,而不是每个核心的功耗。 低功耗外壳 Cortex-A55 状态/频率 Cortex-M33 状态/频率 Cortex-M7 状态/频率 DDR状态 报告功率 DSM 系统中的系统 暂停;时钟检测不到 时钟门控;时钟无法检测 暂停;未提供时钟 保留 25.65 mW GROUP_SOC_FULL 总计 Linux 挂起 + CM7 WFI 暂停 / 0 时钟门控或空闲 / 0 WFI / 400 MHz 保留 178.48 毫瓦GROUP_SOC_FULL 总计 Linux 暂停 + CM7 CoreMark (TCM) 暂停 / 0 时钟门控或空闲 / 0 CoreMark / 400 MHz 保留 197.24 毫瓦GROUP_SOC_FULL 总计 Linux 挂起 + CM7 FlexCAN 事务 暂停 / 0 时钟门控或空闲 / 0 FlexCAN / 800 MHz 活跃,6400吨/秒 659.71 毫瓦GROUP_SOC_FULL 总计 Linux 挂起 + CM7 网络/以太网 暂停 / 0 时钟门控或空闲 / 0 NETC / 800 MHz 活跃,6400吨/秒 956.17 毫瓦GROUP_SOC_FULL 总计 Linux 挂起 + WoL A55 停运 M33 空闲/低功耗上下文 具备唤醒功能的配置;检索到的数据块中没有精确的核心表。 取决于 WoL 设置 342.72 毫瓦GROUP_SOC_FULL 总计 一些解读说明: i.MX 95 参考手册将Suspend描述为最大程度节省功耗的模式,其中不必要的时钟/电源被关闭,Cortex-A55 CPU 完全断电,可以断电的 PHY 被关闭,VDD_SOC 降低到挂起电压。 在DSM 系统中,AN14449 明确指出CA55=挂起,CM33=时钟门控,CM7=挂起,DDR=保持,并指出由于 CA55 和 CM33 不工作,因此无法检测到时钟。 对于 M7 保持活动的 Linux 挂起,未挂起的核心是 CM7 ;其时钟频率在 WFI/CoreMark 保持情况下为400 MHz ,在 FlexCAN/NETC 情况下为800 MHz ,而 A55 和 M33 在案例表中显示为0 MHz 。 已公布的功率数据并非针对每个 A55/M7/M33 核心单独列出的。AN14449 报告了诸如 GROUP_SOC_FULL 和 GROUP_DRAM 之类的轨/组测量结果;例如,DSM 报告 vdd_arm 为 0 mW,vdd_soc 为 3.85 mW,GROUP_SOC_FULL 总和为 25.65 mW,但这仍然是轨级功耗,而不是单个核心功耗。 结论:如果 M7 也处于挂起状态,则 DSM 功耗约为 25.65 mW;如果 M7 在 Linux 挂起期间保持运行,则 SoC 总功耗会从 400 MHz 时的约 178–197 mW 上升到 800 MHz 时的约 660–956 mW,具体取决于外围设备的工作负载。 Re: Deep Sleep Mode of iMX937 对于 I.Mx95,有几种电源模式,包括运行模式、低功耗运行模式、空闲模式、挂起模式和电池备份安全模块模式。有关详细的功耗数据,请参阅 IMX95AEC 数据表。对于 i.Mx937,该设备目前处于预生产阶段,目前只有产品说明书可供参考。 不太清楚测试数据的来源,以及你提到的深度睡眠模式是什么……
記事全体を表示
IMX8MP オンチップRAMメモリアクセス こんにちは、 OCRAMにアクセスしてデータを読み込み、メモリに取り込む方法を学びたいです。 Linux Cortex A-53でそれを実現するにはどうすればいいか、誰かアドバイスをいただけませんか? オンチップRAM - OCRAM (576 KB) 開始アドレス: 0x00900000 => ROM用に予約済み 開始アドレス: 0x00918000  =>OCRAMフリーエリア 終了アドレス: 0x0097FFFF https://www.nxp.com/webapp/Download?colCode=IMX8MPRM ご回答をお待ちしています。 IMX8MPLUS i.MX 8ファミリ | i.MX 8QuadMax (8QM) | 8QuadPlus Linux Yocto Project Re: IMX8MP On chip RAM memory access こんにちは、ロマン・ルースさん。 このアドバイスはあなたにとって効果がありますか? よろしくお願いいたします。 ステファノ・ジリ Re: IMX8MP On chip RAM memory access こんに ちは、@Roman_Loz、compatible = "shared-dma-pool"を含めるといいですよ;そして、それはうまくいくはずです。 ocram_dma: ocram_dma@970000 { no-map; compatible = "shared-dma-pool"; reg = <0 0x970000 0 0xC00>; // 3KB }; よろしくお願いいたします。 サムヒタ・カシャップ Re: IMX8MP On chip RAM memory access こんにちは、 ご提案いただいた方法でOCRAMを使おうとしているのですが、memcpyを実行しようとするとカーネルパニックが発生します。 私が何を間違っているのか、あるいは見落としているのか理解する手助けをしてもらえますか? dtsi: resmem: reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; ocram: ocram@900000 { no-map; reg = <0 0x900000 0 0x70000>; }; ocram_dma: ocram_dma@970000 { no-map; reg = <0 0x970000 0 0xC00>; // 3KB }; ... モジュール初期化: // Find the OCRAM DMA node by name np = of_find_node_by_name(NULL, "ocram_dma"); if (!np) { pr_err("Failed to find OCRAM DMA node in device tree\n"); return -ENODEV; } // Lookup the reserved memory region rmem = of_reserved_mem_lookup(np); if (!rmem) { pr_err("Failed to lookup reserved memory for OCRAM DMA\n"); return -ENODEV; } // Map the reserved memory region ocram_dma_base = ioremap(rmem->base, rmem->size); if (!ocram_dma_base) { pr_err("Failed to map OCRAM DMA memory\n"); return -ENOMEM; } コピー: memcpy(current_address, mv->A, MATRIX_STRUCT_SIZE);   Re: IMX8MP On chip RAM memory access こんにちは、 @Samhitha_Kashyap さん。 なお、NXPは他のドライバーが使用する448KBのOCRAM空間に対するノードの変更を推奨していません。 互換性のある=「shared-dma-pool」プロパティを用いて、0x970000後にメモリ領域をDMAサポートに利用できます。 ありがとうございます。よろしくお願いいたします。 サンケット・パレク Re: IMX8MP On chip RAM memory access こんにちは、 @Sanket_Parekh さん。 ご回答ありがとうございました。大変参考になりました! もしユーザーアプリケーションで使えない場合、448KBのOCRAM空間内でDMAをサポートするようにデバイスツリーを変更することは可能でしょうか? よろしくお願いいたします。 サムヒタ・カシャップ Re: IMX8MP On chip RAM memory access こんにちは、 @Samhitha_Kashyap さん。 お元気でお過ごしでしょうか。   OCRAMやLinuxカーネルで自分専用にどれだけのメモリが割り当てられているかは、socのdtsiファイル(予約済みメモリノード)を調べることで判断できます IMX8MPの場合は448KBです。   resmem: 予約メモリ { #address-cells = <2>; #size-cells = <2>; 範囲; ocram: ocram@900000 { 地図なし; reg = <0 0x900000 0 0x70000>; };   ..... .....   }   ここで0x70000(448K)バイトがLinux使用用に予約されています。そして、no-mapプロパティで指定されているユーザースペースに仮想的にマッピングすることはできません。 さらに0x7000バイトを経て、他のアプリケーションにも使えます。 ただし、OCRAMを使わないM7コアアプリケーションは必ず確認する必要があります。これは特定のアプリケーションのリンカースクリプトを調べることで判別できます。   ありがとうございます。よろしくお願いいたします。 サンケット・パレク   Re: IMX8MP On chip RAM memory access こんにちは、サンケットさん。 Linuxがどれだけのメモリを消費し、残りはユーザーアプリケーションに使えるか確認することは可能でしょうか? もし可能なら、どうやって同じことを検証し、残りのメモリをアプリケーション用に割り当てればいいのでしょうか。 よろしくお願いいたします。 サムヒタ・カシャップ Re: IMX8MP On chip RAM memory access こんにちは、 @Samhitha_Kashyap さん。 お元気でお過ごしでしょうか。 OCRAM Firstにアクセスするには、ATFが使用している地域にアクセスしようとしないように注意する必要があります。 U-Bootの場合、md/mwコマンドを使ってOCRAMに直接アクセスできます。 Linux自体がOCRAMを使用しているため、ユーザースペースでのOCRAM使用は推奨されません。 ありがとうございます。よろしくお願いいたします。 サンケット・パレク
記事全体を表示