Multi Source Translation Content

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

Multi Source Translation Content

Discussions

Sort by:
Release Announcement - GUI Guider v1.1 The latest version of GUI Guider was recently released by NXP. If you are unfamiliar with GUI Guider it is a graphical development tool for creating UIs on supported NXP microcontrollers. The tool allows you to create a UI, test the UI along with various levels of events all within a simulation environment, and then deploy the UI application directly to the NXP development board or generate the code for use in MCUXpresso IDE. GUI Guider is designed specifically for use with LVGL, an open-source graphics library, that is available within the MCUXpresso SDK.   This release of GUI Guider features: New Development Tool capabilities Menu shortcut and keyboard control New states: FOCUSED, EDITED, DISABLED Frame rate customization Screen transition configuration Parent / children widgets Callback function setting for animation image VGLite enablement Header path auto-config New or improved Widgets BMP and SVG assets 3D animation for PNG HW Acceleration capabilities Initial support for VGLite on RT1170 and RT595 New Device Target Supported i.MX RT1170 i.MX RT595 New release of GUI Guider v1.1, the user-friendly graphical user interface development tool from NXP that enables the rapid development of high quality displays with the open-source LVGL graphics library.
View full article
LS1046ARDB - SD カード上の U‑Boot バイナリを更新する方法 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> このハウツートピックは、LSDK 18.09 およびそれ以前のリリースにのみ適用されます。LSDK 18.12 以降のリリースについては、TF‑A バイナリのデプロイ を Layerscape Software Development Kit  ドキュメント で参照してください。 SDカード上のU-Bootバイナリを更新するには、次の手順に従ってください。 前提条件 LSDK 18.06 または LSDK 18.09 の U‑Boot バイナリをビルドするには、Linux ホストマシンに Ubuntu 18.04 64‑bit をインストールしておく必要があります。   U‑Boot バイナリのコンパイル u-boot リポジトリをクローンします。 $ git clone https://source.codeaurora.org/external/qoriq/qoriq-components/u-boot.git $ cd u-boot $ git checkout -b   LSDK- . For example, $ git checkout -b LSDK-18.09 LSDK-18.09  $ export ARCH=arm64 $ export CROSS_COMPILE=aarch64-linux-gnu- $ make distclean $ make ls1046ardb_sdcard_defconfig 必要に応じて、U-Bootファイルに変更を加えてください。 $ make make コマンドで "*** Your GCC is older than 6.0 and is not supported" というエラーが表示された場合は、LSDK 18.06 または LSDK 18.09 の U‑Boot バイナリをビルドする際に Ubuntu 18.04 64‑bit を使用していることを確認してください。        コンパイル済みの U‑Boot イメージ u-boot-with-spl-pbl.bin は u-boot/ に生成されます。 SD ブートでは ls104x デバイスが ls1088/ls2088/lx2160 デバイスとは異なるブートローダ方式を採用しているため、u-boot-with-spl-pbl.bin を使用する必要があります。 U‑Boot バイナリの SD カード開始ブロック番号 イメージ SD カードの開始ブロック番号 U-Boot PBL バイナリ 0x00008 = 8 すべての LSDK ファームウェアイメージの SD カード開始ブロック番号の完全な一覧については、PPA – LSDK 18.09 およびそれ以前のリリースのブートフロー用フラッシュレイアウト を参照してください。 U‑Boot バイナリを SD カードに書き込む SD カードを Linux ホストに挿入します。 Linux ホストで次のコマンドを実行してください。 $ sudo dd if=u-boot-with-spl-pbl.bin of=/dev/sdX bs=512 seek=8 conv=fsync cat /proc/partitions コマンドを使用して、デバイスとそのサイズの一覧を表示します。 正しいデバイス名が選択されていることを確認してください。 Linux PC の SDHC ストレージドライブは /dev/sdX として検出されます。X は a、b、c などの文字です。必ず正しいデバイス名を選択してください。このデバイス上のデータは上書きされます。 Linux ホストマシンが追加の SDHC カードリーダーなしで SDHC カードの読み書きを直接サポートしている場合、そのデバイス名は通常 mmcblk0 になります。              LinuxホストマシンからSDカードを取り外してください。 SD カードを LS1046ARDB に挿入し、SD カードから Ubuntu を起動します。SD カードでボードを起動する方法は次のいずれかです。 スイッチの設定: SW3[1:8] = 01001110 および SW5 [1:8] = 00100000、または SD カードへのブート切り替え: => cpld reset sd ブートログには、次の内容が表示されます。 ボード: LS1046ARDB、SD から起動 U‑Boot が SD カード上で LSDK を検出できない場合、SD カードに保存された lsdk_linux_arm64_tiny.itb から TinyDistro を起動します。 QorIQ LS1デバイス
View full article
HOWTO: Create a Blinking LED application project for S32G using S32 RTD No AUTOSAR This document shows the step-by-step process to create a simple blinking LED application for the S32G family using the S32 RTD non-AUTOSAR drivers. For this example used for the S32G-VNP-RDB2 EVB, connected via ethernet connection through S32 Debugger. Preparation Setup the software tools Install S32 Design Studio for S32 Platform Install the S32G development package and the S32 RTD AUTOSAR 4.4. Both of these are required for the S32 Configuration Tools. Launch S32 Design Studio for S32 Platform Procedure New S32DS Project OR Provide a name for the project, for example 'Blinking_LED_RTD_No_AUTOSAR'. The name must be entered with no space characters. Expand Family S32G2, Select S32G274A_Rev2 Cortex-M7 Click Next Now, uncheck the selection mark for other two cores.  Click '…' button next to SDKs Check box next to PlatformSDK_S32XX_2022_07_S32G274A_Rev2_M7_0. (or whichever latest SDK for the S32G is installed). Click OK Click Finish. Wait for project generation wizard to complete, then expand the project within the Project Explorer view to show the contents. To control the LED on the board, some configuration needs to be performed within the Pins Tool. There are several ways to do this. One simple way by double-click on the MEX file. By default, the Pins tool is then presented. For the Blinking LED example, one pin must be configured as output. The S32G-VNP-RDB2 EVB has an RGB LED for which each color is connect to a separate pin on the S32G-VNP-RDB2 EVB. For the blue LED the desired pin is PA_06. From the Peripheral Signals tab left to the Pins tool perspective layout, locate Open the Siul2_0 from the peripheral signals tab. And from the drop down menu select “gpio,6 PA_06” option as per shown in the following image. We are using PA_06 for the GPIO usage, so we are routing the SIUL2_0 GPIO signal to this pin. (This pin is also available for other modules like -FR, FTM, SPI_1) . The Direction required! menu will appear. Select Output then OK. In Routing Details view, notice a new line has been added and highlighted in yellow. Add ‘LED’ to the Label and Identifier columns for the PORTD 0 pin. Code Preview Go to Peripherals tool and add Siul2_Dio to enable LED blinking, it adjacent to the Blue LED on S32G-VNP-RDB2 EVB. Click on the Peripherals Tool icon from the Eclipse Perspective navigation bar. From the Components view, click on ‘Add a new configuration component…’ button from the Drivers category. This will bring up a list of all configuration components. Locate and then select the ‘Siul2_Dio’ component from the list and click OK. Do not worry about the warning message. It is only indicating that the driver is not already part of the current project. The associated driver package will be added automatically. Note: It may be necessary to change the selection at the top from ‘Present in the tool-chain project’ to ‘All’. The DIO driver provides services for reading and writing to/from DIO Channels. Also, select the Siul2_Port_1 tab and select the check mark against ‘Siul2 IP Port Development Error Detect’ option as below. The Gpio_Dio driver requires no further configuration. Click Save to store all changes to the .MEX file. Now the device configurations are complete and the RTD configuration code can be generated. Click ‘Update Code’ from the menu bar. To control the output pin which was just configured, some application code will need to be written. Return to the ‘C/C++’ perspective. If not already open, in the project window click the ‘>’ next to the ‘src’ folder to show the contents, then double click ‘main.c’ file to open it. This is where the application code will be added. Before the pin can be controlled, it needs to be initialized using the configuration information that was generated from the S32 Configuration tools. Initialize all pins using the Port driver by adding the following line: Insert the following line into main, after the comment 'Write your code here': /* Initialize all pins using the Port driver */ Siul2_Port_Ip_Init(NUM_OF_CONFIGURED_PINS0, g_pin_mux_InitConfigArr0); Now, add logic for the LED turn and off. To turn the pin on and off with some delays in-between to cause the LED to blink. Make the delays long enough to be perceptible. Add line to initialize variable uint8 i = 0; Change the code within the provided for loop, and add the following lines: //logic for blinking LED 10 times for (i=0; i<10; i++) {       Siul2_Dio_Ip_WritePin(LED_PORT, LED_PIN, 1U);       level = Siul2_Dio_Ip_ReadPin(LED_PORT, LED_PIN);       TestDelay(2000000);       Siul2_Dio_Ip_WritePin(LED_PORT, LED_PIN, 0U);       level = Siul2_Dio_Ip_ReadPin(LED_PORT, LED_PIN);       TestDelay(2000000); } return (0U); And add this line above the main() function to initialize the variable volatile uint8 level; Before the 'main' function, add a delay function as follows: void TestDelay(uint32 delay); void TestDelay(uint32 delay) {    static volatile uint32 DelayTimer = 0;    while (DelayTimer    {        DelayTimer++;    }    DelayTimer=0; } Update the includes lines at the top of the main.c file to include the headers for the drivers used in the application: Remove #include "Mcal.h" Add #include "Siul2_Port_Ip.h" #include "Siul2_Dio_Ip.h" Build 'Blinking_LED_RTD_No_AUTOSAR'. Select the project name in 'C/C++ Projects' view and then press 'Build'. After the build completes, check that there are no errors. Open Debug Configurations and select 'Blinking_LED_RTD_No_AUTOSAR_Debug_RAM'. Make sure to select the configuration which matches the build type performed, otherwise it may report an error if the build output doesn’t exist. Now, you need to Select the Interface (Ethernet or USB) by which the S32 Debug Probe is connected. If connected via USB and this option is selected for interface, then the COM port will be detected automatically (in the rare event where 2 or more S32 Debug Probes are connected via USB to the host PC, then it may be necessary to select which COM port is correct for the probe which is connected to the EVB) If connected via Ethernet, enter the IP address of the probe. See the S32 Debug Probe User Manual for ways to determine the IP address. Click Debug To see the LED blink, click ‘Resume'. This code as it will blink the LED times, you can make changes in for loop condition to blink it infinitely. Re: HOWTO: Create a Blinking LED application project for S32G using S32 RTD No AUTOSAR I'm attempting to use a S32G-VNP-RDB3 to evaluate the S32G3. I follow this HOWTO and what I see with a newly installed S32 DS matches fairly well until 13. First, I don't understand the "it adjacent to the Blue LED on S32G-VNP-RDB2 EVB." This section of the HOWTO seems to be working within the S32 DS so I don't understand the reference to a LED location of the evaluation board. Second, I don't see Siul2_Port_1 or Siul2_Dio shown from step 13b and beyond. I'm attempting to attach an image that shows what I see.
View full article
LS1046ARDB - How to update U-Boot binary on SD card This how-to topic is applicable only to LSDK 18.09 and older releases. For LSDK 18.12 and newer releases, refer Deploying TF-A binaries in Layerscape Software Development Kit  Documentation . Follow these steps to update U-Boot binary on the SD card.  Prerequisites  Ubuntu 18.04 64-bit should be installed on the Linux host machine for building LSDK 18.06 or LSDK 18.09 U-Boot binary.   Compiling U-Boot binary Clone the u-boot repository. $ git clone https://source.codeaurora.org/external/qoriq/qoriq-components/u-boot.git $ cd u-boot $ git checkout -b   LSDK- . For example, $ git checkout -b LSDK-18.09 LSDK-18.09  $ export ARCH=arm64 $ export CROSS_COMPILE=aarch64-linux-gnu- $ make distclean $ make ls1046ardb_sdcard_defconfig If required, make changes to the U-Boot files. $ make If the make command shows the error "*** Your GCC is older than 6.0 and is not supported", ensure that you are using Ubuntu 18.04 64-bit version for building LSDK 18.06 or LSDK 18.09 U-Boot binary.         The compiled U-Boot image, u-boot-with-spl-pbl.bin, is available at u-boot/. You need to use u-boot-with-spl-pbl.bin because for SD boot, ls104x devices use different way for bootloader from ls1088/ls2088/lx2160 devices. SD card start block number for U-Boot binary Image  SD card start block number U-Boot PBL binary 0x00008 = 8 Refer the Flash layout for boot flow with PPA – LSDK 18.09 and older releases for a complete listing of the SD card start block numbers for all LSDK firmware images. Programming U-Boot binary to SD card Plug the SD card into the Linux host. Run the following command on the Linux host: $ sudo dd if=u-boot-with-spl-pbl.bin of=/dev/sdX bs=512 seek=8 conv=fsync Use the command cat /proc/partitions to see a list of devices and their sizes to make sure that the correct device names have been chosen. The SDHC storage drive in the Linux PC is detected as /dev/ sdX, where X is a letter such as a, b, c. Make sure to choose the correct device name, because data on this device will be replaced. If your Linux host machine supports read/write SDHC card directly without an extra SDHC card reader device, the device name of SDHC card is typically mmcblk0.              Remove the SD card from the Linux host machine. Plug the SD card into LS1046ARDB and boot the board to Ubuntu using the SD card. You can boot the board using the SD card either by: setting the switches: SW3[1:8] = 01001110 and SW5 [1:8] = 00100000, or boot switching to SD card: => cpld reset sd In boot log, you’ll see: Board: LS1046ARDB, boot from SD If U-Boot does not find LSDK on the SD card, it will boot TinyDistro from lsdk_linux_arm64_ tiny.itb stored on the SD card. QorIQ LS1 Devices
View full article
扩展你的 Android 应用显示 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 许多用户询问过但仍在为 Android 开发中的功能之一是扩展桌面功能。目前,Android 允许您在两个显示器上镜像您的桌面,但您仍然无法像使用 Linux 或 Windows 等任何其他操作系统那样扩展您的桌面。 本教程旨在向您展示如何使用特殊对象来控制辅助或外部显示器上显示的内容,从而取代屏幕镜像。 那么我们该怎么做呢? 演示文稿是在外部显示器上以视图层次结构的形式显示用户界面的容器。这非常类似于对话框,因为它显示与其活动分开的 UI,但不同之处在于演示文稿显示在外部显示器上,而对话框将其显示在主屏幕上。现在,由于这个原因,外部显示器上的 UI 要使用的资源与主屏幕上使用的资源不同,演示的上下文不是活动。 我们如何选择将此演示文稿发送到哪里? 最简单的方法是使用 MediaRouter API。mediarouter 的作用是跟踪系统上可用的音频和视频路由。无论何时选择或取消选择路线,MediaRouter 都会发送通知。应用程序可以简单地监视这些通知并自动在首选演示显示屏上显示或关闭演示。 首选演示显示器是媒体路由器建议应用程序在想要在辅助显示器上显示内容时使用的显示器。如果没有首选的演示显示,则应用程序应该在本地显示其内容而不使用演示。 使用 Mediarouter MediaRouter 是通过调用 getSystemService() 并请求 MEDIA_ROUTER_SERVICE 获得的系统服务。 我们应该使用 mediarouter 在首选的演示显示器上创建和显示演示文稿: MediaRouter mediaRouter = ( MediaRouter ) context . getSystemService ( Context . MEDIA_ROUTER_SERVICE ); MediaRouter.RouteInfo route = mediaRouter.getSelectedRoute ( ) ;​​ 如果(路线!= null ) { 显示presentationDisplay =路由.getPresentationDisplay () ; 如果( presentationDisplay != null ) { 演示文稿=新MyPresentation (上下文, presentationDisplay ) ; 演示.展示(); } } 为了在您的应用中使用此框架,您需要获取 MediaRouter 框架对象的一个实例并附加一个 MediaRouter.Callback 对象来监听可用媒体路由中的事件。 实现媒体路由器 API 的 Android 应用程序需要包含一个 Cast 按钮,以允许用户选择媒体路由在辅助输出设备上播放媒体。实现 Cast 按钮的推荐方法是从 ActionBarActivity() 扩展您的活动并使用 onCreateOptionMenu() 方法添加选项菜单。Cast 按钮必须使用 MediaRouteActionProvider 类作为其操作: xml 版本= "1.0"编码= "utf-8" ?> <菜单xmlns:android = " http://schemas.android.com/apk/res/android " xmlns:app = " http://schemas.android.com/apk/res-auto " > <项目机器人:ID = “@ + id / media_route_menu_item” 机器人:标题= “@string/media_route_menu_title” 应用程序:actionProviderClass = “android.support.v7.app.MediaRouteActionProvider” app:showAsAction = “总是” /> 媒体路由器框架通过附加到媒体路由器框架对象的回调对象与应用程序进行通信。有必要扩展回调对象以便在媒体路由连接时接收消息。 一旦为媒体路由器定义了回调,您就需要将其附加到媒体路由器对象。下面的示例演示了如何使用生命周期方法来适当地添加和删除应用程序的媒体路由器回调对象。您需要添加和删除它,因为无论何时关闭应用程序或将其放在后台,它都需要是空闲的,以便其他应用程序在必要时使用它。 公共类MediaRouterPlaybackActivity扩展了ActionBarActivity { 私人MediaRouter mMediaRouter ; 私人MediaRouteSelector mSelector ; 私人回调mMediaRouterCallback ; // 您的应用程序可以使用它们,以便框架可以发现它们。 @Override 受保护的void onCreate ( Bundle savedInstanceState ) { 超级. onCreate ( savedInstanceState ); 设置ContentView ( R.layout.activity_main ) ;​​ // 获取媒体路由器服务。 mMediaRouter = MediaRouter.getInstance ( this ) ;​ ... } // 在启动时添加回调来告诉媒体路由器有哪些类型的路由 // 您的应用程序可以使用它们,以便框架可以发现它们。 @Override 公共无效的onStart () { mMediaRouter.addCallback ( mSelector , mMediaRouterCallback ,​​ 媒体路由器.回调标志位 请求发现); 超级. onStart (); } // 停止时删除选择器,告诉媒体路由器它不再 // 需要发现您的应用的路线。 @Override 公共无效onStop () { mMediaRouter.removeCallback ( mMediaRouterCallback ) ;​ 超级. onStop (); } ... } 远程回放 这种方法将控制命令发送到辅助设备以启动播放并控制正在进行的播放(播放、停止、快进、倒带等)。当您的应用支持这种类型的媒体路由时,您必须使用通过应用的 MediaRouter.Callback 对象接收的远程播放 MediaRoute.RouteInfo 对象创建一个 RemotePlaybackClient 对象。 下面的示例代码演示了一个控制器方法,该方法创建一个新的远程播放客户端并向其发送视频进行播放。 私人无效更新远程播放器( RouteInfo路线) { // 改变路线:拆除之前的客户端 如果( mRoute != null && mRemotePlaybackClient != null ) { mRemotePlaybackClient .释放(); mRemotePlaybackClient =空; } // 保存新路线 mRoute =路线; // 附加新的播放客户端 mRemotePlaybackClient =新的RemotePlaybackClient ( this , mRoute ) ; // 发送文件进行播放 mRemotePlaybackClient.play ( Uri .​​解析( “ http://archive.org/download/Sintel/sintel-2048-stereo_512kb.mp4 ” ) “video/mp4” , null , 0 , null , new ItemActionCallback () { @Override public void onResult (捆绑数据,字符串sessionId , MediaSessionStatus会话状态, 字符串itemId , MediaItemStatus itemStatus ) { logStatus ( "播放:项目成功" + itemId ); } @Override public void onError (字符串错误, int代码, Bundle数据) { logStatus ( "播放:失败 - 错误:" + code + " - " + error ); } }); } } 有关如何使用媒体路由器的更多信息,请访问developer.android.com
View full article
Compiling L5.4.3_1.0.0 BSP On Ubuntu 180.4 LTS We will cross compile L5.4.3_1.0.0 on ubuntu18.04 LTS platform in three steps. 1. Installing Ubuntu 18.04 to vmplayer14 & Configuring Ubuntu 18.04 LTS 2. Compiling L5.4.3_1.0.0 BSP According to Steps in i.MX_Yocto_Project_User's_Guide.pdf 3. Handling tensorflow-lite compilation errors. --BEGIN No.1 Installing Ubuntu 18.04 to vmplayer14 & Configuring Ubuntu 18.04 LTS 1. Install 18.04 on vmplayer After installation is done, root user should be set at first. # sudo passwd root Then follow these steps to configuration ubuntu 18.04 for environment of compiliation --Changing sources of ubuntu 18.04 mirror If you are Chinese users, you can do the step, which can improve your system performance. # sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak # sudo geit /etc/apt/source.list Comment I.MX customers outside China do not need to modify Ubuntu source list, or can modify it to local mirror site of Ubuntu 18.04, which can improve the speed of software upgrade. Delet all sources and copy following lines here, Then save it and exit Update ubuntu source deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-updates main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-backports main restricted universe multiverse deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-security main restricted universe multiverse # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ bionic-proposed main restricted universe multiverse Then running these 2 commands to update sources and packages # sudo apt-get update # sudo apt-get upgrade 2. Installing packages for compiliation Packages For Compiling BSP # sudo apt-get install flex bison gperf build-essential zlib1g-dev lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev tofrodos python-markdown libxml2-utils xsltproc # sudo apt-get install uuid-dev:i386 liblzo2-dev:i386 gcc-multilib g++-multilib subversion openssh-server openssh-client uuid uuid-dev zlib1g-dev liblz-dev lzop  liblzo2-2 liblzo2-dev git-core curl # sudo apt-get install u-boot-tools mtd-utils android-tools-fsutils openjdk-8-jdk device-tree-compiler aptitude libcurl4-openssl-dev nss-updatedb # sudo apt-get install chrpath texinfo gawk cpio diffstat No.2 Compiling L5.4.3_1.0.0 BSP According to Steps in i.MX_Yocto_Project_User's_Guide.pdf          The detailed BSP compilation steps are given in i.MX_Yocto_Project_User's_Guide.pdf. Here are just some tips and simple steps. For Chinese customers, the system may not respond when the repo init or repo sync command is executed after obtaining the repo script. Detailed description is below: (1)Getting repo script # mkdir ~/bin (this step may not be needed if the bin folder already exists) # curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo # chmod a+x ~/bin/repo # export PATH=~/bin:$PATH (2)Getting Yocto source # mkdir imx-yocto-bsp # cd imx-yocto-bsp # repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-zeus -m imx-5.4.3-1.0.0.xml # repo sync          After running repo init or repo sync, you may encounter a situation where there is no progress for a long time, and repo sync stops there without any prompt. This may be caused by googlesource site being inaccessible.          At this time, you can modify the googlesource URL to the URL of Tsinghua University. # gedit ./repo          Changing REPO_URL = 'https://gerrit.googlesource.com/git-repo'          To be:                    REPO_URL = 'https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'          Save and exit. Then run “repo init -u https://source.codeaurora.org/external/imx/imx-manifest -b imx-linux-zeus -m imx-5.4.3-1.0.0.xml”. or repo sync No.3 Handling tensorflow-lite compilation errors       If you encounter a tensorflow-lite compilation error during the compilation process, the following processing methods may be helpful to you. Cause Analysis:          Compiling tensorflow-lite requires three steps: fetching packages, configuring environment, and compiling code.          During the configuring environment, the following 8 software packages need to be downloaded. If any of the 8 files are not successfully downloaded, an error will be reported and compilation will be terminated.          ①9f48e814419e.tar.gz          ②38ebac7b059e84692f53e5938f97a9943c120d98.zip          ③release-1.8.0.tar.gz          ④389ec3f906f018661a5308458d623d01f96d7b23.tar.gz          ⑤master.zip          ⑥816a4ae622e964763ca0862d9dbd19324a1eaf45.tar.gz          ⑦1f5eae5d6a135ff6811724f6c57f911d1f46bb15.tar.gz          ⑧fft.tgz          If you encounter this problem, you can refer to the following methods to solve it. Open the file with editor: ~/imx-yocto-bsp/build-xwayland/tmp/work/aarch64-poky-linux/tensorflow-lite/1.13.2-r0/git/tensorflow/lite/tools/make/download_dependencies.sh URLs EIGEN_URL="https://bitbucket.org/eigen/eigen/get/9f48e814419e.tar.gz" GEMMLOWP_URL="https://github.com/google/gemmlowp/archive/38ebac7b059e84692f53e5938f97a9943c120d98.zip" GOOGLETEST_URL="https://github.com/google/googletest/archive/release-1.8.0.tar.gz" ABSL_URL="https://github.com/abseil/abseil-cpp/archive/389ec3f906f018661a5308458d623d01f96d7b23.tar.gz" NEON_2_SSE_URL="https://github.com/intel/ARM_NEON_2_x86_SSE/archive/master.zip" FARMHASH_URL="https://github.com/google/farmhash/archive/816a4ae622e964763ca0862d9dbd19324a1eaf45.tar.gz" FLATBUFFERS_URL="https://github.com/google/flatbuffers/archive/1f5eae5d6a135ff6811724f6c57f911d1f46bb15.tar.gz" FFT2D_URL="http://www.kurims.kyoto-u.ac.jp/~ooura/fft.tgz" Save and exit. [comment]     Don’t run “bitbake tensorflow-lite -c cleanall before you modify it”, otherwise files will be deleted.  Then try to compile tensorflow-lite like below: # bitbake tensorflow-lite -c compile   At the same time, we can open this directory and check if the following directories are created. If these 8 directories are successfully created, it means that links we modified are no problem.          After tensorflow-lite is successfully built, we can continue to compile full images. # bitbake imx-image-full --END NXP TIC team Weidong Sun 2020/3/30 i.MX 8 Family | i.MX 8QuadMax (8QM) | 8QuadPlus
View full article
FS27 RTDとBMS GEN2 RTDの互換性に関するコンサルティング こんにちは、専門家の皆様 顧客の新しい BMS プロジェクトでは、 S32K358 + FS27 + BMS GEN2 SDK を使用したいと考えています。 BMS チームから次のことを学びました。 BMS GEN2 SDK AUTOSAR 4.4 R21-11 バージョン0.9.1 CD05および BMS GEN2 SL SDK AUTOSAR 4.4 R21-11 バージョン0.9.1 CD05は来週リリース予定です。S32K3 RTD 6.0.0 との統合をサポートします。 BMS GEN2 SDK は、2026 年第 1 四半期中に BMS リリースv1.0.0でS32K3 RTD 6.0.0に移行される予定です。 つまり、 BMS GEN2 SDK は近い将来S32K3 RTD 6.0.0と互換性を持つようになります。 顧客は 24V プラットフォームを必要としているため、FS26 ではなく FS27 を使用したいと考えています。オートモーティブ SW - SBC/PMIC - リアルタイム・ドライバから、次の 2 つのバージョンの FS27 を見つけました。 S32K3xx SBC FS27 R21-11 0.8.0 ( S32K3 RTD 5.0.0ベース) S32K3 RTD 7.0.0 ベースの SBC FS27 R23-11 1.0.0 Q1.顧客は、S32K3 RTD のバージョンが一貫していないため、FS27 と BMS GEN2 SDK のドライバに互換性がないのではないかと懸念しています。BMS GEN2 SDKでS32K3 RTD 6.0.0 を選択した場合、お客様がS32K3xx SBC FS27 R21-11 0.8.0またはSBC FS27 R23-11 1.0.0を使用すると問題が発生しますか? Q2. FS27にはS32K3 RTD 6.0.0に基づくドライバーがありますか? 助けていただけませんか?ご協力をよろしくお願いします! よろしくお願いいたします ロビン お客様情報は次のとおりです: お問い合わせ名 TengHsaing Wen メール(お問い合わせ)bill@xingmobility.com 会社名:XINGMOBILITY AA SW - 外部デバイス 優先度: 中 出典: 直接顧客 Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD こんにちは、ヴィクトルさん。 情報をいただきありがとうございます。 S32K3 RTD 6.0.0 に基づく「BMS GEN2 SDK AUTOSAR 4.4 R21-11 バージョン 0.9.1 CD05」はまだダウンロードできません。 ダウンロードできるようになったら、少なくとも正常にコンパイルできるかどうかをテストします。 よろしくお願いいたします ロビン Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD こんにちは、ロビン。 RTD 6.0.0専用のリリースはありませんが、最新バージョン(FS27 1.0.0)下位互換性があるはずです。何か問題がございましたら、お知らせください。 よろしくお願いいたします、ヴィクトル Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD このトピックは調査するためにチームにリダイレクトされました。 連絡先: Razvan Tilimpea / Cristian Durla または Viktor Obr Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD こんにちは、ヴィクトルさん。 「BMS GEN2 SDK AUTOSAR 4.4 R21-11 バージョン 0.9.1 CD05」がダウンロード可能になりました。 お客様は、2 つのドライバ(R23-11とR21-11 ) の AUTOSAR バージョンが大幅に異なり、 SBC FS27 R23-11 1.0.0と組み合わせた場合に互換性の問題が発生するのではないかと疑問を呈していました。 よろしくお願いいたします ロビン Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD こんにちは、ロビン。 異なる AUTOSAR バージョン間の互換性は難しいため、統合しようとしている両方のコンポーネントで使用されるすべてのドライバを比較する必要がありますが、私は BMS SDK に 100% 精通しているわけではありません。FS27 のバージョンとそれが使用するドライバに関しては、R21-11 と R23-11 の間で大きな変更は見られませんでしたが、1 つのプロジェクトでコンポーネントを組み合わせるとすぐにわかる小さな違いがいくつかある可能性があります (バージョン固有のマクロなど)。ただし、機能的な観点からは、同じように動作するはずです。 よろしくお願いいたします。 ヴィクトル Re: Consulting on the compatibility of FS27 RTD and BMS GEN2 RTD こんにちは@viktorobr 、 「BMS GEN2 SDK AUTOSAR 4.4 R21-11バージョン 0.9.1 CD06 」がダウンロード可能になりました。 お客様は、2 つのドライバ(R23-11とR21-11) の AUTOSAR バージョンが大幅に異なり、SBC FS27 R23-11 1.0.0と組み合わせた場合に互換性の問題が発生するのではないかと疑問を呈していました。 よろしくお願いいたします ロビン
View full article
LS1046ARDB - 如何更新 SD 卡上的 U-Boot 二进制文件 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 本操作指南仅适用于 LSDK 18.09 及更早版本。对于 LSDK 18.12 及更新版本,请参考《Layerscape 软件开发套件 <版本> 文档》中的 “部署 TF-A 二进制文件” 部分。 请按照以下步骤更新 SD 卡上的 U-Boot 二进制文件。 前提条件 Linux 主机需安装 Ubuntu 18.04 64 位系统,用于编译 LSDK 18.06 或 LSDK 18.09 的 U-Boot 二进制文件。   编译 U-Boot 二进制文件 克隆 U-Boot 代码仓库: $ git clone https://source.codeaurora.org/external/qoriq/qoriq-components/u-boot.git $ cd u-boot $ git checkout -b   LSDK- . For example, $ git checkout -b LSDK-18.09 LSDK-18.09  $ export ARCH=arm64 $ export CROSS_COMPILE=aarch64-linux-gnu- $ make distclean $ make ls1046ardb_sdcard_defconfig 如有需要,修改 U-Boot 文件。 $ make 如果 make 命令显示错误 “*** Your GCC is older than 6.0 and is not supported”,请确保使用 Ubuntu 18.04 64 位版本编译 LSDK 18.06 或 LSDK 18.09 的 U-Boot 二进制文件。        编译好的 U-Boot 镜像 u-boot-with-spl-pbl.bin 位于 u-boot/ 目录下。 你需要使用 u-boot-with-spl-pbl.bin,因为对于 SD 卡启动,ls104x 系列设备所采用的 bootloader 方式与 ls1088/ls2088/lx2160 系列设备不同。 U-Boot 二进制文件的 SD 卡起始块编号 图像 SD卡起始块号 U-Boot PBL 二进制文件 0x00008 = 8 有关所有 LSDK 固件镜像的 SD 卡起始块编号的完整列表,请参考 《带 PPA 的启动流程的闪存布局 ——LSDK 18.09》及更早版本。 U-Boot 二进制文件在 SD 卡上的起始块编号 将 SD 卡插入 Linux 主机。 在 Linux 主机上运行以下命令: $ sudo dd if=u-boot-with-spl-pbl.bin of=/dev/sdX bs=512 seek=8 conv=fsync 使用 cat /proc/partitions 命令查看设备列表及其大小, 以确保选择了正确的设备名称。 Linux 电脑中的 SDHC 存储驱动器被检测为 /dev/ sdX,其中 X 是一个字母,如 a、b、c。确保选择正确的设备名称, 因为此设备上的数据将被替换。 如果您的 Linux 主机支持直接读写 SDHC 卡,无需额外的 SDHC 卡读卡器设备,则 SDHC 卡的设备名称通常为 mmcblk0。              从 Linux 主机上移除 SD 卡。 将 SD 卡插入 LS1046ARDB 开发板,通过该 SD 卡启动开发板进入 Ubuntu 系统。你可以通过以下两种方式之一使用 SD 卡启动开发板: 设置开关:SW3 [1:8] = 01001110 且 SW5 [1:8] = 00100000;或者 切换至 SD 卡启动: => cpld reset sd 在启动日志中,您将看到: 主板:LS1046ARDB,从 SD 卡启动 如果 U-Boot 在 SD 卡上未找到 LSDK,它将从 SD 卡上存储的 lsdk_linux_arm64_tiny.itb 启动 TinyDistro。 QorIQ LS1设备
View full article
[Beginner's Guide] How to Build Yocto Linux BSP - i.MX FRDM Board Edition (Japanese Blog) This guide will show you how to build Yocto Linux using the i.MX FRDM board as a base. This article uses the FRDM-IMX93 as an example, but the same procedure can be used to build on other i.MX FRDM boards. The Yocto Linux BSP is described using "Linux 6.12.49_2.2.0 ( Yocto 5.2 “Walnascar” )" as an example. Q: What is an i.MX FRDM board? A: The i.MX FRDM board is a development board designed to be more affordable and compact compared to NXP's full-featured EVK board, with fewer features. Its purpose is to allow for easy basic evaluation and prototyping. 1. Environment & Preparation 1.1. environment Major items Minor item Content remarks Document - IMX_YOCTO_PROJECT_USERS_GUIDE.pdf (This is the primary method used. It describes the procedure for building the BSP .) i.MX Linux ® Release Notes (You can view a list of support features.) i.MX Porting Guide (Summary of points to note when actually implementing) Download general Yocto Linux documentation here. Hardware FRDM board FRDM-IMX8MPLUS FRDM-IMX91S FRDM-IMX91 FRDM-IMX93 FRDM-IMX95 (Coming Soon) This chapter will use the FRDM-IMX93 as a basis for explanation. Try PC Ubuntu environment ・VMWare/Virtual Box etc. (on Windows) Native Linux one of the following Recommended: Ubuntu 22.04 or later SD card + reader/writer 16GB or more recommended   Hardware (Option) MIPI-Camera (Option) BSP-compatible MIPI camera (See i.MX Linux ® Release Notes) A USB camera can be used as an alternative (though this may result in latency). Display (Option) Display   USB Device (Option) USB mouse, USB memory stick   Headphone (Option) 3.5mm earphones Earphones with a microphone (such as the earphones that came with older iPhones) are better. Software Yocto environment Linux BSP (This time, we used Linux 6.12.49_2.2.0 ( Yocto 5.2 “Walnascar” )) This article explains the installation process, including how to install the software. 1.2. Legend Legend for the Command Prompt =>           u-bootプロンプト $            BSPがインストールされているLinux PCのプロンプト 2. Host machine Ubuntu 22.04 Desktop is recommended. For practical use, a host machine with at least 8 threads and 16GB of RAM is recommended for a reasonably comfortable experience. The required storage will vary depending on the target recipe, but it will be around 50GB for small projects and 500GB for larger ones. 2.1. Packages required for Yocto Please install the necessary packages using the following steps. $ sudo apt-get install build-essential chrpath cpio debianutils diffstat file gawk gcc git iputils-ping libacl1 liblz4-tool locales python3 python3-git python3- jinja2 python3-pexpect python3-pip python3-subunit socat texinfo unzip wget xzutils zstd efitools curl Note: In addition to the information in IMX_YOCTO_PROJECT_USERS_GUIDE.pdf, curl has been added. 2.2. Configuring the swap file Here's an example of setting up a 32GB swap file. $ sudo fallocate -l 32G /swapfile $ sudo chmod 600 /swapfile $ sudo mkswap /swapfile $ sudo swapon /swapfile Note: If /swapfile already exists, the command on the first line will fail. If you want to change the size, execute the following and then run the command above again. $ sudo swapoff /swapfile $ sudo rm /swapfile To automatically mount the swap file when the host machine starts up, add the following line to /etc/fstab : /swapfile none swap sw 0 0 3. Yocto Linux BSP From the Embedded Linux for i.MX Applications Processors section on nxp.jp, select the required Linux BSP version and obtain the i.MX Yocto Project User's Guide. Create the image following the steps in "4 Yocto Project Setup" of the i.MX Yocto Project User's Guide (IMXLXYOCTOUG). This document is written assuming the following settings are used to generate the image. DISTRO = fsl-imx-xwayland MACHINE = imx93-11x11-lpddr4x-frdm 3.1. Setting up and building Yocto BSP For host machine setup, please refer to 2. Host Machine. 3.1.1. Installing the repo utility $ mkdir ~/bin $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo 3.1.2. Add the repository to your PATH Add the following line to $HOME/.bashrc : export PATH=~/bin:$PATH 3.1.3. Git Setup $ git config --global user.name "Your Name" $ git config --global user.email "Your Email" $ git config --list 3.1.4. Yocto BSP Setup $ mkdir imx-yocto-bsp $ cd imx-yocto-bsp $ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-walnascar -m imx-6.12.49-2.2.0.xml $ repo sync 3.1.5. Set build target, build $ MACHINE=imx93-11x11-lpddr4x-frdm DISTRO=fsl-imx-xwayland source ./imx-setup-release.sh -b build $ bitbake imx-image-full *Once the build is complete, a Linux image will be generated. * For instructions on how to write the generated image, please refer to steps 1 and 2 of the Start Guide for your specific FRDM board. FRDM-IMX8MPLUS Start Guide FRDM-IMX91 Start Guide FRDM-IMX91S Start Guide FRDM-IMX93 Start Guide Note: If you want to build a Linux BSP for other FRDM boards, replace the " MACHINE= " part of the command above with the following name. imx8mp-lpddr4-frdm (FRDM-IMX8MPLUS) imx91-11x11-lpddr4-frdm (FRDM-IMX91) imx91-11x11-lpddr4-frdm-imx91s (FRDM-IMX91S) imx93-11x11-lpddr4x-frdm (FRDM-IMX93) imx95-15x15-lpddr4x-frdm (FRDM-IMX95) Note: For graphics functionality, you can also select the distribution using the " DISTRO = " part of the command above. fsl-imx-wayland (Wayland) fsl-imx-xwayland (Not compatible with X11 apps that use Wayland & X11 *EGL) Note: The setup using the imx-setup-release.sh script should only be done once per project. Doing so on an existing project will generate new files such as conf/local.conf , and your previous settings will be lost. If you wish to reuse an existing project... 3.3.1. See "Resuming work from an existing build directory". Note: Depending on the host machine's specifications, the build process may take several tens of hours. Also, expect it to consume 400-500GB of storage. Note: When building on a multi-core, multi-threaded host machine, swapping occurs if there is insufficient memory for the number of threads. Limiting the number of threads is covered in section 3.4.2. See Limiting the number of threads that run during the build process. Note: In the initial state of Ubuntu 22.04, swap may not be configured, which can cause extreme slowness or crashes. The swap file configuration is as follows: 2.2. Please refer to the section on configuring swap files. *The following information is for reference only. 3.2. Building and Installing the Toolchain You can build and install toolchains such as cross-compilers. By using the scripts generated here, you can avoid problems that often occur during cross-compilation, such as not being able to find include files or libraries to link. 3.2.1. Toolchain build $ bitbake imx-image-full -c populate_sdk 3.2.2. install $ tmp/deploy/sdk/fsl-imx-xwayland-glibc-x86_64-imx-image-full-armv8a-imx93-11x11-lpddr4x-pf0900-evk-toolchain-6.12-walnascar.sh We will not explain how to use the toolchain here. 3.3. Frequently used Yocto bitbake commands and settings 3.3.1. Resume work from the existing build directory. $ cd /path/to/imx-yocto-bsp $ source ./setup-environment build Note: The paths and directories mentioned here are from section 3.1.4. Yocto BSP setup, 3.1.5. The build target settings were configured during the build process. Below, we will give some command examples using linux-imx as an example. You can do the same thing for each package by changing " linux-imx " to a different package name. 3.3.2. Rebuilding the package $ bitbake -c compile linux-imx -f $ bitbake -c install linux-imx $ bitbake -c deploy linux-imx If you do not include the note -f , the steps may be skipped. Note - Some packages may show an error when deploying using `-c deploy` , but in most cases this is simply because the `do_deploy` command is not available, so you can ignore the error. 3.3.3. Deleting Packages If an error occurs with a package that shouldn't normally happen, try deleting the package using the following command and trying again. This may resolve the error. (This is because packages may be corrupted during download, or junk data may remain if the build process is terminated prematurely.) $ bitbake -c cleansstate linux-imx Note: The extracted source code will be deleted, so please be careful if you have any files you are currently editing. 3.3.4. Package Extraction If you only want to extract the package and do not want to compile it yet $ bitbake -c patch linux-imx 3.3.5. Apply changes to the config file. If you want to change a config file (such as arch/arm64/configs/imx_v8_defconfig ) and have those changes reflected: $ bitbake -c configure linux-imx $ bitbake -c compile linux-imx -f 3.3.6. Run linux-imx menuconfig When changing the build options for the Linux kernel $ bitbake -c menuconfig linux-imx A window like this will pop up, so make the necessary changes and save. (Use the arrow keys to select the item and the spacebar to confirm.) For tips on building, please also refer to the following article. Yocto Linux BSP Build Tips - i.MX 8M Plus Edition ========================= We are currently unable to respond to comments left in the "Comment" section of this post. We apologize for the inconvenience, but please refer to " Technical Questions to NXP - How to Contact Us( Japanese Blog) " when making an inquiry. (If you are already an NXP distributor or have a relationship with NXP, you may ask your representative directly.) This guide will show you how to build a Linux BSP using the FRDM (Freedom) board, which allows you to start using embedded Linux in a compact and affordable way. This article uses the FRDM-IMX93 as an example, but the same procedure can be used to build on other i.MX FRDM boards. The Yocto Linux BSP is described using "Linux 6.12.49_2.2.0 (Yocto 5.0.4)" as an example. i.MX Processors SW | Downloads Japanese Blog
View full article
i.MX 93 Pro Center: How to Install a Sequencer - Practical (Japanese Blog) Previously, we have explained the i.MX 93 in the following example of aセキュアブートの仕組みについて解説を行いました。 (Please refer to the following for previous notes).  Journalism: i.MX 93 Prospectus: Signatures and Certifications for SequiaBoot (Japanese Logo) This time, the Secure boot is actually installed in a hanzion form. table of contents i.MX 93 Secure Boot Hands-on 1. Hands-on environment 2. Host PC Center (Linux) 3. Download Code Signing Tool 4. SRK generation 5. git center 6. i.MX Linux BSP downloads 7. meta-imx-frdm downloads 8. meta-nxp-security-reference-design downloads 9. Center for Virtual Environment (CVE) 10. IMAGE VIDEO 11. occasions when the bitbake is reopened while in transit 12. Occasions for signing the signature 13. ramdisk signature 14. Host PCs and guesthouse connections 15. UUU Institutes (Linux) 16. UUU Institutes (Windows) 17. シリアルコンソール (Linux) 18. シリアルコンソール (Windows) 19. Linux Startup Tasks (1) 19.1. Serial DownloadでLinux Startup 19.2. SDまたはeMMCでLinux startup 20. Written on SRK hash. 21. Linux Startup Tasks (2) 22. Moving on OEM Closed 23. Linux Startup Tasks (3) 24. References i.MX 93 Secure Boot Hands-on¶ The i.MX 93 Pro Center introduces the manual for installing the Advanced High Assurance Boot (AHAB) using the セキュアブート. 1. Hands-on environment¶ Host PC. YoctoBuilder is available for Linux PCs and Windows PCs in a virtual environment (WSL2, VMware, VirtualBox, etc.). The OS is Ubuntu 22.04. A connection to the network is necessary. The capacity of the disk is 100GB. (In the case of FRDM-IMX93 with core-image-minimal) UUU, コンソールによる作はLinux PCもしくはWindows PCでも可能です。 UUU is available for Linux and Windows. The シリアルコンソール is available for Linux PCs with screen and minicom, and for Windows PCs with TeraTerm and PuTTY. Target. FRDM-IMX93 microSD もしくはeMMC を使用します。 The Host PC and Target are connected to each other by 2 USB cables. i.MX Linux BSP 6.6.36-2.1.0 (GitHub) meta-imx-frdm (branch: lf-6.6.36-2.1.0, tag: imx-frdm-4.0) (GitHub) meta-nxp-security-reference-design (branch: scarthgap-6.6.23-2.0.0) (GitHub) 2. Host PC center (Linux )¶ Host PC's OS is Ubuntu 22.04. The system has been updated with the latest state. $ sudo apt-get -y update $ sudo apt-get -y upgrade Yoctoでイメージをビルドするために必要なパッケージをインストールします。 The Dockerfile of imx-docker を参考にしています。 $ sudo apt-get -y install gawk wget git-core diffstat unzip texinfo \ gcc-multilib build-essential chrpath socat file cpio python3 \ python3-pip python3-pexpect xz-utils debianutils iputils-ping \ libsdl1.2-dev xterm tar locales net-tools rsync sudo vim curl zstd \ liblz4-tool libssl-dev bc lzop libgnutls28-dev efitools git-lfs \ bsdmainutils This time, we will work on the top ディレクトリ at HOMEディレクトリ直下の ~/imx93-secure-boot とします。 The place or name of the data center is optional, but you should read and replace it if necessary. $ mkdir ~/imx93-secure-boot $ cd ~/imx93-secure-boot The ultimate ディレクトリツリー for Host PC is the following. imx93-secure-boot ├── IMX_CST_TOOL_NEW.tgz ├── cst-4.0.1 │ ├── ... │ ├── keys │ ├── crts │ └── linux64 │ └── bin ├── backup-cst └── yocto ├── ... ├── bin ├── build-imx93-11x11-lpddr4x-frdm │ ├── ... │ ├── conf │ └── tmp │ └── deploy │ └── images │ └── imx93-11x11-lpddr4x-frdm ├── downloads └── sources ├── ... ├── meta-imx ├── meta-imx-frdm └── meta-nxp-security-reference-design   3. Download the Code Signing Tool The Code Signing Tool (CST) is based on the i.MX Processor's High Assurance Boot (HAB) and Advanced High Assurance Boot (AHAB) functions. NXPのwebサイトから最新版がダウンロードできます。 Code Signing Tool (latest version) i.MX Software and Development Tools Link to Code Signing Tools below this page. 最新版をダウンロードすると、 IMX_CST_TOOL_NEW.tgz というファイルなので、最上位ディレクトリに保存してから、展します。 $ cd ~/imx93-secure-boot $ cp ~/Downloads/IMX_CST_TOOL_NEW.tgz . $ tar xf IMX_CST_TOOL_NEW.tgz 展開すると(2025/08現在の最新バージョンである) cst-4.0.1 というディレクトリに展されます。 バージョンが異なる場場は読み替えてください。 4. SRK generation¶ Generate a Super Root Key (SRK) for the CST using secure boot. Please refer to the following information for details. UG10106, Code Signing Tool User Guide, Rev. 4.0.1 - 27 June 2025 cst-4.0.1/docs/UG10106_Rev4.0.1.pdf On the other hand, it is not a good idea to have a good time. ahab_pki_tree.shでSRKを生成します。 Optionally, the following options can be selected. The existing CA key can be used to select a CA key by y/n. Use the CA key name and CA certificate name. SRK key type をrsa, rsa-pss, eccから選択します。 rsa、rsa-pssの場場、keyのビット長を2048, 3072, 4096から選択します。 eccの場場、keyのビット長をp256, p384, p521から選択します。 digestアルゴリズムをsha256, sha384, sha512から選択します。 SRK is effective for a number of years. SRK is generated by CA certificate, and y/n is selected to check SRK. This time, SRK is generated with the following settings. existing CA or make a difference key type = ecc key length = p384 digest algorithm = sha384 Period = 10 years Certificates of User and Generation ahab_pki_tree.shでインタラクティブにSRKの生成を行う場は、以下のようななります。 $ cd ~/imx93-secure-boot $ cd cst-4.0.1/keys $ ./ahab_pki_tree.sh ... Do you want to use an existing CA key (y/n)?: n Do you want to use Elliptic Curve Cryptography (y/n)?: y Enter length for elliptic curve to be used for PKI tree: Possible values p256, p384, p521: p384 Enter the digest algorithm to use: sha384 Enter PKI tree duration (years): 10 Do you want the SRK certificates to have the CA flag set? (y/n)?: n ... $ cd - If you want to specify the number of quotes in ahab_pki_tree.sh, please do the following. $ cd ~/imx93-secure-boot $ cd cst-4.0.1/keys $ ./ahab_pki_tree.sh -existing-ca n -kt ecc -kl p384 -da sha384 -duration 10 -srk-ca n $ cd - Next, the hash value of the certificate is generated by srktool on the i.MX processor'sヒューズ. $ cd cst-4.0.1/crts $ ../linux64/bin/srktool -a -d sha256 -s sha384 -t SRK_1_2_3_4_table.bin \ -e SRK_1_2_3_4_fuse.bin -f 1 \ -c SRK1_sha384_secp384r1_v3_usr_crt.pem,SRK2_sha384_secp384r1_v3_usr_crt.pem,SRK3_sha384_secp384r1_v3_usr_crt.pem,SRK4_sha384_secp384r1_v3_usr_crt.pem Warning The 4 files that are designated by the -c OPCSIN are not included in the text of Conmar's Mickey, and the text of the Spaces are included in the text of the Spaces. The SRK_1_2_3_4_table.bin and SRK_1_2_3_4_fuse.bin are generated. These two files are generated correctly and confirmed. The sha256 digest of SRK_1_2_3_4_table.bin is represented. $ openssl dgst -binary -sha256 SRK_1_2_3_4_table.bin | hexdump -e '/4 "0x"' -e '/4 "%08x""\n"' This digest and SRK_1_2_3_4_fuse.bin have the same content. $ hexdump -e '/4 "0x"' -e '/4 "%08x""\n"' SRK_1_2_3_4_fuse.bin | tee srk_fuse.txt Same as the above, SRK_1_2_3_4_table.bin and SRK_1_2_3_4_fuse.bin are generated correctly, and are considered to be the same as the SRK_1_2_3_4_fuse.bin. The value of i.MX 93 is written in the certificate's hash value, and the content of Sunawachi srk_fuse.txt is written in the certificate's hash value. ヒューズを書き込むためのu-bootコマンドをファイルとして作成しておきます。 Initially, the following ファイル をu-boot_cmd_temp.txtというファイル名で作成します。 This is a program for i.MX 93, Bank 16, and Word 0-7, and it is programmed in a computerized format. fuse prog -y 16 0 fuse prog -y 16 1 fuse prog -y 16 2 fuse prog -y 16 3 fuse prog -y 16 4 fuse prog -y 16 5 fuse prog -y 16 6 fuse prog -y 16 7 u-boot_cmd_temp.txtにヒューズ値が書かれたsrk_fuse.txtを右側に貼り付けて、u-boot_cmd.txtというファイルを生成します。 $ paste -d" " u-boot_cmd_temp.txt srk_fuse.txt | tee u-boot_cmd.txt The following form of u-boot_cmd.txt is generated. If you want to write the file, please refer to the following form. fuse prog -y 16 0 fuse prog -y 16 1 fuse prog -y 16 2 fuse prog -y 16 3 fuse prog -y 16 4 fuse prog -y 16 5 fuse prog -y 16 6 fuse prog -y 16 7 This time, Yoctoビルド has automatically generated the secure boot ためのバイナリします。 その過程でnxp-cst-signerというツールが実行されます。 nxp-cst-signerはCSTディレクトリの直下にある設定ファイル(csf_ahab.cfg)を参考するルールになっているため, ~/imx93-secure-boot/cst-4.0.1/csf_ahab.cfg The following is a summary of the results of the study. $ cd ~/imx93-secure-boot $ cd cst-4.0.1 $ edit csf_ahab.cfg The following notes are kept in the setup file. #Header header_version=1.0 #Install SRK srktable_file=SRK_1_2_3_4_table.bin srk_source=SRK1_sha384_secp384r1_v3_usr_crt.pem srk_source_index=0 srk_source_set=OEM srk_revocations=0x0 #Install Certificate sgk_file= sgk_permissions= The CST setting is complete. This CSTディレクトリは、ヒューズを書き込んだi.MX 93デバイスのソフトウェアに署名をする時に必要なりますののでをずバックアップを取得し、安全な場な場なに長-termななタビジネトください。 $ cd ~/imx93-secure-boot $ mkdir backup-cst $ tar cf backup-cst/cst-4.0.1_$(date +"%Y%m%d-%H%M%S").tar.gz cst-4.0.1/   5. git centers¶ If you are interested in Yocto's video, please register your git user name and password with us, or register with us on any other occasion. $ git config --global user.name "Your Name" $ git config --global user.email "your.email@example.com"   6. i.MX Linux BSP downloads¶ Yoctoビルド ディレクトリを作成します。 $ cd ~/imx93-secure-boot $ mkdir yocto $ cd yocto repoツールをダウンロードします。 $ mkdir bin $ curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > bin/repo The right to use PATH is granted by the repo. $ chmod a+x bin/repo $ PATH=${PATH}:$(pwd)/bin repoでi.MX Linux BSP 6.6.36-2.1.0のレシピをダウンロードするための初期化を行います。 $ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-scarthgap -m imx-6.6.36-2.1.0.xml repoでi.MX Linux BSP 6.6.36-2.1.0のレシピをダウンロードします。 $ repo sync   7. meta-imx-frdm downloads¶ Additional meta layer for FRDM-IMX93 is downloaded. $ cd sources $ git clone https://github.com/nxp-imx-support/meta-imx-frdm -b imx-frdm-4.0 $ cd ..   8. meta-nxp-security-reference-design downloads¶ Yoctoによるsecure bootの自動ビルドを行うための追加meta layerをダウンロードします。 このレイヤにはi.MX Linux BSP 6.6.36-2.1.0用は存在しませんが、近近のscarthgap-6.6.23-2.0.0.0ブランチを使用します。 $ cd sources $ git clone https://github.com/nxp-imx-support/meta-nxp-security-reference-design -b scarthgap-6.6.23-2.0.0 $ cd .. This レイヤーをFRDM-IMX93に適すると、署名を行う時にi.MX 93 EVKのdtbが使われてしまう不具合があるため修正をしておきましょう。 (This submission is for reference only. < https://github.com/nxp-imx-support/meta-nxp-security-reference-design/pull/2 > ) diff --git a/meta-secure-boot/recipes-secure-boot/imx-mkimage/imx-boot_%.bbappend b/meta-secure-boot/recipes-secure-boot/imx-mkimage/imx-boot_%.bbappend index 1bbc7b2..6a2f069 100644 --- a/meta-secure-boot/recipes-secure-boot/imx-mkimage/imx-boot_%.bbappend +++ b/meta-secure-boot/recipes-secure-boot/imx-mkimage/imx-boot_%.bbappend @@ -15,7 +15,7 @@ do_compile:append:ahab() { mv ${BOOT_STAGING}/flash.bin ${BOOT_STAGING}/flash.bak # Invoke mkimage again to Get container info - make SOC=${IMX_BOOT_SOC_TARGET} flash_kernel + make SOC=${IMX_BOOT_SOC_TARGET} ${MKIMAGE_EXTRA_ARGS} flash_kernel # Rename kernel image name and move back the imx-boot flash image name mv ${BOOT_STAGING}/flash.bin ${BOOT_STAGING}/flash_os.bin   9. Site Map of the Verde Environment¶ Yoctoビルドのプロジェクトのセッアップを行います。FRDM-IMX93の場場は以下コマンドになります。 $ MACHINE=imx93-11x11-lpddr4x-frdm DISTRO=fsl-imx-xwayland EULA=1 source sources/meta-imx-frdm/tools/imx-frdm-setup.sh -b build-imx93-11x11-lpddr4x-frdm The comand ended normally and build-imx93-11x11-lpddr4x-frdm ディレクトリに移動しています。 次のコマンドで、 meta-nxp-security-reference-design/meta-secure-boot をlayerとして追加します。 This is necessary to automate the signing of the secure boot. $ bitbake-layers add-layer ../sources/meta-nxp-security-reference-design/meta-secure-boot The program settings (local.conf) are added to the program. Open local.conf in Edita. $ edit conf/local.conf Append the next 1 line to the end of local.conf. The rootfs of rambootするためが追加で生成されます。 IMAGE_FSTYPES:append = " cpio.gz.u-boot" Append the next line to the end of local.conf. Set the absolute CST defaults for the CST_PATH variable. The meta-nxp-security-reference-design is necessary to refer to the CST defaults. CST_PATH = Add the next 1 line to the end of local.conf. The problem with i.MX 93 EVK's dtb was avoided when meta-nxp-security-reference-design was signed to FRDM-IMX93's kernel and dtb. MKIMAGE_EXTRA_ARGS:imx93-11x11-lpddr4x-frdm = "KERNEL_DTB=imx93-11x11-frdm.dtb" Edit to save local.conf.   10. IMAGE VELDO¶ This time, the size is minimized, and the signatures of the katsu and secure boot are automatically executed on core-image-minimal-secure-boot をbitbakeします。 The process takes several hours to complete. $ bitbake core-image-minimal-secure-boot -k The image video has ended normally and the following 2 files have been generated. 1 file is a signature payki bootloader, and the other file is a combination of linux kernel and dtb, which is a signature payki OS console. $ stat tmp/deploy/images/imx93-11x11-lpddr4x-frdm/signed-imx-boot-imx93-11x11-lpddr4x-frdm-sd.bin-flash_singleboot $ stat tmp/deploy/images/imx93-11x11-lpddr4x-frdm/os_cntr_signed.bin Signed and dated Bootloader and Signed and dated OSコンテナを組み込んだイメージファイルも生成されています。 This wic file is activated by SD or eMMC. $ stat tmp/deploy/images/imx93-11x11-lpddr4x-frdm/core-image-minimal-secure-boot-imx93-11x11-lpddr4x-frdm.rootfs.wic.zst Serial DownloadでLinuxを起する時に使用するramdiskも生成されています。 This file is signed later. ( Signature of ramdisk ) $ stat tmp/deploy/images/imx93-11x11-lpddr4x-frdm/core-image-minimal-secure-boot-imx93-11x11-lpddr4x-frdm.rootfs.cpio.gz.u-boot   11. occasions where bitbake is reopened while in transit ¶¶ If the bitbake is interrupted on the way, or if another shell is reopened, it is necessary to set the number of environment changes in Yocto. Also, you can use the following scripts. $ cd ~/imx93-secure-boot $ cd yocto $ source setup-environment build-imx93-11x11-lpddr4x-frdm   12. Occasions for signatures¶ When SRK is regenerated, the signatures will be cleaned and rebranded at imx-boot , imx-boot-signature , linux-imx-signature and the 4 pairs of images (this time core-image-minimal-secure-boot ). $ bitbake imx-boot imx-boot-signature linux-imx-signature core-image-minimal-secure-boot -c cleanall $ bitbake core-image-minimal-secure-boot -k   13. ramdisk's signature¶ イメージのビルドが正常終了すると、deployディレクトリに2つのツールが存在します。 mkimage_imx8は起動コンテナを作成するツールです。 cst_signerはコンテナに署名を行うツールです。 $ stat tmp/deploy/images/imx93-11x11-lpddr4x-frdm/imx-boot-tools/mkimage_imx8 $ stat tmp/deploy/images/imx93-11x11-lpddr4x-frdm/imx-boot-tools/cst_signer また、deployディレクトリにramdiskファイルも存在します。 $ stat tmp/deploy/images/imx93-11x11-lpddr4x-frdm/core-image-minimal-secure-boot-imx93-11x11-lpddr4x-frdm.rootfs.cpio.gz.u-boot mkimage_imx8とcst_signerを使って、ramdiskファイルに署名をします。 Initially mkimage_imx8 でramdiskをコンテナにします。 The form of the ramdisk is as follows. $ INITRD= $ INITRD_ADDR= $ mkimage_imx8 -soc IMX9 -container -data ${INITRD} a55 ${INITRD_ADDR} -out The specifics are as follows. $ tmp/deploy/images/imx93-11x11-lpddr4x-frdm/imx-boot-tools/mkimage_imx8 \ -soc IMX9 \ -container \ -data tmp/deploy/images/imx93-11x11-lpddr4x-frdm/core-image-minimal-secure-boot-imx93-11x11-lpddr4x-frdm.rootfs.cpio.gz.u-boot \ a55 \ 0x83800000 \ -out initrd_cntr.bin The second cst_signer is signed by コンテナ. The form of the cst_signer is as follows. $ CST_PATH= cst_signer -d -i -c /csf_ahab.cfg The specifics are as follows. $ CST_PATH=/home/nxp/imx93-secure-boot/cst-4.0.1 \ tmp/deploy/images/imx93-11x11-lpddr4x-frdm/imx-boot-tools/cst_signer \ -d \ -i initrd_cntr.bin \ -c /home/nxp/imx93-secure-boot/cst-4.0.1/csf_ahab.cfg Signed ramdisk or deployディレクトリに移動しておきます。 $ mv signed-initrd_cntr.bin tmp/deploy/images/imx93-11x11-lpddr4x-frdm/ The environment in which this secure boot will be implemented is a Bildungsroman.   14. Host PCs and guesthouses The Host PC and Target are connected to each other by 2 USB cables. Fig. 1 Link between Host PC and Tartar Gateway ¶   15. UUU Institutes (Linux )¶ Linux version of UUU is configured on the following sites: uuu をダウンロードして、 /usr/local/bin などのPATHの通った場場に配置します。 UUU Releases (latest version) <https://github.com/nxp-imx/mfgtools/releases/latest> In the following section, you can set the settings for the sudo なし でuuu を実行できるようにsettingファインストールします. $ sudo sh -c "uuu -udev > /etc/udev/rules.d/70-uuu.rules" $ sudo udevadm control --reload Host PC and FRDM-IMX93's USB1 port are connected to USB 続して、FRDM-IMX93をSerial Download modeに設定して电源ONすると以下のコマンドで接続されているFRDM-IMX93の情報が見えること確認えることします。 $ uuu -lsusb uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.5.201-11-gf2a4e3e Connected Known USB Devices Path Chip Pro Vid Pid BcdVersion Serial_no ==================================================================== 3:1224 MX93 SDPS: 0x1FC9 0x014E 0x0001 3A24F36BB35F4594   16. UUU Institutes (Windows )¶ Windows version of UUU is the following サイトから uuu.exe をダウンロードして、PATHの通った場場に配置します。 UUU Releases (latest version) <https://github.com/nxp-imx/mfgtools/releases/latest> Host PC and FRDM-IMX93's USB1 port are connected to USB 続して、FRDM-IMX93をSerial Download modeに設定して电源ONすると以下のコマンドで接続されているFRDM-IMX93の情報が見えること確認えることします。 > uuu -lsusb uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.5.201-11-gf2a4e3e Connected Known USB Devices Path Chip Pro Vid Pid BcdVersion Serial_no ==================================================================== 3:1224 MX93 SDPS: 0x1FC9 0x014E 0x0001 3A24F36BB35F4594   17. シリアルコンソール (Linux )¶ Host PCでシリアルコンソールを開きます。 For example, minicom can open the シリアルポート of FRDM-IMX93 on the following occasions. $ minicom -D/dev/ttyACM0   18. シリアルコンソール (Windows )¶ Windows シリアルコンソールのアプリケーションで、FRDM-IMX93の場場はComputer USB-Enhanced-SERIAL-A CH342 を開きます。 The i.MX 93 EVK is available in a 3-panel box with a 4-panel COM port.   19. Linux Startup Tasks (1 )¶ Bootloader and Linux を起動して、AHABのエラーを確認します。 BOOT_MODEによって方法が異なりますので、いずれかを選択してテストします。 Serial DownloadでLinux Startup SDまたはeMMCでLinux startup   19.1. Serial DownloadでLinux Startup¶ Serial Download de Bootloader and Linux bootstrap. The next 3 files are used. Signed Bootloaderファイル signed-imx-boot-imx93-11x11-lpddr4x-frdm-sd.bin-flash_singleboot Linux kernel and dtb combined with a signature payment file on 1 console os_cntr_signed.bin Signed ramdiskファイル signed-initrd_cntr.bin The presence of 3 files is confirmed by the following pas. $ cd ~/imx93-secure-boot $ cd yocto/build-imx93-11x11-lpddr4x-frdm/tmp/deploy/images/imx93-11x11-lpddr4x-frdm $ stat signed-imx-boot-imx93-11x11-lpddr4x-frdm-sd.bin-flash_singleboot $ stat os_cntr_signed.bin $ stat signed-initrd_cntr.bin $ cd - The UUU has made the スクリプトファイル sdp-ramboot-yocto-signed.uuu a reality. $ cd ~/imx93-secure-boot $ edit sdp-ramboot-yocto-signed.uuu The following items are noted for preservation. uuu_version 1.2.39 SDPS: boot -f yocto/build-imx93-11x11-lpddr4x-frdm/tmp/deploy/images/imx93-11x11-lpddr4x-frdm/signed-imx-boot-imx93-11x11-lpddr4x-frdm-sd.bin-flash_singleboot FB: ucmd ahab_status FB: ucmd setenv ramargs 'setenv bootargs ${jh_clk} console=${console} root=/dev/ram rw' FB: ucmd setenv ramboot 'echo Booting from initramfs ...; run ramargs; booti ${loadaddr} ${initrd_addr} ${fdt_addr};' FB: ucmd setenv fastboot_buffer ${cntr_addr} FB: download -f yocto/build-imx93-11x11-lpddr4x-frdm/tmp/deploy/images/imx93-11x11-lpddr4x-frdm/os_cntr_signed.bin FB: ucmd auth_cntr ${cntr_addr} FB: ucmd ahab_status FB: ucmd setenv fastboot_buffer ${cntr_addr} FB: download -f yocto/build-imx93-11x11-lpddr4x-frdm/tmp/deploy/images/imx93-11x11-lpddr4x-frdm/signed-initrd_cntr.bin FB: ucmd auth_cntr ${cntr_addr} FB: ucmd ahab_status FB: acmd run ramboot FB: done The UUU de-scrimp is practiced. $ uuu -d -v sdp-ramboot-yocto-signed.uuu FRDM-IMX93をSerial Downloadモードに設定して电源ONすると、BootloaderからLinuxが起動します。 AHABのエラーは、Linuxが起動する直前実行した ahab_status コマンドの結果で判断します。 Authenticate OS container at 0x98000000 ... Lifecycle: 0x00000008, OEM Open 0x0287fad6 IPC = MU APD (0x2) CMD = ELE_OEM_CNTN_AUTH_REQ (0x87) IND = ELE_BAD_KEY_HASH_FAILURE_IND (0xFA) STA = ELE_SUCCESS_IND (0xD6) 0x0287fad6 IPC = MU APD (0x2) CMD = ELE_OEM_CNTN_AUTH_REQ (0x87) IND = ELE_BAD_KEY_HASH_FAILURE_IND (0xFA) STA = ELE_SUCCESS_IND (0xD6) 0x0287fad6 IPC = MU APD (0x2) CMD = ELE_OEM_CNTN_AUTH_REQ (0x87) IND = ELE_BAD_KEY_HASH_FAILURE_IND (0xFA) STA = ELE_SUCCESS_IND (0xD6) 0x0287fad6 IPC = MU APD (0x2) CMD = ELE_OEM_CNTN_AUTH_REQ (0x87) IND = ELE_BAD_KEY_HASH_FAILURE_IND (0xFA) STA = ELE_SUCCESS_IND (0xD6) Detect USB boot. Will enter fastboot mode! Booting from initramfs ... ## Loading init Ramdisk from Legacy Image at 83800000 ... Image Name: core-image-minimal-secure-boot-i Created: 2011-04-05 23:00:00 UTC Image Type: AArch64 Linux RAMDisk Image (uncompressed) Data Size: 56894907 Bytes = 54.3 MiB Load Address: 00000000 Entry Point: 00000000 Verifying Checksum ... OK ## Flattened Device Tree blob at 83000000 Booting using the fdt blob at 0x83000000 Working FDT set to 83000000 Using Device Tree in place at 0000000083000000, end 000000008300eaef Working FDT set to 83000000 fail to find output device probe video device failed, ret -19 Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x412fd050] [ 0.000000] Linux version 6.6.36-lts-next-g20aa8fc92c79 (oe-user@oe-host) (aarch64-poky-linux-gcc (GCC) 13.3.0, GNU ld 4 [ 0.000000] KASLR disabled due to lack of seed [ 0.000000] Machine model: NXP i.MX93 11X11 FRDM board ... Linux ga startするまでに、u-boot-spl, u-boot, kernel+dtb, ramdiskの4次の認證が行われますが、まだSRK hashがヒューズに書かれていない状態では、4次の認證エラー ELE_BAD_KEY_HASH_FAILURE_IND (0xFA) が発生したことが表示されます。 エラー ELE_NO_AUTHENTICATION_FAILURE_IND (0xEE) が出る場場は、「イメージに署名が無いので認證できなかった」という意味で、署名付きイメージのビルドが正しくできていない可能性があります。 Lifecycle: 0x00000008, OEM Open 0x0287eed6 IPC = MU APD (0x2) CMD = ELE_OEM_CNTN_AUTH_REQ (0x87) IND = ELE_NO_AUTHENTICATION_FAILURE_IND (0xEE) STA = ELE_SUCCESS_IND (0xD6) SRK hashがヒューズに書かれて認證が正しく行われれば、AHABのエラーが無くなり、以下のように No Events Found! という表示になります。 Lifecycle: 0x00000008, OEM Open No Events Found!   19.2. SDまたはeMMCでLinux startup ¶ FRDM-IMX93のBOOT_MODEスイッチをSerial Downloadモードに設定して电源をONします。 SDブートの場場は書き込み可能なmicroSDカードをカードスロットに挿入ししてから、以下のコマンドでSDにイメージを書き込みます。 Listing 1 Writing in SD ¶ $ cd ~/imx93-secure-boot $ cd yocto/build-imx93-11x11-lpddr4x-frdm/tmp/deploy/images/imx93-11x11-lpddr4x-frdm/ $ uuu -b sd_all signed-imx-boot-imx93-11x11-lpddr4x-frdm-sd.bin-flash_singleboot core-image-minimal-secure-boot-imx93-11x11-lpddr4x-frdm.rootfs.wic.zst $ cd - In case of eMMCブート, please write down the eMMC messages in the following commemorations. Listing 2 Writing on eMMC ¶ $ cd ~/imx93-secure-boot $ cd yocto/build-imx93-11x11-lpddr4x-frdm/tmp/deploy/images/imx93-11x11-lpddr4x-frdm/ $ uuu -b emmc_all signed-imx-boot-imx93-11x11-lpddr4x-frdm-sd.bin-flash_singleboot core-image-minimal-secure-boot-imx93-11x11-lpddr4x-frdm.rootfs.wic.zst $ cd - The power supply of FRDM-IMX93 is OFF when the writing is finished. FRDM-IMX93のBOOT_MODEスイッチを、SDブートモードまたはeMMCブートモードに設定して电源ONします。 U-Boot's startup にコンソールでリターンキーを押すことで、起動を一時停止しプロンプトを表示できます。 The following code is certified with the signature OS IMAGE (kernel + dtb). Listing 3 Authentication of Signed OS Images ¶ u-boot=> mmc dev ${mmcdev} u-boot=> mmc rescan u-boot=> run loadcntr u-boot=> run mmcargs u-boot=> run auth_os ahab_status The Comanufactured AHAB's Elite is confirmed by the Comanufactured AHAB. Listing 4 Signature of Images Certified Elite ¶ u-boot=> ahab_status Lifecycle: 0x00000008, OEM Open 0x0287fad6 IPC = MU APD (0x2) CMD = ELE_OEM_CNTN_AUTH_REQ (0x87) IND = ELE_BAD_KEY_HASH_FAILURE_IND (0xFA) STA = ELE_SUCCESS_IND (0xD6) 0x0287fad6 IPC = MU APD (0x2) CMD = ELE_OEM_CNTN_AUTH_REQ (0x87) IND = ELE_BAD_KEY_HASH_FAILURE_IND (0xFA) STA = ELE_SUCCESS_IND (0xD6) 0x0287fad6 IPC = MU APD (0x2) CMD = ELE_OEM_CNTN_AUTH_REQ (0x87) IND = ELE_BAD_KEY_HASH_FAILURE_IND (0xFA) STA = ELE_SUCCESS_IND (0xD6) Linux ga startするまでに、u-boot-spl, u-boot, kernel+dtbの3回の認證が行われますが、まだSRK hashがヒューズに書かれていない状態では、3回の認證エラー ELE_BAD_KEY_HASH_FAILURE_IND (0xFA) が発したことが表示されます。 エラー ELE_NO_AUTHENTICATION_FAILURE_IND (0xEE) が出る場場は、「イメージに署名が無いので認證できなかった」という意味で、署名付きイメージのビルドが正しくできていない可能性があります。 Listing 5 Signature Information ¶ Lifecycle: 0x00000008, OEM Open 0x0287eed6 IPC = MU APD (0x2) CMD = ELE_OEM_CNTN_AUTH_REQ (0x87) IND = ELE_NO_AUTHENTICATION_FAILURE_IND (0xEE) STA = ELE_SUCCESS_IND (0xD6) SRK hashがヒューズに書かれて認證が正しく行われれば、AHABのエラーが無くなり、以下のように No Events Found! という表示になります。 Listing 6 When AHAB is unavailable ¶ Lifecycle: 0x00000008, OEM Open No Events Found! Lastly, the following comanagers were confirmed to have been activated by the Linux Logline. Listing 7 Linux Startup ¶ u-boot=> run boot_os   20. Writing of SRK hash on a hikigome . i.MX 93のヒューズ Bank 16、Word 0-7の値が0x00000000であることここと確認します。 u-boot=> fuse read 16 0 u-boot=> fuse read 16 1 u-boot=> fuse read 16 2 u-boot=> fuse read 16 3 u-boot=> fuse read 16 4 u-boot=> fuse read 16 5 u-boot=> fuse read 16 6 u-boot=> fuse read 16 7 SRK Generation The contents of the u-boot_cmd.txt file generated by the SRK are confirmed. (The actual values of to and other notations are shown in the table below.) $ cd ~/imx93-secure-boot $ cat cst-4.0.1/crts/u-boot_cmd.txt fuse prog -y 16 0 fuse prog -y 16 1 fuse prog -y 16 2 fuse prog -y 16 3 fuse prog -y 16 4 fuse prog -y 16 5 fuse prog -y 16 6 fuse prog -y 16 7 u-boot_cmd.txt The SRK hash of the u-boot program is written in the ヒューズにヒき込みます。 (This is the actual value of 〜 and the notation.) Warning Hikari's writing is limited to one time, and the dollar is returned to this point. Very much to confirm that on Shita on the careful work to do を行ってください。 u-boot=> fuse prog -y 16 0 u-boot=> fuse prog -y 16 1 u-boot=> fuse prog -y 16 2 u-boot=> fuse prog -y 16 3 u-boot=> fuse prog -y 16 4 u-boot=> fuse prog -y 16 5 u-boot=> fuse prog -y 16 6 u-boot=> fuse prog -y 16 7   21. Linux Startup Tasks (2 )¶ Bootloader and Linux startup, AHAB's Elite is confirmed. Linux Bootstrap (1) The Linux bootloader and Linux bootstrap are available in the same way as the Linux bootstrap. Serial DownloadでLinux Startup SDまたはeMMCでLinux startup SRK hashのヒューズを書き込んだため、 ahab_status コマンドの結果が No Events Found! と表示されるはずです。 This means that the signature is paid by the Immigration Department. Lifecycle: 0x00000008, OEM Open No Events Found!   22. Relocation of OEM Closed¶ i.MX 93デバイスのLifecycleがOEM Closedに遷移移することで、署名付きイメージのみ起動できるようになり、署名の無いイメージや、不正な署名付きイメージは起動できなくなります。 署名付きイメージで起動して ahab_status コマンドで AHAB エラーが無いことを確認します。 u-boot=> ahab_status Lifecycle: 0x00000008, OEM Open No Events Found! ahab_close The company has implemented and relocated the OEM Closed. Warning The relocation of OEM Closed is limited to one time only, and the return of OEM Open is not allowed. Please make sure that you are very sure that you have done your work carefully. u-boot=> ahab_close Warning: Please ensure your sample is in NXP closed state, OEM SRK hash has been fused, and you are able to boot a signed image successfully without any SECO events reported. If not, your sample will be unrecoverable. Really perform this operation? y Change to OEM closed successfully u-boot=> The re-center is in line with the OEM Closed and Nari-masu at the time of the next start-up. Signed and paid イメージであれば再起動します。 u-boot=> reset resetting ... U-Boot SPL 2024.04+gde16f4f1722+p0 (Sep 02 2024 - 10:44:35 +0000) SOC: 0xa1009300 ... ahab_status The concept is being implemented and relocated by OEM Closed. u-boot=> ahab_status Lifecycle: 0x00000020, OEM closed No Events Found! u-boot=>   23. Linux Startup Tasks (3 )¶ Bootloader and Linux startup are confirmed. Linux Bootstrap (1) The Linux bootloader and Linux startup task (1) are confirmed by the same method as the bootloader. Serial DownloadでLinux Startup SDまたはeMMCでLinux startup Linuxまで起動できれば、Secure Bootに成功したことになります。   24. References¶ i.MX 93 Applications Processor Reference Manual i.MX 93 Applications Processor Security Reference Manual, Rev. 5, 2025-03-04 (入手は i.MX 93 サイト Secure DocumentationのSecurity Reference Manualのリンクからリクエストを送信して、認認が出るとNXPからダウンロードURLのメールが届きます。) UG10106, Code Signing Tool User Guide, Rev. 4.0.1 - 27 June 2025 (CSTのパッケージに含まれています。cst-4.0.1/docs/UG10106_Rev4.0.1.pdf) U-Boot AHAB documents AN12312, Secure Boot on AHAB Supported Devices UG10195, i.MX FRDM Software User Guide UM12181, FRDM-IMX93 Board User Manual meta-imx-frdm README (imx-frdm-4.0) meta-nxp-security-reference-design/meta-secure-boot README (scarthgap-6.6.23-2.0.0) This information is a reference for the use of NXP products. For more information, please refer to the official website. The contents of the record and the actual operation may be different depending on the difference in conditions such as the use of a flash drive or a USB flash drive. If you have any questions about the function of the product, please do not hesitate to contact us for inspection and test. ========================= The "Comment" columnof this submission should containa comment, which should be answered by the return mail now. Please contact us for the number of copies, and the questionnaire to be sent to us. NXP Technical Question for NXP -NXP's Technical Questionnaire. How to use the questionnaire ( Japanese Logo ) " Please refer toださい. (About Us) NXP Distributor, Moshiku NXP If you have any questions about NXP and its products, please contact us.) Previously, we have explained the i.MX 93 in the following example of aセキュアブートの仕組みについて解説を行いました。 (Please refer to the following for previous notes).  Journalism: i.MX 93 Prospectus: Signatures and Certifications for SequiaBoot (Japanese Logo) This time, the Secure boot is actually installed in a hanzion form. i.MX Processors Security Japanese Logo
View full article
S32M2xx - MOSFET switching adjustment for Motor control examples This article is applicable to all motor control application SWs as described in the following article. S32M2xx - Motor control use cases - NXP Community It has been found that on some of S32M24xEVBs an overheating of the power MOSFETs may occur. This will be addressed in the new release of the Motor control example SW and will be carried out in Motor control example SW for S32M24xEVB, S32M27xEVB and S32M276SFFRD. As a solution in the current release, the following settings are recommended. Extend deadtime: For S32M24xEVB, for FTM3, set Dead Time to 50 (corresponds to 625 nanoseconds): For S32M27xEVB and S32M276SFFRD, for LCU outputs channels 0 - 5, set LUT rise filter to 75 (corresponds to 625 nanoseconds): Set faster slew rates: Common for all EVBs:
View full article
ウェビナー:今すぐ登録して、i.MX RT1170で魅力的なIoTエクスペリエンスを作成する方法を学びましょう いつ: 9月14日火曜日の午前11時(東部標準時) 今すぐ登録するには、ここをクリックしてください。 ディスカッションのトピック 民生機器から産業機器へ、すでにパラダイムシフトが始まっています。スマートフォンでの日常的な体験は、私たちが使用する組み込み製品の基盤として、より高いパフォーマンス、より多くの接続性、および優れたユーザーエクスペリエンスに対する需要を後押ししています。 しかし、どうすれば製品を次のレベルに簡単に引き上げることができますか? NXPとCrank Softwareに参加して、NXP I.MX RT1170クロスオーバーMCUが作成に適した組み込みハードウェアであり、開発リスクの低減に役立つ理由と、魅力的なユーザーエクスペリエンスの開発が開発ワークフローの一部になることがどのように簡単になるかを学びます。 このセッションでは、次のことを学びます。 i.MX RT [1170] クロスオーバー・マイコンによる電力と性能の最適化について エンベデッドGUI開発が、開発とデザインの間のコラボレーション・エクスペリエンスになる仕組み Storyboardのラピッドデザインとイテレーションテクノロジーが開発中のUIデザインの変更をどのように受け入れるか ハードウェアの可能性を最大限に引き出すためにどのような統合機能が役立つか ストーリーボードのライブデモによるGUIアプリの開発のしやすさ
View full article
i.MX6 での高保証ブート (HAB) <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 要約 セキュリティは、私たちが日常生活で耳にする避けられない言葉です。セキュリティのないテクノロジーは、多くの人にとって「信頼」のないテクノロジーです。私たちは皆、職場からソーシャルチャットまで、セキュリティが私たちの生活でどのように重要な役割を果たしているかを知っています。組み込みシステムであっても、機密データへの不正なアクセスを防ぐためのセキュリティを実装する必要があります。i.MX6 プラットフォームが認証されたイメージでのみ起動できるようにするには、どうすればよいですか。High Assurance Booting(HAB)という名前のクールなものを見てみましょう。これにより、ブートイメージが安全でシンプルになります。 紹介 デジタルセキュリティは、その誕生以来、私たちの生活の避けられない部分となっています。このケースは、特に機密データを扱う場合、どの組み込みシステムでも変わりません。銀行取引、防衛、医療、産業、自動車に使用されている多くの組み込みデバイスは、セキュリティを厳格に実装しています。 ほとんどすべての組み込みシステムは、フラッシュされた画像を通じて与えられる特定の命令に基づいて動作しています。ハッカーが自分の命令を組み込みデバイスにフラッシュできるとしたら、そのデバイスで何をする必要があるかを完全に制御できると想像してみてください。デバイスが銀行の目的で使用している場合、ハッカーはパスワードを含むすべての詳細を取得します。このシナリオは、デバイスが防衛または医療分野で使用されている場合、さらに悪化します。どうすればこのケースを防ぐことができますか?まあ、答えはそれほど簡単ではありません! 組み込みシステムOSイメージは、MMC、SDカード、SATA、イーサネットなどのさまざまなメディアからフラッシュできます。SDカードなどのメディアは簡単に交換できるため、メディアにセキュリティチェックを実装することは困難です。さらに、これらのメディアにフラッシュした後、OSイメージを変更できます。したがって、イメージをフラッシュする前だけにセキュリティチェックを実装するだけでは、この問題に対処するには不十分です。では、OSイメージが十分に安全であることを確認するためのセキュリティチェックをどのように実装できますか?その答えはHAB(High Assurance Boot)です。 フリースケールは、i.MX6Qプロセッサのオプション機能としてHABv4 (最新のHABバージョン4) を提供しました。HABはフリースケールのセキュリティブロックの一部であり、CAAMやTrustZoneなどの他のセキュリティ機能と連携できます。 HAB を使用する利点には、次のものが含まれますが、これらに限定されません。 HABv4 は、一度融合すると変更できないブート ROM レベルのセキュリティを実装しています。 効率的。 イメージがシステムを制御する前のセキュリティチェック。 複数のルート キーを許可します。 デジタル署名を利用する - OSイメージを保護する最も効率的な方法。 OSイメージの機能に影響を与えずに、セキュリティをOSイメージに直接追加します。 OS イメージの検証によるプロセッサ レベルのチェックにより、セキュア ブートが完全に保証されます。 HABの仕組みは? デジタル署名の原則に基づくHAB。デジタル署名は、コンテンツコンテキストに署名することにより、コンテンツを安全に保ちます。この署名プロセスには、最終的な結果を強化するために、複数のセキュリティ アルゴリズムを組み込む必要があります。 HAB デジタル署名は、open-ssl 認証、MD5 ハッシュ、RSA-AES-DES の公開鍵と秘密鍵のチェックを組み合わせたものです。 HAB は、ブートローダー (u-boot) と OS イメージ (uImage) の両方を署名付きイメージにすることでセキュリティを確保します。これらの署名付きイメージには、通常のイメージ コンテンツとセキュリティ手順が含まれています。これらのイメージには、公開鍵と秘密鍵も含まれています。HAB プロセス中、組み合わせから派生した公開鍵ハッシュ・コードは、i.MX6 プロセッサーのブート ROM コードに融合します。この融合により、プラットフォームの安全性が向上し、後で変更することはできません。 ブート時間中、ブートプロセスの初期パラメータは、フラッシュメディア(SDカードなど)からブートROMコードを取り込む必要があります。次に、HAB 命令は、ブート ROM と署名付きイメージの内部に存在するハッシュ値を調べます。これら 2 つのハッシュ値が一致すると、HAB プロセスにより、プラットフォームはイメージを起動できます。それ以外の場合、システムはすべてのプロセスを停止し、許可されたイメージを待ちます。 このようにして、システムは、後の段階で誰かが署名されたイメージを変更した場合でも、許可されていないアクセスから保護する必要があります(これにより、最終的にイメージのハッシュ値が変更されるため、ランタイムチェック中に失敗します)。 iWaveは、 i.MX6Q iW-RainboW-G15D-Q7 Linuxプラットフォーム にHABを成功裏に実装し、HABを検証してプラットフォームを保護する方法を確認しました。ただし、HAB は、開発プラットフォームの購入またはモジュールの購入の一部として提供される標準 BSP の一部ではありません。これは特別なリクエストがある場合にのみ利用できます。 結論 HABは、OSイメージへの不正アクセスを防ぐための最良のソリューションの1つです。機密データ(バンキング、防衛など)を扱う組み込みシステムは、外部ソースによってシステム全体を制御されないように、企業内にHABを配置する必要があります。HAB は i.MX6 プラットフォームのオプション機能ですが、ブート プロセスの安全性を高めるために実装することをお勧めします。 参考: AN4581_HAB_Application_Note.pdf - i.MX50、i.MX53、および i.MX53 および HABv4 を使用した i.MX 6 シリーズでのセキュア ブート アプリケーション ノート i.MX_6_Linux_High_Assurance_Boot_(HAB)_User's_Guide.pdf - i.MX 6 Linux High Assurance Boot (HAB) ユーザーズガイド 全般
View full article
KW38 - 使用 OTAP 客户端软件对 KW38 设备进行重新编程 简介 空中编程(OTAP)是NXP提供的一项基于蓝牙低功耗(Bluetooth LE)的定制服务,提供升级微控制器中运行的软件的解决方案。本文件指导用户通过空中编程(OTAP)Bluetooth LE服务,将新的软件镜像加载到KW38设备中。。 软件要求 MCUXpresso IDE 或 IAR Embedded Workbench IDE。 FRDM-KW38 SDK。 IoT Toolbox 应用程序,适用于 Android 和 iOS 系统。你也可以从以下帖子下载 IoT Toolbox 应用程序的 APK 文件:Android 版 IoT Toolbox 硬件要求 FRDM-KW38板。 带有 IoT Toolbox 应用程序的智能手机。 OTAP 客户端软件在更新过程中使用的 KW38 闪存 默认情况下,512KB KW38 闪存被分区为: 一个 256KB 的程序闪存阵列 (P-Flash),分为 2KB 的扇区,闪存地址范围从 0x0000_0000 到 0x0003_FFFF。 一个256KB的FlexNVM数组,分为2KB的扇区,地址范围从0x1000_0000到0x1003_FFFF。 别名内存 (Alias memory),地址范围从 0x0004_0000 到 0x0007_FFFF。对别名内存的写入或读取操作分别会修改或返回 FlexNVM 的内容。换句话说,别名内存是使用不同地址来访问 FlexNVM 内存的另一种方式。 以下几点将简化说明 OTAP 服务的工作原理:   OTAP 应用程序由两个独立的部分组成,即 OTAP 引导加载程序和 OTAP 客户端。OTAP 引导加载程序会验证 OTAP 客户端中是否有可用的新镜像,以对设备进行重新编程。另一方面,OTAP 客户端软件提供了所需的蓝牙低功耗自定义服务,使 OTAP 客户端设备(待重新编程的设备)能够与 OTAP 服务器设备(包含用于重新编程 OTAP 客户端设备的镜像的设备)进行通信。因此,首次准备软件时,需要对 OTAP 客户端设备进行两次编程,首先是 OTAP 引导加载程序,然后是 OTAP 客户端软件。使两个不同的软件能够在同一设备中共存的机制是将它们分别存储在不同的内存区域。这是通过在链接器文件中为每个软件指定不同的内存区域来实现的。对于 KW38 设备,OTAP 引导加载程序预留了一个从 0x0000_0000 到 0x0000_1FFF 的 8KB 存储空间,因此,内存的其余部分除其他用途外,由 OTAP 客户端软件预留。     为 OTAP 客户端设备生成新的镜像文件时,我们需要在链接器文件中指定代码将以 8KB 的偏移量进行放置(就像 OTAP 客户端软件所做的那样),因为必须保留这些地址范围以避免覆盖 OTAP 引导加载程序。新应用程序还应在相应的地址包含引导加载程序标志,以确保其正常工作(稍后我们将回到这一点)。     当 OTAP 客户端设备和 OTAP 服务器设备连接且正在进行下载时,OTAP 服务器设备通过蓝牙低功耗将镜像数据包(称为块)发送到 OTAP 客户端设备。OTAP 客户端设备可以将这些块存储在外部 SPI 闪存(FRDM-KW38 开发板上已预装)或片上 FlexNVM 区域中。这些块的存储目的地可在 OTAP 客户端软件中选择(本文将提供修改存储目的地的说明)。     当镜像传输完成且所有块都已从 OTAP 服务器设备发送到 OTAP 客户端设备后,OTAP 客户端软件会将诸如软件更新源(外部闪存或 FlexNVM)之类的信息写入称为引导加载程序标志的内存部分。然后,OTAP 客户端对微控制器(MCU)执行软件复位,以执行 OTAP 引导加载程序代码。接着,OTAP 引导加载程序代码读取引导加载程序标志,以获取使用新应用程序对设备进行重新编程所需的信息。请参见以下流程图,该图解释了这两个应用程序的流程。   由于新应用程序是按 8KB 的偏移量构建的,因此 OTAP 引导加载程序从 0x0000_2000 地址开始对设备进行编程,因此,OTAP 客户端应用程序会被新镜像覆盖。然后,OTAP 引导加载程序转移应用程序的流程,开始执行新代码。     实际上,如第 3 点所述,当启用 FlexNVM 存储时,OTAP 客户端软件和软件更新之间的边界并非恰好位于 P-Flash 和 FlexNVM 内存区域的边界上,此外,这些值可能会根据你的链接器设置而变化。要了解边界的位置,你应该检查项目中的实际内存地址。       在 IAR Embedded Workbench IDE 中配置和编程 OTAP 客户端软件 如最后一节所述,要完成 OTAP 实现所需的软件,需要在 FRDM-KW38 开发板上编程两个软件,即 OTAP 引导加载程序和 OTAP 客户端。本节将指导你使用 IAR Embedded Workbench IDE 进行编程,并配置设置以在外部存储和内部存储之间进行选择。 1- 第一步是在 KW38 中编程 OTAP 引导加载程序。解压 SDK,然后在以下路径中找到 OTAP 引导加载程序软件: \boards\frdmkw38\wireless_examples\framework\bootloader_otap\bm\iar\bootloader_otap.eww 2- 点击 “Download and Debug” 图标 (Ctrl + D),在开发板上编程 OTAP 引导加载程序项目。 KW38 编程完成并开始调试会话后,中止会话 (Ctrl + Caps Lock + D) ,以安全地停止 MCU。 3- 此时,您已将OTAP引导程序编程到您的KW38中。接下来是编程和配置 OTAP 客户端软件。请在以下路径找到 OTAP 客户端软件: FreeRTOS项目版本: \boards\frdmkw38\wireless_examples\bluetooth\otac_att\freertos\iar\otap_client_att_freertos.eww 裸机 (Baremetal) 项目版本: \boards\frdmkw38\wireless_examples\bluetooth\otac_att\bm\iar\otap_client_att_bm.eww 4- 然后,配置 OTAP 客户端以选择外部存储或内部存储。 要选择外部存储,请按照以下步骤操作(这是 SDK 项目中的默认配置): 4.1- 在工作区的源文件夹中找到 “app_preinclude.h” 头文件。搜索 “gEepromType_d” 定义,并将其值设置为 “gEepromDevice_AT45DB041E_c”。 /* Specifies the type of EEPROM available on the target board */ #define gEepromType_d gEepromDevice_AT45DB041E_c 4.2- 打开项目选项窗口 (Alt + F7)。在 “Linker->Config” 窗口中,设置 “gUseInternalStorageLink_d=0”。   要选择内部存储,请按照以下步骤操作: 4.1 - 在工作区的源文件夹中找到 “app_preinclude.h” 头文件。搜索 “gEepromType_d” 定义,并将其值设置为 “gEepromDevice_InternalFlash_c”。 /* Specifies the type of EEPROM available on the target board */ #define gEepromType_d gEepromDevice_InternalFlash_c 4.2- 打开项目选项窗口 (Alt + F7)。在 “Linker->Config” 窗口中,设置 “gUseInternalStorageLink_d=1”。   5- 配置好存储设置后,保存项目中的更改。然后点击 “Download and Debug” 图标(Ctrl + D) ,在开发板上编程软件。KW38 编程完成并开始调试会话后,中止会话 (Ctrl + Caps Lock + D) ,以安全地停止 MCU。 在 IAR Embedded Workbench IDE 中创建用于更新 OTAP 客户端软件的 SREC 镜像 本节将展示如何以无线示例为起点,创建与 OTAP 兼容的镜像,以使用 IAR Embedded Workbench IDE 对 KW38 OTAP 客户端进行重新编程。 1- 从 SDK 包的 Bluetooth 文件夹中选择任意示例,使用 IAR IDE 打开。Bluetooth 示例位于以下路径: \boards\frdmkw38\wireless_examples\bluetooth  在本示例中,我们将使用葡萄糖传感器项目: \boards\frdmkw38\wireless_examples\bluetooth\glucose_s\freertos\iar\glucose_sensor_freertos.eww 2- 打开 IAR 中的项目选项窗口 (Alt + F7)。在 “Linker->Config” 窗口中,编辑选项以包含 “gUseBootloaderLink_d=1” 标志,并更新 “gEraseNVMLink_d=0” 标志。当 gUseBootloaderLink_d 标志为 true 时,它向链接器文件指示镜像必须在第一个闪存扇区之后寻址,以避免覆盖 OTAP 引导加载程序软件(如我们之前所述)。另一方面,gEraseNVMLink_d 符号用于用 0xFF 模式填充未使用的 NVM 闪存区域。禁用此标志后,我们的软件镜像将不包含此模式,因此,镜像的总大小会减小,并提高 OTAP 下载速度和内存使用率。 3- 进入 “Output Converter” 窗口。取消选中 “Override default” 复选框,然后展开 “Output format” 下拉框,选择 “Motorola S-records” 格式。点击 “OK” 按钮完成设置。 4- 构建项目。 5- 在以下路径中找到 S-Record 文件 (.srec),并将其保存到智能手机上的已知位置。 \boards\frdmkw38\wireless_examples\bluetooth\glucose_s\freertos\iar\debug\glucose_sensor_freertos.srec 在 MCUXpresso IDE 中配置和编程 OTAP 客户端软件 如前文所述,为了完成OTAP实现,您需要在FRDM-KW38上编写两个软件:OTAP引导加载程序和OTAP客户端。本节将指导您使用MCUXpresso IDE对设置进行编程和配置,以选择外部存储或内部存储。 1- 打开 MCUXpresso IDE。在"快速入门面板"中点击"导入SDK示例"。 2- 选择 FRDM-KW38 图标,然后点击 “Next>”。 3- 导入 OTAP 引导加载程序项目。它位于 “wireless_examples -> framework -> bootloader_otap -> bm -> bootloader_otap”。点击 “Finish” 按钮。 4- 点击 “Debug” 图标 ,在开发板上编程 OTAP 引导加载程序项目。KW38 编程完成并开始调试会话后,中止会话 (Ctrl + F2),以安全地停止 MCU。 5- 重复步骤 1 到 3,在 MCUXpresso IDE 中导入 OTAP 客户端软件。对于 FreeRTOS 版本,它位于 “wireless_examples -> bluetooth -> otac_att -> freertos -> otap_client_att_freertos”;如果你更喜欢裸机版本,则位于 “wireless_examples -> bluetooth -> otac_att -> bm -> otap_client_bm_freertos”。。 6- 然后,配置 OTAP 客户端以选择外部存储或内部存储。 要选择外部存储,请按照以下步骤操作(这是 SDK 项目中的默认配置): 6.1- 在工作区的源文件夹下找到 “app_preinclude.h” 文件。搜索 “gEepromType_d” 定义,并将其值设置为 “gEepromDevice_AT45DB041E_c”。 /* Specifies the type of EEPROM available on the target board */ #define gEepromType_d gEepromDevice_AT45DB041E_c 6.2- 导航至 “Project -> Properties -> C/C++ Build -> MCU settings -> Memory details”。按照下图所示编辑 Flash 字段,保持 RAM 不变。 要选择内部存储,请按照以下步骤操作: 6.1- 在工作区的源文件夹下找到 “app_preinclude.h” 文件。搜索 “gEepromType_d” 定义,并将其值设置为 “gEepromDevice_InternalFlash_c”。 /* Specifies the type of EEPROM available on the target board */ #define gEepromType_d gEepromDevice_InternalFlash_c 6.2- 导航至 “Project -> Properties -> C/C++ Build -> MCU settings -> Memory details”。按照下图所示编辑 Flash 字段,保持 RAM 不变。 7- 配置好存储设置后,保存项目中的更改。然后点击 “Debug” 图标 ,在开发板上编程软件。KW38 编程完成并开始调试会话后,中止会话 (Ctrl + F2),以安全地停止 MCU。 在 MCUXpresso IDE 中创建 SREC 镜像以更新 OTAP 客户端中的软件 本节将展示如何以无线示例为起点,创建与 OTAP 兼容的镜像,以使用 MCUXpresso IDE 对 KW38 OTAP 客户端进行重新编程。 1- 如前所述,从 SDK 包的 Bluetooth 文件夹中导入任意示例。在 SDK 导入向导中,Bluetooth 示例位于 “wireless_examples -> bluetooth” 文件夹中。本示例将使用 “wireless_examples -> bluetooth -> glucose_s -> freertos -> glucose_sensor_freertos” 中的葡萄糖传感器项目。见下图。 2- 导航至 “Project -> Properties -> C/C++ Build -> MCU settings -> Memory details”。按照下图所示编辑 Flash 字段,保持 RAM 不变。最后几个字段向链接器文件指示镜像必须在第一个闪存扇区之后寻址,以避免覆盖 OTAP 引导加载程序软件,如我们在本文简介中所述。 3- 解压 KW38 SDK 包。将 “main_text_section.ldt” 链接脚本从以下路径拖放到工作区的 “linkscripts” 文件夹中。结果应与下图类似。 \middleware\wireless\framework\Common\devices\MKW38A4\mcux\linkscript_bootloader\main_text_section.ldt 4- 在 MCUXpresso IDE 中打开位于 linkscripts 文件夹中的 “end_text.ldt” 链接脚本文件。找到下图所示的部分,并删除 “FILL” 和 “BYTE” 语句。BYTE 和 FILL 行用于用 0xFF 模式填充未使用的 NVM 闪存区域。删除此代码后,我们的软件镜像将不包含此模式,因此,镜像的总大小会减小,并提高 OTAP 下载速度和内存使用率。 5- 打开 “app_preinclude.h” 文件,将 “gEepromType_d” 定义为内部存储。这是一个必要的虚拟定义,用于将引导加载程序标志放置在正确的地址,因此,这不会影响你之前在 MCU 中编程 OTAP 客户端和 OTAP 引导加载程序软件时选择的存储方法。 /* Specifies the type of EEPROM available on the target board */ #define gEepromType_d gEepromDevice_InternalFlash_c 6- 在项目的 “framework” 文件夹中包含 “OtaSupport” 文件夹及其文件。同时在项目的 “framework -> Flash” 文件夹中包含 “External” 文件夹及其文件。“OtaSupport” 和 “External” 文件夹可在 SDK 中找到。你可以轻松地从 SDK 下载路径中拖动这些文件夹并将其放入 MCUXpresso 的工作区中。“OtaSupport” 和 “External” 文件夹位于: OtaSupport middleware\wireless\framework\OtaSupport External 中间件\无线\框架\Flash\External 结果应如以下图所示:  7- 依次进入 “Project -> Properties -> C/C++ Build -> Settings -> Tool Settings -> MCU C Compiler -> Includes”。点击 “Include paths” 旁边的图标(见下图)。会弹出一个新窗口,然后点击 “Workspace” 按钮。 8- 在 “Folder selection” 窗口中展开项目目录,然后选择 “framework -> Flash -> External -> interface”(框架 -> 闪存 -> 外部 -> 接口)和 “framework -> OtaSupport -> interface” 文件夹。点击 “OK”按钮保存更改。 9- 确保 “OtaSupport” 和 “External” 文件夹已导入 “Include paths” 窗口中。然后点击 “Apply and Close” 按钮保存更改。 10- 点击此图标 保存并构建项目。然后,展开项目中的 “Binaries” 图标。右键点击 “.axf” 文件,选择 “Binary Utilities -> Create S-Record” 选项。生成的 S 记录文件将以 “.s19” 为扩展名保存在工作区的 Debug 文件夹中。将该 S 记录文件保存到智能手机上的已知位置。 使用 IoT Toolbox 应用程序测试 OTAP 客户端 本节介绍如何使用 IoT Toolbox 应用测试 OTAP 客户端软件。 1- 在你的智能手机上打开 IoT Toolbox 应用。选择 OTAP,然后点击 “SCAN” 以开始扫描合适的 OTAP 客户端设备。  2- 按下 FRDM-KW38 开发板上的 ADV 按钮 (SW2) 以开始广播。 3- 当你的智能手机找到 FRDM-KW38 开发板后,该设备将显示为 “NXP_OTAA”。将你的智能手机与此设备连接。随后,智能手机上会显示一个新窗口。  4- 点击 “Open” 按钮,查找 SREC 软件更新文件。 5- 点击 “Upload” 开始传输。等待下载完成。更新成功后,会显示确认消息。  6- 等待几秒钟,直到软件更新被编程到你的 MCU 中。新代码将自动开始运行。 如果对本主题有任何问题,请告知我。 BLE软件 千瓦 回复:KW38 - 使用 OTAP 客户端软件对 KW38 设备进行重新编程 嗨,EdgarLomeli   很多人无法使用 Google 应用商店,你能提供 IoT Toolbox 的最新 apk 安装包吗?  非常感谢。
View full article
MIMXRT1170-EVKBでJ-Linkを使用する 注:類似のEVKについては、以下を参照してください。 MIMXRT1060-EVKBまたはMIMXRT1040-EVKでJ-Linkを使用します MIMXRT1060-EVK または MIMXRT1064-EVK で J-Link を使用する MIMXRT1160-EVK または MIMXRT1170-EVK で J-Link を使用する この記事では、この EVK で J-Link デバッグプローブを使用する方法の詳細を説明します。  2つの方法があります:オンボードの MCU-Link デバッグプローブを Segger J-Link ファームウェアで更新する方法と、外部の J-Link デバッグプローブを EVK に接続する方法です。  他のデバッグプローブは必要ないので、オンボードデバッグ回路を使用すると便利です。  この記事では、J-Link を使用する2つの手順を詳しく説明します。 MIMXRT1170-EVKB jumper locationsMIMXRT1170-EVKB ジャンパの位置 外部J-Linkデバッグ・プローブを使用する セガーはいくつかの J-Linkプローブ オプションを提供しています。これらのプローブのいずれかをこれらのEVKで使用するには、EVKを次の設定で構成してください。 JP5 にジャンパを取り付け、SWD 信号をオンボードデバッグ回路から切り離してください。  このジャンパはデフォルトでは開いています。 EVK の電源を入れるには、デフォルトのオプションとして、電源をバレルジャック J43 に接続し、電源スイッチ SW5 をオン位置(3-6)に設定します。EVK が適切に電源供給されると、SW5 の隣にある緑色の LED D16 が点灯します。 J-Linkプローブを、J1、20ピン、2列0.1インチ・ヘッダーに接続します。 J-Link ファームウェアで更新してオンボード MCU-Link を使用 ドライバおよびファームウェア更新ツール用のMCU-Link インストーラをインストール EVKからUSBケーブルをすべて取り外します EVK の電源を入れるには、デフォルトのオプションとして、電源をバレルジャック J43 に接続し、電源スイッチ SW5 をオン位置(3-6)に設定します。EVK が適切に電源供給されると、SW5 の隣にある緑色の LED D16 が点灯します。 JP3 にジャンパを取り付け、ISP モードを MCU-Link に強制する USB ケーブルを J86 に、また MCU-Link デバッガに接続 MCU-Link ソフトウェアパッケージのインストール先のスクリプトディレクトリに移動し、program_JLINK.cmd(Windowsの場合)またはprogram_JLINK(Linux/MacOSの場合)のスクリプトをダブルクリックして実行します。画面上の指示に従います。Windowsでは、このスクリプトは通常C:\nxp\MCU-LINK_installer_3.122\scripts\program_JLINK.cmdにインストールされます。 J86 の USB ケーブルを取り外します JP3 のジャンパを取り外します USB ケーブルを J86 に接続し直します。  これで MCU-Link デバッガは JLink として起動するはずです。 ジャンパ JP5 を取り外し、MCU-Link デバッガの SWD 信号を接続します。このジャンパはデフォルトでは開いています。
View full article
Example MCAL S32K312 MEM_InFls DS3.5 RTD300 *******************************************************************************  The purpose of this demo application is to present a usage of the MEM_InFls MCAL Driver for the S32K3xx MCU.  The example uses MEM_InFls driver to write 128 bytes to FLASH memory address  0x50_0000 .  ------------------------------------------------------------------------------ * Test HW: S32K3X2EVB-Q172 * MCU: S32K312 * Compiler: S32DS3.5 * SDK release: RTD 3.0.0 * Debugger: PE micro * Target: internal_FLASH ******************************************************************************** Results :-- Ram location where FLASH writing erase code is placed :-- I placed the code at 256 byte below the MAX address of the RAM size 0x20417DAA = 541162922 Size of RAM need to save the flashing routine, as per the MAP & linker file :-- 0x00407e64 - 0x00407e38 = 44 bytes  S32K3 FLASH Memory Terminology :--  
View full article
【新手指南】如何构建 Yocto Linux BSP - i.MX FRDM 开发板版(日语博客) 本指南将向您展示如何使用 i.MX FRDM 板作为基础构建 Yocto Linux。 本文以 FRDM-IMX93 为例,但同样的步骤也可用于在其他 i.MX FRDM 板上进行构建。 本文以“Linux 6.12.49_2.2.0 ( Yocto 5.2 “Walnascar” )”为例,描述了 Yocto Linux BSP。 问:i.MX FRDM 板是什么? 答:i.MX FRDM 开发板是一款价格更实惠、体积更小的开发板,相比恩智浦功能齐全的 EVK 开发板,它的功能有所减少。其目的是方便用户进行基本的评估和原型设计。 1. 环境与准备 1.1.环境 大项目 小项目 内容 备注 文档 - IMX_YOCTO_PROJECT_USERS_GUIDE.pdf (这是主要方法。它描述了构建 BSP 的步骤。) i.MX Linux ®发行说明 (您可以查看支持功能列表。) i.MX 移植指南 (实际实施时需要注意的要点总结) 点击此处下载Yocto Linux 通用文档。 硬件 FRDM板 FRDM-IMX8MPLUS FRDM-IMX91S FRDM-IMX91 FRDM-IMX93 FRDM-IMX95(即将推出) 本章将以 FRDM-IMX93 为基础进行解释。 主机 PC Ubuntu 环境 ・VMware/Virtual Box 等(在 Windows 上) ・Native Linux 以下选项之一 推荐版本:Ubuntu 22.04 或更高版本 SD卡+读卡器/写入器 建议使用 16GB 或更多内存   硬件 (选项) MIPI 摄像头 (选项) 兼容BSP的MIPI相机 (参见 i.MX Linux ®发行说明) USB摄像头也可以替代(可能会出现延迟) 显示 (选项) 展示   USB 设备 (选项) USB鼠标、USB存储器   耳机 (选项) 3.5mm 耳机 带麦克风的耳机(例如老款 iPhone 附带的耳机)更好。 软件 Yocto 环境 Linux BSP (这次我们使用了 Linux 6.12.49_2.2.0( Yocto 5.2 “Walnascar” )) 本文将介绍安装过程,包括安装方法。 1.2.图例 命令提示符图例 =>           u-bootプロンプト $            BSPがインストールされているLinux PCのプロンプト 2. 主机 推荐使用 Ubuntu 22.04 桌面版。为了获得较为流畅的使用体验,建议使用至少配备 8 个线程和 16GB 内存的主机。所需的存储空间会根据具体项目而有所不同,小型项目大约需要 50GB,大型项目则需要 500GB。 2.1。Yocto 所需的软件包 请按照以下步骤安装所需的软件包。 $ sudo apt-get install build-essential chrpath cpio debianutils diffstat file gawk gcc git iputils-ping libacl1 liblz4-tool locales python3 python3-git python3- jinja2 python3-pexpect python3-pip python3-subunit socat texinfo unzip wget xzutils zstd efitools curl 注意:除了 IMX_YOCTO_PROJECT_USERS_GUIDE.pdf 中的信息外,还添加了curl 。 2.2. 设置交换文件 以下是设置 32GB 交换文件的示例。 $ sudo fallocate -l 32G /swapfile $ sudo chmod 600 /swapfile $ sudo mkswap /swapfile $ sudo swapon /swapfile 注意:如果/swapfile 目录已存在,则第一行命令将失败。如果要更改其大小,请执行以下命令,然后再运行上面的命令。 $ sudo swapoff /swapfile $ sudo rm /swapfile 要在主机启动时自动挂载交换文件,请将以下行添加到/etc/fstab文件中: /swapfile none swap sw 0 0 3. Yocto Linux BSP 从 nxp.jp 网站的“i.MX 应用处理器的嵌入式 Linux”部分,选择所需的 Linux BSP 版本,并获取 i.MX Yocto 项目用户指南。 按照 i.MX Yocto 项目用户指南 (IMXLXYOCTOUG) 中的“4 Yocto 项目设置”部分的步骤创建映像。 本文档假设使用以下设置生成图像。 发行版 = fsl-imx-xwayland 机器 = imx93-11x11-lpddr4x-frdm 3.1. 设置和构建 Yocto BSP 有关主机设置,请参阅 2. 主机。 3.1.1.安装仓库实用程序 $ mkdir ~/bin $ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo $ chmod a+x ~/bin/repo 3.1.2. 将存储库添加到您的 PATH 环境变量中 将以下行添加到$HOME/.bashrc文件中: export PATH=~/bin:$PATH 3.1.3.Git 设置 $ git config --global user.name "Your Name" $ git config --global user.email "Your Email" $ git config --list 3.1.4.Yocto BSP 设置 $ mkdir imx-yocto-bsp $ cd imx-yocto-bsp $ repo init -u https://github.com/nxp-imx/imx-manifest -b imx-linux-walnascar -m imx-6.12.49-2.2.0.xml $ repo sync 3.1.5.设置构建目标,构建 $ MACHINE=imx93-11x11-lpddr4x-frdm DISTRO=fsl-imx-xwayland source ./imx-setup-release.sh -b build $ bitbake imx-image-full *构建完成后,将生成一个 Linux 镜像。 * 有关如何写入生成的映像的说明,请参阅您的特定 FRDM 板的入门指南中的步骤 1 和 2。 FRDM-IMX8MPLUS 入门指南 FRDM-IMX91 入门指南 FRDM-IMX91S 入门指南 FRDM-IMX93 入门指南 注意:如果您想为其他 FRDM 板构建 Linux BSP,请将上述命令中的“ MACHINE= ”部分替换为以下名称。 imx8mp-lpddr4-frdm (FRDM-IMX8MPLUS) imx91-11x11-lpddr4-frdm (FRDM-IMX91) imx91-11x11-lpddr4-frdm-imx91s (FRDM-IMX91S) imx93-11x11-lpddr4x-frdm (FRDM-IMX93) imx95-15x15-lpddr4x-frdm (FRDM-IMX95) 注意:对于图形功能,您还可以使用上述命令中的“ DISTRO = ”部分选择发行版。 fsl-imx-wayland (Wayland) fsl-imx-xwayland (与使用 Wayland 和 X11 *EGL 的 X11 应用程序不兼容) 注意:每个项目只能使用imx-setup-release.sh脚本进行一次设置。如果对现有项目执行此操作,将会生成诸如conf/local.conf之类的新文件,并且您之前的设置将会丢失。如果您希望重用现有项目……3.3.1.请参阅“从现有构建目录恢复工作”。 注意:根据主机配置的不同,构建过程可能需要数十小时。此外,预计会占用 400-500GB 的存储空间。 注意:在多核多线程主机上构建时,如果内存不足以支持所有线程,则会发生内存交换。限制线程数的方法将在 3.4.2 节中介绍。请参阅“限制构建过程中运行的线程数”。 注意:Ubuntu 22.04 初始状态下可能未配置交换分区,这会导致系统运行极其缓慢甚至崩溃。交换分区文件配置如下:2.2.请参阅有关配置交换文件的章节。 以下信息仅供参考。 3.2 构建和安装工具链 您可以构建和安装交叉编译器等工具链。通过使用此处生成的脚本,您可以避免交叉编译过程中经常出现的问题,例如找不到要链接的包含文件或库。 3.2.1.工具链的构建 $ bitbake imx-image-full -c populate_sdk 3.2.2.安装 $ tmp/deploy/sdk/fsl-imx-xwayland-glibc-x86_64-imx-image-full-armv8a-imx93-11x11-lpddr4x-pf0900-evk-toolchain-6.12-walnascar.sh 这里我们就不解释如何使用该工具链了。 3.3.常用的 Yocto bitbake 命令和设置 3.3.1.从现有构建目录继续工作。 $ cd /path/to/imx-yocto-bsp $ source ./setup-environment build 注意:这里提到的路径和目录来自 3.1.4 节。Yocto BSP 设置,3.1.5。构建目标设置在构建过程中已配置。 下面我们将以 linux-imx 为例,给出一些命令示例。您可以将“ linux-imx ”替换为其他软件包名称,对每个软件包执行相同的操作。 3.3.2. 软件包的重新构建 $ bitbake -c compile linux-imx -f $ bitbake -c install linux-imx $ bitbake -c deploy linux-imx 如果不添加注释-f ,则可以跳过这些步骤。 注意 - 某些软件包在使用 `-c deploy` 进行部署时可能会显示错误,但在大多数情况下,这仅仅是因为 `do_deploy` 命令不可用,因此您可以忽略该错误。 3.3.3 删除软件包 如果某个软件包出现不应发生的错误,请尝试使用以下命令删除该软件包,然后重试。这或许可以解决错误。(这是因为软件包可能在下载过程中损坏,或者如果构建过程过早终止,则可能残留一些垃圾数据。) $ bitbake -c cleansstate linux-imx 注意:提取出的所有源代码都将被删除,因此如果您正在编辑任何文件,请务必小心。 3.3.4. 软件包提取 如果您只想提取软件包而不想编译它 $ bitbake -c patch linux-imx 3.3.5. 将更改应用到配置文件 如果您想更改配置文件(例如arch/arm64/configs/imx_v8_defconfig )并希望这些更改生效: $ bitbake -c configure linux-imx $ bitbake -c compile linux-imx -f 3.3.6. 运行 linux-imx menuconfig 更改 Linux 内核的构建选项时 $ bitbake -c menuconfig linux-imx 此时会弹出一个类似这样的窗口,请进行必要的更改并保存(使用十字光标键选择所需项目,然后按空格键确认)。 有关建造方面的技巧,请参考以下文章。 Yocto Linux BSP 构建技巧 - i.MX 8M Plus 版 ========================= 即使您在本文的“评论”栏留言,我们目前也无法回复。 给您带来不便,我们深感抱歉。请在询问时参阅“NXP技术问题-联系方式(日本博客)”。 (如果您已经是NXP的代理商或与其有合作关系,可以直接向负责人咨询。) 本指南将向您展示如何使用 FRDM(Freedom)板构建 Linux BSP,使您能够以紧凑且经济实惠的方式开始使用嵌入式 Linux。 本文以 FRDM-IMX93 为例,但同样的步骤也可用于在其他 i.MX FRDM 板上进行构建。 本文以“Linux 6.12.49_2.2.0 (Yocto 5.0.4)”为例,对 Yocto Linux BSP 进行了描述。 i.MX 处理器 SW | 下载 日本博客
View full article
現代のサーバーデザインにおける主要なパフォーマンスと電力要因 皆さんこんにちは 私は、今日のコンパクトなサーバー システムを扱う際に、パフォーマンスと電力効率を人々がどのように見ているかについて、一般的な議論を始めたいと思いました。ワークロードの分散化が進むにつれて、効率、安定性、長期的な運用がピークパフォーマンスと同じくらい重要になってきます。 ミニサーバーの場合、パフォーマンスと電力のバランスを取るのは非常に困難です。プロセッサの効率、メモリ容量、ストレージ速度はすべて、これらのシステムが日常のワークロードをどれだけうまく処理できるかに影響し、電力消費と発熱量は、システムをどこにどのように展開できるかに影響します。多くのセットアップでは 24 時間 365 日オンライン状態を維持する必要があるため、アイドル時の電力を低く抑え、効果的な熱マネジメントを行うことが重要な考慮事項になります。特にエッジまたは小規模な展開では、ネットワークのパフォーマンスとスケーラビリティも重要な役割を果たします。 他の人がこれらの要素をどのように評価しているか、実際の使用では何が最も効果的であったかをぜひ聞いてみたいです。
View full article
Unable to debug i.MXRT1064 custom board. Hi,       I'm getting "Break at address "0x20d102" with no debug information available" message while trying to run my code in debug mode.       I'm using i.MXRT1064 custom board and programming it using, LinkServer LPC-Link2.       This board was working earlier without issue but now all of a sudden, this message appears.        I'm tried Release mode. I can successfully flash my board with the release code but then it seems the program doesn't run. I don't see any output, either from serial terminal or from display.       I also tried programming this board using Secure Provisioning Tool but it still doesn't work.         Can anyone help on where to focus or any leads for this issue? Re: Unable to debug i.MXRT1064 custom board. Hi MayLiu,        Thanks for your response.         Earlier, I did try that setting as suggested by you, but the IDE prompted an error (Failed to execute MI command: -target-download) when try to debug. I have attached a snapshot of that error for your reference.         Going back to the previous message, I wish to add that when I checked the address of where the current program is executing, it was showing that the code is in ROM region (address 0x20E35A). So somehow the code is unable to reach/start application code and is struck in ROM. Is my assumption correct? Can there be such a scenario? Re: Unable to debug i.MXRT1064 custom board. Hi @nxpsachve , Thank you so much for your interest in our products and for using our community. 1: Please try select Link application to RAM, then debug again. If your application can run successfully from RAM, please set the board as Serial Downloader mode, and then use the Secure Provisioning Tool to program your board by UART1 or USB1.   If your application  fails to run, I suggest you using an oscilloscope to check your board the power‑on sequence.   Wish it helps you. Best Regards MayLiu Re: Unable to debug i.MXRT1064 custom board. Hi @nxpsachve , I do not think MCUXpresso IDE  change BOOT configuration,  Boot behavior on NXP RT is determined by hardware boot config and boot mode pins.  Since the target can be detected in Serial Downloader mode, this indicates that the ROM is still running correctly. As a next step, you could: Perform a full chip erase, Switch the board to Internal Boot mode, and Try reconnecting with MCUXpresso IDE for debugging. Alternatively, you may also use the MCUXpresso Secure Provisioning Tool to program the application image. Best Regards MayLiu Re: Unable to debug i.MXRT1064 custom board. Hi MayLiu, Thanks for your suggestion. I would like to check if there are any such setting/configuration within MCUXpresso that can alter or impact the BOOT Conf? Just to rule out the IDE. The link server is able to detect the target when in serial download mode. Re: Unable to debug i.MXRT1064 custom board. Hi @nxpsachve , Thanks for your updated information. Based on the information you provided, it is possible that the CPU is currently executing code from the Boot ROM rather than your application code.   I would suggest checking the BOOT CFG and BOOT mode pin settings, ensuring that the device is configured to boot from user flash.   You may also try to set your board as serial downloader mode and then connecting via J-Link to confirm whether the debugger can  detect and communicate with the target.   Best Regards MatLiu
View full article
通过 LPC 54018 中的 USB 通信在挂机中读写 如何在 LPC 54018 中通过 USB 通信写入和读取 Pendriver。 我使用的是 USB1 主机? LPC54xxx Re: read and write in pendriver through USB communication in lpc 54018 微控制器必须在 USB 主机模式下工作,因为笔式驱动器是 USB 大容量存储类 (MSC) 设备。 LPC54018 支持USB 2.0 全速主机,足以满足标准笔式驱动器的需求。 实施概述: 硬件要求 USB Type-A 接口 笔式硬盘的外部5V VBUS 电源 正确的 D+ 和 D- 连接 建议使用 VBUS 检测 USB 主机堆栈 使用恩智浦 MCUXpresso SDK 启用 USB 主机 + MSC 类驱动程序 使用FATFS处理文件系统 列举 插入时,USB 主机会枚举笔式驱动器 该设备被识别为大容量存储设备 大容量传输用于数据传输 文件系统访问 大多数笔式硬盘的格式为FAT32 挂载后,可执行标准文件操作 使用 f_open()、f_read() 和 f_write() 等应用程序接口 用例示例 这种 USB 存储访问通常用于嵌入式系统,以存储日志、媒体文件或缓存数据。 例如,嵌入式媒体播放器可从以下平台流式传输内容 HDOBOX等平台流式传输内容的嵌入式媒体播放器,就可以使用这种方法将配置文件、字幕或播放日志存储在 USB 闪存盘上。 重要说明 默认情况下不支持 exFAT 和 NTFS USB 主机 + FATFS 需要足够的内存 安装前在设备连接后添加延迟 Re: read and write in pendriver through USB communication in lpc 54018 观影应用程序 HDO Box 电影 我使用这种方法进行管理,效果很好、 Re: read and write in pendriver through USB communication in lpc 54018 Pendriver 中的 USB 通信相当难用。 Re: read and write in pendriver through USB communication in lpc 54018 你好,@Arularasan、 为了再次确认,能否请您检查一下 USB1 端口是否正常工作?你可以尝试像使用其中一个 USB 示例的设备一样使用它。 另外,能否请您检查一下您的硬盘?将磁盘驱动器输入计算机时,计算机会检测到它吗?你能不能试试用另一个 pendrive 或 USB 设备的 USB 主机示例? 最后,能否请您用挂盘测试另一个 USB 主机示例?使用以下示例进行尝试可能会有所帮助:usb_host_cdc和/或usb_host_msd_command。 致以最诚挚的问候,劳尔。 Re: read and write in pendriver through USB communication in lpc 54018 你需要一个 JTAG 调试器来上市和调试在恩智浦 LPC54018 板上运行的代码。FreeRTOS 使用 OM40006 物联网模块进行了测试。有关支持的调试器的更多信息,请参阅 《恩智浦 LPC54018 物联网模块用户手册 》,该手册可从以下网站获取 OM40007 LPC54018 物联网模块 产品页面。 如果您使用的是 OM40006 物联网模块调试器,请使用变流器电缆将调试器的 20 针连接器连接到恩智浦物联网模块上的 10 针连接器。 使用迷你 USB 转 USB 电缆将恩智浦 LPC54018 和 OM40006 物联网模块调试器连接到计算机的 USB 端口。   filmplus 应用程序 Re: read and write in pendriver through USB communication in lpc 54018 @RaRo感谢您的回复。 SDK 示例代码下的 USB HOST 演示 ("host_msd_fatfs_bm") 我已下载,但无法使用! 我 想通过 USB 通讯读写笔式驱动器,我使用的是 USB1。 请帮助我@RaRo Re: read and write in pendriver through USB communication in lpc 54018 你好,@Arularasan、 您试过 host_msd_fatfs_bm 示例吗?该示例似乎使用了 f_write() 和 f_read(),它们用于通过 FATFS 和 USB 进行写入和读取。 您能否查看以下参考手册,了解有关 USB + FATFS 应用程序的更多信息? MSDFATFSAPIRM、飞思卡尔 MSD FATFS API-参考手册和 USBHOSTAPIRM,飞思卡尔 USB 堆栈主机 API-参考手册。 致以最诚挚的问候,劳尔。 Re: read and write in pendriver through USB communication in lpc 54018 @RaRo是的,我已经在MCUXpresso IDE的帮助下完成了 lpc 54018 中的所有程序。 MCUXpresso IDE 生成的示例代码。没有创建读写功能,请帮助我通过 USB 通信在 lpc 54018(我使用的是 USB1 主机)中读写 Pendriver 的步骤。 Re: read and write in pendriver through USB communication in lpc 54018 你好,@Arularasan、 能否请您查看以下有类似问题的主题?已解决:我想使用 USB 连接从笔读取文件...- 恩智浦社区 此外,您还可以尝试使用 LPC54018 SDK 中的 USB 示例,如果使用的是 MCUXpresso IDE,请单击 "导入 SDK 示例... "并搜索 USB。您可以通过集成开发环境或以下链接下载 SDK:MCUXpresso SDK Builder。 [MCUXpresso IDE 快速启动面板和 SDK 导入向导] 可能需要定义您要使用的 USB:USB1 或 USB0。 致以最诚挚的问候,劳尔。
View full article