Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
SoftAP web_hvac 用户指南.pdf <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 工业控制
查看全文
KSDK GPIO驱动程序,带处理器专家 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 该视频展示了如何使用 Processor Expert 在 Kinetis Design Studio 中配置带有组件fsl_gpio 的KSDK GPIO 外设驱动程序。 这些步骤展示了如何在读取 FRDM-K64F 的 SW2 按钮输入时使红色和蓝色 LED 闪烁。该过程可复制到任何 KSDK 支持的主板以及 PE 驱动程序套件。享受! (在 “我的视频” 中查看) 概述 回复:KSDK GPIO驱动程序与处理器专家 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 对于初级程序员来说,这是非常棒的视频,您能制作更多类似的视频吗?拜托。 并且,在视频中,您没有配置 pin_init:Pinsettings,因为您用一个 gsl_gpio 配置每个引脚,但是,如果您在 init:Pinsettings 中配置 gpio,会发生什么情况?如何以这种方式制作 hello world 程序?并且,(在程序中)fsl_gpio 和 fsl_gpio_hal 有什么区别? 谢谢 卡洛斯·E.
查看全文
AMF-ACC-T1213 - DwF 底特律 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
查看全文
规则 - 2015 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 注册要求 最低技能 需要具有 C 或 Java 的使用经验。 需要具有 Linux 系统使用经验。 具有嵌入式编程经验者优先,但不是必须的。 团队 来自布加勒斯特理工大学或军事技术学院的一至三名成员。 2015年Linux嵌入式挑战赛
查看全文
Kinetis Design Studio: Migrating KDS V2.0.0 Projects to GNU Tools for ARM Embedded (Launchpad, KDS V3.0.0) Introduction Up and including to version 2.0.0, the Kinetis Design Studio (KDS) is using a custom GNU toolchain built by SOMNIUM Technologies, referred here as 'legacy'. That toolchain is built from the Free Software Foundation (FSF) source base, with a few minor modifications. Starting with v3.0.0, KDS will use the unmodified GNU Tools for ARM Embedded (launchpad, GCC ARM Embedded in Launchpad) toolchain (4.8-2014-q3-update : Series 4.8 : GCC ARM Embedded release), referred here as 'launchpad'. Projects created with KDS v3.0.0 will use the 'launchpad' tools by default. The reasons for 4.8-2014-q3 instead of using the later 4.9 release is because of stability and smaller footprint of 4.8 applications.   Outline This document outlines what are the differences between the 'legacy' and 'launchpad' toolchain, and what is needed to port existing 'legacy' projects to the 'launchpad' ones. It is already possible to use the 'launchpad' tools with KDS v2.0.0 today (see Switching ARM GNU Tool Chain and Libraries in Kinetis Design Studio | MCU on Eclipse), therefore the information in this document can be applied to KDS v2.0.0 to with using the 'launchpad' toolchain.   KDS Upgrade Assistant Kinetis Design Studio V3.0.0 comes with a migration assistant to migrate projects to the GCC ARM Embedded (launchpad) tools. The migration assistant is accessible from the menu Project > KDS Upgrade Assistant: This opens a dialog with the currently open projects in the workspace:   NOTE: if the Upgrade Assistant does not list your project, then you still can do the manual steps as listed below (changing the linker flags).   Select the project(s) you want to migrate and press Next. In the next dialog you can configure the details of the conversion, then press Finish: A report will be generated in each project directory:   Migration of KDS Projects To migrate an existing 'legacy' project to a 'launchpad' project, usually only the linker settings need to be changed. For this go into the project properties, and check the 'Other linker flags' settings of the Linker. The table below shows the difference between the two: Legacy 'Other linker flags' Launchpad 'Other linker flags' -specs=nosys.specs -nanolibc -specs=nano.specs -specs=nosys.specs   For example this project is a legacy project using the newlib-nano library: To use it with the 'launchpad' toolchain, use -specs=nano.specs -specs=nosys.specs as shown below: With this, normally projects are converted from the 'legacy' to the 'launchpad' toolchain.   NOTE: after switching toolchains, delete all intermediate or object files (e.g. delete the Debug/Output folder inside the project. Mixing object files or libraries from different toolchains and compilers will likely cause problems.   Now your project should compile fine. However, if you face a problem about wrong Thumb mode, see the following subsection.   Wrong or missing Thumb mode If getting errors like      Error: selected processor does not support Thumb mode      error: interrupt Service Routines cannot be coded in Thumb mode This means that the project settings do not properly pass the processor to the compiler. That problem mainly occurs with Kinetis SDK projects, and with Cortex-M0+ (Kinetis-L) projects. As explained in the next section, the launchpad tools by default use the ARM, not the thumb mode. The solution is to add      -mcpu=cortex-m0plus for these Kinetis-L projects to the compiler 'Other target flags'.   The following sections provide more detailed information about the differences.     Differences Both the 'launchpad' and the 'legacy' toolchains are GNU toolchains, and largely compatible. However there are notable differences between the two toolchains:   legacy launchpad GNU Binaries Microsoft 32bit binaries, Linux 64bit binaries Microsoft 32bit binaries, Linux 32bit binaries(1) GNU binutils 2.32.2 2.23.2.20140731(*) GCC 4.8.0(*) 4.8.4 (ARM/embedded-4_8-branch) NewLib 1.19.0(*) 2.1.0(*) Newlib-nano 1.0(*) 2.1 GDB 7.6(2) 7.6.0.20140731-cvs(2) ARM Mode Thumb ARM (non-Thumb) (*) Modified. (1) See next section about running 32bit GNU tools on 64bit Linux. (2) The legacy GDB has Python support, while this is not present in the launchpad 4.8-2014-q3 build. Python support has been added by ARM in 4.9-Q4-2014 release.   Launchpad 32bit Binaries to run on 64bit Linux Because the 'launchpad' tools are 32bit binaries on Linux only, this can cause issues on 64bit Linux systems (e.g. Ubuntu 14.04 64bit) if the needed 32bit support libraries are not installed. A usual error message is that arm-none-eabi-gcc could not be found, even if that file is present, because the system does not know how to run it. This is because the 'launchpad' tools are built as 32bit binaries, an the compatibility package needs to be installed. See http://gnuarmeclipse.livius.net/blog/toolchain-install/ how to install the necessary compatibility libraries for Linux.   ARM Default Mode The default options for the 'legacy' toolchain produce code for the ARM Cortex-M0+ (Thumb mode), while the 'launchpad' tools default to the 'ARM' mode (non-Thumb). Therefore it is important that the command line options -mthumb with the appropriate -mcpu= or -march= options are used if using the tools in command line only mode. If using the GNU ARM Eclipse plugins, then no changes are needed as these options are set in the project already:     Default Libraries and Options The GNU compiler driver and linker is using default pre-built libraries in certain sub directories. These directories contain a default set of libraries, based on the compiler and architecture options specified during the build and link phase. Using linker options like -L to include a specific library or using options like -nostdlib or similar have an effect which libraries in which subdirectory are used. The library folder location is in \toolchain\arm-none-eabi\lib   The following table lists the specific options used for both the legacy tools and launchpad tools to link for a specific architecture and floating point ABI used: Target Legacy Options Legacy Subdir Launchpad Options Launchpad Subdir ARM Cortex-M0+ -mthumb -march=armv6s-m armv6-m ARM Cortex-M4 -mcpu=cortex-m4 m4 -mthumb -march=armv7e-m armv7e-m ARM Cortex-M4F -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 m4/fp/v4-sp-d16 -mthumb -march=armv7e-m -mfloat-abi=hard -mfpu=fpv4-sp-d16 armv7e-m/fpu ARM Cortex-M4F with softfp ABI -mcpu=cortex-m4 m4 -mthumb -march=armv7e-m -mfloat-abi=softfp -mfpu=fpv4-sp-d16 arm7e-m/softfp   Newlib-nano Both the legacy and the launchpad toolchain include the newlib-nano library, a standard library more optimized for embedded devices than the normal newlib one. The option to select the newlib-nano library is different: Newlib-nano for Legacy Newlib-nano for Launchpad -nanolibc --specs=nano.specs   Application _start() The startup code needs to call the _start() function of the library which then calls the main() function. The _start() function in the library is responsible to initialize the library and prepare it to be used by the application. In order to do this, the library needs to have the __stack symbol defined in the linker file which points to the top of stack. For this, the __stack symbol needs to be defined in the linker file as in the example below: /* Highest address of the user mode stack */ _estack = 0x20000000;    /* end of m_data */ __SP_INIT = _estack; __stack = _estack;   Semihosting The legacy library has semihosting included in the libraries, and users can use _isatty() and _write() to overwrite the existing semihosting hooks. With the launchpad tools semihosting is enabled with the -specs=rdimon.specs linker option, and users can implement their own hooks with _sbrk(), _write(), _close(), _fstat(), _isatty(), _lseek() and _read(). To completely disable semihosting, the options -specs=nosys.specs can be passed to the linker.   Application Exit Function The legacy library includes a default implementation of _exit(), while the launchpad tools do not include this. Using the -specs=nosys.specs linker option will ensure that the linker does not complain about the missing _exit() function.   Summary A typical legacy Kinetis Design Studio (KDS) V2.0.0 project can be easily migrated to the launchpad toolchain with adding -specs=nosys.specs linker option and replacing the -nanolibc legacy option with -specs=nano.specs linker option.   Links Kinetis Design Studio: Kinetis Design Studio Integrated Development |Freescale GNU Tools for ARM Embedded: GCC ARM Embedded in Launchpad Q3 2014 GNU Tools for ARM Embedded Release: 4.8-2014-q3-update : Series 4.8 : GCC ARM Embedded Blog article about how to switch KDS toolchain: Switching ARM GNU Tool Chain and Libraries in Kinetis Design Studio | MCU on Eclipse GNU ARM Eclipse plugin website and blog by Liviu: Welcome to the GNU ARM Eclipse plug-ins! | GNU ARM Eclipse Article by Liviu how to install toolchain: http://gnuarmeclipse.livius.net/blog/toolchain-install/ General Re: Kinetis Design Studio: Migrating KDS V2.0.0 Projects to GNU Tools for ARM Embedded (Launchpad, KDS V3.0.0) It seems that your project already has a file exit.c with _exit() in it, so you do not need to do this last step. Erich Re: Kinetis Design Studio: Migrating KDS V2.0.0 Projects to GNU Tools for ARM Embedded (Launchpad, KDS V3.0.0) Hi Erich, I have tried to use the "KDS upgrade assistant" tool to migrate KDS2.0 projects with KSDK1.1 to KDS3.0 version. I am trying to convert the KSDK libs, MQX libs, USBH libs and usb host demo projects. All succeeded except the usb host demo. I got a failure message as follows.   Project name: host_msd_fatfs_frdmk64f_mqx_frdmk64f   Project location: C:/Freescale/KSDK_1.1.0/usb/example/host/msd/msd_fatfs/sdk/kds/host_msd_fatfs_frdmk64f_mqx   Conversion status: failure.   Add exit() file failure: A resource exists with a different case: '/host_msd_fatfs_frdmk64f_mqx_frdmk64f/sources'. So do I need to apply the last step in upgrade option? Hao Re: Kinetis Design Studio: Migrating KDS V2.0.0 Projects to GNU Tools for ARM Embedded (Launchpad, KDS V3.0.0) I found this guide very useful, thoughI think it is worth mentioning that launchpad toolchain in KDS3.0.0 has no support for C++ exceptions. Any throw will cause the execution to end up in the unhandled exception handler regardless a suitable catch is available in the call chain. (See: Question #230716 : Questions : GCC ARM Embedded ) Best Re: Kinetis Design Studio: Migrating KDS V2.0.0 Projects to GNU Tools for ARM Embedded (Launchpad, KDS V3.0.0) Hi BlackNight​, thanks for sharing this document.  I have a question regarding the project conversion process.  For those project previously written using KSDK 1.1, KDS 3.0 is going to ask us to install the KSDK 1.1.0-GA update: When I first loaded the project, I clicked "Skip loading", and then proceeded with the project conversion.  It completed successfully.  My thought was that after closing and re-opening the upgraded project, I would no longer get this message.  However, that's not the case. At this point, I'm not sure what to do because I don't know how the 1.1.0-GA update will interact in KDS 3 when the 1.2.0-GA update is already installed.  I do know that clicking Continue loading results in a project that doesn't work.
查看全文
MCUXpresso IDE v11.8.1 が利用可能になりました MCUXpresso IDE v11.8.1(ビルド1197)が利用可能になりました。 こちらは、前回のMCUXpresso IDE v11.8.0リリースを基にしたメンテナンス・リリースであり、この新しいバージョンをダウンロードしてインストールすることを既存ユーザーにお勧めします。   インストーラーのダウンロード  全プラットフォーム向けインストーラをダウンロードするには、当社のダウンロード・サイトに以下のリンクからログインしてください。 https://www.nxp.com/mcuxpresso/ide/download   ドキュメント  最新ユーザーガイドおよびその他のドキュメントに補足情報が掲載されています。これらドキュメントには、「IDEのヘルプ・メニュー」から利用可能な内蔵ヘルプ・システムから、およびインストレーション・ディクショナリ内からPDFフォーム形式でアクセス可能です。   今後のリリースの通知  今後のリリースに関する通知を受け取るには、こちらのリンクをフォローしてください:MCUXpresso IDE - リリース履歴    変更の概要 - バージョン11.8.1 - 2023年10月 アップグレード:新しいSEGGER J-Linkソフトウェア(v7.92l)。 アップグレード:新しいPEmicroプラグイン(v5.7.3)。 追加:i.MX RT1180デバイスおよびMIMXRT1180-EVKボードのサポート。 追加: KE1xZ512 デバイスおよび X-FRDM-KE17Z512 ボードのサポート。 追加:MCXA153デバイスおよびFRDM-MCXA153ボードのサポート。 改善:[ツールチェーン統合]サポートされているコンパイラ方言のリストにC++20とC++23のエントリを追加。 修正済み:[デバッガー][RW61x] セキュアプロジェクトがフラッシュにある場合、SYSRESET後にConnectスクリプトが停止しない問題を修正しました。 修正:[Flashプログラマ]Flashブランク・コマンドに関連するいくつかの問題を修正。 修正:[SDK統合]デバイス・パッケージを変更する際に、デバイス固有のプリプロセッサ定義が考慮されない問題を修正。   既知の問題  詳細なリストについては、インストール・レイアウトのKnownIssues.txtファイルを参照してください。  
查看全文
eIQ FAQ This document will cover some of the most commonly asked questions we've gotten about eIQ and embedded machine learning. Anything requiring more in-depth discussion/explanation will be put in a separate thread. All new questions should go into their own thread as well What is eIQ? The NXP® eIQ™ machine learning (ML) software development environment enables the use of ML algorithms on NXP EdgeVerse™ microcontrollers and microprocessors, including MCX-N microcontrollers, i.MX RT crossover MCUs, and i.MX family application processors. eIQ ML software is made up of several pieces of enablement including inference engines, neural network compilers and optimized libraries. This software leverages open-source and proprietary technologies and is fully integrated into our MCUXpresso SDK and Yocto development environments, allowing you to develop complete system-level applications with ease. eIQ enablement also enables models to use the new eIQ Neutron NPU found on the MCX-N and i.MX RT700 microcontroller devices and upcoming future NPU enabled embedded devices like i.MX95.  What are the key pieces of eIQ enablement?  eIQ Time Series Studio - PC tool to create and deploy classical machine learning and neural network models for time series analysis eIQ Inference Engines - Included as part of MCUXpresso SDK or Yocto Linux, this software is used to do inferencing of pre-trained neural network models on embedded devices eIQ Toolkit - Contains the Neutron Converter tool for enabling neural network models to be accelerated with eIQ Neutron NPUs eIQ Model Zoo - browse models tested on NXP silicon eIQ Model Watermarking Extension - Enhance copyright protections on custom models eIQ Model Creator - Partnership with ModelCat for vision-based model development How much does eIQ cost? eIQ Time Series Studio, eIQ Toolkit, and eIQ Inference engines are complimentary and royalty free. eIQ Model Creator has a subscription fee with ModelCat.  What is the development flow for developing and deploying AI/ML models with eIQ? There are two options depending on if already have a model or not, or if interested in Time Series or not: 1) Deploy a neural network model using the eIQ Inference Engines 2) Use eIQ Time Series Studio (TSS) to train and deploy a time series model using a simple C library eIQ Inference Engines What is the key enablement for using eIQ Inference Engines? 1) The inference engine, like TensorFlow Lite for Microcontrollers, that is included in the MCUXpresso SDK 2) eIQ Neutron Converter Tool - used to convert a quantized TFLite model into a Neutron-enabled TFLite model that can be parsed by the eIQ software. This is only required if using an eIQ Neutron NPU enabled device.  You can use any workflow to create and train your ML model. The model just needs to be exported as TFLite file so it can be converted by the eIQ Neutron Converter Tool and/or use the TFLM inference engine.  What inference engines are available in eIQ? i.MX apps processors and i.MX RT MCUs support different inference engines. The best inference engine can depend on the particular model being used, so eIQ offers several inference engine options to find the best fit for your particular application.  Inference engines for i.MX: TensorFlow Lite (Supported on both CPU and GPU/NPU) ARM NN (Supported on both CPU and GPU/NPU) OpenCV (Supported on only CPU) ONNX Runtime (Currently only supported on CPU) Inference engines for MCX and i.MX RT TensorFlow Lite for Microcontrollers ExecuTorch (Coming Soon) What devices are supported by eIQ inference engines? eIQ inference engines are available for the following i.MX application processors: i.MX 8M Plus i.MX 8M i.MX 8M Nano i.MX 8M Mini i.MX 8ULP i.MX 8X i.MX 93 i.MX 95 eIQ inference engines are available for the following MCX MCUs: MCX-N eIQ inference engines are is available for the following i.MX RT crossover MCUs: i.MX RT1180 i.MX RT1170 i.MX RT1160 i.MX RT1064 i.MX RT1060 i.MX RT1050 i.MX RT700 i.MX RT685 i.MX RT595 Can eIQ inference engines run on other NXP MCU devices? There's no special hardware module required to run eIQ inference engines and it is possible to port the inference engines to other NXP devices.  Is eIQ Toolkit required to use eIQ inference engines?  eIQ Toolkit is required if using a device with an eIQ Neutron NPU as it includes the Neutron Converter tool which is used to convert a model to be accelerated by the NPU.  For devices that do not have an NPU, eIQ Toolkit is optional enablement from NXP to provide an option to generate models that can then be used with the eIQ inference engines. However if you already have your model development flow in place, or want to use pre-created models from a model zoo, you can use those models with eIQ inference engines as well.  What is the eIQ Neutron NPU?  The new eIQ Neutron NPU is a Neural Processing Unit developed by NXP which has been integrated into the MCX N, i.MX RT700, and i.MX95 devices, with many more to come. It was designed to accelerate neural network computations and significantly reduce model inference time. The scalability of this module allows NXP to integrate this NPU into a wide range of devices all while having the same eIQ software enablement.  For more details on the NPU for MCX N see this Community post.  How can I start using the eIQ Neutron NPU?  There are hands-on NPU lab guides available for MCX N or i.MX RT700 that walk through the steps for converting and running a model with the eIQ Neutron NPU. There is also an app note AN14700 - i.MX RT700 eIQ Neutron NPU Enablement and Performance which has more details.  What TFLite operators are supported bythe eIQ Neutron NPU on different devices?  The details and constraints for supported operators can be found in the MCUXpresso SDK documentation.  eIQ Time Series Studio What is eIQ Time Series Studio (TSS)?   eIQ TSS is software application that provides an automated machine-learning workflow that streamlines the development and deployment of time series-based machine learning models across microcontroller (MCU) class devices such as the MCX portfolio of MCUs and i.MX RT portfolio of crossover MCUs. Time Series Studio supports a wide range of sensor input signals, including voltage, current, temperature, vibration, pressure, sound, time of flight, among others, as well as combinations of these for multimodal sensor fusion. The automatic machine learning capability enables developers to extract meaningful insights from raw time-sequential data and quickly build AI models tailored to meet accuracy, RAM and storage criteria for microcontrollers. The tool offers a comprehensive development environment, including data curation, visualization and analysis, as well as model autogeneration, optimization, emulation and deployment. eIQ Time Series Studio was previously included in eIQ Toolkit but is now available as a standalone installer for both Windows and Linux. A web based version is also under development.   What devices are supported by the eIQ Time Series Studio?   TSS will generate a C library that can be included in your application and does not require an Deep Learning inference engine, so it can be deployed to a much wider range of NXP devices as it has very minimal flash and RAM requirements.  MCX FRDM-MCXA153 FRDM-MCXC444 FRDM-MCXN947 FRDM-MCXW17 i.MX RT MIMXRT1060-EVK MIMXRT1170-EVK MIMXRT1180-EVK i.MXRT685 i.MXRT595 i.MXRT700 LPC LPC55S69-EVK Kinetis FRDM-K66F FRDM-KV31F FRDM-K32L3A6 DSC MC56F83000-EVK MC56F80000-EVK i.MX i.MX93 i.MX 8M Plus Can eIQ Time Series Studio create models that can take advantage of the eIQ Neutron NPU?  Yes, TSS now supports creating both Classical Machine Learning (CML) models as well as Neural Network models. Neural Network models can be accelerated by the NPU. However in many cases it will make more sense to use the CML models for time series applications as they can be just as accurate for many time series datasets but will be much faster and use far less memory due to their smaller model size. Even when using NPU acceleration Neural Network models can be slower than their far smaller CML model counterparts. However in some situations Neural Networks may give better accuracy for complex multi-modal analysis. TSS make it easy to determine if a NN or CML model is the best fit for a particular dataset.  But as many time series applications perform well with CML models then it opens up running time series AI on a wide variety of devices even if they do not have an integrated NPU.  How can I start using the eIQ Time Series Studio tool?  There is a hands-on lab guide available to walk through how to use the tool as well as documentation and guides in the tool itself.  General eIQ Questions How can I get eIQ? For MCU devices: eIQ inference engine libraries and examples are included as part of MCUXpresso SDK for supported devices. Make sure to select the “eIQ” middleware option. eIQ Neutron Converter Tool that converts your own neural network model to use the Neutron NPU can be found in eIQ Toolkit.  eIQ Time Series Studio is available as a standalone installer For i.MX devices: eIQ is distributed as part of the Yocto Linux BSP. Starting with the 4.19 release line there is a dedicated Yocto image that includes all the Machine Learning features: ‘imx-image-full’. For pre-build binaries refer to i.MX Linux Releases and Pre-releases pages. There is eIQ Toolkit - for model conversion.   What documentation is available for eIQ? For i.MX RT and MCX devices:  eIQ MCUXPresso SDK documentation can be found online here.  For i.MX devices: The eIQ documentation for i.MX is integrated in the Yocto BSP documentation. Refer to i.MX Linux Releases and Pre-releases pages. i.MX Reference Manual: presents an overview of the NXP eIQ Machine Learning technology. i.MX Linux_User's Guide: presents detailed instructions on how to run and develop applications using the ML frameworks available in eIQ (currently ArmNN, TFLite, OpenCV and ONNX). i.MX Yocto Project User's Guide: presents build instructions to include eIQ ML support (check sections referring to ‘imx-image-full’ that includes all eIQ features). It is recommended to also check the i.MX Linux Release Notes which includes eIQ details. For i.MX devices, what type of Machine Learning applications can I create?  Following the BYOM principle described above, you can create a wide variety of applications for running on I.MX. To help kickstart your efforts, refer to PyeIQ – a collection of demos and applications that demonstrate the Machine Learning capabilities available on i.MX. They are very easy to use (install with a single command, retrieve input data automatically) The implementation is very easy to understand (using the python API for TFLite, ArmNN and OpenCV) They demonstrate several types of ML applications (e.g., object detection, classification, facial expression detection) running on the different compute units available on i.MX to execute the inference (Cortex-A, GPU, NPU). Can I use the python API provided by PyeIQ to develop my own application on i.MX devices? For developing a custom application in python, it is recommended to directly use the python API for ArmNN, TFLite, and OpenCV. Refer to the i.MX Linux User’s Guide for more details. You can use the PyeIQ scripts as a starting point and include code snippets in a custom application (please make sure to add the right copyright terms) but shouldn’t rely on PyeIQ to entirely develop a product. The PyeIQ python API is meant to help demo developers with the creation of new examples. What eIQ example applications are available for MCUs? eIQ example applications can be found in the \boards\ \eiq_examples directory:  What are Glow and DeepViewRT inference engines in the MCUXpresso SDK?  These are inference engines that were supported in previous versions of eIQ but are now deprecated as new development has focused on TensorFlow Lite for Microcontrollers. These projects are still available in MCUXpresso SDK 2.15 for legacy users, but it is highly recommended that any new projects use TensorFlow Lite for Microcontrollers.   How can I learn more about using TensorFlow Lite with eIQ? There is a hands-on TensorFlow Lite for Microcontrollers lab available. There is also a i.MX TensorFlow Lite Lab that provide a step-by-step guide on how to get started with eIQ for TensorFlow Lite for i.MX devices.  What application notes are available to learn more about eIQ? i.MX RT700 eIQ Neutron NPU Enablement and Performance  Anomaly Detection App Note  Handwritten Digit Recognition  Datasets and Transfer Learning App Note  Security for Machine Learning Package  i.MX 8M Plus NPU Warmup Time App Note  What is the advantage of using eIQ instead of using the open-sourced software directly from Github? eIQ supported inference engines work out of the box and are already tested and optimized, allowing for performance enhancements compared to the original code. eIQ also includes the software to capture the camera or voice data from external peripherals. eIQ allows you to get up and running within minutes instead of weeks. As a comparison, rolling your own is like grinding your own flour to make a pizza from scratch, instead of just ordering a great pizza from your favorite pizza place.  Does eIQ include ML models? Do I use it to train a model? eIQ has options to both create model and run pre-existing models so you can Bring Your Own Model (BYOM) and run it on NXP embedded devices. eIQ provides the ability to run your own specialized model on NXP’s embedded devices.  MCUXpresso SDK and the i.MX Linux releases come with several examples that use pre-created models that can be used to get a sense of what is possible on our platforms, and it is very easy to substitute in your own model into those examples. eIQ Time Series Studio can be used to create and deploy time series models eIQ Model Creator is an option to create your own vision based models with our partner ModelCat I’m new to AI/ML and don’t know how to create a model, what can I do? A wide variety of resources are available for creating models, from labs and tutorials, to automated model generation tools like eIQ Time Series Studio, eIQ Model Creator, Google Cloud AutoML, Microsoft Azure Machine Learning, or Amazon ML Services, to 3 rd party partners like ModelCat, SensiML and Au-Zone that can help you define, enhance, and create a model for your specific application. I’m interested in anomaly detect or time series models on microcontrollers, where can I get started? The eIQ Time Series Studio (TSS) tool, included as part of the eIQ Toolkit, is perfect for getting started with time series or anomaly detection models. It allows you to import time series datasets, generate models, and deploy them to NXP microcontrollers.  There is also ML-based System State Monitor Application Software Pack which provides an example of gathering time-series data, in this case vibrations picked up by an accelerometer, and includes Python scripts to use the data that was collected to generate a small model that can be deployed on many different microcontrollers (including i.MX RT1170, LPC55S69, K66F) for anomaly detection. The same concepts and technique can be used for any sort of times series data like magnetometers, pressure, temperature, flow speed, and much more. This can simplify the work of coming up with a customer algorithm to detect the different states of whatever system you're interested in, as you can let the power of machine learning figure all that out for you.  There is also an on-device trained anomaly detection model example that can be found on the Application Code Hub. Troubleshooting: Why do I get an error when running Tensorflow Lite Micro that it "Didn't find op for builtin opcode"? The full error will look something like this: Didn't find op for builtin opcode 'PAD' version '1' Failed to get registration from op code ADD Failed starting model allocation. AllocateTensors() failed Failed initializing model The reason is that with MCUXpresso SDK, the TFLM examples have been optimized to only support the operands necessary for the default models. If you are using your own model, it may use extra types of operands. To fix this issue, add that operator to MODEL_GetOpsResolver function found in source\model\model_name_ops_npu.cpp Also make sure to also increase the size of the static array s_microOpResolver to match the number of operators An alternative method is also described in the TFLM Lab Guide on how to use the All Ops Resolver. Add the following header file #include"tensorflow/lite/micro/all_ops_resolver.h" and then comment out the micro_op_resolver and use this instead:  //tflite::MicroOpResolver &micro_op_resolver = //MODEL_GetOpsResolver(s_errorReporter); tflite::AllOpsResolver micro_op_resolver; Why do I get the error “Internal Neutron NPU driver error 281b in model prepare!” or "Incompatible Neutron NPU microcode and driver versions!" when using the Neutron NPU? The version of the eIQ Neutron Converter Tool needs to be compatible with the NPU libraries used by your project. See more details in this post on using custom models with eIQ Neutron NPU.  Sometimes in eIQ Toolkit the Validation page hangs and it stays stuck on "Converting Model". How do I work around this?  On the Validation section of the wizard, you will need to wait for the "Input Data Type" and "Output Data Type" selection boxes to be populated before clicking on the "Validation" button at the bottom. It may take a minute or two for those selection boxes to pop up on the left hand side. Once they do, then click on Validate and it should no longer hang.  How do I use my GPU when training with eIQ Toolkit? eIQ Toolkit 1.10 only supports GPU training on Linux due to the latest TensorFlow versions no longer supporting GPU on Windows.  Why do I get a blank or black LCD screen when I use the eIQ demos that have camera+LCD support on RT1170 or RT1160? There are different versions of the LCD, so you need to make sure you have the software configured correctly for the LCD you have. See this post for more details on what to change. There is a Javascript error in Time Series Studio when I start the training.  There is a bug where if the eIQ Portal window is closed after opening the Time Series Studio then that error comes up. Try relaunching Time Series Studio but keep the original eIQ Portal window open.  The eIQ Time Series Studio in eIQ Toolkit v1.17 is v1.3.4 but it says there's a newer version?  The eIQ Toolkit v1.17 contains an older version of eIQ Time Series Studio. The latest version can always be found on the eIQ Time Series Studio website. General AI/ML: What is Artificial Intelligence, Machine Learning, and Deep Learning? Artificial intelligence is the idea of using machines to do “smart” things like a human. Machine Learning is one way to implement artificial intelligence, and is the idea that if you give a computer a lot of data, it can learn how to do smart things on its own. Deep Learning is a particular way of implementing machine learning by using something called a neural network. It’s one of the more promising subareas of artificial intelligence today. This video series on Neural Network basics provides an excellent introduction into what a neural network is and the basics of how one works.  What are some uses for machine learning on embedded systems? Image classification – identify what a camera is looking at Coffee pods Empty vs full trucks Factory defects on manufacturing line Produce on supermarket scale Facial recognition – identifying faces for personalization without uploading that private information to the cloud Home Personalization Appliances Toys Auto Audio Analysis Wake-word detection Voice commands Alarm Analytics (Breaking glass/crying baby) Anomaly Detection Identify factory issues before they become catastrophic Motor analysis Personalized health analysis What is training and inference? Machine learning consists of two phases: Training and Inference Training is the process of creating and teaching the model. This occurs on a PC or in the cloud and requires a lot of data to do the training. eIQ is not used during the training process. Inference is using a completed and trained model to do predictions on new data. eIQ is focused on enhancing the inferencing of models on embedded devices. What are the benefits for “on the edge” inference? When inference occurs on the embedded device instead of the cloud, it’s called “on the edge”. The biggest advantage of on the edge inferencing is that the data being analyzed never goes anywhere except the local embedded system, providing increased security and privacy. It also saves BOM costs because there’s no need for WiFi or BLE to get data up to the cloud, and there’s no charge for the cloud compute costs to do the inferencing.  It also allows for faster inferencing since there’s no latency waiting for data to be uploaded and then the answer received from the cloud. What processor do I need to do inferencing of models? Inferencing simply means doing millions of multiple and accumulate math calculations – the dominant operation when processing any neural network -, which any MCU or MPU is capable of. There’s no special hardware or module required to do inferencing. However specialized ML hardware accelerators, high core clock speeds, and fast memory can drastically reduce inference time. Determining if a particular model can run on a specific device is based on: How long will it take the inference to run. The same model will take much longer to run on less powerful devices. The maximum acceptable inference time is dependent on your particular application. Is there enough non-volatile memory to store the weights, the model itself, and the inference engine Is there enough RAM to keep track of the intermediate calculations and output As an example, the performance required for image recognition will be very dependent on the model is being used to do image recognition. This will vary depending on how many classes, what size of images to be analyzed, if multiple objects or just one will be identified, and how that particular model is structured. In general image classification can be done on i.MX RT devices and multiple object detection requires i.MX devices, as those models are significantly more complex. eIQ provides several examples of image recognition for i.MX RT and i.MX devices and your own custom models can be easily evaluated using those example projects.  How is accuracy affected when running on slower/simpler MCUs? The same model running on different processors will give the exact same result if given the same input. It will just take longer to run the inference on a slower processor. In order to get an acceptable inference time on a simpler MCU, it may be necessary to simplify the model, which will affect accuracy. How much the accuracy is affected is extremely model dependent and also very dependent on what techniques are used to simplify the model. What are some ways models can be simplified? Quantization – Transforming the model from its original 32-bit floating point weights to 8-bit fixed point weights. Requires ¼ the space for weights and fixed point math is faster than floating point math. Often does not have much impact on accuracy but that is model dependent. Fewer output classifications can allow for a simpler yet still accurate model Decreasing the input data size (e.g. 128x128 image input instead of 256x256) can reduce complexity with the trade-off of accuracy due to the reduced resolution. How much that trade-off is depends on the model and requires experimentation to find. Software could rotate image to specific position using classic image manipulation techniques, which means the neural network for identification can be much smaller while maintaining good accuracy compared to case that neural network has to analyze an image that could be in all possible orientations. What is the difference between image classification, object detection, and instance segmentation? Image classification identifies an entire image and gives a single answer for what it thinks it is seeing. Object detection is detecting one or more objects in an image. Instance segmentation is finding the exact outline of the objects in an image. Larger and more complex models are needed to do object detection or instance segmentation compared to image classification.   What is the difference between Facial Detection and Facial Recognition? Facial detection finds any human face. Facial recognition identifies a particular human face. A model that does facial recognition will be more complex than a model that only does facial detection.  How come I don’t see 100% accuracy on the data I trained my model on? Models need to generalize the training data in order to avoid overfitting. This means a model will not always give 100% confidence , even on the data a model was trained on. What are some resources to learn more about machine learning concepts?  Video series on Neural Network basics  ARM Embedded Machine Learning for Dummies Google TensorFlow Lab Google Machine Learning Crash Course Google Image Classification Practica YouTube series on the basics of ML and TensorFlow (ML Zero to Hero Series) i.MX 8 i.MX RT Re: eIQ FAQ Hi David,   eIQ Toolkit 1.0.5 is using TensorFlow version is 2.3.2, so to use the GPU when training you will need to install cuDNN v7.6 and CUDA 10.2. If you have newer versions of those tools installed on your PC you may need to uninstall those first before installing the version needed for the 1.0.5 version of eIQ Toolkit. I've also updated the FAQ with this information and it will be in the documentation in the next version of eIQ Toolkit that is released. -Anthony Re: eIQ FAQ Hi @anthony_huereca , I am using eIQ tool on model training for i.MXRT1170 platform. I find eIQ tool is always use PC CPU resource, so when it perform the model training that will occupy around 60 ~ 80% CPU resource. But it not use any GPU resource. Is there any method to configure eIQ tool to use GPU resource on the model training ? In case that will have better performance on the AI training. Is it? Thanks. David  
查看全文
Matlab2023a 调用 S32DS3.5 时遇到错误 亲爱的MBDT团队:我们使用 MATLAB 2023a 脚本在编译 Simulink 模型后生成代码,然后调用 eclipsec.exe 进行无界面后台编译。构建完成后,将在 Simulink 诊断查看器中创建一个超链接,用于直接打开与已编译项目对应的工作区。该工作流在 S32DS 3.4 版本中运行非常顺利。然而,在升级到 S32DS 3.5.8 之后,出现了两个问题:问题 1:单击 Simulink 创建的超链接将启动后台进程 s32ds.exe,随后会弹出一个窗口,并立即关闭。我们尝试了多种解决方案,例如在 s32ds.ini 文件中添加参数 `"-vm \bin\javaw.exe" `(但这对 s32ds.exe 没有任何影响),并在系统环境变量中将 JDK 11 设为优先选项。这些尝试都没有解决问题。问题 2:如前所述,通过 MATLAB 脚本调用 eclipsec.exe 会触发屏幕截图中显示的错误:Java 已启动但返回退出代码 =1。我们将"\bin\javaw.exe、" 以及 JDK 11 的路径设置为系统环境变量的最前项。命令提示符正确显示了 Java 11(64 位),但 Simulink 编译时仍试图加载 jvm.dll。删除"client\jvm.dll 后"或者"server\jvm.dll" ,程序会改为定位 java.exe,但仍会报告错误,退出代码为 4。此外,在所有情况下,手动编译依然能够成功。所有相关的文件和设置都将上传以供您参考。请帮忙提供一些建议,以解决这个问题。谢谢。
查看全文
我能否从 nxp 中取出胶带 我能否将我的芯片设计从 nxp 中剥离出来? Re: can i tape out from nxp 亲爱的拉吉-里特维克   感谢您联系恩智浦并对我们的产品感兴趣。 我们想澄清的是,恩智浦并不为外部芯片设计提供开放式代工或带出服务。通常情况下,需要定制硅带输出的客户会直接与台积电和 GlobalFoundries 等商业代工厂联系、 您能否告诉我们您的询问是否与任何特定的恩智浦产品或设备有关?如果需要,我们很乐意为您提供进一步的帮助。 如果需要,请随时提供更多详细信息,我们很乐意提供力所能及的帮助。 祝您愉快
查看全文
U4N: 如何在 FH6 中改进油门控制 如果您在东京霓虹灯闪烁的街道和富士山的山路上肆意驰骋,那么您一定会发现自己已经在东京的大街小巷和富士山的山路上肆意驰骋了。在《极限竞速地平线 6》中驾驶富士山时,您可能会注意到驾驶物理效果比以往的作品更接地气。动力输出强劲有力。 如果你把正确的扳机或油门踏板当作开/关开关,那么你不是在开车,你只是在把橡胶变成烟雾。要让汽车干净利落地转弯,需要真正的细微差别。以下是如何在 FH6 中掌握油门控制、停止打滑并缩短单圈时间的实用数据分析。 1.首先修复死区(0-100 规则) FH6 开箱即用,将您的控制器触发死区设置为默认 15 个内部、90 个外部。这意味着你的前15%扣动扳机绝对不起作用,一旦你达到90%,游戏的油门将达到100%。简而言之,你在战斗中仅使用触发器物理行程的75%来调节你的力量。 进入设置> 高级控制,立即应用这些更改: 加速轴内死区:将此值从 15 降至 0 或 2。 加速轴外部死区:将其从 90 提升至 98 或 100。 为什么数学很重要:通过将内部死区降低到0并将外部死区提高到100,可以将输入窗口从触发器机械范围的75%扩大到整整100%。如果你驾驶一辆后轮驱动的怪兽驶出一个狭窄的弯道,有额外的物理空间可以呼吸,这意味着你可以保持稳定的 45% 油门,而不会意外陷入打滑的境地。 2.角出口分析:50-70-100 级进阶 让我们来看一个具体的比赛场景。假设你正驾驶着一辆 S1 级 2024 年款福特野马黑马在 90 度街角转弯。 如果你在到达顶点的瞬间将油门踩到 100% ,你的后轮会立即失去牵引力,遥测数据会显示 100% 的摩擦力损失,你的车尾会猛地甩出去,当汽车陷入困境或打滑时,你会损失大约 1.5 到 2 秒钟。 取而代之的是分阶段线性应用: 转角阶段 目标节气门输入 汽车行为 顶点(剪切点) 30% - 50% 稳定底盘;在不破坏牵引力的情况下,将重量平稳地转移到后轮胎上。 中途出口(开卷轮) 60% - 75% 与前轮校直相匹配。随着转向锁的减少,抓地力也会增加。 直达 100% 一旦车轮完全打直,汽车稳定下来,就会全力以赴。 在短短 1.5 秒的时间内,将油门控制在 50-70-100 级之间,就能将滑移角保持在最小范围内,并最大限度地提高前行咬合力。 3.管理启动控制和 Wheelspin 在 FH6 中将汽车冲出底线是对右手食指的一大考验。如果你使用手动变速箱,按住刹车和油门会同时启动游戏中的启动控制。但是,一旦你松开刹车,你仍然必须积极管理转速。 如果你的车库里装满了顶级版本,那么手动管理会变得容易得多。如果玩家希望快速扩充自己的收藏,获得能驾驭重型动力的高级车辆,查看 U4N 等第三方市场可以提供捷径,其中出售的 FH6 车轮旋转等物品可让您立即存入信用点和稀有的地平线版车辆来进行练习。 一旦进入电网,请记住车轮打滑等于浪费能量。如果让大马力汽车在静止状态下以 8,000 RPM 的转速跳过转速限制器,由于静摩擦损失,实际前进加速度最多会下降 40% 。最佳位置是将油门保持在汽车峰值扭矩曲线附近--跑车的峰值扭矩曲线通常在 4,500 至 5,500 RPM 之间--然后在轮胎咬合时慢慢踩下 100% 油门。 4.通过遥测可视化您的功率 如果您想知道您的油门到底有多大,请不要猜测。进入控制绑定,将遥测功能映射到一个按钮上(如 D 键盘上的向下)。 在自由漫游时切换到摩擦和输入页面。注意油门杆。如果发现输入瞬间从 10% 跳转到 100% ,请检查控制器硬件。例如,如果你使用 Xbox Elite 控制器,请确保背面的物理触发开关完全关闭。触发锁将模拟触发信号变成数字按钮,这使得实际的油门调制实际上是不可能的。 在一款街机风格的赛车游戏中,放慢输入速度会让人感觉不自然,但《FH6》奖励的是精准的驾驶。平稳地在汽油上滚动总是比砸碎扳机更胜一筹。
查看全文
S32k344 RTD 中的 MDIO API? 您好, 我的定制主板将 S32K344 EMAC 的 MDIO 连接到 SJA1110 的 SMI_AP 接口。我想通过 MDIO 接口配置 SJA1110 的内部 100BASE-T1 PHY,但在实时驱动程序包中找不到任何 MDIO 读/写 API。能告诉我这些应用程序接口在哪里吗? 谢谢! 查尔斯 Re: MDIO APIs in S32k344 RTD? 你好@cmnxp、 MDIO 访问 API 在 S32K3 RTD 中可用,但它们是在 GMAC 驱动程序下提供的,而不是作为单独的独立 MDIO 模块提供的。在 GMAC RTD API 中,相关函数是 Gmac_Ip_MDIOWrite() 和 Gmac_Ip_MDIORead()。 对于您使用 SJA1110 SMI_AP 的特定用例,请注意内部 100BASE-T1 PHY 子系统是通过 Clause 45 寄存器映射管理的,因此您通常需要 Clause 45 API - Gmac_Ip_MDIOReadMMD()、Gmac_Ip_MDIOWriteMMD()。 顺祝商祺! 帕维尔 Re: MDIO APIs in S32k344 RTD? 你好,帕维尔、 感谢您的快速回复。也就是说,S32K344 只有一个 MDIO 接口,同时用于 EMAC 和 GMAC,对吗? 此致, 查尔斯 Re: MDIO APIs in S32k344 RTD? 你好@cmnxp、 是的,每个 EMAC/GMAC 通常有一个 SMI 接口。 顺祝商祺! 帕维尔
查看全文
S32K314 FreeRTOS 待机转换和返回运行模式 我正在使用 S32K314 和 RDT 7.0.0 开发一个结合了中断和任务的项目、和 FreeRTOS 7.0.0。 中断和任务运行正常。我已经实现了从运行模式过渡到待机模式的代码,并在 RTC 测得的指定时间过后返回运行模式。 我已经确认系统从运行模式过渡到待机模式,之后会重置,导致 MCU 引导加载程序再次运行。  但是,在 MCU 初始化开始和 PLL 锁定之后,向 MCU 外围设备分配时钟的过程中会发生错误。由于在 P.O.R. 运行时可以正常工作,我认为在将系统切换到待机模式的过程中存在一些错误。 您能帮帮我吗? Re: S32K314 FreeRTOS Standby Transition and Return to Run Mode 附加信息: 该项目定义了待机 RAM。RAM 从 BSS 开始分配为 32 千字节的区域。该区域在从待机模式恢复后存储必要的数据。 /*---过渡到待机模式---*/ /* 设置 RTC 计时器唤醒 WKPU0 的超时时间 */ Gpt_StartTimer(GptConf_GptChannelConfiguration_GptChannelConfiguration_RTC, RTC_BASE_CLOCK_HZ * seconds); /* 暂停所有操作系统任务 */ vTaskSuspendAll(); /* 将时钟模式初始化为待机 */ Mcu_InitClock(McuClockSettingConfig_Standby); /* 设置时钟模式 */ Mcu_SetMode(McuModeSettingConf_Standby); ..... (Reset Occur) /*---MCU 初始化---*/ /* 将待机 RAM 区域设置为不可缓存 */ MpuConfigurator_AllocateStandbyRamToNonCacheable(); /* 启用不可缓存模式 */ MpuConfigurator_Enable(); /* 初始化 MCU 模块 */ Mcu_Init(NULL_PTR); /* 运行时钟初始化设置模式 */ if (E_OK == Mcu_InitClock(McuClockSettingConfig_Run)) { /* 通过**轮询**等待 PLL 锁定 */ while (MCU_PLL_LOCKED != Mcu_GetPllStatus()) { /* 等到 PLL 锁定 */ } /* 将 PLL 时钟分配给系统 */ Mcu_DistributePllClock();  ← 这里出现错误 Re: S32K314 FreeRTOS Standby Transition and Return to Run Mode 嗨,@Teruhiko、 您能找到有关该错误的更多信息吗?故障异常属于哪种类型? https://community.nxp.com/t5/S32K-Knowledge-Base/Example-S32K312-HARDFAULT-Handling-Interrupt-DS3-5-RTD300/ta-p/1806259 https://community.nxp.com/t5/S32K-Knowledge-Base/How-To-Debug-A-Fault-Exception-On-ARM-Cortex-M-V7M-MCU-S32K3XX/ta-p/1595570 https://community.nxp.com/t5/S32K-Knowledge-Base/Fault-handling-on-S32K14x/ta-p/1114447 您也可以逐步执行代码,以确定触发异常的确切位置。 检查 DCM_GPR 寄存器是否有任何错误。RM, 表 231。产品系列中由 DCM 控制的功能和可用性。 这可能是由于 RESET 后的 SRAM 初始化不正确。 有 ERM 可以对此进行监控,但默认情况下,模块的时钟处于封闭状态。 谢谢! BR,丹尼尔 Re: S32K314 FreeRTOS Standby Transition and Return to Run Mode 你好,@Teruhiko、 MCU 退出待机模式后,就可以连接调试器了。 为了方便调试,可以考虑在应用程序开始时添加一个无限循环,这样就可以连接调试器,并从那里开始逐步执行。 volatile int var = 1; while(var){} 如果观察到的是 MCU_POWER_ON_RESET,而不是 MCU_WAKEUP_REASON,请检查下列寄存器:DCMROPP1-4. 谢谢! BR,丹尼尔 Re: S32K314 FreeRTOS Standby Transition and Return to Run Mode 你好,丹尼尔-马蒂克先生、 对于延迟回复,我深表歉意。 由于在系统转换到待机模式时与 J-TAG 的通信会中断,因此我还无法获得详细的错误信息。我目前正在编写调试代码。 我想和大家分享一下我们目前了解到的情况。 我已经调查了以下条件下的重置原因: ・过渡到待机模式后 RTC 超时后自动恢复复位  → 重置原因:MCU_WAKEUP_REASON ・进入待机状态后,在待机模式下通过 WKPU 中断唤醒时重置恢复  → 重置原因:MCU_WAKEUP_REASON ・在过渡到待机模式后 RTC 超时后通过 WKPU 中断唤醒时重置恢复  → 重置原因:MCU_POWER_ON_RESET 我相信重置系数是正确的。 我怀疑每个重置因子的启动顺序差异是相关的。 一旦我掌握了有关错误的更多细节,我将另行回复。 Re: S32K314 FreeRTOS Standby Transition and Return to Run Mode 你好,@Teruhiko、 时钟看起来不错。 一个问题:当你在 POR 之后独立运行 MCU 时(不带调试器),应用程序能运行吗? 我问这个问题的原因是,当应用程序通过调试器启动时,调试器会执行部分系统初始化。在独立组网 \\(SA\\) 操作中,应用程序必须自己处理此初始化。退出待机状态后,MCU 会重置并断开调试器的连接,因此其行为实际上与独立启动相同。 Re: S32K314 FreeRTOS Standby Transition and Return to Run Mode 嗨,丹尼尔先生、 对于延迟回复,我深表歉意。 我对我们的电路设计有一些疑问,所以我在调查它与这个问题的关系。 结果,我发现电路中的端口分配有问题。 当从待机状态唤醒时发生 RESET 时,施加到 MCU 的电源电压变得不稳定。 我非常感谢你们迄今为止提供的所有支持。 非常感谢。 Re: S32K314 FreeRTOS Standby Transition and Return to Run Mode 你好,丹尼尔先生 谢谢您的建议。 重置后我能够重新连接。 当我逐步完成代码时,单片机外设初始化成功了,但当我在启动操作系统任务过程中调用 "xSemaphoreCreateRecursiveMutex() "时,程序却表现异常。 此外,当步进该函数时,在 `heap_4.c` 中函数 `void * pvPortMalloc( size_t xWantedSize )` 的以下部分,行为变得不稳定。 堆分配似乎失败了。 在过渡到待机模式之前,我应该采取哪些步骤? Re: S32K314 FreeRTOS Standby Transition and Return to Run Mode 你好,@Teruhiko、 Mcu_InitClock(Standby) 配置是什么? 它仍然应该是时钟选项之一,例如 表 157.选项 A - 高性能模式(CORE_CLK @ 160 MHz)。 你说它表现不稳定或不稳定,到底是什么意思? Re: S32K314 FreeRTOS Standby Transition and Return to Run Mode 嗨,丹尼尔先生、 本项目中 "运行 "和 "待机 "模式的设置如下所示。 我认为您提供的表 157 中的设置已应用于运行模式。 我还认为表 160 中的时钟值已应用于待机模式。我正在为这些方块设置时钟,这样 RTC 就可以测量时间,WKPU 可以触发重启。 当我逐步完成代码时,当前信息会显示在 IDE 控制台屏幕上。执行上述 "heapVALIDATE_BLOCK_POINTER() "时,控制台屏幕开始滚动,无法执行步骤 .   Re: S32K314 FreeRTOS Standby Transition and Return to Run Mode 下面介绍如何过渡到待机模式。 在 MCAL MCU 模块设置中,"STANDBY "已被选为待机模式的运行模式。 ・ 在 Design Studio 的时钟工具中,我已经为 "运行 "和 "待机 "创建了不同的功能组。 1.在正常运行模式下,按 "Mcu_InitClock(Run) "和 "Mcu_SetMode(Run) "的顺序调用函数,即可在运行模式下工作。 ... 2.要过渡到待机模式,请调用 "Gpt_StartTimer(GptConf_GptChannelConfiguration_GptChannelConfiguration_RTC, RTC_BASE_CLOCK_HZ * seconds) "启动定时器,定时器将在指定时间后通过 RTC 自动唤醒处于运行模式的系统。 3.调用 "vTaskSuspendAll() "暂停所有正在运行的操作系统任务。 4. 调用 "Mcu_InitClock(Standby)",然后调用 "Mcu_SetMode(Standby) "过渡到待机模式。 调用 vTaskSuspendAll() 的原因是基于下面链接中的信息。 https://community.nxp.com/t5/S32K/S32K312-Does-FreeRTOS-need-to-be-shut-down-before-entering/m-p/1756857
查看全文
BMA7318 固件驱动程序 我们正在为BESS市场开发HV 电池管理系统和电池组。我在哪里可以下载 BMA7318 固件驱动程序,用于我们的软件开发或任何其他 BMS7318 示例代码。我们已经与恩智浦签订了 NDA 协议? Re: BMA7318 Firmware Drivers 嗨,托马斯、 看起来 BMA7318 驱动程序在 电池管理系统 SDK " Lite SDK " 版本中。但是,当我查看 "下载 "时,却没有看到 Lite SDK? Re: BMA7318 Firmware Drivers 您好, 有关 BMA7318 固件驱动程序和示例软件,请参阅 BMS 软件 SDK,其中包含所有 BCC 设备(包括 BMA7xxx 系列)的生产级驱动程序和参考实现: https://www.nxp.com/design/design-center/software/embedded-software/nxp-battery-management-software-development-kit-and-toolchain:BMS-SW   BRs, Tomas   Re: BMA7318 Firmware Drivers 嗨,托马斯、 我绑定了,点击链接时会将我带到我的个人资料页面。没有成功。 谢谢! 纳迦 Re: BMA7318 Firmware Drivers 您好, 请尝试从以下链接下载,可以使用 NXP 软件帐户: BMS Light SDK AUTOSAR 4.4 R21-11 版本 0.8.0 CD02 BRs, Tomas
查看全文
RW612非セキュアフラッシュ設定によりリセット機能が破損する こんにちは、 FRDM-RW612上でARM TF-MとZephyr(NXPダウンストリームv4.3.0)を使用している際に、奇妙なバグが発生しています。フラッシュメモリの一部領域を、セキュリティ保護機能のないLittleFSファイルシステムに使用したいと考えています。NXPのガイド(リンク)に従ってNS領域を追加したところ、ファイルシステムにその領域を正常に使用でき、Zephyr/FS APIやアクセスに関する問題も発生しませんでした。 私の問題は、CONFIG_FLASH KConfigオプションを有効にすると、ボードをリセットできなくなることです。tfm_platform_system_reset()、NVIC_SystemReset() を呼び出したり、物理的なリセットボタンを押したりしても、プロセッサがロックされてしまい、実際にはボードがリセットされなくなります。 デバッガーを使ってステップ実行したところ、デバッガーが切り離される直前に実行された最後の行は core_cm33.h:2683 でした。(__NVIC_SystemReset内): SCB->AIRCR = (uint32_t)((0x5FAUL << SCB_AIRCR_VECTKEY_Pos) | (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | SCB_AIRCR_SYSRESETREQ_Msk ); リセット後にデバッガを接続すると、GDBはアドレス0x20005840のプログラムが永久に停止すると報告します。 非常に基本的なプログラムで同じことを試してみましたが、Zephyrのhello worldプログラムにCONFIG_FLASHを追加しても、リセットが同じように失敗します。 どんなご協力でもありがたいです。ありがとうございます! Re: RW612 Nonsecure Flash Setting Breaks Reset Functionality こんにちは、@jm-streametric さん。お元気でお過ごしでしょうか。 この動作をより詳細に分析するために、ハローワールドのサンプルで行ったテストにおいて、追加した設定はCONFIG_FLASHのみであることを確認してもらえますか?それとも、ガイドから作成した設定(CONFIG_TFM_CUSTOM_DATA_IMPORT_REGION=y)を使用して、追加したNS領域も有効にしていますか? 私はZephyr(v4.3.0 ダウンストリーム)のhello worldサンプルをCONFIG_FLASH設定のみを追加して実行しようとしましたが、ボードをリセットすることができました。 Re: RW612 Nonsecure Flash Setting Breaks Reset Functionality こんにちは、ローマンさん。 投稿でボードを指定する際に誤りがありました。RW610を搭載したカスタムボードを使用していますが、フラッシュ構成はFRDM-RW612と全く同じです。CONFIG_FLASH=y に設定しても開発ボードをリセットすることはできますが、私のカスタムボードでは、以前の投稿で説明した問題が発生します。 TF-MとZephyrのリポジトリをFRDM-RW612のデフォルトに設定しても、CONFIG_FLASH=yの場合(カスタムデータ領域の有無に関わらず)、ボードをリセットできないという問題が発生します。RW610とRW612の間には、フラッシュメモリやFlexSPIに問題を引き起こす可能性のある違いはありますか?それとも、私のボードに別の問題があるのでしょうか? Re: RW612 Nonsecure Flash Setting Breaks Reset Functionality こんにちは、ジェイクさん。ご説明ありがとうございます。 RW610とRW612の違いは、RW610が802.15.4プロトコルをサポートしていないため、FlexSPI周辺機器との違いはないという点です。 これらの機能をテストする際に、FRDM-RW612ファイルを使用しているかどうか確認していただけますか?それとも、Zephyrでボード用のディレクトリを独自に作成しましたか? また、リセット機能を使わずにサンプルを正しく実行することは可能でしょうか?それとも、MCUはどこかの時点でハードフォルトを起こすのだろうか? Re: RW612 Nonsecure Flash Setting Breaks Reset Functionality こんにちは、ローマンさん。 私のボードは同じフラッシュICを使用しているため、フラッシュ機能のテストには未修正のFRDM-RW612ファイルを使用しています。私のボードには様々な**ペリフェラル**が搭載されており、それぞれにオーバーレイを適用していますが、今回のフラッシュテストケースではそれらのオーバーレイは適用しません。 フラッシュメモリは正常に動作しており、カスタムリージョン内のフラッシュデータにも問題なくアクセスできます。カスタム領域外のフラッシュにアクセスするとエラーが発生しますが、これは想定内の動作です。唯一うまくいかないのは、物理的に、またはtfm_platform_system_reset()を使用してボードをリセットしようとすると、上記のようにボードがロックされてしまうことです。 ありがとう Re: RW612 Nonsecure Flash Setting Breaks Reset Functionality ジェイクさん、情報ありがとうございます。 つまり、プロジェクトに「CONFIG_FLASH=y」設定を追加すると、アプリケーションは通常どおり実行できるが、リセット操作を行うとプログラムがアドレス0x20005840で無限ループに陥る、ということでしょうか? リセット原因が登録されているかどうかを確認するために、リセットステータスレジスタ( SYS_RST_STATUS )をご確認いただけますでしょうか?さらに、セキュリティ保護機能のないバージョンのボードで全てのテストを実施しましたか? FRDM-RW612ボードをお持ちでしたら、カスタムボードでのテストに追加しているのと同じ設定で、この現象が発生するかどうかをテストして教えていただけますでしょうか? Re: RW612 Nonsecure Flash Setting Breaks Reset Functionality こんにちは、ローマンさん。 つまり、プロジェクトに「CONFIG_FLASH=y」設定を追加すると、アプリケーションは通常どおり実行できるが、リセット操作を行うとプログラムがアドレス0x20005840で無限ループに陥る、ということでしょうか? はい、その通りです。ボードの電源を一度切ってから入れ直す以外に、プログラムを再起動する方法がありません。 リセット原因が登録されているかどうかを確認するために、リセットステータスレジスタ( SYS_RST_STATUS )をご確認いただけますでしょうか? 現在、zephyrのサンプル「hello_world」を使ってこれらのテストを試しています。CONFIG_FLASH=y の有無に関わらず、またカスタムボードでも実際の FRDM-RW612 でも、SYS_RST_STATUS の値を取得できませんでした。物理的なリセットボタン(SOC上のPDnに接続)を押したり、printf文の後にtfm_platform_system_reset()を呼び出したり、NULLポインタにアクセスしてハードフォルトを発生させたりしてみましたが、いずれもリセットステータスレジスタに値が表示されませんでした。 リセット前、リセット後のアドレス 0x20005840 のループ内、およびリセット後の BL2 ステージでサンプリングを試しましたが、SYS_RST_STATUS が 0 であるかどうかは関係ありませんでした。チェック方法が間違っているかどうかわかりませんが、GDB (west attach 経由) を使用してデバッグし、 p *((PMU_Type*)0x40031000u)を印刷して PMU ブロック内の値を取得しました。参考までに、サンプリングしたときの SYS_RST_EN レジスタは常に 0x39 でした。 さらに、セキュリティ保護機能のないバージョンのボードで全てのテストを実施しましたか? はい、ビルドフォルダを削除してからwest build -b frdm_rw612/rw612/nsを実行することで、これらのテストをすべてクリーンにビルドします。 独自のボードでテストするために追加している設定と同じ設定で、この動作が発生するかどうか教えてください。 私の設定のほとんどは、Flexcommポート上のペリフェラルに関するものです。この問題に関する私のテストでは、TF-Mプロファイルに加えた変更点のみを残しました。TF-M FWUパーティションを使用して無線ファームウェアアップデートを実行できるように、私はTF-Mのラージプロファイルではなくミディアムプロファイルを使用しています。そのため、ZephyrのKConfigオプションを3つ追加しました。 CONFIG_TFM_PROFILE_TYPE_AROTLESS=y CONFIG_TFM_SFN=y CONFIG_TFM_ISOLATION_LEVEL=1 そして、TF-Mモジュールフォルダで編集したのは、modules/tee/tf-m/trusted-firmware-m/platform/ext/target/nxp/frdmrw612/config.cmakeにある以下のプロファイル設定だけです。 set(TFM_PROFILE "profile_medium_arotless" CACHE STRING "TF-Mプロファイル") これは「profile_large」から変更されたものです ご協力ありがとうございました。他に何か情報が必要な場合はお知らせください。 Re: RW612 Nonsecure Flash Setting Breaks Reset Functionality ジェイクさん、質問に答えていただきありがとうございます。 FRDM-RW612でテストしたとのことですが、このボードでもリセット動作を再現できますか?あなたの設定とTF-Mのビルド変更(TF-Mプロファイル)を追加して試してみましたが、それでもあなたの動作を再現できませんでした。 もしこの現象を再現できるのであれば、FRDM-RW612でその動作を再現するために実行した詳細な手順を共有していただけますでしょうか? Re: RW612 Nonsecure Flash Setting Breaks Reset Functionality こんにちは、ローマンさん。 基板の回路図が間違っていたこと、そして私が使用していたフラッシュチップがFRDM-RW612のようなW25Q512ではなく、実際にはW25Q01だったことが分かりました。W25Q512を基板にはんだ付けしたところ、問題なくリセットできるようになりました。先ほどはお時間を無駄にしてしまい、申し訳ありませんでした。 私のチップに対応するようにフラッシュメモリの設定を再構成する方法に関する資料はありますか?flash_config.c に fc_flexspi_nor_config_t 構造体が見つかりました。これはW25Q512用に設定されているのですが、新しいチップに対応するために変更する必要がある箇所を具体的に説明したドキュメントやガイドはありますか? Re: RW612 Nonsecure Flash Setting Breaks Reset Functionality こんにちは、ジェイク。気にしないでください。根本原因を教えてくれてありがとう。 残念ながら、フラッシュメモリの再構成に関する具体的なガイドはありません。ただし、異なるフラッシュを使用する場合にどのような変更が必要になるかについては、RD-RW612-BGAボードのディレクトリ構造、またはIRIS-W1-EVKボードのディレクトリ構造(u-Blox社製)を参考にすることができます。これらのボードはどちらもFRDMボードとは異なるフラッシュICを搭載しています。 TF-Mの場合、RD-RW612-BGA非セキュアバージョンのボードのディレクトリも存在し、これも必要な変更の参考として利用できます。 お役に立てば幸いです!
查看全文
添加 USB 设备 CDC 固件支持 我正在尝试将 USB CDC VCOM 设备功能添加到在基于 LPC55S26 的设计上运行的裸机固件中。我已经更新到最新的 MCUXpresso IDE 和 SDK(包括 USB 设备中间件)。当我通过外围设备工具将 USB 设备添加到项目中并配置引脚、时钟等时,会出现两个错误(均相同)和一个警告,如下所示: 错误:" USB 设备 CDC " 驱动程序在项目中缺失。 警告:工具链/IDE 项目中的 USB 通用接头版本不支持。要求:2.8.0,实际:2.12.1:要求:2.8.0,实际:2.12.1。项目可能无法正确编译。 如果我尝试添加 SDK 元器件 " USB Device CDC " 我会收到一条消息,说在 SDK 中找不到该元器件,但是当我查看可用的 SDK 元器件时,它确实存在。如有任何建议,不胜感激。 Re: Add USB Device CDC firmware support 你好@markpotts123、 感谢您的来信。我注意到你也有一个关于同一主题的私人案例,我已经在那里给你回复了。如果您有任何新的更新,请随时回复,我将继续支持您。 祝您愉快 BR 西莱斯特 Re: Add USB Device CDC firmware support 原来是 IDE 和 SDK 版本不匹配。旋转到最新版本后,症状得到了解决。
查看全文
S32K314のLINマスターモードではスレーブ応答フレームを受信できません。 こんにちは。現在、LIN開発にS32K314を使用しています。MCU をマスター モードに設定すると、正常に完全なフレームをバスに送信できますが、スレーブ デバイスからの応答を受信しようとすると失敗します。原因を特定するためにデバッグを使用しようとしました。図に示すように、完全なフレームを送信する場合はボックス内の関数をCAN呼び出すことができますが、応答を受信する場合は、ここでブレークポイントを設定し、この関数を実行できませんでした。変数では、if (LinCurrentState->IsBusBusy) の結果が true であることが確認できます。バスが混雑状態に入ったと暫定的に判断されます。完全なフレームが送信されるとバスは正常であるのに、スレーブ ノードからの応答を受信するとビジー状態と表示されるのはなぜですか?また、これら 2 つの方法を個別にテストし、完全なフレームの送信とスレーブ ノード応答の受信を同時に実行しませんでした。問題の原因がわかっている場合は、解決にご協力ください。これは私にとってとても重要です。ありがとう。 Re: In the LIN master mode of S32K314, the slave response frame cannot be received. メインモードでスレーブデバイスからの応答を受信するための私の関数をご覧ください。問題がなければ、スレーブデバイスから問題のトラブルシューティングに進みます。 Re: In the LIN master mode of S32K314, the slave response frame cannot be received. こんにちは@Aoyng 、 マスターノードの構成に問題は見当たりません。 オシロスコープ上でスレーブ ノードからの応答が表示されない場合、問題はマスターではなくスレーブ ノードにあります。 BR、ダニエル Re: In the LIN master mode of S32K314, the slave response frame cannot be received. こんにちは。オシロスコープを使用してバスを表示すると、波形が表示されません。ただし、メインモードを使用してデータを送信CAN。私の設定を見て、問題がないか確認してください。 定数 Lpuart_Lin_Ip_UserConfigType Lpuart_Lin_Ip_Sa_pHwConfigPB_0_BOARD_INITPERIPHERALS = { 1U、/*!< ハードウェアインスタンス */ 0x82, /*!< ボーレート除数 */ 16U, /*!< ボーレート OSR */ (ブール値)LPUART_LIN_IP_MASTER, /*!< マスターノード */ LPUART_LIN_IP_BREAK_CHAR_13_BIT_MINIMUM_U8, /*!< ブレーク文字の長さが送信されます */ (uint8)1U, /*!< ブレーク文字の長さを検出CAN */ #if (LPUART_LIN_IP_AUTO_BAUD == STD_ON) (boolean)FALSE, /*!< 自動ボーレート機能 */ #endif (Lpuart_Lin_Ip_CallbackType)Lin_Callback、/*!< バイトを受信または送信した後に呼び出すコールバック関数。*/ &Lpuart_Lin_Ip_axStateStructure[0U], /*!< ランタイム状態構造体参照 */ #if (LPUART_LIN_IP_FRAME_TIMEOUT_DISABLE == STD_OFF) #ifdef LPUART_LIN_IP_START_TIMER_NOTIFICATION 2292U, /*!< HeaderTimeoutValue(マイクロ秒単位)*/ 73U, /*!< 1バイトのResponseTimeoutValue(マイクロ秒)*/ #endif #endif /* (LPUART_LIN_IP_START_TIMER_NOTIFICATION == STD_OFF) */ (uint8)0, /*!< ウェイクアップパルス468.75usを生成するためのウェイクアップバイト */ (uint8)1, /*!< ウェイクアップパルス104.16666666666667us検出をチェックするために使用するバイト */ 40000000U /*!< チャネルクロック */ }; Re: In the LIN master mode of S32K314, the slave response frame cannot be received. こんにちは@Aoyng 、 フレームが実際に送信されていることを確認するために、オシロスコープでスレーブの応答をチェックできますか? また、タイミングの不一致によりマスターが応答を検出できなくなることが多いため、スレーブの LIN ボーレートがマスターと一致していることも確認してください。 信号とボーレートが正しいように見える場合、問題は割り込み処理に関連している可能性があります。そのCASEは、LPUART 割り込み構成と対応する NVIC 設定 (レジスタ内も) の両方を確認して、割り込みが適切に有効になっていることを確認してください。 よろしくお願いいたします。 ダニエル Re: In the LIN master mode of S32K314, the slave response frame cannot be received. こんにちは@Aoyng 、 SduPtrは有効である必要があります。 BR、ダニエル
查看全文
HSE_IP核无法添加 Hello nxp的技术支持, 我在使用S32DS IDE3.6.2版本,RTD6.0.0版本,我无法在外设配置的界面添加HSE的IP核,可能会导致配置文件无法自动生成hse_mu的driver,请问一下这个问题该怎么解决? BR/chenyuhang Re: HSE_IP核无法添加 Hi @lukaszadrapa , 感谢您的回复,我目前已经安装了6.0.0 QLP01的包并且已经可以在外设中添加HSE的IP核了。我还有一个疑问想问您,就是我在使用HSE的时候,已经将 C:\NXP\HSE_FW_S32K344_0_2_55_0\hse_full_mem\interface 下的全部文件添加到工程中了,那么 Framework 和 services 文件夹应该如何添加?(附录的图中展示的工程结构是C:\NXP\S32K3_HSE_DemoExamples_1_0_0\S32K3_HSE_DemoExamples\Key Management\S32K344_DemoApp_SessionKeys 的示例工程),是否可以通过外设配置界面添加到工程中?还是说需要手动将这两个文件夹粘贴到我自己的工程中?另外我有查阅到nxp的中国团队有做过HSE_Lib2.0的内容,这些资料我应该如何获取? BR/chenyuhang Re: HSE_IP核无法添加 你好@chenyuhang 可能会出现并非所有模块都包含在 RTD 软件包中的情况。RTD 6.0.0 就是这种情况,当时还没有 Crypto 驱动程序。它后来在 6.0.0 QLP01 软件包中提供: 在版本说明文件中,您可以发现该软件包仅提供 Crypto 驱动程序,因此您可以将其安装在 6.0.0 软件包之上: 此致, Lukas Re: HSE_IP核无法添加 该框架只是纯 C 代码,不能通过外设配置界面添加。应手动将其添加到项目中。 让我分享一下我之前写给另一位客户的答案--可能是数据缓存出了问题: "我可以看到,该框架尚未完全准备好无缝实施 RTD 项目。我刚刚发现,我在这里的所有项目实际上都禁用了缓存。 该框架使用一个描述符数组,在运行时根据需要选择这些描述符。有一个定义 HSE_ENABLE_SHARED_MEM,可用于将数组强制转入共享区域。但是,默认情况下并不使用这个地址,而且我可以看到,它可能因为使用了一些奇怪的地址而无法工作。 那么,看看 hse_host.c 中的实现吧并将描述符数组也强制设置为 no_cachable 区域"。 关于 HSE_Lib,这是中国应用程序团队的一个项目,目前尚未公开。请与当地的恩智浦 FAE 或分销 FAE 讨论。 此致, Lukas
查看全文
LS1028a TSN 网络配置:有其他接口吗? 你好,我计划使用 LS1028A 开发 TSN 端点设备。不过,我在 REALTIMEEDGEUG.pdf 文档中发现,要通过网络接口配置 TSN,需要将 PC 连接到 eneth 的 eno0 接口。问题是,我还需要用这个接口作为端点接口来连接外部交换机。我想知道是否可以使用 eneth 的 eno1 接口进行网络配置,或者是否可以将 PC 连接到交换机的一个端口(swp0-4)来执行 TSN 配置。
查看全文
[Zephyr ® Series] Part 2: First build and running on a real device (Japanese blog) In the second installment of the Zephyr series, we will actually set up a Zephyr development environment and create an environment where we can build. Next, we will build the Zephyr application and write it to a real device to check that it works. Don't worry, setting up your development environment is incredibly easy. And finally, in the third session, we will create a program to blink an LED and experience Zephyr-style coding. So let's get started. table of contents Preparing your Zephyr development environment Installation Instructions Step 1: Install VS Code and the extension Step 2: Setting up your Zephyr development environment Step 3: Import the Zephyr repository Step 4: Import the Zephyr sample application Building HelloWorld Debugging and operation check summary   Preparing your Zephyr development environment This article will introduce how to install the Zephyr project in a Windows environment and prepare the build environment. In addition, this time we will install Visual Studio Code using Windows 11.   Note: Here we will introduce the steps for Windows 11, but you can set it up in the same way on other operating systems by installing VS Code.   Preparing the development evaluation board Here we will use the FRDM-MCXA153 . The same steps can be followed for NXP microcontrollers (MCX series) and crossover microcontrollers (i.MX RT series). FRDM-MCXA/C/N/E series i.MX RT10xx-EVK Series LPC series (partially supported) Installation Instructions We will install the following items: VS Code and MCUXpresso for VS Code extension Zephyr development environment including Zephyr SDK VS Code Zephyr repository   Step 1: Install VS Code and the "MCUXpresso for VS Code" extension If you don't already have Visual Studio Code (VS Code) installed, search for "visual studio code" in the Microsoft Store and install it. Next, install "MCUXpresso For VS Code". Extensions view in VS Code Alternatively, click Ctrl+Shift+X. Click the search field at the top of the Extensions view and type "mcuxpresso" . Select MCUXpresso for VS Code and click the "Install" button to install the extension. Once the installation is successful, it will be added to the installed list. 拡張機能ビューボタンExtended Functions View Button VS Code 拡張機能 マーケットプレイスVS Code Extension Marketplace MCUXpresso for VS CodeのインストールInstalling MCUXpresso for VS Code     Step 2: Zephyr development environment including the Zephyr SDK Open the MCUXpresso for VS Code extension. Click "Open MCUXpresso Installer" in the Quick Start panel. Quick StartパネルQuick Start Panel   MCUXpressoツールの選択オプションMCUXpresso Tool Selection Options MCUXpressoツール選択オプション2MCUXpresso Tool Selection Option 2   Now click on the tool you need to select it. Zephyr Developer Arm GNU Toolchain LinkServer Here we will be using the NXP onboard ICE for debugging, so the LinkServer option is required. Tips: NXP EVK uses LinkServer by default. Install the necessary tools for your debug probe. LinkServer, Segger JLink and PEmicro tools are available for installation. Once you have selected your installation options, click the "Install" button. The status bar at the bottom will display the installation status. Restart VS Code.   Step 3: Import the Zephyr repository Next, import the Zephyr repository. Open the MCUXpresso view in VS Code and click Import Repository in the Quickstart panel.   リポジトリのインポートImporting a Repository   Zephyr is open source and available on github. You can import this github repository. Release tag : A stable version. You can specify various versions by specifying a tag. main branch : latest head of Zephyr Here, we will import the release tag v4.0.0. Location : Select the folder location where you want to import the Zephyr repository. Repository : Select "Zephyr" as the repository. The github URL will also be displayed. Revision : In the revision field, use v4.0.0. Change it to another release if necessary. Once you've finished entering the information, click Import. If you want to import the Zephyr main branch, change the revision field to main. Note: Importing the Zephyr repository takes time, typically around an hour. Although not required for Zephyr projects, the MCUXpresso SDK can be imported as well.   Step 4: Import the Zephyr sample application By completing the steps up to Step 3, you are now ready to start developing applications for Zephyr OS. Finally, you will be able to import, build, and debug Zephyr sample applications. To import a sample application from the Zephyr repository, click "Import Sample from Repository" from the Quick Start panel.   レポジトリからExampleのインポートImporting an Example from the Repository Hello_WorldプロジェクトのインポートImporting the Hello_World Project   Application type: We chose Repository application. We will use the original sample project folder in the Zephyr repository. Name: Set the project name. Zephyr SDK: This is the software package that provides the Zephyr compiler, libraries, and tools. Select "Default Zephyr SDK".   Building HelloWorld To compile and build the program, click the Build button to build the Hello World project. It's very easy. Zephyr is usually built using the command line, with the build started with the West command, but it can also be built with a single build button in the GUI. There's no need to remember complicated command options. ビルドボタンBuild button   Once the build is complete, the memory capacity and usage will be listed. Hello Worldプロジェクトのビルド結果Hello World project build results   Debugging and actual device operation Now, we will finally write the Zephyr program to the actual device and check its operation. Before checking the operation, connect the PC to the USB Type-C cable as shown in the photo. There are two USB connectors installed, but connect to the J15 USB connector side. FRDM-MCXA153FRDM-MCXA153   To start debugging, click the play button "▷". デバッグ開始Start Debugging It will stop at the entry of the main() function, allowing you to perform step execution. Here, press the play button for step execution to run. ステップ実行の様子Step execution   Among the multiple tabs at the bottom center of VS Code, there is a serial monitor function. Set it as shown below and click "Start Monitoring" to check the Printf output (standard output). シリアルモニターSerial Monitor   summary This time, we installed the Zephyr development environment, built a Hello World project, and checked its operation on an actual device. Using "MCUXpresso for VS Code" simplified the installation of the Zephyr development environment, dependent libraries, and tools, allowing me to set up the environment very easily and quickly. In the next issue, we will finally introduce the world of Zephyr regarding software reusability through an LED blinking program. (Please wait until it is released.) Click here for the previous article [Zephyr ® Series] Part 1: What is the popular Zephyr OS? (Japanese blog) =========================​ We are currently unable to respond to comments in the " Comment " section of this post . We apologize for the inconvenience, but when making inquiries, please refer to " How to contact NXP with technical questions ( Japanese blog ) " . (If you are already an NXP distributor or have a relationship with NXP , you may contact the person in charge directly. ) In this second installment of the Zephyr series, "Building for the first time and running it on a real device," we will introduce how to install the Zephyr development environment and build it. We will then flash it onto a real device and check that it works. MCX SW | Downloads Japanese Blog
查看全文
RT685 Zephyr の J-Link 経由のフラッシュ障害 (FlexSPI A、カスタム AT25SL321) NXPサポートチームの皆様、こんにちは。 私は MIMXRT685 EVK を使用しており、SEGGER J-Link プローブを介してフラッシュしながら Zephyr (MCUXpresso for VS Code 経由) を使用しようとしています。 現在の設定: ボード: RT685 EVK FlexSPI ポート: A (SRAM が削除され、カスタム フラッシュが接続されています) 外部フラッシュ: AT25SL321 ツールチェーン: Zephyr + MCUXpresso for VS Code デバッグプローブ: SEGGER J-Link 他にも利用可能: MCU-Link (正常に動作しますが、J-Link の方が適しています) 私は次の NXP ナレッジベースの記事のガイダンスに従いました。 i.MX RT FlexSPI ブートガイド: https://community.nxp.com/t5/i-MX-RT-クロスオーバーMCUs-Knowledge/i-MX-RT-FLEXSPI-ブートガイド/ta-p/1669262?profile.language=en RT600 MCUXpresso J-LinkデバッグQSPIフラッシュガイド: https://community.nxp.com/t5/i-MX-RT-クロスオーバー-MCUs-Knowledge/RT600-MCUXpresso-JLINK-debug-QSPI-flash/ta-p/1345484 これらのガイドを使用して、FCB ブロックを更新し、MCU-Link + MCUXpresso IDE を使用してプログラムしたときに正しく動作することを確認しました。 効果的なもの: MCU-Link を搭載した MCUXpresso IDE を使用して、正常にフラッシュおよびデバッグできます。 FCB は、MCU-Link を使用してプログラムすると動作することが確認されています。 有効な FCB が存在する場合、次のことが可能です。 J-Link Commanderを使用して接続する Erase FLASH J-Flashを使用して正常にプログラムする 失敗するもの: J-Link を使用して MCUXpresso for VS Code (Zephyr ワークフロー) からフラッシュすると失敗します。 有効な FCB が存在しない場合は、J-Link コマンダーのメモリ読み取りと J-Flash プログラミングの両方が失敗します。 セットアップでは、推奨どおり、J-Link の RT600 UFL_L0 デバイス構成を使用します。 観察: システムは、J-Link が FlexSPI に適切にアクセスするために、有効な FCB の存在に大きく依存しているようです。 J-Link Commander は、有効な FCB が以前に MCU-Link を使用してプログラムされている場合にのみ接続できます。 FCB が存在すると、J-Flash は独立して動作します。 この失敗は、J-Link 経由の VS Code + Zephyr フラッシュ フローに特有のようです。 質問: デフォルト設定の代わりに FlexSPI A を使用する場合、J-Link に追加の設定が必要ですか? Zephyr のフラッシュ フローには、外部 FlexSPI A メモリを備えた RT685 用の特定の J-Link デバイス スクリプトまたはカスタム フラッシュ ローダーが必要ですか? 有効な FCB が存在しない場合に J-Link を堅牢にするための推奨される方法はありますか? MCU-Link と J-Link が RT685 上で FlexSPI を初期化する方法に既知の違いはありますか? Zephyr + J-Link フラッシュ フローをカスタム FlexSPI A 構成に合わせるためのガイダンスがあれば、大変助かります。 追加のログや構成ファイルが役立つかどうかお知らせください。ありがとう Re: RT685 Zephyr Flashing Failure via J-Link (FlexSPI A, Custom AT25SL321) VScodeでフラッシュを動作させるには、以下を追加してください。 board_runner_args ( jlink "--device=MIMXRT685SFAWBR" "--reset-after-load" ) で、UFLアルゴリズムではなくMIMXRT685SFAWBRを使用しています。なぜそうなるのかは不明ですが… Re: RT685 Zephyr Flashing Failure via J-Link (FlexSPI A, Custom AT25SL321) VSCode からフラッシュを消去すると、次の画面が表示されます。 J-Link 接続はまだ確立されていませんが、コマンドには必要です。 USB経由でJ-Linkに接続しています... OK 。 ファームウェア: J- Trace PRO V3 コンパイル日: 2026年2月11日12:15:28 ハードウェアバージョン: V3.00 シリアル番号: 1223000056 ライセンス: RDI、FlashBP、FlashDL、JFlash、GDB IP アドレス: DHCP (アドレスなし)まだ受け取っていません) エミュレータにはRAWTRACE機能がある VTref = 1.760V ターゲット接続はまだ確立されていませんが、コマンドには必要です。 デバイス「MIMXRT600_UFL_L0」が選択されました。 SWD経由でターゲットに接続する InitTarget() 開始 ****************************************************** J-Link スクリプト: i.MXRT6xx Cortex-M33 コア J-Link スクリプト ****************************************************** DAP-IDコード: 0x002A0000 InitTarget() 終了 ID 0x6BA02477の SW-DP が見つかりました DPIDR: 0x6BA02477 APマップをスキャンして利用可能なすべてのAPを見つける AP[ 1 ]: APマップの終端に達したため、APスキャンを停止しました AP[ 0 ]: AHB-AP (IDR: 0x84770001 ) APマップを反復処理して使用するAHB-APを見つける AP[ 0 ]: コア発見 AP[ 0 ]: AHB-AP ROM ベース: 0xE00FE000 CPUIDレジスタ: 0x410FD213 。実装者コード: 0x41 (ARM) 機能セット: メインライン Cortex-M33 r0p3、リトルエンディアンが見つかりました。 FPUnit: 8 つのコード (BP) スロットと0 つのリテラル スロット セキュリティ拡張: 実装済み セキュアデバッグ:有効 CoreSight コンポーネント: ROMTbl[ 0 ] @ E00FE000 [ 0 ][ 0 ]: E00FF000 CID B105100D PID 000BB4C9 ROMテーブル ROMTbl[ 1 ] @ E00FF000 [ 1 ][ 0 ]: E000E000 CID B105900D PID 000BBD21 DEVARCH 47702A04 DEVTYPE 00 Cortex-M33 [ 1 ][ 1 ]: E0001000 CID B105900D PID 000BBD21 DEVARCH 47701A02 DEVTYPE 00 DWT [ 1 ][ 2 ]: E0002000 CID B105900D PID 000BBD21 DEVARCH 47701A03 DEVTYPE 00 FPB [ 1 ][ 3 ]: E0000000 CID B105900D PID 000BBD21 DEVARCH 47701A01 DEVTYPE 43 ITM [ 1 ][ 5 ]: E0041000 CID B105900D PID 002BBD21 DEVARCH 47724A13 DEVTYPE 13 ETM [ 1 ][ 6 ]: E0042000 CID B105900D PID 000BBD21 DEVARCH 47701A14 DEVTYPE 14 CSS600-CTI [ 0 ][ 1 ]: E0040000 CID B105900D PID 000BBD21 DEVARCH 00000000 DEVTYPE 11 Cortex-M33 Cortex-M33 が特定されました。 リセット遅延: 0ミリ秒 リセット タイプ NORMAL: SYSRESETREQ および VECTRESET ビットを介してコアとペリフェラルをリセットします。 ResetTarget() 開始 外部フラッシュをリセットする 監視ポイントを設定する AIRCR経由でSYSRESETREQを実行する クリアウォッチポイント ResetTarget() 終了 アドレス範囲が指定されていない場合は、Erase Chipが実行されます。 デバイスを消去しています... J-Link: フラッシュ ダウンロード: 合計所要時間: 0.703秒 (準備: 0.501秒、比較: 0.000秒、消去: 0.201秒、プログラム: 0.000秒、検証: 0.000秒、復元: 0.000秒) ******エラー: チップの消去中にタイムアウトが発生しましたが、コアは停止しません。(PC = 0x1300B84A 、XPSR = 0xA1000000 、SP = 0x000097C8 )! エラー: エラー コード - 5で消去が返されました。 スクリプトのプロセッシングが完了しました。 そして点滅するには... [ 2026-02-13T12:17:05.672 ] [proc] [info]コマンド: C:\PEMicro\gdbserver\pegdbserver_console.exe -showhardware [ 2026-02-13T12:17:05.676 ] [proc] [info]コマンド: C ":\Program Files\SEGGER\JLink\JLinkGDBServerCL.exe" -listprobes USB [ 2026-02-13T12:17:05.679 ] [proc] [info]コマンド: C:\NXP\LinkServer_25. 12 . 83 \LinkServer.exe プローブ --json [ 2026-02-13T12:17:07.195 ] [proc] [info]コマンド: C:\Users\mark.scheble\.mcuxpressotools\arm- gnu-toolchain-14.2.rel1-mingw-w64-x86_64-arm-none -eabi\bin\arm- none-eabi-gcc.exe --version [ 2026-02-13T12:17:07.200 ] [proc] [info]コマンド: C:\NXP\MCUXpressoIDE_24. 12 . 148 \ide\tools\bin\arm- none-eabi-gcc.exe --version [ 2026-02-13T12:17:07.246 ] [proc] [info]コマンド: cmake -DFORMAT=json -P verify-toolchain.cmake [ 2026-02-13T12:17:07.861 ] [proc] [情報] { "ZEPHYR_TOOLCHAIN_VARIANT" : "zephyr" , "SDK_VERSION" : "0.17.4" , "ZEPHYR_SDK_INSTALL_DIR" : "C:/Users/mark.scheble/zephyr-sdk-0.17.4" } [ 2026-02-13T12:17:07.862 ] [proc] [info]コマンド: C:\Users\mark.scheble\zephyr- sdk-0.17 . 4 \arm-zephyr-eabi\bin\arm- zephyr-eabi-objcopy.exe -I elf32-littlearm -O ihex C:/Users/mark.scheble/git_repos/mimxrt685_hi_res/build/zephyr/zephyr.elf zephyr.hex [ 2026-02-13T12:17:07.896 ] [proc] [info] Cmd: C ":\Program Files\SEGGER\JLink\JLink.exe" -if SWD -speed auto -commanderscript c:\Users\mark.scheble\git_repos\mimxrt685_hi_res\script.jlink -device MIMXRT600_UFL_L0 -SelectEmuBySN 1223000056 [ 2026-02-13T12:17:12.992 ] [proc] [error] C:\Program Files\SEGGER\JLink\JLink.exe がコード1で終了しました [ 2026-02-13T12:17:12.992 ] [proc] [error] SEGGER J-Link Commander V7.54b ( 2021年9月14日16:13:05にコンパイル) DLLバージョンV7.54b 、 2021年9月14日16:11:46にコンパイル J-Link コマンド ファイルが正常に読み取られました。 スクリプト ファイルをプロセッシングしています... J-Link Commanderはエラー時に終了するようになりました J-Link 接続はまだ確立されていませんが、コマンドには必要です。 USB 経由で J-Link に接続しています...同期されていません、再同期しています... 同期されていません。再同期しています... 同期されていません。再同期しています... 失敗: J-Linkに接続できません スクリプトのプロセッシングが完了しました。
查看全文