Multi Source Translation Content

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

Multi Source Translation Content

ディスカッション

ソート順:
How to Retrieve Error Frame CAN ID and Payload in FlexCAN (S32G) Hi, I'm using FlexCAN on the S32G platform. Currently, when FlexCAN receives an error frame interrupt, it creates a CAN frame and fills the CAN ID and payload with values from the error register. However, I'm unable to determine which specific CAN frame caused the bus error. In CANoe, we can see the error frame with the correct CAN ID and payload in the trace window. Is there a way to retrieve the error frame's CAN ID and payload programmatically, similar to CANoe? I’d appreciate any guidance on this. Thanks in advance! S32G2  Re: How to Retrieve Error Frame CAN ID and Payload in FlexCAN (S32G) hi,ventury Thank you for your reply. Why do you want to get the error frame? The error frame will be abandoned in the normal usage scenarios. If the protocol level frame occurs error, the S32G can get the frame and operate it.  For flexcan, the relevant states register will be changed when S32G receive the error frame. I think you should consider the kind of error frame. such as, it is the error of CRC on one frame, you can try to check the memory for the frame ID and payload.  Hope it can help you. BR Joey Re: How to Retrieve Error Frame CAN ID and Payload in FlexCAN (S32G) Hi Joey, Yes, that is correct. Could you provide some advice on this? Thank you. BR, Ventury Re: How to Retrieve Error Frame CAN ID and Payload in FlexCAN (S32G) hi,ventury Thank you for your reply. Do you mean that when you are using the Flexcan of S32G, you can detect CAN error frames, but you cannot know the ID and payload of this error frame? BR Joey Re: How to Retrieve Error Frame CAN ID and Payload in FlexCAN (S32G) Hi Joey, Thanks for your response. Here are the details you requested: Core Type: Using A-core with Linux, kernel version 5.15.119-rt65+ RTD Version: I'm not sure how to check the RTD version in this setup ID Filter: No ID filter configuration is currently applied Additional information: I'm using the Linux SocketCAN framework (can-raw) Error frame capture is enabled using: uint32_t errMask = 0xffffffff; setsockopt(can_fd, SOL_CAN_RAW, CAN_RAW_ERR_FILTER, &errMask, sizeof(errMask)); From examining the FlexCAN driver code (flexcan_irq_bus_err function), I can see that error frames are generated using values from the error registers, but I'm not getting the actual CAN ID and payload of the frame that caused the error. I'd appreciate any guidance on how to retrieve the original offending frame information. BR ventury Re: How to Retrieve Error Frame CAN ID and Payload in FlexCAN (S32G) hi,ventury Thank you for contacting us. are you using M or A core for FlexCAN? Which version of RTD are you using? Do you have an ID filter for CAN frame? BR Joey
記事全体を表示
NXP:蓝牙与信道探测天线 这些幻灯片是为马德里卡洛斯三世大学的欧洲天线学校准备的。内容: - 关于NXP和无线控制器 - 关于信道探测和NXP解决方案 - CS天线设计及功能测试 - CS天线阵列与CS定位
記事全体を表示
<video> L10 : S32G2 FOTA demo introduction L10 - S32G2 FOTA demo instroduction, by Ross(EN)/Xuewei(CHN) ref info for this session: Uptane Specification – here AUTOSAR Update and Configuration Management - here AN12978 – S32G2 Support for Firmware Over-The-Air (FOTA) updates Airbiquity Video Demonstration – here part 1 - FOTA recap (function() { var wrapper = document.getElementById('lia-vid-6255277370001w200h113r216'); var videoEl = wrapper ? wrapper.querySelector('video-js') : null; if (videoEl) { if (window.videojs) { window.videojs(videoEl).ready(function() { this.on('loadedmetadata', function() { this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) { bar.setAttribute('role', 'presentation'); bar.setAttribute('aria-hidden', 'true'); }); }); }); } }})(); (view in My Videos) part 2 - S32G2 FOTA demo quick view (function() { var wrapper = document.getElementById('lia-vid-6255277091001w200h113r418'); var videoEl = wrapper ? wrapper.querySelector('video-js') : null; if (videoEl) { if (window.videojs) { window.videojs(videoEl).ready(function() { this.on('loadedmetadata', function() { this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) { bar.setAttribute('role', 'presentation'); bar.setAttribute('aria-hidden', 'true'); }); }); }); } }})(); (view in My Videos) part 3 - S32G2 FOTA demo user guide walkthrough (function() { var wrapper = document.getElementById('lia-vid-6255275326001w200h113r928'); var videoEl = wrapper ? wrapper.querySelector('video-js') : null; if (videoEl) { if (window.videojs) { window.videojs(videoEl).ready(function() { this.on('loadedmetadata', function() { this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) { bar.setAttribute('role', 'presentation'); bar.setAttribute('aria-hidden', 'true'); }); }); }); } }})(); (view in My Videos) part 4 - S32G2 FOTA demo explained (function() { var wrapper = document.getElementById('lia-vid-6255277306001w200h113r24'); var videoEl = wrapper ? wrapper.querySelector('video-js') : null; if (videoEl) { if (window.videojs) { window.videojs(videoEl).ready(function() { this.on('loadedmetadata', function() { this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) { bar.setAttribute('role', 'presentation'); bar.setAttribute('aria-hidden', 'true'); }); }); }); } }})(); (view in My Videos) part 5 - S32G2 FOTA demo additional infomation (function() { var wrapper = document.getElementById('lia-vid-6255277390001w200h113r150'); var videoEl = wrapper ? wrapper.querySelector('video-js') : null; if (videoEl) { if (window.videojs) { window.videojs(videoEl).ready(function() { this.on('loadedmetadata', function() { this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) { bar.setAttribute('role', 'presentation'); bar.setAttribute('aria-hidden', 'true'); }); }); }); } }})(); (view in My Videos) part 6 - S32G2 FOTA demo live (function() { var wrapper = document.getElementById('lia-vid-6255277227001w200h113r763'); var videoEl = wrapper ? wrapper.querySelector('video-js') : null; if (videoEl) { if (window.videojs) { window.videojs(videoEl).ready(function() { this.on('loadedmetadata', function() { this.el().querySelectorAll('.vjs-load-progress div[data-start]').forEach(function(bar) { bar.setAttribute('role', 'presentation'); bar.setAttribute('aria-hidden', 'true'); }); }); }); } }})(); (view in My Videos) S32G
記事全体を表示
i.MX Yocto Project: bitbake を使用して Freescale Yocto イメージをビルドするにはどうすればよいですか? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 1. Freescaleのgithubリポジトリ から、最後の bitbake コマンドを除くすべての手順に従います 2. フリースケールがサポートするイメージは、 meta-fsl-demos/recipes-fsl/images フォルダにあります。 3. 標準の Freescale イメージをベイク処理します ビルド$ bitbake fsl-image-gui 4. 生成された Linux イメージは、いくつかの形式でパッケージ化されています。 .sdcard1つのファイルにすべてのシステム(u-boot + uImage + rootfs)が含まれているため、SDカードに直接書き込むことができます build$ sudo dd if = tmp / deploy / images / fsl-image-gui-imx6qsabresd.sdcard of = / dev / sdX b = 4M メモ: 建物の問題が発生した場合は、このリンクをクリックしてください 起動の問題が発生した場合は、以下を確認してください: 1. ボードのDIPスイッチが正しく設定されている 2.ベーキングする前に正しいマシンを選択しました 問題が解決しない場合は、コミュニティに報告してください Yocto Project Re: i.MX Yocto Project: bitbake を使用してフリースケールの Yocto イメージをどのようにビルドできますか? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ウルトラライトボード用のlibsubはどこにありますか? Re: i.MX Yocto Project: bitbake を使用してフリースケールの Yocto イメージをどのようにビルドできますか? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> リンク。 Re: i.MX Yocto Project: bitbake を使用してフリースケールの Yocto イメージをどのようにビルドできますか? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> それは便利です。ありがとうございます。これらの各画像のどこかに説明がありますか? Re: i.MX Yocto Project: bitbake を使用してフリースケールの Yocto イメージをどのようにビルドできますか? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 私はこれに少し慣れていませんが、この指示はまだ有効ですか? 私は指示に従いましたが、 "build $ bitbake fsl-image-gui"ステップに到達すると、 しばらく処理してから次の処理が行われます。 エラー: 何も 'fsl-image-gui' を提供しません。接戦: FSL -イメージ-マルチメディア 私は今走っています ビルド$ bitbake fsl-image-multimedia Re: i.MX Yocto Project: bitbake を使用してフリースケールの Yocto イメージをどのようにビルドできますか? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> すみませんが、ちゃんと理解できませんでした。 あなたは成功しましたか? Re: i.MX Yocto Project: bitbake を使用してフリースケールの Yocto イメージをどのようにビルドできますか? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> GITが本当にプロキシスクリプトを使用しているかどうかを確認しようとします。たぶん、straceか何かを使用してデバッグします。 私はプロキシユーザーではないので、あまり助けにはなりませんが、それについてopenembedded-usersメーリングリストで尋ねることができるかもしれませんか? Re: i.MX Yocto Project: bitbake を使用してフリースケールの Yocto イメージをどのようにビルドできますか? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 私はあなたが 'socat'ユーティリティを欠いていると思います。 $: sudo apt-get インストール socat Re: i.MX Yocto Project: bitbake を使用してフリースケールの Yocto イメージをどのようにビルドできますか? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> よくわかりません。Yocto Projectメーリングリストでこの質問をしてください。 Re: i.MX Yocto Project: bitbake を使用してフリースケールの Yocto イメージをどのようにビルドできますか? <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> Flexcan のカーネルサポートを追加するにはどうすればいいですか? すべてのボード FlexCAN
記事全体を表示
车辆动力学:通过 IGBT 栅极驱动集成驱动器的进步简化高压/大电流逆变器 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 本课程将对高压 (HV) 电力进行深入的系统分析,我们将回顾 MCU、GDIC 和 IGBT 如何单独运行以及作为一个系统运行。我们将讨论 EV 和 HEV 电力系统和组件,以实现高效、安全的 HV 电机驱动。使用 NXP 新型 HV IGBT GDIC、GD3100 和 Fuji GEN 7 IGBT 模块的系统框图和示波器屏幕截图,我们将考虑如何实现更小、更高效和更低成本的 HV 逆变器设计。我们将审查 SPI 接口可编程性,该可编程性使任何 IGBT 都能进行调整以实现最高效率、热设计考虑、布局考虑、功率预算评估、上电排序、管理短路故障、温度监控和高级功能达到系统 ASIL D 级和 ISO26262 认证。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 本课程将对高压 (HV) 电力进行深入的系统分析,我们将回顾 MCU、GDIC 和 IGBT 如何单独运行以及作为一个系统运行。我们将讨论 EV 和 HEV 电力系统和组件,以实现高效、安全的 HV 电机驱动。使用 NXP 新型 HV IGBT GDIC、GD3100 和 Fuji GEN 7 IGBT 模块的系统框图和示波器屏幕截图,我们将考虑如何实现更小、更高效和更低成本的 HV 逆变器设计。我们将审查 SPI 接口可编程性,该可编程性使任何 IGBT 都能进行调整以实现最高效率、热设计考虑、布局考虑、功率预算评估、上电排序、管理短路故障、温度监控和高级功能达到系统 ASIL D 级和 ISO26262 认证。
記事全体を表示
ニュー・キッド・オン・ザ・ブロック - 60 GHz Wi-Fi <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ユビキタスなコネクティビティの時代を駆け抜け、データに対する飽くなき需要が求められる中、高速コネクティビティソリューションの必要性はかつてないほど高まっています。60 GHzまたは802.11ad Wi-Fiは、家庭やオフィス、高密度の屋内または屋外スペース、フロントホールまたはバックホールアプリケーションなど、あらゆる場所でブロックを引き継ぐ新しい子供です。さらに、この分野は、このマルチギガビットレートスペクトルを最大限に活用するための革新的なアプローチを持つ多くの新しいティア2プレーヤーによって主に影響を受けています。NXPに参加して、当社のSoCがこのエコシステムを促進するためにどのように不可欠であるかを学びましょう。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> ユビキタスなコネクティビティの時代を駆け抜け、データに対する飽くなき需要が求められる中、高速コネクティビティソリューションの必要性はかつてないほど高まっています。60 GHzまたは802.11ad Wi-Fiは、家庭やオフィス、高密度の屋内または屋外スペース、フロントホールまたはバックホールアプリケーションなど、あらゆる場所でブロックを引き継ぐ新しい子供です。さらに、この分野は、このマルチギガビットレートスペクトルを最大限に活用するための革新的なアプローチを持つ多くの新しいティア2プレーヤーによって主に影響を受けています。NXPに参加して、当社のSoCがこのエコシステムを促進するためにどのように不可欠であるかを学びましょう。
記事全体を表示
NET-N1879 5Gの推進:次世代のアクセス技術 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5G規格が定義される中、高スループット、低遅延、および多数のユーザーが、5Gサービスを推進するための主要な要件の1つです。NXPがこれらの要素をブレンドして、5Gの課題に対処するための最適なハードウェアアーキテクチャを設計している方法をご覧ください。 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 5G規格が定義される中、高スループット、低遅延、および多数のユーザーが、5Gサービスを推進するための主要な要件の1つです。NXPがこれらの要素をブレンドして、5Gの課題に対処するための最適なハードウェアアーキテクチャを設計している方法をご覧ください。 スマートネットワーク
記事全体を表示
如何在imx6Q板上支持字幕 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 当前 imx6 bsp,不仅 ltib 而且 yocto 也无法支持字幕。 现在我们有两种解决方案来支持 Yocto 上的字幕, 1)一种是提取字幕,然后通过UI将字幕绘制在视频上,imxplayer支持这种方式。 此解决方案使用 imxplayer 的 QT,因此如果您构建 yocto,则应选择 QT 作为目标。基本上,aiurdemux 通过 appsink 将文本发送到 QT,然后 QT 在 UI 层上绘制文本。 构建yocot时,请使用以下命令: “bitbake fsl-image-qt5” 将字体库复制到/usr/lib/fonts ,然后在播放 imxplayer 时选择您需要的字体。 2)另一种是通过gstreamer将字幕混合到视频缓冲区,然后与视频一起输出 在 gstreamer1.0-plugins-base 中启用 gst pango lib 更改 playbin 标志以禁用原生视频标志 basetextoverlay 应用补丁http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/ext/pango/gstbasetextoverlay.c?id=267a8c24af4f02ba6f3075bd589d3c5d1dc826e9 使用以下命令行 gst-启动-1.0playbin 标志=0x17 uri=file://$VIDEO_FILE suburi=file://$SUBTITLE_FILE i.MX6 四核
記事全体を表示
Porting Micro-ROS on Frdm-MCXN947 1. Overview The MCXN947 chip is a highly integrated microcontroller featuring robust processing capabilities, extensive peripheral support, and advanced security features. It is suitable for a wide range of complex applications. The NXP FRDM-MCXN947 board is a low-cost design and evaluation board based on the MCXN947 device. NXP provides a comprehensive set of tools and software support for the MCXN947, including hardware evaluation boards, an integrated development environment (IDE), example applications, and drivers. Micro-ROS is an embedded version of ROS 2 specifically designed to operate on embedded systems, enabling real-time control and communication for robotics and embedded devices. It extends the powerful features of ROS 2 to resource-constrained embedded platforms like microcontrollers and embedded systems. The introduction of Micro-ROS facilitates tighter integration between embedded systems and the ROS 2 ecosystem, enabling advanced robotic automation and control. This document explores the process of porting Micro-ROS to the MCXN947 board.‌ This document explores the process of porting Micro-ROS to the MCXN947 board. Hardware Environment:     FRDM-MCXN947 Software Environment:     Ubuntu 22.04     IDE:MCUXpresso IDE v11.9.0     SDK:SDK Builder | MCUXpresso SDK Builder (nxp.com) 2. ROS 2 Architecture Before delving into the Micro-ROS porting process, let us briefly introduce the new ROS 2 architecture. This is necessary because Micro-ROS heavily leverages ROS 2's abstraction layer source code in its design and implementation. Compared to its predecessor ROS 1, ROS 2 employs a distinct communication mechanism, most notably adopting the DDS (Data Distribution Service) protocol for communication and node discovery. ROS 1, by contrast, relies on the XML-RPC protocol and requires the master node to launch before other nodes can join. ROS 1's limited support for embedded devices stems from the XML-RPC mechanism, which introduces significant software dependencies in these environments. To address this issue, projects like rosserial developed lightweight communication protocols tailored for MCU-to-PC master node communication. ROS 2, on the other hand, integrates the industry-proven DDS protocol, which has demonstrated its stability in domains like military, aerospace, and financial systems. It is important to note that DDS is a standard protocol with various implementations, such as Cyclone DDS (Eclipse), Fast DDS, and Micro XRCE-DDS (eProsima). To ensure that upper-layer ROS 2 code remains unaffected by different DDS implementations, ROS 2 defines a series of abstract layer interfaces, such as RCL (ROS Client Library) and RMW (ROS Middleware). These DDS implementations provide a uniform RMW interface. On top of RMW is the RCL, implemented in C, which supports various programming languages, including C++, Python, and Java. Thus, successfully porting ROS 2 to a real-time operating system (RTOS) hinges on the RTOS supporting a specific DDS implementation and its corresponding RMW interface. Only then can upper-layer RCL and ROS application code run without modification. ROS 2 comprises RCL (ROS Client Library), RMW (ROS Middleware Interface), and DDS (Data Distribution Service). Porting ROS 2 to a new platform essentially involves creating a compatible RMW-DDS combination, leaving the RCL layer unaltered. Micro-ROS provides such an RMW-DDS combination. Specifically, Micro-ROS employs Micro XRCE-DDS (a DDS standard designed for extremely resource-constrained environments) with a corresponding RMW implementation. This enables Micro-ROS to be compatible with ROS 2's architecture while efficiently running on resource-limited embedded devices. Thus, porting Micro-ROS to different hardware platforms fundamentally involves interfacing communication protocols like UART (Universal Asynchronous Receiver-Transmitter) and UDP (User Datagram Protocol) with the Micro-ROS RMW-DDS combination. This process ensures effective communication between Micro-ROS and other nodes or external systems while maintaining the lightweight and efficient characteristics suitable for embedded devices. From the above introduction, we can see that MicroROS transplantation mainly has two parts: Connect UART/UDP communication and clock to implement the 5 functions in default_transport.cpp. Folder DDS+RMW+RCL generates libmicroros.a static library. 3. Micro-ROS Static Library Toolchain and Environment Configuration 3.1 Micro-ROS Static Library Toolchain and Environment Configuration First, install ROS 2 on Ubuntu 22.04 LTS and run the following commands: sudo apt update&&sudo apt install locales sudo locale-gen en_US en_US.UTF-8 sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 export LANG=en_US.UTF-8 sudo apt update && sudo apt install curl gnupg lsb-release sudo curl -sSL https://raw.githubusercontent.com/ros/rosdistro/master/ros.key -o /usr/share/keyrings/ros-archive-keyring.gpg (1) sudo apt update: Updates the system’s package list to fetch the latest package information. (2) sudo apt install locales: Installs the locales package, which provides tools for managing and configuring localization. (3) sudo locale-gen en_US en_US.UTF-8: Generates the localization settings for US English, including UTF-8 encoding. (4) sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8: Updates the system’s localization settings to use UTF-8 encoding for US English. (5) export LANG=en_US.UTF-8: Sets the current terminal’s language encoding to US English UTF-8. (6) sudo apt install curl gnupg lsb-release: Installs additional tools (curl for network requests, gnupg for encryption, lsb-release for distribution information). (7) sudo curl: Downloads the ROS public key for verifying package integrity. 3.2 Installing ROS on Ubuntu Set up and build the Micro-ROS development environment with the following commands: sudo apt update && sudo apt upgrade && sudo apt install ros-humble-desktop source /opt/ros/humble/setup.bash && echo “source /opt/ros/humble/setup.bash” >>~/.bashrc source /opt/ros/$ROS_DISTRO/setup.bash mkdir uros_ws && cd uros_ws git clone -b iron https://github.com/micro-ROS/micro_ros_setup.git src/micro_ros_setup rosdep update && rosdep install --from-paths src --ignore-src -y colcon build source install/local_setup.bash ros2 run micro_ros_setup create_firmware_ws.sh generate_lib (1) Update the software and install ROS (Robot Operating System) (2) Set and save the configuration of the ROS environment. (3) These two commands create a new directory uros_ws (workspace), and then switch to this directory. (4) Clone the project named micro_ros_setup from the GitHub repository and place it in the src directory of the workspace. (5) These two commands are used to install the dependencies required by the project. (6) This command uses the colcon build system to compile and install the project. Colcon is a general-purpose build tool suitable for multiple programming languages and platforms. (7) create_firmware_ws.sh: This is the name of the executable file to be run. It might be a script that creates a firmware workspace. The purpose of this command is to run the create_firmware_ws.sh script in the micro_ros_setup package and pass the parameter generate_lib to generate a firmware workspace containing the Micro-ROS library. This step requires downloading a large amount of source code from github. After failure, the next generation will prompt that the firmware already exists and you need to rm this folder. If the following picture appears, it proves that the code download is successful. 4. Generating the Micro-ROS Static Library If the toolchain and environment setup are successful, you should have five folders in your workspace: build, firmware, install, log, and src. The firmware folder contains the Micro-ROS workspace. 4.1 Configure the toolchain.cmake file according to the target processor Enter the fireware directory. The colcon.meta and toolchain.cmake inside are the configuration files we need to specify to generate the static library. Colcon.meta describes the configuration of our micro-ros, and toolchain.cmake describes the microcontroller platform. We can open MCUXpresso to find MCXN947 related configuration. and create toolchain.cmake. set(CMAKE_SYSTEM_NAME Generic) set(CMAKE_CROSSCOMPILING 1) set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) # SET HERE THE PATH TO YOUR C99 AND C++ COMPILERS set(PIX /opt/gcc-arm-none-eabi-10.3-2021.10/bin) set(CMAKE_C_COMPILER ${PIX}/arm-none-eabi-gcc) set(CMAKE_CXX_COMPILER ${PIX}/arm-none-eabi-g++) set(CMAKE_C_COMPILER_WORKS 1 CACHE INTERNAL "") set(CMAKE_CXX_COMPILER_WORKS 1 CACHE INTERNAL "") # SET HERE YOUR BUILDING FLAGS set(FLAGS "-O2 -ffunction-sections -fdata-sections -fno-exceptions -mcpu=cortex-m7 -mfpu=fpv5-d16 -mfloat-abi=hard -nostdlib -mthumb --param max-inline-insns-single=500 -D'RCUTILS_LOG_MIN_SEVERITY=RCUTILS_LOG_MIN_SEVERITY_NONE'" CACHE STRING "" FORCE) set(CMAKE_C_FLAGS_INIT "-std=c11 ${FLAGS} -DCLOCK_MONOTONIC=0 -D'__attribute__(x)='" CACHE STRING "" FORCE) set(CMAKE_CXX_FLAGS_INIT "-std=c++11 ${FLAGS} -fno-rtti -DCLOCK_MONOTONIC=0 -D'__attribute__(x)='" CACHE STRING "" FORCE) set(__BIG_ENDIAN__ 0) The above is how cmake is written. Among them, "-mcpu=cortex-m7 -mfpu=fpv5-d16 -mfloat-abi=hard": These options specify the architecture and floating point unit characteristics of the target processor. We can view the architecture and floating point unit characteristics of the MCXN947's target processor. We can open MCUXpresso IDE, open a MCXN947 project, and check mcpu=cortex-m33 -mfpu=fpv5-sp-d16 mfloat-abi=hard in All options in settings->MCU Linker. Therefore, the MCXN947 series is an M33 core. We need to change -mcpu=cortex-m7 to -mcpu=cortex-m33, and basically no other changes are needed. From this we can also see that a series of static libraries produced should be universal! 4.2 Configure the colcon.meta file according to Micro-ROS requirements The other file created sets the Micro-ROS library configurations. To set the transport layer type, here we want a custom transport layer, the configuration “-DUCLIENT_PROFILE_CUSTOM_TRANSPORT=ON” is set to “ON” and the configuration “-DRMW_UXRCE_TRANSPORT=custom” is set to “custom”. The other interesting settings are under the “rmw_microxrcedds” section. Here we can set the maximum number of nodes (1), publisher (5), subscribers (5), services (1) and clients (1) that should be supported, as well as the maximum message history (4) used for a reliable QoC mode. A more detailed description of all settings under this section, can be found in the eProsima Micro XRCE-DDS GitHub. An example configuration, the one I used, is shown below: touch colcon.meta { "names": { "tracetools": { "cmake-args": [ "-DTRACETOOLS_DISABLED=ON", "-DTRACETOOLS_STATUS_CHECKING_TOOL=OFF" ] }, "rosidl_typesupport": { "cmake-args": [ "-DROSIDL_TYPESUPPORT_SINGLE_TYPESUPPORT=ON" ] }, "rcl": { "cmake-args": [ "-DBUILD_TESTING=OFF", "-DRCL_COMMAND_LINE_ENABLED=OFF", "-DRCL_LOGGING_ENABLED=OFF" ] }, "rcutils": { "cmake-args": [ "-DENABLE_TESTING=OFF", "-DRCUTILS_NO_FILESYSTEM=ON", "-DRCUTILS_NO_THREAD_SUPPORT=ON", "-DRCUTILS_NO_64_ATOMIC=ON", "-DRCUTILS_AVOID_DYNAMIC_ALLOCATION=ON" ] }, "microxrcedds_client": { "cmake-args": [ "-DUCLIENT_PIC=OFF", "-DUCLIENT_PROFILE_UDP=OFF", "-DUCLIENT_PROFILE_TCP=OFF", "-DUCLIENT_PROFILE_DISCOVERY=OFF", "-DUCLIENT_PROFILE_SERIAL=OFF", "-UCLIENT_PROFILE_STREAM_FRAMING=ON", "-DUCLIENT_PROFILE_CUSTOM_TRANSPORT=ON", "-DUCLIENT_PROFILE_SHARED_MEMORY=ON", "-DUCLIENT_SHARED_MEMORY_MAX_ENTITIES=20" ] }, "rmw_microxrcedds": { "cmake-args": [ "-DRMW_UXRCE_MAX_NODES=5", "-DRMW_UXRCE_MAX_PUBLISHERS=6", "-DRMW_UXRCE_MAX_SUBSCRIPTIONS=4", "-DRMW_UXRCE_MAX_SERVICES=6", "-DRMW_UXRCE_MAX_CLIENTS=1", "-DRMW_UXRCE_MAX_HISTORY=4", "-DRMW_UXRCE_TRANSPORT=custom" ] } } } 4.3 Building the Micro-ROS Static Library Run the following commands: source install/local_setup.bash ros2 run micro_ros_setup build_firmware.sh $(pwd)/firmware/toolchain.cmake $(pwd)/firmware/colcon.meta If the static library is successfully generated, you will see libmicroros.a in the firmware/build file. 5. Integrating and Testing the Static Library Locally 5.1 Adding the Generated Micro-ros Static Library to the Local Project (1) Create a folder named bsp_include. (2) Add all files from the include directory into your project under bsp_include. (3) Add all paths in the include file to the include path. (4) Add the generated libmicroros.a static library to the project, for example, add it to bsp_include. (5) Add the libmicrorots.a static library and name path to Libraries(-l) and Library search path(-L). 5.2  Implementing the Serial Communication Interface Functions To port Micro-ROS to an MCU, you must provide transport layer functionalities for reading and writing through the communication interface. The required transport functions are defined as follows: rmw_ret_t rmw_uros_set_custom_transport( bool framing, void * args, open_custom_func open_cb, close_custom_func close_cb, write_custom_func write_cb, read_custom_func read_cb); ​ Through this structure, we can see that the communication interface function group mainly includes open, close, write, and read. open: This function is responsible for initializing (opening) peripheral devices used by the transport layer. This function is empty if the peripheral is initialized elsewhere and before the Micro-ROS function is called. close: This function is responsible for deinitializing (turning off) peripherals used by the transport layer. Because there is no need to deinitialize the function. This function is also empty. write: This function is responsible for writing data (bytes) on the peripheral device. The number of bytes to be written and the bytes themselves are given as parameters "len" and "buf" respectively. read: This function is responsible for reading data (bytes) from the peripheral device. The number of bytes to read is specified in the function parameter "len" and bytes should be returned via the function parameter "buf". bool transport_close(struct uxrCustomTransport * transport) { return true; } bool transport_open(struct uxrCustomTransport * transport) { return true; } size_t transport_write(struct uxrCustomTransport* transport, const uint8_t * buf, size_t len, uint8_t * err) { LPUART_WriteBlocking(DEMO_LPUART, buf, len); return len; } size_t transport_read(struct uxrCustomTransport* transport, uint8_t* buf, size_t len, int timeout, uint8_t* err) { LPUART_ReadBlocking(DEMO_LPUART, buf, len); return len; } Additionally, you need to implement a function to provide the system’s clock time. This clock does not have to provide real-time or world time, but rather elapsed time since startup or similar. For example: int clock_gettime(clock_t unused, struct timespec *tp) { (void)unused; IRTC_GetDatetime(RTC, &datetimeGet); tp->tv_sec = datetimeGet.second; tp->tv_nsec = (long)(datetimeGet.second) * 1000000; return 0; } 5.3 Testing To run Micro-ROS in practice, the setup includes two components: 1. A client running on the MCU. 2. An agent running on the host PC. Basic Micro-ROS Client (MCU) Below are the minimal steps and code needed to create and run a Micro-ROS client. These instructions are based on the Micro-ROS documentation for node creation. //Required global variables rcl_allocator_t allocator; rclc_support_t support; rcl_node_t node; rclc_executor_t executor; rmw_ret_t error; //Set Communication functions rmw_uros_set_custom_transport( true, NULL, rtt_transport_open, rtt_transport_close, rtt_transport_write, rtt_transport_read ); //Set Allocation functions (Optional) rcl_allocator_t allocator = rcutils_get_zero_initialized_allocator(); allocator.allocate = rtt_allocate; allocator.deallocate = rtt_deallocate; allocator.reallocate = rtt_reallocate; allocator.zero_allocate = rtt_zero_allocate; (void)!rcutils_set_default_allocator(&allocator); //Get allocator allocator = rcl_get_default_allocator(); //Create init_options error = rclc_support_init(&support, 0, NULL, &allocator); //Create node error = rclc_node_init_default(&node, "uROS_Terminal", "", &support); //Create executor error = rclc_executor_init(&executor, &support.context, 1, &allocator); //Call the executor periodically e.g. in the while(1) loop or a thread: while(1) { error = rclc_executor_spin_some(&executor, RCL_MS_TO_NS(100)); } ​ Setting up the Micro-ROS Agent (PC) The agent establishes an interface between the Micro-ROS client on the MCU and ROS 2 on the host PC. To set up the agent: # Go to the Micro-ROS workspace folder cd microros_ws # Source ROS 2 source /opt/ros/humble/setup.bash # Source local packages source install/local_setup.bash # Create Agent ros2 run micro_ros_setup create_agent_ws.sh # Build Agent ros2 run micro_ros_setup build_agent.sh # Possible ROS Update sudo rosdep init rosdep update  After successfully building the Micro ROS agent, the following bash command starts/runs the agent: # Go to the Micro-ROS workspace folder cd microros_ws # Source ROS 2 source /opt/ros/humble/setup.bash # Source local packages source install/local_setup.bash # Run Agent (serial connection) ros2 run micro_ros_agent micro_ros_agent serial --dev /dev/ttyACM0 Of these bash commands, the last one is the one that actually starts the Micro-ROS agent. It takes several parameters, the first is the type of connection to use, in this case a serial connection. Then there are two parameters that only apply to serial connections: "--dev/ttyACM0", which sets the serial interface to be used (to list all serial interfaces in linux, you can use the following bash command: "dmesg | grep tty".) After starting the Micro-ROS agent, the MCU can connect to the host PC via the serial interface and reset to establish a new connection. If the following Micro-ROS agent terminal output: This proves the success of transplanting Micro-Ros On Frdm-mcxm947.
記事全体を表示
示例 S32K118-SRAM-keep_data_over_SW_reset v0_1 S32DS.ARM.2.2 ******************************************************************************** * Detailed Description: * The purpose of this example is show how to keep data in SRAM memory over SW * reset. SW reset is triggered by pressing the SW3 button on the S32K118EVB. * Reset is delayed for 514 LPO cycles. In the RCM interrupt, SRAMU_RETEN is * cleared allowing to retain SRAM data during the reset. After SW reset, * SRAMU_RETEN is set to allow accesses to SRAM. * File startup_S32K116.S in modified to skip ECC RAM initialization for SW reset * source. To check whether stored data stayed unmodified in the SRAM, specified * address is read and the LED lights up. * ------------------------------------------------------------------------------ * Test HW: S32K118EVB-Q064 * MCU: S32K118 LAMLH 0N97V QTZE1802B * Fsys: fsys = 48MHz * Debugger: Lauterbach Trace32 * Target: Debug * Terminal: 19200-8-no parity-1 stop bit-no flow control * EVB connection: default ******************************************************************************** Revision History: Ver Date Author Description of Changes 0.0 May-17-2023 David Tosenovjan Initial version *******************************************************************************/
記事全体を表示
Example_C40_Ip_ECC_Fault_Skip_S32K312_DS34_RTD2211_v1 ************************************************************************************************ * 详细说明: * 此示例展示了如何跳过在 C40_Ip_Read() 期间导致无法纠正的 ECC 错误异常的指令。 * ----------------------------------------------------------------------------------------------- * 测试硬件:S32312EVB-Q172 * MCU:S32K312 * 调试器:S32DS 3.4、PEMicro Multilink * 目标:internal_FLASH ************************************************************************************************* 回复: Example_C40_Ip_ECC_Fault_Skip_S32K312_DS34_RTD2211_v1 Hi @danielmartynek      RTD3.0.0 P01里有这个选项,RTD3.0.0 P07里则没有这个选项了。     目前已移植到RTD3.0.0 P07版本上验证可以了。     用C40_Ip_ReportEccUnCorrectedError();替换了C40_Ip_DsiHandler(); 回复: Example_C40_Ip_ECC_Fault_Skip_S32K312_DS34_RTD2211_v1 @danielmartynek  请问下在RTD3.0.0 P07下,C40_Ip_DsiHandler函数已经没有了,该怎么处理异常呢?请帮忙指导下,谢谢。
記事全体を表示
用于 IMX8MPLUS 的 LPDDR4 美光 MT53E1536M32D4DE-046 AA T: C 是一 款 48Gb (6GB) LPDDR4 动态随机存取存储器(DRAM) 元器件。 它在技术上与 i.MX 8M Plus 处理器兼容吗?由于 LPDDR4 兼容性问题,我的 IMX8MPLUS 板面临很多挑战。我的板是为大小为 32Gbit (4GB) 的双列双通道 LPDDR4 设计的。我找不到任何有现货的 LPDDR4。与其他 32Gbit (4GB) 但双通道单列的 LPDDR4 面临密码兼容性问题。请在这方面帮助我。我能否使用 MT53E1536M32D4DE-046 AAT: C 代替 32Gbit (4G B) LPDDR4。 Re: LPDDR4 for IMX8MPLUS 它可能不会使用 6GB LPPDR4 来取代当前的 4GB,因为使用 x32bus 的 6GB 需要 4 个引脚,而 I.mx8 plus 只有 2 个引脚。 Re: LPDDR4 for IMX8MPLUS 你好@Vighnesh imx8MP 可以毫无问题地支持 MT53E1536M32D4DE-046 AAT: C LPDDR4,我们已经验证了这款动态随机存取存储器(DRAM)。而且它有两个等级,而不是4个等级。 B.R Re: LPDDR4 for IMX8MPLUS 感谢您的确认。看来我犯了一个错误...
記事全体を表示
S32K148 FlexCAN2が動作しない こんにちは、 Eclipse OpenBSWプロジェクトを使用しながら、S32K148でFlexCAN2を有効にしようとしています。 FlexCAN0は正常に動作していますが、FlexCAN2は有効なフレームを送信しません。 構成: MCU: S32K148 CANインスタンス: FlexCAN2 ピン: PB12 → CAN2_RX (ALT4) PB13 → CAN2_TX (ALT4) 外部トランシーバ:MCP2551(5V電源) バス終端:合計約60Ω ビットレート:500 kbps(従来型CAN) 観察された行動: バス上ではエラーフレームのみが観測される ビットスタッフィングエラーが発生する ACKは受信されませんでした。 質問: MCP2551(5Vトランシーバ)は、S32K148 FlexCANのI/Oレベルと互換性がありますか? PB12/PB13のALT4はFlexCAN2の正しいピンですか? FlexCAN0とFlexCAN2の間には、考慮すべき特定のクロックまたは構成上の違いはありますか? どのようなご指導もいただければ幸いです。 よろしくお願いします。 Re: S32K148 FlexCAN2 not working こんにちは、 @sousou54 さん。 1.MCP2551との互換性に問題は見当たりません。 2. はい。 3. 追加の設定は不要です。CAN0/1/2は同じクロックで動作します。 ノードのテストを段階的に試してみてください... トランシーバを使わずにTX/RXピン同士を接続してメッセージを送信してみてください。ACKが欠落しているため、メッセージが繰り返し表示されるはずです。TXエラーカウンタは0x80で、モジュールはエラーパッシブ状態です。それ以外の表示が出た場合は、PIN設定が間違っています。 TX/RXピンをトランシーバに通常通り接続し、バスからは切り離してください。メッセージを送る。上記と同じ画面が表示されるはずです。そうでない場合、トランシーバが無効になっているか、または終了していない可能性があります。 MCP2551のデータシートを見ると、RsピンをVssに接続して高速モードを選択する必要があることがわかります。 トランシーバを他のノード(例:CANツール)、メッセージの送受信。エラーが検出された場合、おそらくCANビットのタイミングが正しくないと考えられます。すべてのノードが同じビットレートとサンプルポイントを使用していることを確認してください。 以下のツールを使用できます: MPC5xxx/S32Kxx/LPCxxxx: CAN / CAN FD ビットタイミング計算。 最後に、これはカスタムボードですか、それともS32K148EVBを使用していますか?カスタムボードの場合は、 AN5426「S32K1xxのハードウェア設計ガイドライン」に記載されている接続を確認してください。 よろしくお願いします、 ジュリアン
記事全体を表示
Cortex-M33 上的 i.mx93 LPSPI + eDMA 问题 我使用的是 Tria i.MX9332(B1 硅)SMARC 模块,并尝试在 Cortex-M33 上使用带有 eDMA 的 LPSPI6,但无法正常工作。 开发环境 VS 代码 1.109.0 用于 VS 代码扩展的 MCUXpresso 26.1.56 SDK 25.09.00 硬件 在定制载板上试用 SM2S-IMX93 通过 SPI(LPSPI6)连接带有ILI9341控制器的 LCD 现状 使用不带 DMA 的 LPSPI6 时,显示正常。 我试图切换到LPSPI6 + eDMA以提高吞吐量,但无法收到完成通知。 问题 基于 DMA 的传输似乎开始了,但我从未在传输结束时收到 LPSPI DMA 完成回调。 详细信息和相关代码/配置见附件。 有人能指出我可能遗漏了什么,或者为什么没有触发信号吗? Re: i.mx93 LPSPI + eDMA problem on Cortex-M33 感谢您提供的示例代码。回顾范例让我明白了这一点。 Re: i.mx93 LPSPI + eDMA problem on Cortex-M33 你好@albi84 请参考附件中的补丁文件配置 LPDPI 与 EDMA B.R Re: i.mx93 LPSPI + eDMA problem on Cortex-M33 你好 能否请您分享带有 eDMA 的 LPSPI 的骨架? 谢谢。 Re: i.mx93 LPSPI + eDMA problem on Cortex-M33 这不是一个骨架,而是我使用的实际代码。这有帮助吗?
記事全体を表示
i.MXRT1064 カスタム ボードをデバッグできません。 こんにちは、 デバッグ モードでコードを実行しようとすると、「アドレス "0x20d102" でブレークしましたが、デバッグ情報が利用できません」というメッセージが表示されます。 私は i.MXRT1064 カスタム ボードを使用し、LinkServer LPC-Link2 を使用してプログラミングしています。 このボードは以前は問題なく動作していましたが、突然このメッセージが表示されます。 リリースモードを試してみました。リリース コードを使用してボードを正常にフラッシュすることはできますが、その後プログラムが実行されないようです。シリアル端末からもディスプレイからも出力が表示されません。 また、Secure Provisioning Tool を使用してこのボードをプログラミングしようとしましたが、まだ動作しません。 この問題に関して、どこに焦点を当てるべきか、または何か手がかりとなるものについて、どなたか助言をいただけませんか? Re: Unable to debug i.MXRT1064 custom board. こんにちは、MayLiuさん。 ご返信ありがとうございます。 以前、ご提案いただいた設定を試しましたが、デバッグしようとすると IDEs でエラー (MI コマンドの実行に失敗しました: -target-download) が表示されました。参考までに、そのエラーのスナップショットを添付しました。 前のメッセージに戻って、現在のプログラムが実行されているアドレスをチェックしたところ、コードが ROM 領域 (アドレス 0x20E35A) にあることが示されていたことを付け加えておきます。SO、何らかの理由で、コードはアプリケーション コードに到達/起動できず、ROM 内で停止します。私の仮定は正しいでしょうか?そんなシナリオがあり得るのでしょうか? Re: Unable to debug i.MXRT1064 custom board. こんにちは@nxpsachveさん、 弊社の製品にご興味をお持ちいただき、またコミュニティをご利用いただき誠にありがとうございます。 1: 「アプリケーションを RAM にリンク」を選択して再度デバッグしてみてください。 アプリケーションが RAM から正常に実行できる場合は、ボードをシリアル ダウンローダー モードに設定し、セキュア プロビジョニング ツールを使用して UART1 または USB1 でボードをプログラムしてください。   アプリケーションの実行に失敗した場合は、オシロスコープを使用してボードの電源投入シーケンスを確認することをお勧めします。   お役に立てれば幸いです。 よろしくお願いいたします。 メイリュー Re: Unable to debug i.MXRT1064 custom board. こんにちは@nxpsachveさん、 MCUXpresso IDE は BOOT 構成を変更するとは思いません。NXP RT 上のブート動作は、ハードウェア ブート構成とブート モード ピンによって決まります。 シリアル ダウンローダー モードでターゲットを検出できるため、ROM がまだ正常に実行されていることがわかります。次のステップとして、次のことが考えられます。 チップ全体の消去を実行します。 ボードを内部ブートモードに切り替え、 デバッグのためにMCUXpresso IDEに再接続してみてください。 あるいは、MCUXpresso Secure Provisioning Tool を使用してアプリケーション イメージをプログラムすることもできます。 よろしくお願いいたします。 メイリュー Re: Unable to debug i.MXRT1064 custom board. こんにちは@nxpsachveさん、 最新情報をありがとうございます。 提供された情報に基づくと、CPU は現在、アプリケーション コードではなく、Boot ROM からのコードを実行している可能性があります。   BOOT CFG と BOOT モード ピンの設定をチェックして、デバイスがユーザー フラッシュから起動するように構成されていることを確認することをお勧めします。   ボードをシリアル ダウンローダー モードに設定し、J-Link 経由で接続して、デバッガーがターゲットを検出して通信できるかどうかを確認することもできます。   よろしくお願いいたします。 マトリウ Re: Unable to debug i.MXRT1064 custom board. こんにちは、MayLiuさん。 ご提案ありがとうございます。 MCUXpresso 内に、BOOT Conf を変更したり影響を与えたりするような設定や構成があるかどうかを確認したいのですが。IDE を除外するためです。 リンク サーバーは、シリアル ダウンロード モードのときにターゲットを検出できます。
記事全体を表示
DMS on iMX93 FRDM Hi Team, Has anyone implemented or evaluated a Driver Monitoring System (DMS) demo on the i.MX93 FRDM platform? I am specifically looking for details or references related to the following features: Face detection Face landmark detection Iris / eye landmark detection Driver behavior detection such as smoking and phone usage If any demo, reference design, SDK example, or partner solution is available, please share the details or relevant documentation. Thanks in advance for your support. Best regards, Ajnas FRDM-Training Re: DMS on iMX93 FRDM Hi @ajnas-c, Thank you for contacting NXP Support! You can check a detailed information and source code about this demo in the link below: https://github.com/nxp-imx-support/nxp-demo-experience-demos-list/tree/lf-6.12.3_1.0.0/scripts/machine_learning/dms Best Regards, Chavira
記事全体を表示
NETC IEEE 1588 timer software does not meet the requirement of RM In S32ZE NETC reference manual, "Document identifier: S32E27NETCRM Reference Manual Rev. 4, 2024-12-12", 3.2.5.3.1 Normal Mode with Drift and Error Adjustment, it claimed "During normal operation, any change to the 1588 timer configuration (for example TMROFF_H/L), except for TMR_ADD updates, requires that TSN related functionality such time gate scheduling, time specific departure scheduling, stream gating and rate policing, be disabled." But neither the gPTP software, nor the NETC device driver does meet this specification.  GPTP_STACK RTD Re: NETC IEEE 1588 timer software does not meet the requirement of RM We have a gPTP software module from NXP, is it correct? It will call the function "EthSwt_43_NETC_CorrectPtpClk" to update current time. I'm not talking about the "provide functions about correcting timer". My question is, while the gPTP is calling EthSwt_43_NETC_CorrectPtpClk() function to update current time, how to make the 802.1Qbv feature NOT be impacted? Re: NETC IEEE 1588 timer software does not meet the requirement of RM Hi @shuangjunzhu , ETH driver RTD2.0.1 follows ASR 21-11 that just includes some api functions for timestamp such as: For this reason, I think that they didn't provide functions about correcting timer as you said. Seems functions about correcting timer will be supported in ASR23-11 or gPTP have to make the request with changing the requirement if they need to use them in ASR21-11. Best regards, Nhi Re: NETC IEEE 1588 timer software does not meet the requirement of RM Thanks for your attention. As you stated "driver just supported to get current timer from TMR  registers until now, not supports to configurate them", I do not understand.  How about gPTP software to change the OFFSET register? I do think the gPTP software definitely needs to change the OFFSET register. My question is, how to follow-up the RM, while the gPTP software is trying to change OFFSET register, to keep the TSN features, for example, the 802.1Qbv function working smoothly?  Re: NETC IEEE 1588 timer software does not meet the requirement of RM Hi @shuangjunzhu , I'll answer this topic for NETC driver. - The latest release was launched for ZE is RTD 2.0.1 that follows RM rev 3 and as far as I know, the next release RTD 2.0.2, still follows RM Rev 3. But if there is any update about RM version, SW team has a ticket to check change between new and old RM. I think that they can detect the change. - As far as I know, timestamp was supported in driver until now are default count TMR_CTRL[TE] = 0 and the feature EthEnableFreeRunningTimer just added to RTD 2.0.1 that works in 1588 timer TMR_CTRL[TE] = 1. Current timer will be gotten from 1588 registers TMR_FRT_L/H, but seem that there is an bug here because I didn't anywhere set TE (the ticket: ARTDCC1-593 for detail). Anyway, driver just supported to get current timer from TMR  registers until now, not supports to configurate them. The claim that you said seem just happen if user want to change 1588 register configuration. Best regards, Nhi Re: NETC IEEE 1588 timer software does not meet the requirement of RM Hi @shuangjunzhu , You means want to stop TSN functionalities before changing 1588 list of registers, right? Current driver, I saw driver doesn't support the function to stop TSN. If you want to disable each features in TSN, seem you need to delete entries in each table. For example: - Rate policy: Netc_EthSwt_Ip_DeleteRatePolicerTableEntry(); - Netc_EthSwt_Ip_DeleteStreamGateControlListTableEntry(); -  EthSwt_43_NETC_StopTas(); Best regards, Nhi Re: NETC IEEE 1588 timer software does not meet the requirement of RM Hi @shuangjunzhu , From my point of view, the problem is not only how many TSN features are enabled, because if the customer uses ASR context, these features enabled/disabled in precompile by macros but also are in each feature. As you know, each feature Rate policing, stream gate,... controlled through table as below: If user just configured elements in the configuration tool, then SW team can control how many entries with entry ID to delete them when disabling this feature. But in case, user adds elements by calling function, then SW has no way to know. But I think user can control this from their application. Maybe I missed something, but I understand TSN will refer to timer values, so it is make sense to stop them before changing timer configuration and start again to get new timer values. I believe that SW team can has deep insight when they analyzing that ticket.  Best regards, Nhi Re: NETC IEEE 1588 timer software does not meet the requirement of RM Hi @shuangjunzhu , If you don't have any idea about ETH driver anymore, please remove RTD from this topic so that someone is from gPTP can answer you. Best regards, Nhi Re: NETC IEEE 1588 timer software does not meet the requirement of RM Hi, Thanks for your great help. Please have me highlight one very import thing for AUTO customers, while they are using TSN IEEE802.1Qbv feature, of course, they need to enable gPTP as well per 802.1Qbv time sync requirement. They are concerning about whether the gPTP will impact the critical traffic which is in one 802.1 Qbv slot. We (NXP) need to clarify it and provide how to do it. This is a very dedicate and clear requirement. And it's a good example or use case for you to understand the situation. Yes, for sure, we do not know how many TSN features customer are enabling. But for everyone of possible using, we need a solution. Customer could make right selection based on their use cases. Thanks, Jeff  Re: NETC IEEE 1588 timer software does not meet the requirement of RM Hi, Yes, I still have a question. Please help to check how to dis-able/re-enable 802.1Qbv from Ethernet driver point of view. And please help analyze whether this kind of action will cause the critical traffic delay one of 802.1Qbv schedule cycle? Thanks, Jeff   Re: NETC IEEE 1588 timer software does not meet the requirement of RM Hi, It's NOT me want to disable the TSN feature before gPTP changed timer offset register. It's the requirement of NETC RM. Customer is asking for official solution to meet the RM specification from NXP: how to disable TSN features, i.e. IEEE802.1Qbv under this situation. Customer assume it should be provided by NXP, because it's hardware requirements and hardware related coding.  By the way, I'm thinking your suggestion need to be well designed. Especially for 802.1Qbv, how to make the application traffic NOT impact by the gPTP sync action. For example, is it possible that some traffic might be delay one Qbv schedule cycle?  Thanks, Jeff Re: NETC IEEE 1588 timer software does not meet the requirement of RM Hi @shuangjunzhu , From my point of view, it is difficult to meet this requirement from ETH driver with the official function that stop TSN . As you can see, to disable the Port Gate time schedule , just need to reset the bit Time Gate enable PTGSCR[TGE]. But for some TSN features, such as Rate Policy, this feature was enabled/disabled based on elements in this table. But from ETH, we can't know entries were added to this table to delete or update elements to disable them, upper layer can handle this better. For this reason, I suggested to call functions that delete entries in each table as my previous reply. In case, user didn't enable option features: rate Policing, stream gate control list,... they can disable TSN with the function  EthSwt_43_NETC_StopTas() . Anyway, I created the ticket ARTDCC1-607, you can follows it to get the analysis from SW team in case I missed something. And RM Rev4 hasn't applied to RTD release yet. If you don't have more idea about ETH for this topic, please let me know, I'll free this case to gPTP can continue answer you from their side.  Best regards, Nhi Re: NETC IEEE 1588 timer software does not meet the requirement of RM Hi @shuangjunzhu , I saw the feature 802.1 Qbv supports both NETC and Switch. So, you can configure this feature through: - Eth_NETC: - Port switch: The functions are: For ETH_NETC: - Eth_43_NETC_StartTas() - Eth_43_NETC_StopTas() For Port switch: - EthSwt_43_NETC_StartTas()  -  EthSwt_43_NETC_StopTas()  For this question: "analyze whether this kind of action will cause the critical traffic delay one of 802.1Qbv schedule cycle", from my point of view, as you can look at the function Netc/PortSwt_Ip_ConfigPortTimeGateScheduling() that enable/disable this feature, to disable this feature, just need to reset one bit but enable this feature, need to enable Gate Time and set up Gate Time table. This time can measure.   I understand that you means about "one of 802.1Qbv schedule cycle" is the execution time of the Gate control list should be repeated, right? If it is, this can be configured.  Best regards, Nhi Re: NETC IEEE 1588 timer software does not meet the requirement of RM Hi, It looks like you still do not catch up my question. Please let me have a more detail description. Assume customer has a Qbv configuration and it's in running status with the parameter as below:  1. the cycle time is 10ms 2. in one 10ms time period, there are two slots, 5ms individually. In other words, there are two entries in the gate list. 3. Assume while the first time slot is open, NETC is transmitting the critical frames. At this time the gPTP start to update current time, per RM requirement, customer needs to disable/re-enable 802.1Qbv.  4. After the 802.1Qbv is re-enabled, It's possible that the NETC hardware might continue to open time slot 1, or go to gate list 2nd entry, or wait for new Qbc schedule cycle.  If the hardware go to 2nd entry, it means the critical frames in NETC queue will be transmit in next 10-ms cycle. And it might cause big delay and impact applications. 5. Customer is asking how to avoid this kind of situation. In other words, how to smoothly disable/re-enable Qbv to reduce the impact to the applications. Hope it will make thing clear. Thanks, Re: NETC IEEE 1588 timer software does not meet the requirement of RM Hi, I didn't see another way to enable/disable TAS except 2 functions that I mentioned in the previous reply. From my point of view, when disable time gate control, all of features of this also disabled, time interval, cycle,... Duration between disable and enable TAS, includes time to finish updating timer from gPTP. When enable TAS, base time will be updated with current time. Except new base time = next old interval time, if not can't see your requirement.  I have no more idea about this, I also updated this question in above ticket so that SW team can have suggestion for your case. Best regards, Nhi 
記事全体を表示
用于非 PSA 操作的 MbedTLS3 和 CAAM 驱动程序 亲爱的各位 我们根据 mbedTLS 2 的弃用说明,更新了 mbedTLS3。我们发现恩智浦有两个 mbedTLS 存储库。 (ver 2.x deprecated) https://github.com/nxp-mcuxpresso/mbedtls (ver 3.x) https://github.com/NXP/nxp_mbedtls 我们通过阅读 sdk 使用的 yaml 文件找到了它 - 我们想知道,如果我们选择 ver 3x,而不使用 PSA API,是否会降低性能? 版本 2 通过 port/ksdk 提供了一组替代函数,可用于将加密操作委托给 CAAM 驱动程序,如 ksdk_mbedtls: https://github.com/nxp-mcuxpresso/mbedtls/blob/release/25.06.00/port/ksdk/ksdk_mbedtls.c 我们通过 fsl_caam 使用原始 CAAM 驱动程序进行 aes256 加密,我们想使用 mbedtls 来生成一对 ecdsa 密钥。我们的目标是拥有 mbedTLS3 并将所有可能的工作委托给 CAAM 硬件 ——如果有人知道应用笔记/端口已经完成,或者知道如何设计这样的指南,那就太好了。 感谢您的支持 🙂 Re: MbedTLS3 and CAAM driver for Non-PSA operations 还有一个小信息,我们正在使用 imxrt1176 并在其上安装了 FreeRTOS,我们是否正确读取了 mbedtls_ksdk.c 中的端口? 672 - 674 https://github.com/nxp-mcuxpresso/mbedtls/blob/release/25.06.00/port/ksdk/ksdk_mbedtls.c #endif /* MBEDTLS_THREADING_C */ if (ctx->mode == MBEDTLS_DES_ENCRYPT) { status = CAAM_DES_EncryptEcb(CAAM_INSTANCE,&s_caamHandle, input, output, 8, key); 这个端口使用阻塞操作吗?这样,其他 FreeRTOS 线程就会被阻断 - 我们发现在 mbedtls 的 freertos 示例中使用了这个端口,所以这对我们来说是个惊喜 Re: MbedTLS3 and CAAM driver for Non-PSA operations 您好, SDK 中似乎有 mbedtls 和 mebedtls 3.x,如下所示,还有 CAAM(加密加速和保障模块)示例。 https://mcuxpresso.nxp.com/mcuxsdk/latest/html/examples/driver_examples/caam/readme.html https://mcuxpresso.nxp.com/mcuxsdk/latest/html/examples/mbedtls3x_examples/index.html https://mcuxpresso.nxp.com/mcuxsdk/latest/html/examples/mbedtls_examples/index.html 是的,这是一个阻塞操作。
記事全体を表示
MCXN647との接続問題(Ee(42)エラー) こんにちは、 FRDM-MCXN947に問題があります。プロジェクトをデバッグまたはフラッシュしようとすると、次のエラーが発生します。 関係があるかどうかはわかりませんが、while(1) ループのこの行を変更して頻度を上げたときに発生しました: SDK_DelayAtLeastUs( 30000 , SystemCoreClock); -> SDK_DelayAtLeastUs( 10000 , SystemCoreClock); 問題が発生する前にアップデートしていなかったのですが、その後LinkFlashをアップデートしても何も解決しませんでした。 すでに SPT 消去を試しましたが、機能しませんでした。(多分、やり方が間違っていたのでしょう。) SPT では、ISP モードを有効にした後、「イメージの構築」および「イメージの書き込み」操作を実行できましたが、消去はまだ機能しません。 ご協力をよろしくお願いいたします。 追伸: 英語と専門用語が下手で申し訳ありません。私は工学部でこのプロジェクトを始めたばかりです。 ブートROM|ブート|フラッシュ クロック|タイマー MCX N USB Re: Connection problem with MCXN647 (Ee(42) error) こんにちは@Peter-D SPT ツール内のフラッシュ プログラマーを使用して、blinky SDK デモを消去およびプログラムし、正常に動作するかどうかを確認してください。詳細は添付の動画をご参照ください。 これらの手順がうまく機能しても、オンボード デバッガーでデバッグできない場合は、外部デバッガーを使用してテストしてください。 まだ問題がある場合は、お気軽にお問い合わせください。 よろしくお願いします。 BR アリス Re: Connection problem with MCXN647 (Ee(42) error) こんにちは@Alice_Yang 、 ご返信ありがとうございます。 ビデオの指示に従いましたが、その方法で LED が点滅しました。 ただし、MCUXpresso IDE からデバッガーに戻ると、同じエラーが発生します。 問題がオンボード デバッガーから発生している場合、特に私が使用しているボードは学校で貸与されたものなので、PEMicro や SEGGER J-Link (それが言及されている場合) などの外部デバッガーを購入するつもりはありません。 解決策が見つからない場合は、私のプロジェクトでも機能するフラッシュ プログラマーを引き続き使用し、教授に外部デバッガーがあるかどうかを尋ねます。 よろしくお願いいたします。 ピーター Re: Connection problem with MCXN647 (Ee(42) error) こんにちは@Peter-D あなたのボード上のデバッガーが実際に壊れているかどうかはわかりません。次の手順に従って、デバッガー ファームウェアを更新してください: https://docs.nxp.com/bundle/UM12018/page/topics/Updating_MCU_Link_firmware.html 更新後、ボードの電源を入れ直し、MCUXpresso IDE で新しいワークスペースを作成し、新しい SDK デモをインポートして、再度デバッグを試みます。 ビデオを撮って私と共有していただけると嬉しいです。確認をお手伝いします。 よろしくお願いします。     BR アリス Re: Connection problem with MCXN647 (Ee(42) error) こんにちは@Alice_Yang ご返信よろしくお願いします。 提案されたとおりに LinkServer を更新しましたが、問題が発生した後にすでに更新されていたと思います。とにかくもう一度アップデートを試み、ボードの電源を入れ直し、新しいワークスペースを作成し、デモ プロジェクトをインポートしましたが、デバッグしようとすると同じ Ee(42) エラーが発生します。 プロセスを示す短いビデオを録画したので添付します。 ご協力ありがとうございました。良い新年をお迎えください。 よろしくお願いします、 ピーター Re: Connection problem with MCXN647 (Ee(42) error) こんにちは@Peter-D ビデオをありがとう。 .launch ファイル (下の画像) を削除して、ボードを再度消去してください。 デバッグを開始するには、下の図に示すデバッグ ボタンを使用します。 それでも動作しない場合は、ボードを交換することをお勧めします。 ちなみに、私は正月休みを頂き、1月5日に復帰します。もしご不明な点がございましたら、当日にお問い合わせください。 ご理解のほどよろしくお願いいたします。新年あけましておめでとうございます。 BR アリス
記事全体を表示
S32K3XX的drivers配置 您好,我想请教一下,S32K3XX系列芯片新建设工程,在使用drivers时,每一个driver(1所对应位置的每一种driver类型)对应的配置界面中每一项配置(3所示位置),有没有文档或者教程说明? 在实际工程应用中,我可以依据哪些资料来进行配置,我每次设置都是看设置项名称猜测其功能,并决定是配置成什么,感觉缺乏官方依据,让我觉得我的每一个设置很没有确定性和依据。 Re: S32K3XX的drivers配置 Hi@Aaron_LL AN13435下面的章节中有各组件的一些描述 并且在官网中有很多外设的配置培训教程,你可以在官网找到这些外设的培训教程。 https://www.nxp.com/products/S32K3
記事全体を表示