Multi Source Translation Content

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

Multi Source Translation Content

讨论

排序依据:
HOWTO: GNU ビルドツールを使用して RAM メモリからライブラリ関数を実行する <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> このドキュメントでは、GNU ビルドツールを使用してカスタムメモリセクション(通常はRAM)からライブラリ関数を配置して実行するために必要な手順について説明しています。この手順は、どのGNUツールチェーンにも適用できます。S32 Design Studio for ARM で作成した新規S32DSプロジェクトでデモを行います。 標準ライブラリ(NewLib)のmemcpy()関数を実行したいと仮定しましょう。 1) 最初のステップは、特定のライブラリオブジェクトファイルを入力セクションから除外し(EXCLUDE_FILE を使用)、標準の.text*フラッシュセクションにリンクされないようにすることです。 EXCLUDE_FILEに関連付けられた入力セクションは、セクションリストの後半で使用される同じ入力セクションと干渉してはなりません(例:以下のリストから *(.text*) 入力セクションが削除されている場合)。EXCLUDE_FILEは *.(text*) ルールと同様に動作します。選択したファイルのみを除外し、残りの(除外されていない)入力データはすべて配置されます。 /* The program code and other data goes into internal flash */ .text : { . = ALIGN(4); *(.text) /* .text sections (code) */ /* Exclude file(s) from NewLib libc.a from .text.* section */ *(EXCLUDE_FILE (*libc.a:lib_a-memcpy-stub.o) .text*) *(.rodata) /* .rodata sections (constants, strings, etc.) */ *(.rodata*) /* .rodata* sections (constants, strings, etc.) */ *(.glue_7) /* glue arm to thumb code */ *(.glue_7t) /* glue thumb to arm code */ *(.eh_frame) KEEP (*(.init)) KEEP (*(.fini)) . = ALIGN(4); } > m_text‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 2)次に、 memcpyオブジェクトをプロジェクトの.ldファイルですでに定義されているcode_ramセクションに配置しましょう。このセクションは、RAM から実行されるコード専用です(起動ルーチンはこのセクションを初期化します)。詳細については、「HOWTO: S32 Design Studio で RAM からルーチンを実行する方法」をご覧ください。 次の行は、標準のNewLib(libc.a)に含まれるオブジェクトファイル(lib_a-memcpy-stub.o)のコード(.text* セクション)を配置します。 *libc.a:lib_a-memcpy-stub.o (.text*)‍ .code セクションに配置: .code : AT(__CODE_ROM) { . = ALIGN(4); __CODE_RAM = .; __code_start__ = .; /* Create a global symbol at code start. */ __code_ram_start__ = .; *(.code_ram) /* Custom section for storing code in RAM */ *libc.a:lib_a-memcpy-stub.o (.text*) /* add memcpy from the NewLib library here*/ . = ALIGN(4); __code_end__ = .; /* Define a global symbol at code end. */ __code_ram_end__ = .; } > m_data‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ プロジェクトをビルドした後、マップファイルをチェックして、memcpyが実際にRAMメモリの.codeセクションに配置されていることを確認できます。 .code 0x1fff881c 0x18 load address 0x00000d90 0x1fff881c . = ALIGN (0x4) 0x1fff881c __CODE_RAM = . 0x1fff881c __code_start__ = . 0x1fff881c __code_ram_start__ = . *(.code_ram) *libc.a:lib_a-memcpy-stub.o(.text*) .text.memcpy 0x1fff881c 0x16 C:/NXP/S32DS_ARM_v2018.R1/Cross_Tools/gcc-6.3-arm32-eabi/arm-none-eabi/newlib/lib/thumb/v7e-m\libc.a(lib_a-memcpy-stub.o) 0x1fff881c memcpy 0x1fff8834 . = ALIGN (0x4) *fill* 0x1fff8832 0x2 0x1fff8834 __code_end__ = . 0x1fff8834 __code_ram_end__ = . 0x00000da8 __CODE_END = (__CODE_ROM + (__code_end__ - __code_start__)) 0x00000da8 __CUSTOM_ROM = __CODE_END‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍ 注 関数をRAMに配置する場合は、その関数によって呼び出されるサブ関数(通常は別のオブジェクトファイルにあります)を追加することを常に検討してください。 CC++ ライブラリ コンパイラ・アセンブラ・リンカ
查看全文
[IN PROGRESS] Audio-video real time audio transfer over Ethernet Real time audio transfer over Ethernet using IEEE1722 protocol – Audio-video bridging Cílem práce je demonstrovat přenos audio a video signálu mezi cílovými body v reálném čase v rámci komunikační počítačové sítě na základu IEEE 802 (ethernet) s využitím TSN (time sensitive networking) standardů IEEE 1588 (precision clock synchronization protocol), IEEE 1722 (layer 2 transport protocol for time sensitive applications in a bridged local area network) a IEEE 1733 (layer 3 transport protocol for audio and video applications). Na dodaném hardware NXP T-BOX S32K3 na bázi mikrokontroleru NXP S32K344 bude vytvořen nový nebo zdokonalen existující software používající výše uvedené standardy. Software bude zvládat plně duplexní provoz, tzn. v reálném čase snímat audio data z analogového vstupu, provede jejich digitalizaci a odeslání na ethernetové rozhraní přičemž zároveň bude možno z ethenetového rozhraní data přijímat, zpracovávát a odesílat na analogový výstup. Bude navržen model výměny dat mezi síťovými uzly v reálném čase, vytvořeny softwarové moduly pro čtení/přehrávání audio signálu z analogového zdroje/výstupu a pro posílání a příjem dat z ethernetového rozhraní. Bude vytvořena modelová aplikace pro plně duplexní provoz mezi síťovými uzly. Leader Martin Gazda Contact University team NXP Semiconductors CZ  Apply by email  Martin Gazda In Progress
查看全文
FRDM-IMX93硬件介绍 FRDM-IMX93 开发板是第一款配备 i.MX MPU 的 FRDM 开发板,包含 Wi-Fi 和蓝牙模块,并支持 Debian、Yocto 和 GoPoint,可帮助您利用 NXP 的开发人员经验快速开发工业和物联网应用程序。   FRDM-IMX93 应用 低成本开发板使用,每两年发布一次 Debian BSP Yocto 每年发布一次 BSP。   了解FRDM-IMX 93开发板     规格 2个Arm Cortex ® -A55 + Cortex ® -M33 板载 Wi-Fi 6 + 蓝牙 + 802.15.4 模块,IW612 2x GB Ethernet (1xETER, 1xTSN) MIPI-CSI/DSI, HDMI M.2接头 LPDDR4X 16 位 2GB eMMC 5.1, 32GB 微型SD 3.0卡插槽 3 个 USB 2.0 Type-C 连接器(一个用于调试,一个仅用于 PD)+ 1 个 USB 2.0 Type-A RTC、按钮和 LED     特性 FRDM-IMX93 eMMC 32GB DRAM Micron 2GB PMIC PCA9451A WiFi模块 板载 u-blox MAYA-W276 USB Type C Type-C+Type-A 以太网 两个GbE M.2(E 键) SDIO WiFi/蓝牙 Y(需要返工) HDMI IT6263/Y MIPI DSI面板 22针FPC HDR LVDS面板 否 MIPI CSI摄像头 22针FPC HDR 2x20扩展接口 Y CAN总线 Y 微型SD Y UART Y 音频 MQS 远程调试 否 NXP连接器(CAN、ADC、I2C) Y 电源接头 Type-C PCB层数 10 基板尺寸 6.5x10.5cm 板载 NXP 设备 PMIC PCA9451A USB PD TCPC PHY IC PTN5110 高压USB PD电源开关 NX20P5090UK IIC扩展GPIO PCAL6524/PCAL6408A CAN收发器 TJA1051T/3 USB 接收器和源组合电源开关 NX20P3483UK USB Type-C CC和SBU保护IC NX20P0407 实时时钟/日历 PCF2131 Wi-Fi, BT, 802.15.4 Tri-Radio IW612(在 u-blox 模块中)   扩展板   RPI-CAM-MIPI :IAS 摄像头至 22 针 FPC 摄像头适配器 TM050RDH03-41: LCD display module 5” TFT 800X480, RGB, 120.7 mm x75.8 mm7inch Waveshare 7'' DSI LCD :7英寸电容式触摸屏,1024×600 MX93AUD-HAT :具有多种功能的音频扩展板 8MIC-RPI-MX8:用于语音支持的 8 麦克风阵列原型板 培训 FRDM-IMX93 软件发布包 FRDM-IMX93 上的 GoPoint 演示 文档 − FRDM-IMX93 快速入门指南 − FRDM-IMX93 开发板用户手册 - FRDM-IMX93 软件用户指南   有用链接 − i.MX Yocto项目用户指南 −i.MX Linux User’s Guide i.MX Linux 参考手册 − i.MX移植指南 -i.MX Debian Linux SDK 用户指南 FRDM-IMX93 FRDM 培训 动手实践培训 i.MX应用处理器 MCU 无线连接
查看全文
KW45/MCXW71 Changing Clocking peripherals from FRO6M to other clock sources In modern embedded systems, precise and reliable clocking is fundamental to the correct operation of digital peripherals. Microcontrollers like NXP’s KW45 and MCXW71 rely on internal oscillators to provide timing references for peripherals such as UART, SPI, timers, and ADCs. One such oscillator is the 6 MHz Free Running Oscillator (FRO6M), which is commonly used as a default clock source. This article provides a comprehensive guide to: Selecting and configuring alternative clock sources Choosing an alternative clock source The KW45/MCXW71 microcontroller offers several alternatives, including the Free Running Osilator 192Mhz (FRO192), the RF_OSC , and external crystal oscillators. Each option has its own advantages: FRO192 is stable and available, and external oscillators provide long-term accuracy. The choice of clock source should be based on the peripheral’s timing requirements, power constraints, and the availability of the clock in the current operating mode. Reconfiguring Peripheral Clock Sources Reconfiguring a peripheral’s clock source in KW45 is straightforward using the SDK’s clock management APIs. The function CLOCK_SetIpSrc() allows developers to assign a new clock source to a specific peripheral. Example on changing a UART clocking from FRO6M to other clocksource. UART peripheral connected to FRO6M uint32_t uartClkSrcFreq = BOARD_DEBUG_UART_CLK_FREQ; CLOCK_SetIpSrc(kCLOCK_Lpuart1, kCLOCK_IpSrcFro6M); DbgConsole_Init(BOARD_DEBUG_UART_INSTANCE, BOARD_DEBUG_UART_BAUDRATE, BOARD_DEBUG_UART_TYPE, uartClkSrcFreq); For example, to switch a UART from FRO6M to FRO-192M, the following code can be used: //Replace kCLOCK_Lpuart1 for your peripheral for clicking CLOCK_SetIpSrc(kCLOCK_Lpuart1, kCLOCK_IpSrcFro192M); Also in the example above we would have to set the  uint32_t uartClkSrcFreq  variable to the correct freq value corresponding to the FRO192M as it is being used as clock source, but the same logic applies to any other clock source for the peripheral. Other clocking changes for modules can be done as shown in this examples: //Change clock source for LPIT 0 module from 6M FRO to other clocksources /* Iniital source for the LPIT module */ CLOCK_SetIpSrc(kCLOCK_Lpit0, kCLOCK_IpSrcFro6M); /* Set the new source for the LPIT 0 module */ CLOCK_SetIpSrc(kCLOCK_Lpit0, kCLOCK_IpSrcFro192M); /* Set the corresponding divider for application, need to be decided by developer*/ CLOCK_SetIpSrcDiv(kCLOCK_Lpit0, 15U); /* Set the source for the TPM 0 module */ CLOCK_SetIpSrc(kCLOCK_Tpm0, kCLOCK_IpSrcFro6M); /* Set the source for the TPM 0 module */ CLOCK_SetIpSrc(kCLOCK_Tpm0, kCLOCK_IpSrcFro192M); /* Set the corresponding divider for application, need to be decided by developer*/ CLOCK_SetIpSrcDiv(kCLOCK_Tpm0, 3U); //Change clock source for Luart 1 module from 6M FRO to other clocksources CLOCK_SetIpSrc(kCLOCK_Lpuart1, kCLOCK_IpSrcFro6M); /* Set the source for the Lpuart 1 module */ CLOCK_SetIpSrc(kCLOCK_Lpuart1, kCLOCK_IpSrcFro192M); uartClkSrcFreq = CLOCK_GetIpFreq(kCLOCK_Lpuart1); DbgConsole_Init(BOARD_DEBUG_UART_INSTANCE, BOARD_DEBUG_UART_BAUDRATE, BOARD_DEBUG_UART_TYPE, uartClkSrcFreq); After changing the clock source, it is important to reinitialize the peripheral to ensure that timing parameters such as baud rate, prescaler, or sampling intervals are correctly recalculated. This step ensures that the peripheral operates reliably with the new clock configuration. Those were some examples on changing clock sources for some peripherals, but the same logic can be applied to any other module or peripheral, those examples were taken from SDK 2.16.00 as an example on how a module configured with a clock source can be switched to another.
查看全文
i.MX95 & i.MX8MP usb no-TypeC customization when use uuu tool i.MX8MP and i.MX95 both support USB3.0. In EVK board, USB download pin is USB3.0 with Type-C.  While in other boards, they may delete CC logic design PTN5110, or use USB2.0 signals instead. This document describes how to modify U-Boot to support a design without PTN5110 when using the uuu tool to download.
查看全文
MCUXpresso Config Tools Curriculum Documentation MCUXpresso Config Tools | Software Development for NXP Microcontrollers (MCUs) | NXP Semiconductors This training currently covers the following areas: MCUXpresso Config Tools: How-Tos MCUXpresso Config Tools: Zephyr Pins Setup System Manager configuration via Config tools for i.MX MCUXpresso SDK
查看全文
<video> CHN L8 : S32G2 XRDC CHN L8 - S32G XRDC, by Danny(EN)/Peter(CHN) reference doc - AN13024: S32G2 Extended Resource Domain Controller (XRDC) – Application Note part 1 : XRDC Summary (view in My Videos) part 2 : XRDC MDAC (view in My Videos) part 3 : XRDC MRC and PAC (view in My Videos) part 4 : XRDC error handling (view in My Videos) part 5 : XRDC software enablement (view in My Videos) part 6 : XRDC wrap up questions (view in My Videos)
查看全文
Q&A: Can i.MX6Solo LDB/LVDS & LCD Ports be active simultaneously Q: Some background; this instrument has one display connected to the LVDS output of the i.MX6Solo and the SVGA monitor is using the IPU port with an external Analog Devices ADV7125 DAC to actually drive the monitor (or projector).  From Tektronix: We got our kernel logo to show up on an external SVGA monitor as well as on the internal LVDS display so we now at least know that the hardware is functional. However, when our application starts running and writing to the fb0 (background) and fb1 (foreground/overlay) frame buffers, the external monitor (fb2 frame buffer) doesn't get updated. We need to know how to get the same data going to the external monitor as goes to the internal LVDS display.  the external monitor is 800x600 and the internal is 800x480 so we'd further like those 480 lines to show up centered in the 600 line monitor. We are also hoping that this can be down without having to write/DMA all of the data twice. The answer given is SR #1122663812 was "If the customer is using Linux, fb2 should also be drawed by their application."  This was considered in adequate and Tek replied: I would like to know if they are saying that the IPU absolutely cannot automatically do what we want and if not, why not?  I would like to have some detailed information to at least convince us that they've looked into this and it really isn't possible. A: In our Linux BSP we don't support such feature. And in android BSP it was already supported. The customer must draw the fb2 by their application, ipu doesn't have the feature that combining the fb0 and overlay fb1, then resize it to fb2 automatically. The customer application can drawing their UI into a memory, then use v4l2 output to draw this buffer to both fb0 and fb2, in this case, resizing will be implemented in V4l2 output driver with IPU hardware. And if the customer needs overlay on fb2, they must combine the two layer into memory with IPU task first, then using V4l2 output to render it to display fb2. For how to use IPU task, the customer can reference to BSP unit test code: imx-test-1.1.0\test\mxc_ipudev_test The summary: for dual display case, the fb0 and fb2 are just two framebuffer memory, they must be filled before rendering to display, on iMX6S/DL, only the fb0 has the hardware overlay (fb1); if the customer wants to show same contents on two displays in Linux, their application must draw the two framebuffers, but we had some hardware method to improve the performace, using GPU or IPU task. In Android, the application will not draw frame buffer directly, it will use Android surface flinger middleware to draw, so this feature was implemnted in surface flinger; but in Linux, there is no such middleware, and application draws the framebuffer directly, so the application should handle it. This document was generated from the following discussion: i.MX6Solo LDB/LVDS & LCD Ports Active Simultaneously
查看全文
CodeWarrior for Starcore: SC3000 user guide The CodeWarrior Development Studio provides a common interface for developing, debugging, and analyzing your applications. The project-oriented Workbench window provides numerous perspectives containing views, editors, and controls that appear in menus and tool bars. After creating a project, build your application, define a launch configuration, and then wait for data collection and data display.   The StarCore linker is a part of StarCore development tools and generates an executable file for the StarCore family of digital signal processors. In addition, the linker also lets you define a Linker Command File (LCF) that you use to instruct the linker to store different parts of the executable file in different areas of the processor address space. Currently, StarCore development tools support two linker versions: • SC100 • SC3000   The SC3000 linker specifically targets SC3850 family of processors. This user guide explains SC3000 linker. For information on SC100 linker, see StarCore SC100 Linker User Guide. What are you waiting for? Amazing features are right here, and  u p d a t e d!! General
查看全文
Community Created Add-Ons for the Freescale Cup Recommend accessories or post your own designs.  For the community by the community! Add your contributions in the comments section below.  As I filter through them I will move them up into this main document, so it is easier to browse. TFC Camera Mounts Designed by Wave Number Print these on demand via Shapeways.com Base Board Hinge Two Position Tower Elevator TWR-ELEV-2 — Wavenumber LLC - Link to the Store Freescale Cup Content Re: Community Created Add-Ons for the Freescale Cup thank you Re: Community Created Add-Ons for the Freescale Cup simple: contact [email protected] as written on the board Re: Community Created Add-Ons for the Freescale Cup Hi, Please how can i buy that?
查看全文
FRDM-IMX91 Connectivity Wi-Fi Basic Hands on In this lab, you will learn how to: Bring up Wi-Fi interfaces. Run basic Wi-Fi scan Configure and bring up Wi-Fi STA mode using WPA_SUPPLICANT. Configure and bring up UDHCP server for dynamic IP assignment for associated client devices. Run UDHCP client to get dynamic IP address. Configure and bring up Wi-Fi AP mode using hostapd. Connect STA to external AP Connect AP to external STA Start ping  Wi-Fi Basic Hands on Demo Guide Video (view in My Videos)   Community Support If you have questions regarding this training, please leave your comments in our Wireless MCU Community! here  FRDM-IMX91 FRDM-Training Hands-On Training i.MX Application Processors Wireless
查看全文
LS1-TWRのファームウェアアップデート <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
查看全文
Toggling the FRDM-K64F RGB LED using interrupts in Kinetis Design Studio (KDS)   Hello Freedom community users Bheema has posted on the Element14 community a very clear tutorial (accessible following the link below) to create from scratch a basic project example for the FRDM-K64 with Kinetis Design Studio (KDS). Freescale Freedom development platform: [FRDM-K... | element14 I strongly recommend you to start following those steps to properly setup the tool and the OpenSDAv2 interface embedded in the new Freedom and TWR boards. Happy Programming Greg General Re: Toggling the FRDM-K64F RGB LED using interrupts in Kinetis Design Studio (KDS) Ok Got it. Didn't realise they were different. Many thanks. Really appreciate your blogs and the examples you are posting. Re: Toggling the FRDM-K64F RGB LED using interrupts in Kinetis Design Studio (KDS) Hi Neil, it looks you have created an SDK project in the wizard with PEx. the thing is this: with using the SDK, it is not possible to use any of the LDD projects. You only can use components designed for the SDK. There is no easy way to convert an SDK project into a 'non-SDK' project, as there are a lot of internal dependencies. If you want to use LDD or any 'non-SDK' projects with the Kinetis SDK, then make sure that SDK is *disabled*: Erich Re: Toggling the FRDM-K64F RGB LED using interrupts in Kinetis Design Studio (KDS) Hello Eric Thanks - appreciate the support and happy to say what I'm finding. I've come up with another issue - I don't know if I'm missing something really basic. I went back into start another project - my aim is to test the USB HOST MSC writing to a USB Stick. Following the tutorial, exactly as before, as soon as I add the first pin to the project Bit1:BitIO_LDD it is marked with a red x - and the tab Problems has "Errors: ERROR: This component is not supported in Kinetis SDK project mode. " I seem to have upset the Processor Expert somehow and don't seem to be able to get it back. I've tried a number of different approach to just generating one bit correctly, closing the project,rebooting my machine to make sure all processors are dead, but it isn't working. I've closed all unrelated projects. I would add a snapshot jpg but, its disabled in this editor. So I must be doing something really basic wrong but I can't figure it out. Should I switch workspaces? thanks for any help Re: Toggling the FRDM-K64F RGB LED using interrupts in Kinetis Design Studio (KDS) Hi Neil, thanks for posting the solution! I would not have thought that the virus scanner could have caused this. But indeed, I had seen myself other cases where his happened. thanks again, Erich Re: Toggling the FRDM-K64F RGB LED using interrupts in Kinetis Design Studio (KDS) Hi Erich Thanks again for input - I got it working, For anybody else what I did was I have the USB on my Win8.1 connected to the USB microAB on the FRDM-K64F In the Control Panel - Device Manager - USB Controller - it shows "J-Link OB CDC" On the FRDM-K64F that was presetup with mbed boot, I held the reset down and pushed in the USBmicroA connector, Then dragged and dropped the "JLink_OpenSDA_V2.bin"  (JLink_OpenSDA_V2_1.bin is incompatible) then I setup the debugger for Segger and pressed the Debug button. It ran until it hit main() and then stopped then pressF8 to resume. The 2nd time I ran it,  my AVG AntiVirus 2014  kicked and removed the Segger J-Link detecting that Segger "unknown" was accessing the internet I guess "Unknown is a software that installs an additional program to display and/or download to your device unwanted advertisements, toolbars and may be considered privacy-invasive. These kinds of threats, called Adware, track your computer's web usage to feed you undesired ad pop-ups and some might even hijack your browser start or search pages,redirecting you to a different site or search engine than the one you had originally configured.Unknown is currently ranked 4303 in the world of online malware" It referenced  FreescaleKDS_1.1.0\Segger\JLinkGDBServerCL.exe http://www.avgthreatlabs.com/virus-and-malware-information/info/unknown/?name=Unknown&utm_source=TDPU&utm_medium=IDP&CTR… So it looks like JLinkGDBServerCL is advertising its being used. After restoring  JLinkGDBServerCL, and next time it happened marking it as safe, it continued, and seems to be working Re: Toggling the FRDM-K64F RGB LED using interrupts in Kinetis Design Studio (KDS) Hi Neil, It seems to me that you try to talk with OpenOCD to a Segger firmware/probe. This will not work. Have a look at GDB Debugging with Kinetis Design Studio. You write >>for FRDM-K64F BOOTLOADER  it takes JLink_OpenSDA_V2.bin The it should enumerate as a Segger J-Link, and then you need to talk to it with the Segger interface. Erich Re: Toggling the FRDM-K64F RGB LED using interrupts in Kinetis Design Studio (KDS) Hi Erich Thanks for info. I can't get the Debugger/USB to work with the FRDM-K64F.even though I can get OpenOCD.exe to talk to the FRDM-K64F/USB with the "mbed composite driver" installed. I wonder if there is tutorial somewhere as the configuration seems to be complex. I am finding /scripts/target/k64.cfg suggesting that it is supposed to work. There doesn't appear to be an explanation of how to configure GDB OpenOCD Debugging/USB to work with the FRDM-K64F Much appreciate any insights Summary for FRDM-K64F BOOTLOADER  it takes JLink_OpenSDA_V2.bin   or possiblyCMIS mbded (from http://mbed.org/handbook/Firmware-FRDM-K64F) Reading from Win8.1 device manager I see OpenSDA_V2.bin creates  USB controller entry "J-Link OB CDC" that OpenOCD doesn't see to find 20140530_k20dx128_k64f_if_mbed.bin  (rev0203)  create USB Controller entry "mbed Composite Device" that OpenOCD can find OpenOcd needs to set some configuration options From KDS - select icon drop down Debug Configuration, then select GDB OpenOCD Deubgging and previously created "K64_RGB_Switch_Int_Debug - tab.Debugger, Input "Configuration Options" of which I'm trying -f ${openocd_path}/scripts/target/k64.cfg (from \Freescale\KDS_1.1.0\openocd\scripts\target   ) When I launch the debugger (for both OpenSDA-V2 and mbed) I get -------------------- Error in final launch sequence Failed to execute MI command: -target-select remote localhost:3333 Error message from debugger back end: localhost:3333: The system tried to join a drive to a directory on a joined drive. localhost:3333: The system tried to join a drive to a directory on a joined drive. ------------------------- with OpenOcd_v2.bin in the FRDM-K64 if I run C:\n\bin\Freescale\KDS_1.1.0\openocd\bin\openocd -c Open On-Chip Debugger 0.8.0-dev-00003-g0c51359 (2014-07-25-13:18) C:\n\bin\Freescale\KDS_1.1.0\openocd\bin\openocd: option requires an argument --c Runtime Error: embedded:startup.tcl:47: Can't find openocd.cfg in procedure 'script' at file "embedded:startup.tcl", line 47 Info : No configuration files specified defaulting to kinetis.cfg Info : only one transport option; autoselect 'cmsis-dap' Error: unable to open CMSIS-DAP device Error: unable to init CMSIS-DAP driver Error: Error selecting 'cmsis-dap' as transport Runtime Error: C:/n/bin/Freescale/KDS_1.1.0/openocd/bin/..//scripts/kinetis.cfg: 3: in procedure 'script' at file "embedded:startup.tcl", line 58 in procedure 'interface' called at file "C:/n/bin/Freescale/KDS_1.1.0/openocd/bi n/..//scripts/kinetis.cfg", line 3 C:\Users\neilh77> ------------------------------------------------------------------------- with mbed  Composite Device C:\n\bin\Freescale\KDS_1.1.0\openocd\bin\openocd -c Open On-Chip Debugger 0.8.0-dev-00003-g0c51359 (2014-07-25-13:18) C:\n\bin\Freescale\KDS_1.1.0\openocd\bin\openocd: option requires an argument --c Runtime Error: embedded:startup.tcl:47: Can't find openocd.cfg in procedure 'script' at file "embedded:startup.tcl", line 47 Info : No configuration files specified defaulting to kinetis.cfg Info : only one transport option; autoselect 'cmsis-dap' Info : CMSIS-DAP: SWD  Supported Info : CMSIS-DAP: Interface Initialised (SWD) Info : add flash_bank kinetis kinetis.flash cortex_m reset_config sysresetreq adapter speed: 1000 kHz Info : CMSIS-DAP: FW Version = 1.0 Info : SWCLK/TCK = 0 SWDIO/TMS = 1 TDI = 0 TDO = 0 nTRST = 0 nRESET = 1 Info : DAP_SWJ Sequence (reset: 50+ '1' followed by 0) in procedure 'init' C:\Users\neilh77> --------------------------------------- Re: Toggling the FRDM-K64F RGB LED using interrupts in Kinetis Design Studio (KDS) Hi Neil, The Segger OpenSDA v2.1 will not work on your FRDM-K64F, unless you change the bootloader. Some details about OpenSDA v2.0 and V2.1 can be found on the bottom of FRDM-K22F: Debugging with Segger J-Link OpenSDAv2.1 Firmware The OpenSDAv2.1 is only on the FRDM-K22F board (see above article). On the FRDM-K64F you can load the Segger OpenSDAv2.0 application. See Segger J-Link Firmware for OpenSDAv2 | MCU on Eclipse Re: Toggling the FRDM-K64F RGB LED using interrupts in Kinetis Design Studio (KDS) Absolutely Excellent tutorial on how to drive the KDS. Thankyou for posting it. However I've run into problems with the Segger J-LInk SEGGER - The Embedded Experts - OpenSDA / OpenSDA V2 there are two versions now 2_0.sda and 2_1.bin and they aren't explained. Neither works on my FRDM K64F board. I've been spinning my wheels trying different alternatives for the last 4hours. So I wonder if anybody can give some hints. Timeline: On a newly received Win8.1 I've got the KDS1.1.0 release downloaded, and built an empty module by specify the board FRDM K64F Then discovered the excellent Bheema tutorial above - but no place to comment there - so trying here. Created the project from the processor, then built it- but when came to debug it - it said "no emulators connected via USB" I had the mbed serial and composite device loaded. Followed Bheemas blog on OpenSDA installed _JLink_V490a.exe which has the "USB Driver for J-Link" and "USB Driver for J-Link with Virtual COM Port" loading the Segger OpenSDA V2 - and V2.1and dropped them into the BOOTLOADER -  nothing works after power cycling the FRDK64F board. The board does reliable come to BOOTLOADER (E:) fortunately. I've tried rebooting my win8.1 system to make sure drivers loaded, but nothing.
查看全文
36 V eXtreme Switch Tower System Module - Demo Explore MC06XSD200, MC10XSD200, MC16XSD200 and MC50XS4200 eXtreme switch products that are showcased using the Tower System for industrial lighting and motor applications. NXP's family of intelligent, dual high side eXtreme switches for 36 V systems offers devices with current capability ranging from one to 12 A DC that are fully compatible in footprint and software within the PQFN sub family. Each output can be programmed to be used for any kind of loads, including lamps, LEDs, motors or solenoids. This allows customers to design a flexible module which can become specific and optimized for a given application through software. NXP's 36 V eXtreme switch solution provides robust design, intelligence and safety needed for industrial applications up to 36 V supply voltage. With increased integration, the switch drives lighter-weight, smaller systems and a lower component count.       Features Up to 12 A steady-state current per channel Separate bulb and DC motor latched over-current handling Sleep mode with minimal supply current (< 10 µA @ 24 V) Individually programmable internal/external PWM clock signals Overcurrent, short-circuit, and overtemperature protection with programmable auto-retry functions Accurate temperature and current sensing Open-load detection (channel in OFF and ON state), also for LED applications (7.0 mA typ.) Normal operating range: 8.0 - 36 V, extended range: 6.0 - 58 V 3.3 V and 5.0 V compatible 16-bit SPI port for device control, configuration, and diagnostics at rates up to 8.0 MHz Compatible PCB foot print and SPI software driver among the family These products are included in NXP's Product Longevity Program with assured supply for a minimum of 15 years after launch Featured NXP Products MC06XSD200: MC06XSD200, Dual 6.0 mOhm High Side Switch - Data Sheet MC10XSD200: MC10XSD200, Dual 10 mOhm High Side Switch - Data Sheet MC16XSD200: MC16XSD200, Dual 16 mOhm High Side Switch - Data Sheet MC50XS4200   Industrial
查看全文
移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable real-time Linux Xenomai on i.MX ARM64 Platform)     Xenomai is real-time framework, which can run seamlessly side-by-side Linux as a co-kernel system, or natively over mainline Linux kernels (with or without PREEMPT-RT patch). The dual kernel nicknamed Cobalt, is a significant rework of the Xenomai 2.x system. Cobalt implements the RTDM specification for interfacing with real-time device drivers. The native linux version, an enhanced implementation of the experimental Xenomai/SOLO work, is called Mercury. In this environment, only a standalone implementation of the RTDM specification in a kernel module is required, for interfacing the RTDM-compliant device drivers with the native kernel. You can get more detailed information from Home · Wiki · xenomai / xenomai · GitLab       I have ported xenomai 3.1 to i.MX Yocto 4.19.35-1.1.0, and currently support ARM64 and test on i.MX8MQ EVK board. I did over night test( 5 real-time threads + GPU SDK test case) and stress test by tool stress-ng on i.MX8MQ EVK board. It looks lile pretty good. Current version (20200730) also support i.MX8MM EVK.     You need git clone https://gitee.com/zxd2021-imx/xenomai-arm64.git, and git checkout xenomai-4.19.35-1.1.0-20200818 (which inlcudes all patches and bb file) and add the following variable in conf/local.conf before build xenomai by command bitbake xenomai.  XENOMAI_KERNEL_MODE = "cobalt"  PREFERRED_VERSION_linux-imx = "4.19-${XENOMAI_KERNEL_MODE}" IMAGE_INSTALL_append += " xenomai" or XENOMAI_KERNEL_MODE = "mercury" PREFERRED_VERSION_linux-imx = "4.19-${XENOMAI_KERNEL_MODE}" IMAGE_INSTALL_append += " xenomai" If XENOMAI_KERNEL_MODE = "cobalt", you can build dual kernel version. And If XENOMAI_KERNEL_MODE = "mercury", it is single kernel with PREEMPT-RT patch. The following is test result by the command (/usr/xenomai/demo/cyclictest -p 99 -t 5 -m -n -i 1000  -l 100000😞 //Over normal Linux kernel without GPU SDK test case T: 0 ( 4220) P:99 I:1000 C: 100000 Min: 7 Act: 10 Avg: 9 Max: 23 T: 1 ( 4221) P:99 I:1500 C: 66672 Min: 7 Act: 10 Avg: 10 Max: 20 T: 2 ( 4222) P:99 I:2000 C: 50001 Min: 7 Act: 12 Avg: 10 Max: 81 T: 3 ( 4223) P:99 I:2500 C: 39998 Min: 7 Act: 11 Avg: 10 Max: 29 T: 4 ( 4224) P:99 I:3000 C: 33330 Min: 7 Act: 13 Avg: 10 Max: 26 //Over normal Linux kernel with GPU SDK test case T: 0 ( 4177) P:99 I:1000 C: 100000 Min: 7 Act: 10 Avg: 11 Max: 51 T: 1 ( 4178) P:99 I:1500 C: 66673 Min: 7 Act: 12 Avg: 10 Max: 35 T: 2 ( 4179) P:99 I:2000 C: 50002 Min: 7 Act: 12 Avg: 11 Max: 38 T: 3 ( 4180) P:99 I:2500 C: 39999 Min: 7 Act: 12 Avg: 11 Max: 42 T: 4 ( 4181) P:99 I:3000 C: 33330 Min: 7 Act: 12 Avg: 11 Max: 36 //Cobalt with stress-ng --cpu 4 --io 2 --vm 1 --vm-bytes 512M --timeout 600s --metrics-brief T: 0 ( 4259) P:50 I:1000 C:3508590 Min:      0 Act:    0 Avg:    0 Max:      42 T: 1 ( 4260) P:50 I:1500 C:2338831 Min:      0 Act:    1 Avg:    0 Max:      36 T: 2 ( 4261) P:50 I:2000 C:1754123 Min:      0 Act:    1 Avg:    1 Max:      42 T: 3 ( 4262) P:50 I:2500 C:1403298 Min:      0 Act:    1 Avg:    1 Max:      45 T: 4 ( 4263) P:50 I:3000 C:1169415 Min:      0 Act:    1 Avg:    1 Max:      22 //Cobalt without GPU SDK test case T: 0 ( 4230) P:50 I:1000 C: 100000 Min: 0 Act: 0 Avg: 0 Max: 4 T: 1 ( 4231) P:50 I:1500 C:   66676 Min: 0 Act: 1 Avg: 0 Max: 4 T: 2 ( 4232) P:50 I:2000 C:   50007 Min: 0 Act: 1 Avg: 0 Max: 8 T: 3 ( 4233) P:50 I:2500 C:   40005 Min: 0 Act: 1 Avg: 0 Max: 3 T: 4 ( 4234) P:50 I:3000 C:   33338 Min: 0 Act: 1 Avg: 0 Max: 5 //Cobalt with GPU SDK test case T: 0 ( 4184) P:99 I:1000 C:37722968 Min: 0 Act: 1 Avg: 0 Max: 24 T: 1 ( 4185) P:99 I:1500 C:25148645 Min: 0 Act: 1 Avg: 0 Max: 33 T: 2 ( 4186) P:99 I:2000 C:18861483 Min: 0 Act: 1 Avg: 0 Max: 22 T: 3 ( 4187) P:99 I:2500 C:15089187 Min: 0 Act: 1 Avg: 0 Max: 23 T: 4 ( 4188) P:99 I:3000 C:12574322 Min: 0 Act: 1 Avg: 0 Max: 29 //Mercury without GPU SDK test case T: 0 ( 4287) P:99 I:1000 C:1000000 Min: 6 Act: 7 Avg: 7 Max: 20 T: 1 ( 4288) P:99 I:1500 C:  666667 Min: 6 Act: 9 Avg: 7 Max: 17 T: 2 ( 4289) P:99 I:2000 C:  499994 Min: 6 Act: 8 Avg: 7 Max: 24 T: 3 ( 4290) P:99 I:2500 C:  399991 Min: 6 Act: 9 Avg: 7 Max: 19 T: 4 ( 4291) P:99 I:3000 C:  333322 Min: 6 Act: 8 Avg: 7 Max: 21 //Mercury with GPU SDK test case T: 0 ( 4222) P:99 I:1000 C:1236790 Min: 6 Act: 7 Avg: 7 Max: 55 T: 1 ( 4223) P:99 I:1500 C:  824518 Min: 6 Act: 7 Avg: 7 Max: 44 T: 2 ( 4224) P:99 I:2000 C:  618382 Min: 6 Act: 8 Avg: 8 Max: 88 T: 3 ( 4225) P:99 I:2500 C:  494701 Min: 6 Act: 7 Avg: 8 Max: 49 T: 4 ( 4226) P:99 I:3000 C:  412247 Min: 6 Act: 7 Avg: 8 Max: 53 //////////////////////////////////////// Update for Yocto L5.4.47 2.2.0  /////////////////////////////////////////////////////////// New release for Yocto release L5.4.47 2.2.0 and it supports i.MX8M series (8MQ,8MM,8MN and 8MP). You need to git clone https://gitee.com/zxd2021-imx/xenomai-arm64.git,  and git checkout xenomai-5.4.47-2.2.0. You need to add the following variable in conf/local.conf before build xenomai by command bitbake imx-image-multimedia.  XENOMAI_KERNEL_MODE = "cobalt"  PREFERRED_VERSION_linux-imx = "5-${XENOMAI_KERNEL_MODE}" IMAGE_INSTALL_append += " xenomai" or XENOMAI_KERNEL_MODE = "mercury" PREFERRED_VERSION_linux-imx = "5-${XENOMAI_KERNEL_MODE}" IMAGE_INSTALL_append += " xenomai" //////////////////////////////////////// Update for Yocto L5.4.70 2.3.0  /////////////////////////////////////////////////////////// New release  for Yocto release L5.4.70 2.3.0 and it supports i.MX8M series (8MQ,8MM,8MN and 8MP) and i.MX8QM/QXP. You need to git clone https://gitee.com/zxd2021-imx/xenomai-arm64.git and git checkout xenomai-5.4.70-2.3.0. Updating: 1, Support i.MX8QM and i.MX8QXP 2, Fix altency's the issue which uses legacy API to get time //////////////////////////////////////// update for Yocto L5.4.70 2.3.2  /////////////////////////////////////////////////////////// New release for Yocto release L5.4.70 2.3.2. You need to git clone https://gitee.com/zxd2021-imx/xenomai-arm64.git, and git checkout xenomai-5.4.70-2.3.2. Updating: 1, Enable Xenomai RTDM driver in Linux Kernel 2, Currently CAN, UART, GPIO,  SPI and Ethernet (in debug for RTNet)  are added in Xenomai. 3, Add KERNEL_DEVICETREE += " freescale/imx8mp-rt-evk.dtb " in sources/meta-imx/meta-bsp/conf/machine/imx8mpevk.conf to enable relative device in Xenomai domain, for example rt-imx8mp-flexcan. //////////////////////////////////////// Update for Yocto L5.4.70 2.3.4  /////////////////////////////////////////////////////////// New release for Yocto release L5.4.70 2.3.4. You need to git clone  https://gitee.com/zxd2021-imx/xenomai-arm64.git and git checkout xenomai-5.4.70-2.3.4. Updating: 1, Enable RTNet FEC driver 2, Currently CAN, UART, GPIO,  SPI and Ethernet ( FEC Controller)  are added in Xenomai. 3, Add KERNEL_DEVICETREE += " freescale/imx8mp-rt-evk.dtb " in sources/meta-imx/meta-bsp/conf/machine/imx8mpevk.conf and KERNEL_DEVICETREE += " freescale/imx8mm-rt-ddr4-evk.dtb " in sources/meta-imx/meta-bsp/conf/machine/imx8mmddr4evk.conf to enable rt_fec device in Xenomai domain. Verifying the network connection by RTnet Ping Between i.MX8M Mini EVK and i.MX8M Plus EVK a, Setup test environment 1, Connect ENET1 of  i.MX8M Plus EVK (used as a master) and  ENET of i.MX8M Mini EVK (used as a slave) of  to a switch or hub 2, Modify /usr/xenomai/etc/rtnet.conf in i.MX8M Plus EVK board as the following: @@ -16,7 +16,7 @@ MODULE_EXT=".ko" # RT-NIC driver -RT_DRIVER="rt_eepro100" +RT_DRIVER="rt_fec" RT_DRIVER_OPTIONS="" # PCI addresses of RT-NICs to claim (format: 0000:00:00.0) @@ -30,8 +30,8 @@ REBIND_RT_NICS="" # The TDMA_CONFIG file overrides these parameters for masters and backup # masters. Leave blank if you do not use IP addresses or if this station is # intended to retrieve its IP from the master based on its MAC address. -IPADDR="10.0.0.1" -NETMASK="" +IPADDR="192.168.100.101" +NETMASK="255.255.255.0" # Start realtime loopback device ("yes" or "no") RT_LOOPBACK="yes" @@ -65,7 +65,7 @@ TDMA_MODE="master" # Master parameters # Simple setup: List of TDMA slaves -TDMA_SLAVES="10.0.0.2 10.0.0.3 10.0.0.4" +TDMA_SLAVES="192.168.100.102" # Simple setup: Cycle time in microsecond TDMA_CYCLE="5000" 3, Modify /usr/xenomai/etc/rtnet.conf in i.MX8M Mini EVK board as the following: @@ -16,7 +16,7 @@ MODULE_EXT=".ko" # RT-NIC driver -RT_DRIVER="rt_eepro100" +RT_DRIVER="rt_fec" RT_DRIVER_OPTIONS="" # PCI addresses of RT-NICs to claim (format: 0000:00:00.0) @@ -30,8 +30,8 @@ REBIND_RT_NICS="" # The TDMA_CONFIG file overrides these parameters for masters and backup # masters. Leave blank if you do not use IP addresses or if this station is # intended to retrieve its IP from the master based on its MAC address. -IPADDR="10.0.0.1" -NETMASK="" +IPADDR="192.168.100.102" +NETMASK="255.255.255.0" # Start realtime loopback device ("yes" or "no") RT_LOOPBACK="yes" @@ -59,13 +59,13 @@ STAGE_2_CMDS="" # TDMA mode of the station ("master" or "slave") # Start backup masters in slave mode, it will then be switched to master # mode automatically during startup. -TDMA_MODE="master" +TDMA_MODE="slave" # Master parameters # Simple setup: List of TDMA slaves -TDMA_SLAVES="10.0.0.2 10.0.0.3 10.0.0.4" +TDMA_SLAVES="192.168.100.102" # Simple setup: Cycle time in microsecond TDMA_CYCLE="5000" 4, rename imx8mm-rt-ddr4-evk.dtb to imx8mm-ddr4-evk.dtb in /run/media/mmcblk1p1,  rename imx8mp-rt-evk.dtb to imx8mp-evk.dtb in /run/media/mmcblk1p1, and reboot board. 5, Run the below command on i.MX8M Mini EVK board. cd /usr/xenomai/sbin/ ./rtnet start & 5, Run the below command on i.MX8M Plus EVK board. cd /usr/xenomai/sbin/ ./rtnet start & When you see the log (rt_fec_main 30be0000.ethernet (unnamed net_device) (uninitialized): Link is Up - 100Mbps/Full - flow control rx/tx) and you can run command "./rtroute" to check route table if the slave IP (192.168.100.102) is in route.. b, Verify the network connection using the command below: ./rtping -s 1024 192.168.100.102 //////////////////////////////////////// Update for Yocto L5.10.52 2.1.0  /////////////////////////////////////////////////////////// New release for Yocto release L5.10.52 2.1.0. You need to git clone https://gitee.com/zxd2021-imx/xenomai-arm64.git and git checkout xenomai-5.10.52-2.1.0. Updating: 1, Upgrade Xenomai to v3.2 2, Enable Dovetail instead of ipipe. Copy xenomai-arm64 to /sources/meta-imx/meta-bsp/recipes-kernel, and add the following variable in conf/local.conf before build Image with xenomai enable by command bitbake imx-image-multimedia. XENOMAI_KERNEL_MODE = "cobalt" IMAGE_INSTALL_append += " xenomai" or XENOMAI_KERNEL_MODE = "mercury" IMAGE_INSTALL_append += " xenomai" Notice: If XENOMAI_KERNEL_MODE = "cobalt", you can build dual kernel version. And If XENOMAI_KERNEL_MODE = "mercury", it is single kernel with PREEMPT-RT patch.  Latency testing of Xenomai3.2+Dovetail with isolating CPU 2,3 ( Xenomai 3.2 on 8MM DDR4 EVK with GPU test case (GLES2/S08_EnvironmentMappingRefraction_Wayland) + iperf3 + 2 ping 65000 size + stress-ng --cpu 2 --io 2 --vm 1 --vm-bytes 256M --metrics-brief )😞 The following is test result by the command (/usr/xenomai/demo/cyclictest -a 2,3 -p 50 -t 5 -m -n -i 1000) root@imx8mmddr4evk:~# /usr/xenomai/demo/cyclictest -a 2,3 -p 50 -t 5 -m -n -i 1000 # /dev/cpu_dma_latency set to 0us policy: fifo: loadavg: 5.96 6.04 6.03 7/155 1349 T: 0 ( 615) P:50 I:1000 C:63448632 Min: 0 Act: 0 Avg: 0 Max: 55 T: 1 ( 616) P:50 I:1500 C:42299087 Min: 0 Act: 0 Avg: 1 Max: 43 T: 2 ( 617) P:50 I:2000 C:31724315 Min: 0 Act: 0 Avg: 1 Max: 51 T: 3 ( 618) P:50 I:2500 C:25379452 Min: 0 Act: 0 Avg: 1 Max: 53 T: 4 ( 619) P:50 I:3000 C:21149543 Min: 0 Act: 0 Avg: 1 Max: 47 //////////////////////////////////////// Update for Yocto L5.10.72 2.2.2  /////////////////////////////////////////////////////////// New release for Yocto release L5.10.72 2.2.2. You need to git clone https://gitee.com/zxd2021-imx/xenomai-arm64.git and git checkout xenomai-5.10.72-2.2.2. Updating: 1, Upgrade Xenomai to v3.2.1 Copy xenomai-arm64 to /sources/meta-imx/meta-bsp/recipes-kernel, and add the following variable in conf/local.conf before build Image with xenomai enable by command bitbake imx-image-multimedia. XENOMAI_KERNEL_MODE = "cobalt" IMAGE_INSTALL_append += " xenomai" or XENOMAI_KERNEL_MODE = "mercury" IMAGE_INSTALL_append += " xenomai" //////////////////////////////////////// Update for Yocto L5.15.71 2.2.0  /////////////////////////////////////////////////////////// New release for Yocto release L5.15.71 2.2.0. You need to git clone https://gitee.com/zxd2021-imx/xenomai-arm64.git and git checkout xenomai-5.15.71-2.2.0. Updating: 1, Upgrade Xenomai to v3.2.2 Copy xenomai-arm64 to /sources/meta-imx/meta-bsp/recipes-kernel, and add the following variable in conf/local.conf before build Image with xenomai enable by command bitbake imx-image-multimedia. XENOMAI_KERNEL_MODE = "cobalt" IMAGE_INSTALL:append += " xenomai" or XENOMAI_KERNEL_MODE = "mercury" IMAGE_INSTALL:append += " xenomai" //////////////////////////////////////// Update for Yocto L6.1.55 2.2.0  /////////////////////////////////////////////////////////// New release for Yocto release L6.1.55 2.2.0. You need to git clone https://gitee.com/zxd2021-imx/xenomai-arm64.git recipes-rtlinux-xenomai -b Linux-6.1.x Updating: 1, Upgrade Xenomai to v3.2.4 and support i.MX93 2, Enable EVL (aka Xenomai 4) for i.MX93 and legacy i.MX(6/7D/8X/8M) Copy recipes-rtlinux-xenomai to /sources/meta-imx/meta-bsp/, and add the following variable in conf/local.conf before build Image with xenomai enable by command bitbake imx-image-multimedia. XENOMAI_KERNEL_MODE = "cobalt" IMAGE_INSTALL:append += " xenomai" or XENOMAI_KERNEL_MODE = "mercury" IMAGE_INSTALL:append += " xenomai" or XENOMAI_KERNEL_MODE = "evl" IMAGE_INSTALL:append += " libevl" //////////////////////////////////////// Update for Yocto L6.6.52 2.2.0  /////////////////////////////////////////////////////////// New release for Yocto release L6.6.52 2.2.0. You need to git clone https://gitee.com/zxd2021-imx/xenomai-arm64.git recipes-rtlinux-xenomai -b Linux-6.6.52 Updating: 1, Upgrade Xenomai to v3.3 and support i.MX91/93/95 2, Upgrade EVL (aka Xenomai 4),  libevl to r50 and support i.MX91/93/95 Copy recipes-rtlinux-xenomai to /sources/meta-imx/meta-bsp/, and add the following variable in conf/local.conf before build Image with xenomai enable by command bitbake imx-image-multimedia. XENOMAI_KERNEL_MODE = "cobalt" IMAGE_INSTALL:append += " xenomai" or XENOMAI_KERNEL_MODE = "mercury" IMAGE_INSTALL:append += " xenomai" or XENOMAI_KERNEL_MODE = "evl" IMAGE_INSTALL:append += " libevl" i.MX 8M | i.MX 8M Mini | i.MX 8M Nano Linux Yocto Project 回复: 移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable real-time Linux Xenomai on i.MX ARM64 Platform) Hi @xiaodong_zhang thank answer,I'll try it myself thank very much Re: 移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable real-time Linux Xenomai on i.MX ARM64 Platform) Hi @1234    It looks like that you use "cobalt"  as XENOMAI_KERNEL_MODE configuration according to your log ([ 0.626010] [Xenomai] Cobalt v3.1). I only try stressng with xenomai enable, and never touch memtester. BTW, I don't know about xenomai 3.1 for buildroot and I just start this work from xenomai 3.1 . 回复: 移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable real-time Linux Xenomai on i.MX ARM64 Platform) Hi @xiaodong_zhang  Thank you for your post. i try to use buildroot to build, but it only supply to xenomai 3.0.10 Have others can help to supply , xenomai 3.1 package for buildroot or patch xenomai 3.0.10 not supply arm64 回复: 移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable real-time Linux Xenomai on i.MX ARM64 Platform) xiaodong zhang thank you for your response how can i get my configuration XENOMAI_KERNEL_MODE  i jast know  0.611931] [Xenomai] scheduling class idle registered. [ 0.614334] [Xenomai] scheduling class rt registered. [ 0.619478] I-pipe: head domain Xenomai registered. [ 0.626010] [Xenomai] Cobalt v3.1 Can I ask, have you ever tried usred memtester to do a stress test? Re: 移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable real-time Linux Xenomai on i.MX ARM64 Platform) hi @1234   Can you check your configuration XENOMAI_KERNEL_MODE ? And /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor on your board? Re: 移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable real-time Linux Xenomai on i.MX ARM64 Platform) Hi @Ruman     You can find imx8mp-rt-evk.dts in https://gitee.com/zxd2021-imx/xenomai-arm64/blob/Linux-5.4.x/files/0005-Enable-xenomai-rtdm-driver.patch and imx8mm-rt-ddr4-evk.dts in https://gitee.com/zxd2021-imx/xenomai-arm64/blob/Linux-5.4.x/files/0006-Port-Linux-drivers-fec_main.c-to-RTNet-FEC-driver.patch . Re: 移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable real-time Linux Xenomai on i.MX ARM64 Platform) Hi @xiaodong_zhang  Thank you for your post. Following your guide, I've successfully installed Xenomai on Linux version 4.14.78. I am currently in the process of enabling the RTNet FEC driver and have adhered to the instructions provided. Specifically, I added the line KERNEL_DEVICETREE += "freescale/imx8mp-rt-evk.dtb" to the file sources/meta-imx/meta-bsp/conf/machine/imx8mpevk.conf and similarly, KERNEL_DEVICETREE += "freescale/imx8mm-rt-ddr4-evk.dtb" to sources/meta-imx/meta-bsp/conf/machine/imx8mmddr4evk.conf to activate the rt_fec device within the Xenomai environment. However, I have encountered a snag in my Yocto project; the corresponding .dts files seem to be missing from the freescale directory. Could you please direct me to where I might find the imx8mm-rt-ddr4-evk.dts and imx8mp-rt-evk.dts files? I apologize if this question has already been addressed previously. Your assistance is greatly appreciated. Re: 移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable Xenomai on i.MX ARM64 Platform) Hi @xiaodong_zhang , I was apply successfully the xenomai_v3.1 xenomai-5.4.70-2.3.4 patch to my board. I very happy about that. Thank you for your post. The solution is installing the board support package nearest with 5.4.70 kernel version. In my IMX8 board, the suitable kernel version is 5.4.77. After rebuild yocto, every thing work fine. Re: 移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable Xenomai on i.MX ARM64 Platform) @HieuNong good news. 👍 Re: 移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable Xenomai on i.MX ARM64 Platform) Hi @xiaodong_zhang , Thank you for you comment, exactly, it relate to driver and the linux kernel version. I was trying to port the ipipe patched again, by download it from https://source.denx.de/Xenomai/ipipe-arm64/-/tree/ipipe/5.4.y/Documentation/admin-guide?ref_type=heads That is latest version work with linux kernel 5.4.180, even though it's not for 5.4.193 but it's still working with my board. I was pass the panic kernel issue, and the cyclelic test is pretty good. But, i still has the issue with driver, i will review it and modify the device tree or RTDM driver suitable with my board. Thank you very much. Re: 移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable Xenomai on i.MX ARM64 Platform) Hi @HieuNong    BTW, I saw your kernel version is 5.4.193, not 5.4.70 in my release package. Is some issues introduced when porting to 5.4.193? Would you double check it? Re: 移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable Xenomai on i.MX ARM64 Platform) Hi @HieuNong     I saw your board is Toradex Apalis not nxp mek board, so I suggest you may check device driver used by Apalis board if these drivers meet ipipe requirement. You can refer mek driver to modify your driver. Re: 移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable Xenomai on i.MX ARM64 Platform) Hi @xiaodong_zhang , After investigating, after i retry to build kernel with your batch, flash success to apalis imx8 board, with cobalt kernel, but when i run cyclelic_test, the kernel become to pannic. root@apalis-imx8-07106242:~# /usr/xenomai/demo/cyclictest -p 99 -t 5 -m -n -i 1000 -l 100000 # /dev/cpu_dma_latency set to 0us policy: fifo: loadavg: 0.00 0.01 0.00 2/233 834 y: 0 ( 830) P:99 I:1000 C: 0 Min:1000[0 0 03 A0c1t.:3 7 8 306 5A]v gK:e r n e l0 pMaanxi:c s nTc:i n1g 😞 k e8r3n1e)l Ps:t9a9c kI :o1v5e0r0f lCo:w 0 Min:1000000 Act: 0 Avg: 0 Max: 0 T: 2 ( 832) P:99 I:2000 C: 0 Min:1000000 Act: 0 Avg: 0 Max: 0 T: 3 ( 833) P:99 I:2500 C: 0 Min:1000000 Act: 0 Avg: 0 Max: 0 T: 4 ( 0) P:99 I:3000 C: 0 Min:1000000 Act: 0 Avg: 0 Max: 0 [ 301.415748] CPU: 4 PID: 342 Comm: sugov:4 Tainted: G O 5.4.193-cobalt-5.7.3-devel1 [ 301.426271] Hardware name: Toradex Apalis iMX8QP V1.1 on Apalis Evaluation Board (DT) [ 301.434098] I-pipe domain: Xenomai [ 301.437496] Call trace: [ 301.439940] dump_backtrace+0x0/0x170 [ 301.443604] show_stack+0x14/0x20 [ 301.446916] dump_stack+0xe4/0x12c [ 301.450321] panic+0x154/0x318 [ 301.453380] nmi_panic+0x84/0x88 [ 301.456609] handle_bad_stack+0x108/0x130 [ 301.460614] __bad_stack+0x90/0x94 [ 301.464011] xnthread_relax+0x7c/0x248 [ 301.467758] ipipe_trap_hook+0xc0/0x270 [ 301.471598] __ipipe_notify_trap+0x84/0xd8 [ 301.475700] do_page_fault+0x30/0x4d8 [ 301.479362] do_translation_fault+0x50/0x58 [ 301.483540] do_mem_abort+0x44/0x148 [ 301.487110] el1_da+0x1c/0x90 [ 301.490074] xnthread_relax+0x7c/0x248 [ 301.493818] ipipe_trap_hook+0xc0/0x270 [ 301.497649] __ipipe_notify_trap+0x84/0xd8 [ 301.501741] do_page_fault+0x30/0x4d8 [ 301.505398] do_translation_fault+0x50/0x58 [ 301.509576] do_mem_abort+0x44/0x148 [ 301.513147] el1_da+0x1c/0x90 [ 301.516110] xnthread_relax+0x7c/0x248 [ 301.519855] ipipe_trap_hook+0xc0/0x270 [ 301.523686] __ipipe_notify_trap+0x84/0xd8 [ 301.527777] do_page_fault+0x30/0x4d8 [ 301.531435] do_translation_fault+0x50/0x58 [ 301.535613] do_mem_abort+0x44/0x148 [ 301.539183] el1_da+0x1c/0x90 [ 301.542147] xnthread_relax+0x7c/0x248 [ 301.545891] ipipe_trap_hook+0xc0/0x270 [ 301.549722] __ipipe_notify_trap+0x84/0xd8 [ 301.553814] do_page_fault+0x30/0x4d8 [ 301.557471] do_translation_fault+0x50/0x58 [ 301.561649] do_mem_abort+0x44/0x148 [ 301.565219] el1_da+0x1c/0x90 [ 301.568183] xnthread_relax+0x7c/0x248 [ 301.571928] ipipe_trap_hook+0xc0/0x270 [ 301.575759] __ipipe_notify_trap+0x84/0xd8 [ 301.579850] do_page_fault+0x30/0x4d8 [ 301.583507] do_translation_fault+0x50/0x58 [ 301.587685] do_mem_abort+0x44/0x148 [ 301.591256] el1_da+0x1c/0x90 [ 301.594220] xnthread_relax+0x7c/0x248 [ 301.597964] ipipe_trap_hook+0xc0/0x270 [ 301.601795] __ipipe_notify_trap+0x84/0xd8 [ 301.605887] do_page_fault+0x30/0x4d8 [ 301.609544] do_translation_fault+0x50/0x58 [ 301.613722] do_mem_abort+0x44/0x148 [ 301.617292] el1_da+0x1c/0x90 [ 301.620256] xnthread_relax+0x7c/0x248 [ 301.624000] ipipe_trap_hook+0xc0/0x270 [ 301.627832] __ipipe_notify_trap+0x84/0xd8 [ 301.631923] do_page_fault+0x30/0x4d8 [ 301.635581] do_translation_fault+0x50/0x58 [ 301.639758] do_mem_abort+0x44/0x148 [ 301.643329] el1_da+0x1c/0x90 [ 301.646292] xnthread_relax+0x7c/0x248 [ 301.650037] ipipe_trap_hook+0xc0/0x270 [ 301.653868] __ipipe_notify_trap+0x84/0xd8 [ 301.657960] do_page_fault+0x30/0x4d8 [ 301.661617] do_translation_fault+0x50/0x58 [ 301.665795] do_mem_abort+0x44/0x148 [ 301.669365] el1_da+0x1c/0x90 [ 301.672329] xnthread_relax+0x7c/0x248 [ 301.676073] ipipe_trap_hook+0xc0/0x270 [ 301.679904] __ipipe_notify_trap+0x84/0xd8 [ 301.683996] do_page_fault+0x30/0x4d8 [ 301.687653] do_translation_fault+0x50/0x58 [ 301.691831] do_mem_abort+0x44/0x148 [ 301.695402] el1_da+0x1c/0x90 [ 301.698365] xnthread_relax+0x7c/0x248 [ 301.702110] ipipe_trap_hook+0xc0/0x270 [ 301.705941] __ipipe_notify_trap+0x84/0xd8 [ 301.710032] do_page_fault+0x30/0x4d8 [ 301.713690] do_translation_fault+0x50/0x58 [ 301.717868] do_mem_abort+0x44/0x148 [ 301.721438] el1_da+0x1c/0x90 [ 301.724402] xnthread_relax+0x7c/0x248 [ 301.728146] ipipe_trap_hook+0xc0/0x270 [ 301.731977] __ipipe_notify_trap+0x84/0xd8 [ 301.736069] do_page_fault+0x30/0x4d8 [ 301.739726] do_translation_fault+0x50/0x58 [ 301.743904] do_mem_abort+0x44/0x148 [ 301.747475] el1_da+0x1c/0x90 [ 301.750438] xnthread_relax+0x7c/0x248 [ 301.754182] ipipe_trap_hook+0xc0/0x270 [ 301.758014] __ipipe_notify_trap+0x84/0xd8 [ 301.762105] do_page_fault+0x30/0x4d8 [ 301.765763] do_translation_fault+0x50/0x58 [ 301.769940] do_mem_abort+0x44/0x148 [ 301.773511] el1_da+0x1c/0x90 [ 301.776474] xnthread_relax+0x7c/0x248 [ 301.780219] ipipe_trap_hook+0xc0/0x270 [ 301.784050] __ipipe_notify_trap+0x84/0xd8 [ 301.788142] do_page_fault+0x30/0x4d8 [ 301.791799] do_translation_fault+0x50/0x58 [ 301.795977] do_mem_abort+0x44/0x148 [ 301.799547] el1_da+0x1c/0x90 [ 301.802511] xnthread_relax+0x7c/0x248 [ 301.806255] ipipe_trap_hook+0xc0/0x270 [ 301.810086] __ipipe_notify_trap+0x84/0xd8 [ 301.814178] do_page_fault+0x30/0x4d8 [ 301.817835] do_translation_fault+0x50/0x58 [ 301.822013] do_mem_abort+0x44/0x148 [ 301.825584] el1_da+0x1c/0x90 [ 301.828547] xnthread_relax+0x7c/0x248 [ 301.832292] ipipe_trap_hook+0xc0/0x270 [ 301.836123] __ipipe_notify_trap+0x84/0xd8 [ 301.840215] do_page_fault+0x30/0x4d8 [ 301.843872] do_translation_fault+0x50/0x58 [ 301.848050] do_mem_abort+0x44/0x148 [ 301.851620] el1_da+0x1c/0x90 [ 301.854584] xnthread_relax+0x7c/0x248 [ 301.858328] ipipe_trap_hook+0xc0/0x270 [ 301.862159] __ipipe_notify_trap+0x84/0xd8 [ 301.866251] do_page_fault+0x30/0x4d8 [ 301.869908] do_translation_fault+0x50/0x58 [ 301.874086] do_mem_abort+0x44/0x148 [ 301.877657] el1_da+0x1c/0x90 [ 301.880620] xnthread_relax+0x7c/0x248 [ 301.884365] ipipe_trap_hook+0xc0/0x270 [ 301.888196] __ipipe_notify_trap+0x84/0xd8 [ 301.892288] do_page_fault+0x30/0x4d8 [ 301.895953] do_translation_fault+0x50/0x58 [ 301.900131] do_mem_abort+0x44/0x148 [ 301.903702] el1_da+0x1c/0x90 [ 301.906665] xnthread_relax+0x7c/0x248 [ 301.910410] ipipe_trap_hook+0xc0/0x270 [ 301.914241] __ipipe_notify_trap+0x84/0xd8 [ 301.918333] do_page_fault+0x30/0x4d8 [ 301.921990] do_translation_fault+0x50/0x58 [ 301.926168] do_mem_abort+0x44/0x148 [ 301.929738] el1_da+0x1c/0x90 [ 301.932702] xnthread_relax+0x7c/0x248 [ 301.936446] ipipe_trap_hook+0xc0/0x270 [ 301.940277] __ipipe_notify_trap+0x84/0xd8 [ 301.944369] do_page_fault+0x30/0x4d8 [ 301.948026] do_translation_fault+0x50/0x58 [ 301.952204] do_mem_abort+0x44/0x148 [ 301.955775] el1_da+0x1c/0x90 [ 301.958738] xnthread_relax+0x7c/0x248 [ 301.962491] ipipe_trap_hook+0xc0/0x270 [ 301.966322] __ipipe_notify_trap+0x84/0xd8 [ 301.970413] do_debug_exception+0xa8/0x238 [ 301.974505] el1_dbg+0x18/0x8c [ 301.977558] this_cpu_has_cap+0x70/0x88 [ 301.981398] erratum_1418040_thread_switch+0x18/0x60 [ 301.986364] __switch_to+0xfc/0x158 [ 301.989849] xnarch_switch_to+0x5c/0xc8 [ 301.993680] ___xnsched_run.part.0+0x250/0x3c0 [ 301.998118] ___xnsched_run+0x30/0x40 [ 302.001776] xnintr_core_clock_handler+0x3cc/0x418 [ 302.006563] dispatch_irq_head+0x84/0x118 [ 302.010568] __ipipe_dispatch_irq+0x1a4/0x1d0 [ 302.014920] __ipipe_grab_irq+0x5c/0x98 [ 302.018751] gic_handle_irq+0x5c/0xdc [ 302.022409] handle_arch_irq_pipelined+0x14/0x60 [ 302.027021] el1_irq+0xc8/0x180 [ 302.030159] __arm_smccc_smc+0x4/0x2c [ 302.033818] clk_change_rate+0x140/0x290 [ 302.037742] clk_core_set_rate_nolock+0x1c4/0x1f8 [ 302.042442] clk_set_rate+0x34/0xa0 [ 302.045928] dev_pm_opp_set_rate+0x3c8/0x518 [ 302.050200] set_target+0x3c/0x80 [ 302.053512] __cpufreq_driver_target+0x2c4/0x668 [ 302.058134] sugov_work+0x58/0x78 [ 302.061451] kthread_worker_fn+0xa8/0x188 [ 302.065455] kthread+0x138/0x158 [ 302.068678] ret_from_fork+0x14/0x1c [ 302.072254] SMP: stopping secondary CPUs [ 303.201177] SMP: failed to stop secondary CPUs 0-4 [ 303.205967] Kernel Offset: disabled [ 303.209451] CPU features: 0x10002,2100600c [ 303.213542] Memory Limit: none [ 303.216602] ---[ end Kernel panic - not syncing: kernel stack overflow ]--- And this is boot log: U-Boot 2020.04-5.7.3-devel+git.4b72b1453285 (May 15 2023 - 13:29:54 +0000) CPU: NXP i.MX8QM RevB A53 at 1200 MHz DRAM: 2 GiB MMC: FSL_SDHC: 0, FSL_SDHC: 1, FSL_SDHC: 2 Loading Environment from MMC... OK In: serial Out: serial Err: serial Model: Toradex Apalis iMX8 QuadPlus 2GB V1.1C, Serial# 07106242 BuildInfo: - SCFW 216a2c2e, SECO-FW c9de51c0, IMX-MKIMAGE 6a315dbc, ATF 2fa8c63 - U-Boot 2020.04-5.7.3-devel+git.4b72b1453285 switch to partitions #0, OK mmc0(part 0) is current device flash target is MMC:0 Net: eth0: ethernet@5b040000 Fastboot: Normal Normal Boot Hit any key to stop autoboot: 0 MMC: no card present MMC: no card present switch to partitions #0, OK mmc0(part 0) is current device Scanning mmc 0:1... Found U-Boot script /boot.scr 5964 bytes read in 23 ms (252.9 KiB/s) ## Executing script at 83100000 ** Bad device specification ${boot_devtype} ${boot_devnum} ** ** Bad device specification ${boot_devtype} ${boot_devnum} ** Loading hdp firmware from 0x000000009c000000 offset 0x0000000000002000 Loading hdp firmware Complete Loading DeviceTree: imx8qp-apalis-v1.1-eval.dtb 167609 bytes read in 19 ms (8.4 MiB/s) 43 bytes read in 12 ms (2.9 KiB/s) Applying Overlay: apalis-imx8_hdmi_overlay.dtbo 2177 bytes read in 27 ms (78.1 KiB/s) 10786299 bytes read in 353 ms (29.1 MiB/s) Uncompressed size: 26114560 = 0x18E7A00 Bootargs: pci=nomsi root=PARTUUID=c7e34782-02 ro rootwait ## Flattened Device Tree blob at 83000000 Booting using the fdt blob at 0x83000000 Loading Device Tree to 00000000fd601000, end 00000000fd64cfff ... OK Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0000000000 [0x410fd034] [ 0.000000] Linux version 5.4.193-cobalt-5.7.3-devel+git.49e4130e2197 (oe-user@oe-host) (gcc ver3 [ 0.000000] Machine model: Toradex Apalis iMX8QP V1.1 on Apalis Evaluation Board [ 0.000000] efi: Getting EFI parameters from FDT: [ 0.000000] efi: UEFI not found. [ 0.000000] Reserved memory: created DMA memory pool at 0x0000000090400000, size 1 MiB [ 0.000000] OF: reserved mem: initialized node vdevbuffer, compatible id shared-dma-pool [ 0.000000] cma: Reserved 480 MiB at 0x00000000de000000 [ 0.000000] NUMA: No NUMA configuration found [ 0.000000] NUMA: Faking a node at [mem 0x0000000080200000-0x00000000ffffffff] [ 0.000000] NUMA: NODE_DATA [mem 0xffbc4500-0xffbc5fff] [ 0.000000] Zone ranges: [ 0.000000] DMA32 [mem 0x0000000080200000-0x00000000ffffffff] [ 0.000000] Normal empty [ 0.000000] Movable zone start for each node [ 0.000000] Early memory node ranges [ 0.000000] node 0: [mem 0x0000000080200000-0x0000000083ffffff] [ 0.000000] node 0: [mem 0x0000000086400000-0x0000000087ffffff] [ 0.000000] node 0: [mem 0x0000000090000000-0x00000000901fffff] [ 0.000000] node 0: [mem 0x0000000090500000-0x0000000091ffffff] [ 0.000000] node 0: [mem 0x0000000094c00000-0x0000000094ffffff] [ 0.000000] node 0: [mem 0x0000000095400000-0x00000000ffffffff] [ 0.000000] Initmem setup node 0 [mem 0x0000000080200000-0x00000000ffffffff] [ 0.000000] psci: probing for conduit method from DT. [ 0.000000] psci: PSCIv1.1 detected in firmware. [ 0.000000] psci: Using standard PSCI v0.2 function IDs [ 0.000000] psci: MIGRATE_INFO_TYPE not supported. [ 0.000000] psci: SMC Calling Convention v1.1 [ 0.000000] percpu: Embedded 30 pages/cpu s82456 r8192 d32232 u122880 [ 0.000000] Detected VIPT I-cache on CPU0 [ 0.000000] CPU features: detected: ARM erratum 845719 [ 0.000000] CPU features: detected: GIC system register CPU interface [ 0.000000] Speculative Store Bypass Disable mitigation not required [ 0.000000] Built 1 zonelists, mobility grouping on. Total pages: 461412 [ 0.000000] Policy zone: DMA32 [ 0.000000] Kernel command line: pci=nomsi root=PARTUUID=c7e34782-02 ro rootwait [ 0.000000] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes, linear) [ 0.000000] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes, linear) [ 0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off [ 0.000000] Memory: 1315600K/1874944K available (14524K kernel code, 1246K rwdata, 6652K rodata,) [ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=5, Nodes=1 [ 0.000000] rcu: Preemptible hierarchical RCU implementation. [ 0.000000] rcu: RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=5. [ 0.000000] Tasks RCU enabled. [ 0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies. [ 0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=5 [ 0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0 [ 0.000000] GICv3: GIC: Using split EOI/Deactivate mode [ 0.000000] GICv3: 512 SPIs implemented [ 0.000000] GICv3: 0 Extended SPIs implemented [ 0.000000] GICv3: Distributor has no Range Selector support [ 0.000000] GICv3: 16 PPIs implemented [ 0.000000] GICv3: no VLPI support, no direct LPI support [ 0.000000] GICv3: CPU0: found redistributor 0 region 0:0x0000000051b00000 [ 0.000000] ITS: No ITS available, not enabling LPIs [ 0.000000] random: get_random_bytes called from start_kernel+0x2b8/0x438 with crng_init=0 [ 0.000000] arch_timer: cp15 timer(s) running at 8.00MHz (phys). [ 0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x1d854df40, max_is [ 0.000004] sched_clock: 56 bits at 8MHz, resolution 125ns, wraps every 2199023255500ns [ 0.000726] Interrupt pipeline (release #4) [ 0.000814] Console: colour dummy device 80x25 [ 0.001411] printk: console [tty0] enabled [ 0.001491] Calibrating delay loop (skipped), value calculated using timer frequency.. 16.00 Bog) [ 0.001516] pid_max: default: 32768 minimum: 301 [ 0.001598] LSM: Security Framework initializing [ 0.001664] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes, linear) [ 0.001692] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes, linear) [ 0.003079] ASID allocator initialised with 32768 entries [ 0.003164] rcu: Hierarchical SRCU implementation. [ 0.007857] EFI services will not be available. [ 0.008079] smp: Bringing up secondary CPUs ... [ 0.008868] Detected VIPT I-cache on CPU1 [ 0.008897] GICv3: CPU1: found redistributor 1 region 0:0x0000000051b20000 [ 0.008937] CPU1: Booted secondary processor 0x0000000001 [0x410fd034] [ 0.009747] Detected VIPT I-cache on CPU2 [ 0.009761] GICv3: CPU2: found redistributor 2 region 0:0x0000000051b40000 [ 0.009778] CPU2: Booted secondary processor 0x0000000002 [0x410fd034] [ 0.010522] Detected VIPT I-cache on CPU3 [ 0.010536] GICv3: CPU3: found redistributor 3 region 0:0x0000000051b60000 [ 0.010552] CPU3: Booted secondary processor 0x0000000003 [0x410fd034] [ 0.012135] CPU features: detected: EL2 vector hardening [ 0.012147] CPU features: detected: Branch predictor hardening [ 0.012152] CPU features: detected: Spectre-BHB [ 0.012155] Detected PIPT I-cache on CPU4 [ 0.012171] GICv3: CPU4: found redistributor 100 region 0:0x0000000051b80000 [ 0.012189] CPU4: Booted secondary processor 0x0000000100 [0x410fd082] [ 0.012264] smp: Brought up 1 node, 5 CPUs [ 0.012418] SMP: Total of 5 processors activated. [ 0.012431] CPU features: detected: 32-bit EL0 Support [ 0.012444] CPU features: detected: CRC32 instructions [ 0.022519] CPU: All CPU(s) started at EL2 [ 0.022556] alternatives: patching kernel code [ 0.023607] devtmpfs: initialized [ 0.041014] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 76450417s [ 0.041057] futex hash table entries: 2048 (order: 5, 131072 bytes, linear) [ 0.054263] pinctrl core: initialized pinctrl subsystem [ 0.054791] DMI not present or invalid. [ 0.055055] NET: Registered protocol family 16 [ 0.062214] DMA: preallocated 256 KiB pool for atomic allocations [ 0.062244] audit: initializing netlink subsys (disabled) [ 0.062391] audit: type=2000 audit(0.060:1): state=initialized audit_enabled=0 res=1 [ 0.062907] cpuidle: using governor menu [ 0.064317] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers. [ 0.066244] Serial: AMBA PL011 UART driver [ 0.066300] imx mu driver is registered. [ 0.066326] imx rpmsg driver is registered. [ 0.119675] HugeTLB registered 1.00 GiB page size, pre-allocated 0 pages [ 0.119703] HugeTLB registered 32.0 MiB page size, pre-allocated 0 pages [ 0.119718] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages [ 0.119732] HugeTLB registered 64.0 KiB page size, pre-allocated 0 pages [ 0.120979] cryptd: max_cpu_qlen set to 1000 [ 0.125185] ACPI: Interpreter disabled. [ 0.127531] iommu: Default domain type: Translated [ 0.127663] vgaarb: loaded [ 0.127939] SCSI subsystem initialized [ 0.128238] usbcore: registered new interface driver usbfs [ 0.128279] usbcore: registered new interface driver hub [ 0.128320] usbcore: registered new device driver usb [ 0.130519] mc: Linux media interface: v0.10 [ 0.130560] videodev: Linux video capture interface: v2.00 [ 0.130627] pps_core: LinuxPPS API ver. 1 registered [ 0.130640] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti [ 0.130667] PTP clock support registered [ 0.131059] EDAC MC: Ver: 3.0.0 [ 0.132697] No BMan portals available! [ 0.133117] QMan: Allocated lookup table at (____ptrval____), entry count 65537 [ 0.133919] No QMan portals available! [ 0.135161] No USDPAA memory, no 'fsl,usdpaa-mem' in device-tree [ 0.135792] FPGA manager framework [ 0.135882] Advanced Linux Sound Architecture Driver Initialized. [ 0.137524] imx-scu scu: NXP i.MX SCU Initialized [ 0.143606] random: fast init done [ 0.180412] imx8qm-pinctrl scu:pinctrl: initialized IMX pinctrl driver [ 0.184336] clocksource: Switched to clocksource arch_sys_counter [ 0.184519] VFS: Disk quotas dquot_6.6.0 [ 0.184576] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes) [ 0.184768] pnp: PnP ACPI: disabled [ 0.215237] thermal_sys: Registered thermal governor 'step_wise' [ 0.215240] thermal_sys: Registered thermal governor 'power_allocator' [ 0.216093] NET: Registered protocol family 2 [ 0.216256] IP idents hash table entries: 32768 (order: 6, 262144 bytes, linear) [ 0.217092] tcp_listen_portaddr_hash hash table entries: 1024 (order: 2, 16384 bytes, linear) [ 0.217136] TCP established hash table entries: 16384 (order: 5, 131072 bytes, linear) [ 0.217258] TCP bind hash table entries: 16384 (order: 6, 262144 bytes, linear) [ 0.217501] TCP: Hash tables configured (established 16384 bind 16384) [ 0.217599] UDP hash table entries: 1024 (order: 3, 32768 bytes, linear) [ 0.217651] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes, linear) [ 0.217783] NET: Registered protocol family 1 [ 0.218120] RPC: Registered named UNIX socket transport module. [ 0.218135] RPC: Registered udp transport module. [ 0.218146] RPC: Registered tcp transport module. [ 0.218157] RPC: Registered tcp NFSv4.1 backchannel transport module. [ 0.218176] PCI: CLS 0 bytes, default 64 [ 0.218932] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available [ 0.220538] kvm [1]: IPA Size Limit: 40 bits [ 0.221229] kvm [1]: vgic-v2@52020000 [ 0.221260] kvm [1]: GIC system register CPU interface enabled [ 0.221374] kvm [1]: vgic interrupt IRQ1 [ 0.221526] kvm [1]: Hyp mode initialized successfully [ 0.225290] [Xenomai] scheduling class idle registered. [ 0.225305] [Xenomai] scheduling class rt registered. [ 0.225397] I-pipe: head domain Xenomai registered. [ 0.226913] [Xenomai] Cobalt v3.1 [ 0.226925] Initialise system trusted keyrings [ 0.227101] workingset: timestamp_bits=44 max_order=19 bucket_order=0 [ 0.232644] squashfs: version 4.0 (2009/01/31) Phillip Lougher [ 0.233208] NFS: Registering the id_resolver key type [ 0.233238] Key type id_resolver registered [ 0.233249] Key type id_legacy registered [ 0.233267] nfs4filelayout_init: NFSv4 File Layout Driver Registering... [ 0.233282] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering... [ 0.233315] jffs2: version 2.2. (NAND) © 2001-2006 Red Hat, Inc. [ 0.246700] Key type asymmetric registered [ 0.246714] Asymmetric key parser 'x509' registered [ 0.246749] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 242) [ 0.246768] io scheduler mq-deadline registered [ 0.246780] io scheduler kyber registered [ 0.261363] imx6q-pcie 5f000000.pcie: 5f000000.pcie supply epdev_on not found, using dummy regulr [ 0.263456] EINJ: ACPI disabled. [ 0.390880] mxs-dma 5b810000.dma-apbh: initialized [ 0.392707] Bus freq driver module loaded [ 0.399527] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled [ 0.404279] 5a060000.serial: ttyLP0 at MMIO 0x5a060010 (irq = 47, base_baud = 5000000) is a FSL_T [ 0.404683] fsl-lpuart 5a060000.serial: DMA tx channel request failed, operating without tx DMA [ 0.404705] fsl-lpuart 5a060000.serial: DMA rx channel request failed, operating without rx DMA [ 0.405118] 5a070000.serial: ttyLP1 at MMIO 0x5a070010 (irq = 48, base_baud = 5000000) is a FSL_T [ 0.405144] fsl-lpuart 5a070000.serial: Serial: Console lpuart rounded baud ratefrom 35971 to 110 [ 1.474193] printk: console [ttyLP1] enabled [ 1.479465] 5a080000.serial: ttyLP2 at MMIO 0x5a080010 (irq = 49, base_baud = 5000000) is a FSL_T [ 1.489126] fsl-lpuart 5a080000.serial: DMA tx channel request failed, operating without tx DMA [ 1.497864] fsl-lpuart 5a080000.serial: DMA rx channel request failed, operating without rx DMA [ 1.507091] 5a090000.serial: ttyLP3 at MMIO 0x5a090010 (irq = 50, base_baud = 5000000) is a FSL_T [ 1.519792] arm-smmu 51400000.iommu: probing hardware configuration... [ 1.526357] arm-smmu 51400000.iommu: SMMUv2 with: [ 1.531083] arm-smmu 51400000.iommu: stage 1 translation [ 1.536502] arm-smmu 51400000.iommu: stage 2 translation [ 1.541917] arm-smmu 51400000.iommu: nested translation [ 1.547253] arm-smmu 51400000.iommu: stream matching with 32 register groups [ 1.554413] arm-smmu 51400000.iommu: 32 context banks (0 stage-2 only) [ 1.561049] arm-smmu 51400000.iommu: Supported page sizes: 0x61311000 [ 1.567598] arm-smmu 51400000.iommu: Stage-1: 48-bit VA -> 48-bit IPA [ 1.574149] arm-smmu 51400000.iommu: Stage-2: 48-bit IPA -> 48-bit PA [ 1.652551] imx-drm display-subsystem: parent device of /bus@57240000/ldb@572410e0/lvds-channel@e [ 1.686795] brd: module loaded [ 1.695873] loop: module loaded [ 1.699404] zram: Added device: zram0 [ 1.715986] tun: Universal TUN/TAP device driver, 1.6 [ 1.722881] fec 5b040000.ethernet: Adding to iommu group 0 [ 1.729523] pps pps0: new PPS source ptp0 [ 1.737843] Freescale FM module, FMD API version 21.1.0 [ 1.744031] Freescale FM Ports module [ 1.749485] VFIO - User Level meta-driver version: 0.3 [ 1.758862] cdns-usb3 5b110000.usb3: Adding to iommu group 1 [ 1.765621] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 1.772191] ehci-pci: EHCI PCI platform driver [ 1.778041] usbcore: registered new interface driver usb-storage [ 1.784139] usbcore: registered new interface driver usbserial_generic [ 1.790718] usbserial: USB Serial support registered for generic [ 1.796770] usbcore: registered new interface driver cp210x [ 1.802371] usbserial: USB Serial support registered for cp210x [ 1.808345] usbcore: registered new interface driver ftdi_sio [ 1.814130] usbserial: USB Serial support registered for FTDI USB Serial Device [ 1.821484] usbcore: registered new interface driver pl2303 [ 1.827113] usbserial: USB Serial support registered for pl2303 [ 1.833087] usbcore: registered new interface driver usb_serial_simple [ 1.839652] usbserial: USB Serial support registered for carelink [ 1.845773] usbserial: USB Serial support registered for zio [ 1.851465] usbserial: USB Serial support registered for funsoft [ 1.857502] usbserial: USB Serial support registered for flashloader [ 1.863887] usbserial: USB Serial support registered for google [ 1.869847] usbserial: USB Serial support registered for libtransistor [ 1.876408] usbserial: USB Serial support registered for vivopay [ 1.882444] usbserial: USB Serial support registered for moto_modem [ 1.888743] usbserial: USB Serial support registered for motorola_tetra [ 1.895389] usbserial: USB Serial support registered for nokia [ 1.901252] usbserial: USB Serial support registered for novatel_gps [ 1.907639] usbserial: USB Serial support registered for hp4x [ 1.913413] usbserial: USB Serial support registered for suunto [ 1.919365] usbserial: USB Serial support registered for siemens_mpi [ 1.933224] input: sc-powerkey as /devices/platform/sc-powerkey/input/input0 [ 1.943099] imx-sc-rtc scu:rtc: registered as rtc1 [ 1.948656] i2c /dev entries driver [ 1.963935] sdhci: Secure Digital Host Controller Interface driver [ 1.970162] sdhci: Copyright(c) Pierre Ossman [ 1.975325] Synopsys Designware Multimedia Card Interface Driver [ 1.983379] sdhci-pltfm: SDHCI platform and OF driver helper [ 1.991108] sdhci-esdhc-imx 5b010000.mmc: Adding to iommu group 2 [ 2.029266] mmc0: SDHCI controller on 5b010000.mmc [5b010000.mmc] using ADMA [ 2.039198] sdhci-esdhc-imx 5b020000.mmc: Adding to iommu group 2 [ 2.046863] sdhci-esdhc-imx 5b030000.mmc: Adding to iommu group 2 [ 2.058527] ledtrig-cpu: registered to indicate activity on CPUs [ 2.067312] caam 31400000.crypto: device ID = 0x0a16040000000100 (Era 9) [ 2.074054] caam 31400000.crypto: job rings = 2, qi = 0 [ 2.090782] caam algorithms registered in /proc/crypto [ 2.097581] caam 31400000.crypto: caam pkc algorithms registered in /proc/crypto [ 2.105058] caam 31400000.crypto: registering rng-caam [ 2.110624] Device caam-keygen registered [ 2.118496] hidraw: raw HID events driver (C) Jiri Kosina [ 2.119692] crng init done [ 2.124124] usbcore: registered new interface driver usbhid [ 2.132251] usbhid: USB HID core driver [ 2.140591] No fsl,qman node [ 2.143486] Freescale USDPAA process driver [ 2.145286] mmc0: new HS400 MMC card at address 0001 [ 2.147685] fsl-usdpaa: no region found [ 2.153258] mmcblk0: mmc0:0001 S0J56X 14.8 GiB [ 2.156499] Freescale USDPAA process IRQ driver [ 2.165879] mmcblk0boot0: mmc0:0001 S0J56X partition 1 31.5 MiB [ 2.169926] [VPU Decoder] warning: init rtx channel failed, ret: -517 [ 2.172081] mmcblk0boot1: mmc0:0001 S0J56X partition 2 31.5 MiB [ 2.178284] [VPU Decoder] failed to request mailbox, ret = -517 [ 2.184348] mmcblk0rpmb: mmc0:0001 S0J56X partition 3 4.00 MiB, chardev (235:0) [ 2.194184] [VPU Encoder] warning: init rtx channel failed, ret: -517 [ 2.200575] mmcblk0: p1 p2 [ 2.204066] [VPU Encoder] warning: init rtx channel failed, ret: -517 [ 2.213370] [VPU Encoder] fail to request mailbox, ret = -517 [ 2.223014] dvbdev: DVB: registering new adapter (PPM DVB adapter) [ 2.229856] dvbdev: DVB: registering new adapter (PPM DVB adapter) [ 2.244560] check_dsp_is_available: HiFi4 DSP not available on this silicon [ 2.336130] imx-spdif sound-spdif: snd-soc-dummy-dai <-> 59020000.spdif mapping ok [ 2.343804] imx-spdif sound-spdif: ASoC: no DMI vendor name! [ 2.351076] imx-audmix imx-audmix.0: failed to find SAI platform device [ 2.357770] imx-audmix: probe of imx-audmix.0 failed with error -22 [ 2.367975] pktgen: Packet Generator for packet performance testing. Version: 2.75 [ 2.376233] NET: Registered protocol family 26 [ 2.381192] NET: Registered protocol family 10 [ 2.386250] Segment Routing with IPv6 [ 2.389980] NET: Registered protocol family 17 [ 2.394483] tsn generic netlink module v1 init... [ 2.399256] Key type dns_resolver registered [ 2.403903] registered taskstats version 1 [ 2.408034] Loading compiled-in X.509 certificates [ 2.440197] mxs_phy 5b100000.usbphy: 5b100000.usbphy supply phy-3p0 not found, using dummy regulr [ 2.464959] usb_phy_generic bus@5b000000:usb3-phy: bus@5b000000:usb3-phy supply vcc not found, ur [ 2.475719] usb_phy_generic bus@5b000000:usbphynop2: bus@5b000000:usbphynop2 supply vcc not founr [ 2.487370] imx-lpi2c 5a800000.i2c: can't get pinctrl, bus recovery not supported [ 2.495131] i2c i2c-2: LPI2C adapter registered [ 2.502759] sgtl5000 3-000a: sgtl5000 revision 0x11 [ 2.549206] usb3503 3-0008: switched to HUB mode [ 2.553874] usb3503 3-0008: usb3503_probe: probed in hub mode [ 2.559737] i2c i2c-3: LPI2C adapter registered [ 2.565777] rtc-ds1307: probe of 4-0068 failed with error -5 [ 2.571532] i2c i2c-4: LPI2C adapter registered [ 2.576812] i2c i2c-5: LPI2C adapter registered [ 2.586948] imx6q-pcie 5f010000.pcie: pcie_ext clock source missing or invalid [ 2.587062] pwm-backlight backlight: backlight supply power not found, using dummy regulator [ 2.587129] imx6q-pcie 5f000000.pcie: 5f000000.pcie supply epdev_on not found, using dummy regulr [ 2.587250] imx6q-pcie 5f000000.pcie: pcie_ext clock source missing or invalid [ 2.627023] dpu-core 56180000.dpu: driver probed [ 2.634312] dpu-core 57180000.dpu: driver probed [ 2.644164] pps pps0: new PPS source ptp0 [ 2.651784] fec 5b040000.ethernet eth0: registered PHC device 0 [ 2.661715] xhci-cdns3: xHCI Host Controller [ 2.666101] xhci-cdns3: new USB bus registered, assigned bus number 1 [ 2.674051] xhci-cdns3: hcc params 0x200073c8 hci version 0x100 quirks 0x0000001000018010 [ 2.682981] hub 1-0:1.0: USB hub found [ 2.686776] hub 1-0:1.0: 1 port detected [ 2.690934] xhci-cdns3: xHCI Host Controller [ 2.695315] xhci-cdns3: new USB bus registered, assigned bus number 2 [ 2.701874] xhci-cdns3: Host supports USB 3.0 SuperSpeed [ 2.707334] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM. [ 2.715892] hub 2-0:1.0: USB hub found [ 2.719678] hub 2-0:1.0: 1 port detected [ 2.725083] imx_usb 5b0d0000.usb: 5b0d0000.usb supply vbus not found, using dummy regulator [ 3.041541] ci_hdrc ci_hdrc.1: EHCI Host Controller [ 3.046506] ci_hdrc ci_hdrc.1: new USB bus registered, assigned bus number 3 [ 3.068575] ci_hdrc ci_hdrc.1: USB 2.0 started, EHCI 1.00 [ 3.074862] hub 3-0:1.0: USB hub found [ 3.078696] hub 3-0:1.0: 1 port detected [ 3.084409] gpio-fan gpio-fan: GPIO fan initialized [ 3.091613] sdhci-esdhc-imx 5b020000.mmc: Got CD GPIO [ 3.128434] mmc1: SDHCI controller on 5b020000.mmc [5b020000.mmc] using ADMA [ 3.139181] sdhci-esdhc-imx 5b030000.mmc: Got CD GPIO [ 3.176263] mmc2: SDHCI controller on 5b030000.mmc [5b030000.mmc] using ADMA [ 3.210291] debugfs: Directory '59050000.sai' with parent 'apalis-imx8qm-sgtl5000' already prese! [ 3.219996] asoc-simple-card sound: sgtl5000 <-> 59050000.sai mapping ok [ 3.226733] asoc-simple-card sound: ASoC: no DMI vendor name! [ 3.237267] imx6q-pcie 5f000000.pcie: 5f000000.pcie supply epdev_on not found, using dummy regulr [ 3.238107] imx8qxp-lpcg-clk 5b260000.clock-controller: ignoring dependency for device, assumingr [ 3.238149] imx6q-pcie 5f010000.pcie: No cache used with register defaults set! [ 3.246666] imx6q-pcie 5f000000.pcie: No cache used with register defaults set! [ 3.259081] imx6q-pcie 5f010000.pcie: PCIe PLL locked after 0 us. [ 3.267430] hctosys: unable to open rtc device (rtc0) [ 3.289523] ALSA device list: [ 3.292517] #0: imx-spdif [ 3.295322] #1: apalis-imx8qm-sgtl5000 [ 3.374403] imx6q-pcie 5f000000.pcie: PCIe PLL locked after 0 us. [ 3.480377] usb 3-1: new high-speed USB device number 2 using ci_hdrc [ 3.484453] imx6q-pcie 5f010000.pcie: host bridge /bus@5f000000/pcie@0x5f010000 ranges: [ 3.495199] imx6q-pcie 5f010000.pcie: IO 0x7ff80000..0x7ff8ffff -> 0x00000000 [ 3.502632] imx6q-pcie 5f010000.pcie: MEM 0x70000000..0x7fefffff -> 0x70000000 [ 3.596439] imx6q-pcie 5f000000.pcie: host bridge /bus@5f000000/pcie@0x5f000000 ranges: [ 3.604541] imx6q-pcie 5f000000.pcie: IO 0x6ff80000..0x6ff8ffff -> 0x00000000 [ 3.611969] imx6q-pcie 5f000000.pcie: MEM 0x60000000..0x6fefffff -> 0x60000000 [ 3.645677] hub 3-1:1.0: USB hub found [ 3.649609] hub 3-1:1.0: 2 ports detected [ 3.940370] usb 3-1.1: new high-speed USB device number 3 using ci_hdrc [ 4.053672] hub 3-1.1:1.0: USB hub found [ 4.057736] hub 3-1.1:1.0: 4 ports detected [ 4.140369] usb 3-1.2: new high-speed USB device number 4 using ci_hdrc [ 4.254406] usb-storage 3-1.2:1.0: USB Mass Storage device detected [ 4.261253] scsi host0: usb-storage 3-1.2:1.0 [ 4.348387] usb 3-1.1.3: new full-speed USB device number 5 using ci_hdrc [ 4.467404] input: Logitech USB Receiver as /devices/platform/bus@5b000000/5b0e0000.usb/ci_hdrc.1 [ 4.502566] imx6q-pcie 5f010000.pcie: Phy link never came up [ 4.508364] imx6q-pcie 5f010000.pcie: failed to initialize host [ 4.514370] imx6q-pcie 5f010000.pcie: unable to add pcie port. [ 4.541067] hid-generic 0003:046D:C52B.0001: input,hidraw0: USB HID v1.11 Keyboard [Logitech USB0 [ 4.556236] input: Logitech USB Receiver Mouse as /devices/platform/bus@5b000000/5b0e0000.usb/ci2 [ 4.572008] input: Logitech USB Receiver Consumer Control as /devices/platform/bus@5b000000/5b0e3 [ 4.619865] imx6q-pcie 5f000000.pcie: Phy link never came up [ 4.625660] imx6q-pcie 5f000000.pcie: failed to initialize host [ 4.631662] imx6q-pcie 5f000000.pcie: unable to add pcie port. [ 4.648648] input: Logitech USB Receiver System Control as /devices/platform/bus@5b000000/5b0e004 [ 4.665338] hid-generic 0003:046D:C52B.0002: input,hidraw1: USB HID v1.11 Mouse [Logitech USB Re1 [ 4.679386] hid-generic 0003:046D:C52B.0003: hidraw2: USB HID v1.11 Device [Logitech USB Receive2 [ 4.699182] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) [ 4.707368] VFS: Mounted root (ext4 filesystem) readonly on device 179:2. [ 4.716033] devtmpfs: mounted [ 4.720363] Freeing unused kernel memory: 3008K [ 4.725227] Run /sbin/init as init process [ 4.809760] systemd[1]: System time before build time, advancing clock. [ 4.829629] systemd[1]: systemd 244.5+ running in system mode. (+PAM -AUDIT -SELINUX +IMA -APPAR) [ 4.851785] systemd[1]: Detected architecture arm64. Welcome to TDX Wayland with XWayland 5.7.3-devel-20231112090137+build.0 (dunfell)! [ 4.900845] systemd[1]: Set hostname to . [ 5.150800] systemd[1]: /lib/systemd/system/gpsd.socket:5: ListenStream= references a path below. [ 5.192490] systemd[1]: Created slice system-getty.slice. [ OK ] Created slice system-getty.slice. [ 5.213580] systemd[1]: Created slice system-serial\x2dgetty.slice. [ OK ] Created slice system-serial\x2dgetty.slice. [ 5.237895] systemd[1]: Created slice system-weston.slice. [ OK ] Created slice system-weston.slice. [ 5.262305] systemd[1]: Created slice User and Session Slice. [ OK ] Created slice User and Session Slice. [ 5.284785] systemd[1]: Started Dispatch Password Requests to Console Directory Watch. [ 5.285709] scsi 0:0:0:0: Direct-Access USB SanDisk 3.2Gen1 1.00 PQ: 0 ANSI: 6 [ OK 0 m ] S5t.a3r0t2e1d3 8[ s0;d1 ;03:90m:D0i:s0p:a t[cshd aP]a s3s0w6o2r9d3 7�6� �5t1s2 -tboy) [ 5.317374] sd 0:0:0:0: [sda] Write Protect is off [ 5.322877] sd 0:0:0:0: [sda] Write cache: disabled, read cache: enabled, doesn't support DPO orA [ 5.340735] systemd[1]: Started Forward Password Requests to Wall Directory Watch. [ OK ] Started Forward Password R…uests to Wall Directory Watch. [ 5.365812] sda: sda1 [ 5.368682] systemd[1]: Reached target Host and Network Name Lookups. [ 5.372024] sd 0:0:0:0: [sda] Attached SCSI removable disk [ OK ] Reached target Host and Network Name Lookups. [ 5.396484] systemd[1]: Reached target Paths. [ OK ] Reached target Paths. [ 5.416516] systemd[1]: Reached target Remote File Systems. [ OK ] Reached target Remote File Systems. [ 5.436696] systemd[1]: Reached target Slices. [ OK ] Reached target Slices. [ 5.456447] systemd[1]: Reached target Swap. [ OK ] Reached target Swap. [ 5.497169] systemd[1]: Listening on RPCbind Server Activation Socket. [ OK ] Listening on RPCbind Server Activation Socket. [ 5.520737] systemd[1]: Reached target RPC Port Mapper. [ OK ] Reached target RPC Port Mapper. [ 5.543593] systemd[1]: Listening on Syslog Socket. [ OK ] Listening on Syslog Socket. [ 5.565006] systemd[1]: Listening on initctl Compatibility Named Pipe. [ OK ] Listening on initctl Compatibility Named Pipe. [ 5.589539] systemd[1]: Listening on Journal Audit Socket. [ OK ] Listening on Journal Audit Socket. [ 5.612745] systemd[1]: Listening on Journal Socket (/dev/log). [ OK ] Listening on Journal Socket (/dev/log). [ 5.628618] switch cluster 0 cpu-freq governor to schedutil [ 5.637065] systemd[1]: Listening on Journal Socket. [ OK ] Listening on Journal Socket. [ 5.652594] switch cluster 1 cpu-freq governor to schedutil [ 5.669299] systemd[1]: Listening on Network Service Netlink Socket. [ OK ] Listening on Network Service Netlink Socket. [ 5.692971] systemd[1]: Listening on udev Control Socket. [ OK ] Listening on udev Control Socket. [ 5.716799] systemd[1]: Listening on udev Kernel Socket. [ OK ] Listening on udev Kernel Socket. [ 5.742072] systemd[1]: Mounting Huge Pages File System... Mounting Huge Pages File System... [ 5.769510] systemd[1]: Mounting POSIX Message Queue File System... Mounting POSIX Message Queue File System... [ 5.798114] systemd[1]: Mounting Kernel Debug File System... Mounting Kernel Debug File System... [ 5.828243] systemd[1]: Mounting Temporary Directory (/tmp)... Mounting Temporary Directory (/tmp)... [ 5.855839] systemd[1]: Starting Create list of static device nodes for the current kernel... Starting Create list of st…odes for the current kernel... [ 5.885625] systemd[1]: Starting RPC Bind... Starting RPC Bind... [ 5.908576] systemd[1]: Starting File System Check on Root Device... Starting File System Check on Root Device... [ 5.940545] systemd[1]: Starting Journal Service... Starting Journal Service... [ 5.951585] systemd[1]: Starting Load Kernel Modules... Starting Load Kernel Modules... [ 5.961917] systemd[1]: Starting udev Coldplug all Devices... Starting udev Coldplug all Devices... [ 5.973196] systemd[1]: Started RPC Bind. e [ O K 5[907m8]0 5S2t]a rgtaeldc o[e0:; 1l;o3a9dmiRnPgC oBuitn-do[-0tmr.e module taints kernel. [ 5.978059] systemd[1]: Mounted Huge Pages File System. [ OK[ [ 05m.]9 9M4o0u2n3t]e ds y[t0e;m1d;[319]m:H uMgoeu nPtaegde sP OFSiIlXe MSeyssstaegme[Q0. [ OK [ [ 0 m6]. 005919] systemd[1]: Mounted Kernel Debug File System. Mounted POSIX Message Queue File System. [ 6.018071] Galcore version 6.4.3.p1.305572 [ OK ] Mounted Kernel Debug File System. [ 6.045474] systemd[1]: Started Journal Service. [ OK ] Started Journal Service. [ OK ] Mounted Temporary Directory (/tmp). [ OK ] Started Create list of sta… nodes for the current kernel. [ OK ] Started File System Check on Root Device. Starting Remount Root and Kernel File Systems... [ 6.155657] EXT4-fs (mmcblk0p2): re-mounted. Opts: (null) [ OK ] Started Remount Root and Kernel File Systems. Starting Flush Journal to Persistent Storage... [ 6.206241] systemd-journald[351]: Received client request to flush runtime journal. [ 6.207743] [drm] Initialized vivante 1.0.0 20170808 for 80000000.imx8_gpu1_ss on minor 0 Starting Create Static Device Nodes in /dev... [ OK ] Started Load Kernel Modules. [ OK ] Started Flush Journal to Persistent Storage. [ OK ] Started Create Static Device Nodes in /dev. [ OK ] Reached target Local File Systems (Pre). Mounting Kernel Configuration File System... Mounting /var/volatile... Starting Apply Kernel Variables... Starting udev Kernel Device Manager... [ OK ] Mounted Kernel Configuration File System. [ OK ] Started udev Kernel Device Manager. [ OK ] Mounted /var/volatile. [ OK ] Started Apply Kernel Variables. Starting Load/Save Random Seed... [ OK ] Reached target Local File Systems. Starting Create Volatile Files and Directories... [ OK ] Started udev Coldplug all Devices. [ OK ] Started Load/Save Random Seed. [ OK ] Started Create Volatile Files and Directories. a OK ] Created slice system-s[y s t e m6d.\6x323d2b1a7c]k l[iVgPhUt .Esnlciocdee[]0 me.n ble mu for core[0] Starting Load/Save Screen …ness of backlight:backlight... [ 6.653629] [VPU Encoder] vpu encoder core[0] firmware version is 1.3.0 b Starting Netw[o r k T6i.m6e7 S4y8n8c0h]r o[ndirzma]t iSounp[o0rmt.s. .v lank timestamp caching Rev 2 (21.10.2013). [ 6.686793] [drm] No driver support for vblank timestamp query. Starting udev Wait for Complete Device Initialization... [ 6.701043] imx-drm display-subsystem: bound imx-drm-dpu-bliteng.2 (ops dpu_bliteng_ops) [ 6.711387] imx-drm display-subsystem: bound imx-drm-dpu-bliteng.5 (ops dpu_bliteng_ops) [ 6.724634] imx-drm display-subsystem: bound imx-dpu-crtc.0 (ops dpu_crtc_ops) 8 Starting Update UTMP about Sys[t e m B6o.o7t3/6S1h2u8t]d omwxnc[j0pme.g. .5 400000.jpegdec: decoder device registered as /dev/video0 (81,2) [ 6.746041] imx-drm display-subsystem: bound imx-dpu-crtc.1 (ops dpu_crtc_ops) [ OK ] Started Load/Save Screen B…htness of backlight:backlight. [ 6.767185] imx-drm display-subsystem: bound imx-dpu-crtc.3 (ops dpu_crtc_ops) [ 6.787326] mxc-jpeg 58450000.jpegenc: encoder device registered as /dev/video1 (81,3) [ 6.806513] CAN device driver interface 8 OK ] Started Update UTMP about System Boot/Shutdo[wn [ 0 m6.. 24213] imx-drm display-subsystem: bound imx-dpu-crtc.4 (ops dpu_crtc_ops) [ 6.832806] flexcan 5a8d0000.can: 5a8d0000.can supply xceiver not found, using dummy regulator [ OK ] Started Network Time Synchronization. [ 6.852792] flexcan 5a8e0000.can: 5a8e0000.can supply xceiver not found, using dummy regulator [ OK ] Reached target System Time Set. [ OK ] Reached target System Time Synchronized. [ 6.931041] [drm] Started firmware! [ 6.935971] [drm] HDP FW Version - ver 34219 verlib 20560 [ 6.950862] cdns-mhdp-imx 56268000.hdmi: lane-mapping 0x93 [ 6.960013] imx-drm display-subsystem: bound 56268000.hdmi (ops cdns_mhdp_imx_ops [cdns_mhdp_imx) [ 6.969817] [drm] Initialized imx-drm 1.0.0 20120507 for display-subsystem on minor 1 [ 6.984803] ahci-imx 5f020000.sata: Adding to iommu group 3 [ 6.998257] cdns-mhdp-imx 56268000.hdmi: 0,ff,ff,ff,ff,ff,ff,0 [ 7.004702] ahci-imx 5f020000.sata: phy impedance ratio is not specified. [ 7.012809] ahci-imx 5f020000.sata: No cache used with register defaults set! [ 7.029260] [drm] Mode: 1920x1080p148500 [ 7.042322] ahci-imx 5f020000.sata: 5f020000.sata supply ahci not found, using dummy regulator [ 7.042424] ahci-imx 5f020000.sata: 5f020000.sata supply phy not found, using dummy regulator [ 7.042471] ahci-imx 5f020000.sata: 5f020000.sata supply target not found, using dummy regulator [ 7.043188] ahci-imx 5f020000.sata: external osc is used. [ 7.050878] ahci-imx 5f020000.sata: no ahb clock. [ 7.050971] ahci-imx 5f020000.sata: AHCI 0001.0301 32 slots 1 ports 6 Gbps 0x1 impl platform mode [ 7.050980] ahci-imx 5f020000.sata: flags: 64bit ncq sntf pm clo only pmp fbs pio slum part ccc [ 7.057194] scsi host1: ahci-imx [ 7.057507] ata1: SATA max UDMA/133 mmio [mem 0x5f020000-0x5f02ffff] port 0x100 irq 106 [ 7.058463] imx ahci driver is registered. [ 7.069513] [drm] Pixel clock: 148500 KHz, character clock: 148500, bpc is 8-bit. [ 7.069521] [drm] VCO frequency is 2970000 KHz [ 7.136480] [drm] No vendor infoframe [ 7.238359] Console: switching to colour frame buffer device 240x67 [ 7.352671] imx-drm display-subsystem: fb0: imx-drmdrmfb frame buffer device [ 7.369670] ata1: SATA link down (SStatus 0 SControl 300) [ 7.379547] debugfs: Directory '59090000.sai' with parent 'imx-audio-hdmi-tx' already present! [ 7.394288] imx-cdnhdmi sound-hdmi: i2s-hifi <-> 59090000.sai mapping ok [ 7.401268] imx-cdnhdmi sound-hdmi: ASoC: no DMI vendor name! [ 7.408423] debugfs: File 'Capture' in directory 'dapm' already present! [ 7.420813] input: imx-audio-hdmi-tx HDMI Jack as /devices/platform/sound-hdmi/sound/card2/input6 [ 7.444432] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Ple. [ 7.561341] FAT-fs (sda1): Volume was not properly unmounted. Some data may be corrupt. Please r. [ OK ] Started udev Wait for Complete Device Initialization. [ OK ] Started Hardware RNG Entropy Gatherer Daemon. [ OK ] Reached target System Initialization. [ OK ] Started Daily Cleanup of Temporary Directories. [ OK ] Reached target Timers. [ OK ] Listening on Avahi mDNS/DNS-SD Stack Activation Socket. [ OK ] Listening on D-Bus System Message Bus Socket. [ OK ] Listening on dropbear.socket. [ OK ] Listening on GPS (Global P…ioning System) Daemon Sockets. [ OK ] Reached target Sockets. [ OK ] Reached target Basic System. Starting Save/Restore Sound Card State... [ OK ] Started Kernel Logging Service. [ OK ] Started System Logging Service. [ OK ] Started D-Bus System Message Bus. Starting IPv6 Packet Filtering Framework... Starting IPv4 Packet Filtering Framework... Starting Telephony service... Starting Login Service... [ OK ] Started Timestamping service. Starting Load default USB gadget schema g1.schema... [ 8.256152] Bluetooth: Core ver 2.22 [ 8.260367] NET: Registered protocol family 31 [ 8.264910] Bluetooth: HCI device and connection manager initialized [ 8.271479] Bluetooth: HCI socket layer initialized [ 8.271490] Bluetooth: L2CAP socket layer initialized [ 8.271512] Bluetooth: SCO socket layer initialized [ 8.281921] using random self ethernet address [ 8.291327] using random host ethernet address [ OK ] Started Save/Restore Sound Card State. [ OK ] Started IPv6 Packet Filtering Framework. [ OK ] Started IPv4 Packet Filtering Framework. [ OK ] Reached target Network (Pre). [ OK ] Reached target Sound Card. [ OK ] Listening on Load/Save RF …itch Status /dev/rfkill Watch. Starting Connection service... [ OK ] Started Telephony service. [ OK ] Started Login Service. [ 8.510874] usb0: HOST MAC 00:14:2d:ff:ff:fe [ 8.515307] usb0: MAC 00:14:2d:ff:ff:ff [ OK ] Started Load default USB gadget schema g1.schema. [ OK ] Started Connection service. [ OK ] Reached target Hardware activated USB gadget. [ 8.596837] Microchip KSZ9131 Gigabit PHY 5b040000.ethernet-1:07: attached PHY driver [Microchip) Starting Avahi mDNS/DNS-SD Stack... Starting Network Service... [ OK ] Started Avahi mDNS/DNS-SD Stack. Starting Hostname Service... Starting WPA supplicant... [ OK ] Started Network Service. [ OK ] Started WPA supplicant. [ OK ] Started Hostname Service. [ OK ] Reached target Network. [ OK ] Started NFS status monitor for NFSv2/3 locking.. Starting Permit User Sessions... [ OK ] Started Permit User Sessions. [ OK ] Started Getty on tty1. [ OK ] Started Serial Getty on ttyLP1. [ OK ] Reached target Login Prompts. [ OK ] Started Weston Wayland Compositor. Starting Start a wayland application... [ OK ] Created slice User Slice of UID 0. Starting User Runtime Directory /run/user/0... [ OK ] Started User Runtime Directory /run/user/0. Starting User Manager for UID 0... [ 9.058066] audit: type=1006 audit(1699840752.066:2): pid=789 uid=0 old-auid=4294967295 auid=0 t1 [ OK ] Started User Manager for UID 0. [ OK ] Started Session c1 of user root. [ 9.671889] cdns-mhdp-imx 56268000.hdmi: 0,ff,ff,ff,ff,ff,ff,0 [ 10.257243] fec 5b040000.ethernet eth0: Link is Up - 100Mbps/Full - flow control off [ 10.265043] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 10.279419] 8021q: 802.1Q VLAN Support v1.8 [ OK ] Started Start a wayland application. [ OK ] Reached target Multi-User System. [ OK ] Reached target Graphical Interface. Starting Update UTMP about System Runlevel Changes... [ OK ] Started Update UTMP about System Runlevel Changes. so, i don't have any idea to apply the xenomai. Please help, Re: 移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable Xenomai on i.MX ARM64 Platform) Hi @xiaodong_zhang , First thank you very much for your post. I have already apply your receipes, but when i run test, the error occur: root@apalis-imx8-07106242:/boot# /usr/xenomai/demo/cyclictest -p 99 -t 5 -m -n -i 1000 -l 100000 0"000.000| BUG in low_init(): [main] Cobalt core not enabled in kernel I am try to apply the xenomai to imx8, (apalis-toradex-imx8qp). The linux kernel is 5.4.193 and xenomai-v3.1: Linux apalis-imx8-07106242 5.4.193-rt74-5.7.3-devel+git.49e4130e2197 #1 SMP PREEMPT_RT Tue Apr 11 21:14:29 UTC 2023 aarch64 aarch64 aarch64 GNU/Linux Could you help me fixed it? May i have any missing step? Re: 移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable Xenomai on i.MX ARM64 Platform) Hi @xiaodong_zhang , I understand. Could you provide or assist with any documents, steps, or references that might help us attempt it from our end? -- BR [email protected] Re: 移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable Xenomai on i.MX ARM64 Platform) Hi @xiaodong_zhang , I understand. Could you provide or assist with any documents, steps, or references that might help us attempt it from our end? -- BR [email protected] Re: 移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable Xenomai on i.MX ARM64 Platform) Hi @r_trivedi123    I is busy on other project, and maybe enable Xenomai 4 on i.MX from Kernel 6.x when I'm available. Re: 移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable Xenomai on i.MX ARM64 Platform) Hi @xiaodong_zhang, Any insights on xenomai v4.0 ? -- BR [email protected] Re: 移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable Xenomai on i.MX ARM64 Platform) CPU isolation will help to improve the latency of Xenomai. Like: 1, Add isolcpus=2,3 in bootargs of uboot. 2, Run cyclictest  with option -a 2,3 Re: 移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable Xenomai on i.MX ARM64 Platform) Thank you Xiao, you are awesome. Xenomai is much better than PREEMPT RT kernel, with much lower latencies. I'll test this ! Regards, Laci
查看全文
Create a TCP application using the SIM800 module and a FRDM Kinetis® K64 MCU board based on FreeRTOS About this demo This demo was created to give you a headstart for a UART - based GPRS module. The goal was to build the project on top of FreeRTOS ensuring a good implementation for task management and adaptability for any other project based on AT commands using a UART module.  According to the documentation of the module, the SIM800L from SIMCOM is controlled via AT commands. The advantage of using these commands is that, by tweaking some of the tasks, the application can be used for any other AT command based module. In this demo I'm going to walk you through the key elements that were used and give you a functional project that has the addition of working on a FreeRTOS environment. This offers great reliability for a fully working application that won't hang for an untested reason. Exploring this project should give you a good idea of how semaphores are implemented for various tasks management depending on each priority. Project Scope The project is intended to work with a SIM800L connected to a Freedom Development Platform for Kinetis® K64 through UART. Due to the high current consumption during some functions, the SIM800 module requieres a >1200mAh battery or a >2A buck converter. This GPRS module is a low-cost item but requires a 2G SIM card to work properly. This might be complicated to obtain in some countries. The project was built using the MCUXpresso SDK's FreeRTOS UART example. Useful Links Link Description https://mcuxpresso.nxp.com/en/builder SDK Builder for the Kinetis K64 https://www.simcom.com/product/SIM800.html SIMCOM SIM800 site documentation https://www.freertos.org/xSemaphoreCreateBinary.html FreeRTOS Required Items Link Description https://www.nxp.com/design/development-boards/freedom-development-boards/mcu-boards/freedom-development-platform-for-kinetis-k64-k63-and-k24-mcus:FRDM-K64F NXP's FRDMK64 Board https://simcom.ee/modules/gsm-gprs/sim800/ SIMCOM SIM800 GPRS Module Buck converter   Power supply to deliver up to 4.3 V and 2 Amps   Cellular antenna   Hardware Diagram Due to the SIM800 module's high current consumption, powering it requires a buck converter that is capable of delivering a current larger than 2 Amps while the module is sending a message. This is when the module consumes the highest current.    SIM 800L  ===>    FRDM K64         VCC    ===>    3V9 Buck Converter           RX     ===>    TX (PTC17/J1-4)           TX     ===>    RX (PTC16/J1-2)        GND    ===>    GND Step-by-Step Guide for testing the Demo Get the K64 SDK from https://mcuxpresso.nxp.com/en/select Get the latest version of MCUXpresso using this link: https://www.nxp.com/design/software/development-software/mcuxpresso-software-and-tools-/mcuxpresso-integrated-development-environment-ide:MCUXpresso-IDE Get the SIM800 AT commands documentation in this link: https://www.elecrow.com/wiki/images/2/20/SIM800_Series_AT_Command_Manual_V1.09.pdf Install the K64 SDK in MCUXpresso. Import the attached project in this document.  Attachments are found at the bottom of this document. Connect the K64 through the USB cable. Connect the SIM800L as indicated in the previous chapter: Diagram. Build and Debug the project using MCUXpresso. In the console, you should be able to see the flow of the Tasks that are being executed. Also, the commands that are being sent and received by the UART. Due to the TaskDelay from the send_task, the application will execute every 10,000 ticks. This depends entirely on the portTick_PERIOD_MS, in this case, which in this case is roughly every 25 seconds. Additional Demo Information These next steps are intended to guide the developer to an easier understanding of the modifications that were made from the base project. This additional information intends to give you a greater understanding of how the project was built and a further explanation of the different topics this application needs for its implementation. The usage of FreeRTOS wasn't mandatory, but the usage of an operative system gives the application an additional layer of reliability for safe deployment. In addition to the actual tasks, you could implement a new task for an OTA update for new drivers, a fully functional response parser, or any other addition depending on your project needs. The usage of a task-based project ensures flexibility of the project since many modifications will not require a complete rebuilding of the application. As mentioned before, the implementation of semaphores will provide reliable task management depending on the required function. The project started from the freertos_uart example and from there three additional tasks were built: a connect task, send task, and a check task. Here is a brief explanation of each task to provide a full understanding of the functionality.  uart_task() This task was only slightly modified. The UART was changed to the UART3 interface. The UART_RTOS_Send() and UART_RTOS_Receive() functions are in the loop because the semaphore implementation is doing the release of retainment of the different tasks based on their priority. Priority is very important for this project because based on its priority the application flow would be affected. uart_task() has the highest priority. This will ensure that every time a new command is required to be sent, the application will retain the actual task and release the uart task. At the end of this task, a new semaphore is called. This semaphore will call the check_task() whose functionality is to compare the received string to the expected one. check_task() This task is executed right after the buffer has received the number of bytes that were expected from the function parameters. The first step of this task is to eliminate the extra characters ´\n´ and ´\r´ that compose the SIM800 module answer message. Depending on the command sent, the task compares the response in order to look for an Error response or a positive one. This might be different than a simple OK, depending on the command. connect_task() This task is called when the SIM800 module is disconnected. This implementation is a simple string copy that use semaphores to call the task uart and then the check task compares the received string. After the module returns an IP address, the semaphore gives the order to call the send task to continue the application flow. send_task() This task has the least priority but is the first one created, it calls the sendRoutine() function which intends to gather the data to be sent. This connect task is triggered when a command that expects an IP address, returns an ERROR response. The command sent is AT+CIFSR plus the response comparison. The application flow enters to an if conditional that calls a semaphore for the connect_task() routine. Then, the frame to be sent through the TCP function of the SIM800 module is built. Due to the protocol chosen, the SIM800 module expects a response from the server, specifically a 200 HTTP code. Depending on your module, this is where the protocol modifications can be done. A point that is worth mentioning is that the module works in a 2G bandwidth. This can be a problem in some countries due to the SIM card version incompatibility between your area network and the module. If this is the case in your country, I strongly recommend looking for a 4G module like the SIM7080 or any other NB-IoT module. This might be more expensive but you are ensuring your project will work on top of the newest cellular bands.  
查看全文
写入 Compact Flash <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 如果有人遇到 MQX 3.8(以及 3.8.1)的问题,4.0 和 4.0.1)写入 Compact flash(/mfs/examples/cfcard)时,cfcard io 驱动程序出现错误。紧凑型闪存可以读取,但无法写入。 源文件中已修复此问题: c:\Freescale\Freescale MQX 3.8\mqx\source\io\pcflash\apcflash.c 在函数 _io_apcflash_write() 的第 452 行,将以下内容更改为: 结果 = _io_apcflash_read_write_blocks(fd_ptr, info_ptr, data_ptr, num, FALSE ); 更改为: 结果 = _io_apcflash_read_write_blocks(fd_ptr, info_ptr, data_ptr, num, TRUE ); 在 M5329EVB 和 MQX 3.8.1 上测试。
查看全文
NXP Tech Session - Get to Know the S32G Vehicle Network Processor View the Webinar Recording View the Webinar Recording
查看全文
NXP Tech Session - Bringing Low Power, High Performance Audio and Voice to Market on the i.MX RT600 Crossover MCU View Webinar Recording View Webinar Recording i.MXRT 600
查看全文
コンパクトフラッシュへの書き込み <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> MQX 3.8(3.8.1も含む)で問題に遭遇した人がいたら、4.0 および 4.0.1)コンパクトフラッシュ (/mfs/examples/cfcard) への書き込み中に、cfcard io ドライバーにエラーが発生します。コンパクトフラッシュは読み込めますが、書き込みはできません。 これに対する修正は、ソースファイルにあります。 c:\Freescale\Freescale MQX 3.8\mqx\source\io\pcflash\apcflash.c 452行目の関数_io_apcflash_write()で、次のように変更します。 結果 = _io_apcflash_read_write_blocks(fd_ptr, info_ptr, data_ptr, num, FALSE); 次のように変更します。 結果 = _io_apcflash_read_write_blocks(fd_ptr, info_ptr, data_ptr, num, TRUE); M5329EVB および MQX 3.8.1 でテスト済み。
查看全文