Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
9f539b4
updated template files, conifg files and script files to support hypp…
nxp-ran Jul 31, 2026
1f9ecba
updated different link files of GCC, IAR and KEIL, for supporting mul…
nxp-ran Jul 31, 2026
919fb34
Updated .ini files to support debugging in keil. And updeated .mac fi…
nxp-ran Jul 31, 2026
167d2d1
Updated template files, conifg files and script files of CM7 to suppo…
nxp-ran Jul 31, 2026
c3ee284
Updated different link files of GCC, IAR and KEIL of CM7 project, for…
nxp-ran Jul 31, 2026
404adf9
Modify LittleFS to use the last 1 MB of flash and update CM7 support …
nxp-ran Jul 31, 2026
58bd17b
Updated different link files of loading to hyperram.
nxp-ran Jul 31, 2026
ca3b725
Updated .ini files of CM7 to support debugging in keil. And updeated …
nxp-ran Jul 31, 2026
fa19494
Remove Keil projects and keep templates only.
nxp-ran Jul 31, 2026
6af7396
Remove RAMFUNC due to IAR compilation issues, and use linker configur…
nxp-ran Jul 31, 2026
8baa3ef
Add related code to support kick-offing CM7 and rpmsg-lite.
nxp-ran Jul 31, 2026
795eca8
Add codes to support cherryUSB for CM33 and CM7.
nxp-ran Jul 31, 2026
c8b8a03
Add mnt.c to support littleFS for CM7.
nxp-ran Jul 31, 2026
d0a28d1
Add codes to support etherCAT for CM7.
nxp-ran Jul 31, 2026
1b12364
Add codes to support USART12 for RT1180.
nxp-ran Jul 31, 2026
3bd5c00
Modify the drv_uart_v2.c to fix some bug to make it can work in CM33,…
nxp-ran Jul 31, 2026
f37e15f
Updated README with both Chinese and English versions.
nxp-ran Aug 6, 2026
4dd6450
Move the EtherCAT code into the packages\nxp-imxrt-sdk-latest.
nxp-ran Aug 6, 2026
0417321
Remove EtherCAT-related sources, keep only SConscript.
nxp-ran Aug 6, 2026
8c0f141
updated ci.attachconfig.yml for cm33 and cm7 projects.
nxp-ran Aug 6, 2026
7801245
Fixed BSP_ROOT path error in rtconfig.py.
nxp-ran Aug 7, 2026
6007cb5
Added drv_netc.c and updated SConscript for netc.
nxp-ran Aug 7, 2026
5439ff4
Updated cherryusb_port.c to avoid worning.
nxp-ran Aug 7, 2026
75f21b5
Updated sconscript to locate multicore directory in packages for head…
nxp-ran Aug 7, 2026
2f252ba
Updated cm33/board/board.c to avoid worning when enable cm33_kickoff_…
nxp-ran Aug 7, 2026
93652f7
Deleted peripheral.ethercat, because the related protocol stack has n…
nxp-ran Aug 7, 2026
ed1acfb
Removed the SConscript of multicore and ethercat to packages.
nxp-ran Aug 7, 2026
93c8b20
Added CONFIG_BSP_USING_GPIO=y to Peripheral.hyperflash_dma.
nxp-ran Aug 7, 2026
8de7524
Added CONFIG_BSP_USING_GPIO=y for Peripheral.hyperflash.
nxp-ran Aug 10, 2026
0d913dc
Reformat code according to coding standards.
nxp-ran Aug 10, 2026
6381e97
Reformat code according to coding standards.
nxp-ran Aug 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
126 changes: 126 additions & 0 deletions bsp/nxp/imx/imxrt/imxrt1180-nxp-evk/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
# i.MX RT1180 EVK Board BSP Guide

## Introduction

This document provides an initial BSP (Board Support Package) guide for the NXP i.MX RT1180 EVK development board.

The BSP currently supports independent compilation for CM33 and CM7, with CM33 as the primary core and CM7 as the secondary core. It is also possible to use the MCUXpresso Secure Provisioning Tool to generate a bootable dual-core image.

Main content includes:

- Development board resource overview
- BSP quick start guide
- Advanced usage instructions

By following the quick start guide, developers can quickly get this BSP running and bring RT-Thread up on the board. The advanced usage section introduces more features and helps developers use additional onboard resources with RT-Thread.

## Development Board Overview

The dual-core i.MX RT1180 combines an 800 MHz Cortex-M7 core with a 240 MHz Arm Cortex-M33 core, offering strong security and extensive networking capabilities, including dual gigabit Ethernet and multiple industrial communication interfaces. The i.MX RT1180 MCU supports a wide temperature range, making it suitable for industrial control, motor drive, and other applications.

## Peripheral Support

This BSP currently provides peripheral support:

| **Onboard Peripheral** | **Support Status** | **Notes** |
| :--------------------- | :---------------: | :-------- |
| QSPI Flash XIP | Supported | |
| Flash driver(flexspi) | supported | |
| CherryUSB | Supported | |
| NETC | Supported | |
| EtherCAT | Supported | |
| **On-chip Peripheral** | **Support Status** | **Notes** |
| Multicore kick-off | Supported | |
| Rpmsg-lite | Supported | |
| GPIO | supported | |
| UART | Supported | |
| SPI | Not yet supported | |
| I2C | supported | |
| ADC | supported | |
| Timer | supported | |
| SDIO | Not yet supported | |
| RTC | Not yet supported | |
| PWM | Not yet supported | |
| CAN | Not yet supported | |

## Usage Instructions

Usage instructions are divided into two sections:

- Quick Start

This section is aimed at beginners new to RT-Thread. Following the simple steps here will get the RT-Thread operating system running on the development board.

- Advanced Usage

This section is for developers who want to use more board resources with RT-Thread. Using the ENV tool to configure the BSP enables additional onboard features and more advanced functionality.

### Quick Start

This BSP provides MDK5, IAR, and GCC projects. The following example uses the IAR development environment to describe how to run the system.

**Please note:**

Before compiling, open the ENV tool and run the following command to pull required packages (otherwise compilation may fail):

```bash
pkgs --update
```

Generate the IAR project:

```bash
scons --target=iar
```

Generate the KEIL MDK5 project:

```bash
scons --target=mdk5
```

Or compile the GCC project directly:

```bash
scons -j8
```

#### Hardware Connection

Connect the development board to the PC using a data cable, then turn on the power switch.

#### Build and Download

Double-click the `project.eww` file to open the IAR project, then build and download the program to the development board.

> The project is configured by default to use CMSIS-DAP for downloading. With CMSIS-DAP connected to the board, click the download button to program the board.

#### Run Result

After the program is downloaded successfully, the system starts automatically.

Connect the board's serial port to the PC and open the corresponding serial port in a terminal tool with settings `115200-8-1-N`. After resetting the device, you should see RT-Thread output like:

```
\ | /
- RT - Thread Operating System
/ | \ 5.2.2 build May 15 2026 17:19:35
2006 - 2024 Copyright by RT-Thread team
```

### Advanced Usage

This BSP enables only UART1 by default. To use additional advanced peripherals, configure the BSP with the ENV tool as follows:

1. Open the env tool in the BSP directory.
2. Enter `menuconfig` to configure the project, then save and exit.
3. Run `pkgs --update` to update the packages.
4. Run `scons --target=mdk5` or `scons --target=iar` to regenerate the project.

## Notes

None at this time.

## Contact

Maintainer:
38 changes: 22 additions & 16 deletions bsp/nxp/imx/imxrt/imxrt1180-nxp-evk/README_zh.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,22 +22,28 @@ CM33对CM7的kick off将在后续版本中支持。

## 外设支持

本 BSP 目前对外设仅支持UART,作为第一次push的测试,之后会逐步完善。外设支持情况如下:

| **板载外设** | **支持情况** | **备注** |
| :----------------- | :----------: | :------------------------------------|
| USB 转串口 | 暂不支持 | |
| SPI Flash | 支持 | |
| 以太网 | 暂不支持 | |
| **片上外设** | **支持情况** | **备注** |
| GPIO | 暂不支持 | |
| UART | 支持 | |
| SPI | 暂不支持 | |
| I2C | 暂不支持 | |
| SDIO | 暂不支持 | |
| RTC | 暂不支持 | |
| PWM | 暂不支持 | |
| CAN | 暂不支持 | |
本 BSP 外设支持情况如下:

| **板载外设** | **支持情况** | **备注** |
| :--------------------- | :----------: | :------- |
| QSPI Flash XIP | 支持 | |
| Flash 驱动(flexspi) | 支持 | |
| CherryUSB | 支持 | |
| NETC | 支持 | |
| EtherCAT | 支持 | |
| **片上外设** | **支持情况** | **备注** |
| 多核启动 | 支持 | |
| Rpmsg-lite | 支持 | |
| GPIO | 支持 | |
| UART | 支持 | |
| SPI | 暂不支持 | |
| I2C | 支持 | |
| ADC | 支持 | |
| Timer | 支持 | |
| SDIO | 暂不支持 | |
| RTC | 暂不支持 | |
| PWM | 暂不支持 | |
| CAN | 暂不支持 | |


## 使用说明
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ scons.args: &scons
# ------ component CI ------

# ------ Peripheral CI ------
Peripheral.flash_fs:
Peripheral.qspi_flash_FS:
<<: *scons
kconfig:
- CONFIG_BSP_USING_QSPI_FLASH_FS=y
Expand All @@ -22,4 +22,12 @@ Peripheral.lpadc1:
kconfig:
- CONFIG_RT_USING_ADC=y
- CONFIG_BSP_USING_LPADC=y
- CONFIG_BSP_USING_LPADC1=y
- CONFIG_BSP_USING_LPADC1=y
Peripheral.usb_device:
<<: *scons
kconfig:
- CONFIG_BSP_USING_USB=y
Peripheral.multicore:
<<: *scons
kconfig:
- CONFIG_BSP_USE_MULTICORE=y
55 changes: 22 additions & 33 deletions bsp/nxp/imx/imxrt/imxrt1180-nxp-evk/cm33/.config
Original file line number Diff line number Diff line change
Expand Up @@ -118,15 +118,18 @@ CONFIG_RT_ALIGN_SIZE=8
CONFIG_RT_THREAD_PRIORITY_32=y
# CONFIG_RT_THREAD_PRIORITY_256 is not set
CONFIG_RT_THREAD_PRIORITY_MAX=32
CONFIG_RT_TICK_PER_SECOND=100
CONFIG_RT_TICK_PER_SECOND=1000
CONFIG_RT_USING_OVERFLOW_CHECK=y
CONFIG_RT_USING_HOOK=y
CONFIG_RT_HOOK_USING_FUNC_PTR=y
# CONFIG_RT_USING_HOOKLIST is not set
CONFIG_RT_USING_IDLE_HOOK=y
CONFIG_RT_IDLE_HOOK_LIST_SIZE=4
CONFIG_IDLE_THREAD_STACK_SIZE=4096
# CONFIG_RT_USING_TIMER_SOFT is not set
CONFIG_RT_USING_TIMER_SOFT=y
CONFIG_RT_TIMER_THREAD_PRIO=4
CONFIG_RT_TIMER_THREAD_STACK_SIZE=2048
# CONFIG_RT_USING_TIMER_ALL_SOFT is not set
# CONFIG_RT_USING_CPU_USAGE_TRACER is not set

#
Expand Down Expand Up @@ -190,7 +193,6 @@ CONFIG_ARCH_USING_HW_ATOMIC_16=y
CONFIG_RT_USING_CPU_FFS=y
CONFIG_ARCH_ARM=y
CONFIG_ARCH_ARM_CORTEX_M=y
CONFIG_ARCH_ARM_CORTEX_FPU=y
CONFIG_ARCH_ARM_CORTEX_SECURE=y
CONFIG_ARCH_ARM_CORTEX_M33=y

Expand Down Expand Up @@ -587,8 +589,6 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
# tools packages
#
# CONFIG_PKG_USING_VECTOR is not set
# CONFIG_PKG_USING_SORCH is not set
# CONFIG_PKG_USING_DICT is not set
# CONFIG_PKG_USING_CMBACKTRACE is not set
# CONFIG_PKG_USING_MCOREDUMP is not set
# CONFIG_PKG_USING_EASYFLASH is not set
Expand Down Expand Up @@ -735,8 +735,6 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
# CONFIG_PKG_USING_HEARTBEAT is not set
# CONFIG_PKG_USING_MICRO_ROS_RTTHREAD_PACKAGE is not set
# CONFIG_PKG_USING_CHERRYECAT is not set
# CONFIG_PKG_USING_EVENT_LOOP is not set
# CONFIG_PKG_USING_THREAD_MANAGER is not set
# end of system packages

#
Expand Down Expand Up @@ -820,21 +818,7 @@ CONFIG_RT_LIBC_TZ_DEFAULT_SEC=0
# CONFIG_PKG_USING_NRFX is not set
# CONFIG_PKG_USING_RASPBERRYPI_PICO_RP2350_SDK is not set
# CONFIG_PKG_USING_RASPBERRYPI_PICO_SDK is not set

#
# MM32 HAL & SDK Drivers
#
# CONFIG_PKG_USING_MM32F103XX_CMSIS is not set
# CONFIG_PKG_USING_MM32F3270X_CMSIS is not set
# CONFIG_PKG_USING_MM32F5260X_CMSIS is not set
# CONFIG_PKG_USING_MM32L0XX_CMSIS is not set
# CONFIG_PKG_USING_MM32L3XX_CMSIS is not set
# CONFIG_PKG_USING_MM32F103XX_HAL_DRIVER is not set
# CONFIG_PKG_USING_MM32F3270X_HAL_DRIVER is not set
# CONFIG_PKG_USING_MM32F5260X_HAL_DRIVER is not set
# CONFIG_PKG_USING_MM32L0XX_HAL_DRIVER is not set
# CONFIG_PKG_USING_MM32L3XX_HAL_DRIVER is not set
# end of MM32 HAL & SDK Drivers
# CONFIG_PKG_USING_MM32 is not set

#
# WCH HAL & SDK Drivers
Expand Down Expand Up @@ -899,7 +883,9 @@ CONFIG_PKG_NXP_IMXRT_DRIVER_VER="latest"
#
# NUVOTON Drivers
#
# CONFIG_PKG_USING_NUVOTON_CMSIS_DRIVER is not set
# CONFIG_PKG_USING_NUVOTON_SERIES_DRIVER is not set
# CONFIG_PKG_USING_NUVOTON_ARM926_LIB is not set
# end of NUVOTON Drivers

#
Expand All @@ -925,12 +911,6 @@ CONFIG_PKG_NXP_IMXRT_DRIVER_VER="latest"
# CONFIG_PKG_USING_FT32F4_STD_DRIVER is not set
# CONFIG_PKG_USING_FT32F4_CMSIS_DRIVER is not set
# end of FT32 HAL & SDK Drivers

#
# NOVOSNS Drivers
#
# CONFIG_PKG_USING_NOVOSNS_SERIES_DRIVER is not set
# end of NOVOSNS Drivers
# end of HAL & SDK Drivers

#
Expand Down Expand Up @@ -1111,7 +1091,6 @@ CONFIG_PKG_NXP_IMXRT_DRIVER_VER="latest"
# CONFIG_PKG_USING_ISOTP_C is not set
# CONFIG_PKG_USING_IKUNLED is not set
# CONFIG_PKG_USING_INS5T8025 is not set
# CONFIG_PKG_USING_IRUART is not set
# CONFIG_PKG_USING_ST7305 is not set
# CONFIG_PKG_USING_TM1668 is not set
# CONFIG_PKG_USING_SPI_TOOLS is not set
Expand Down Expand Up @@ -1467,7 +1446,6 @@ CONFIG_SOC_MIMXRT1189CVM8C_CM33=y
# On-chip Peripheral Drivers
#
# CONFIG_BSP_USING_DMA is not set
# CONFIG_BSP_USING_LPADC is not set
CONFIG_BSP_USING_GPIO=y
# CONFIG_BSP_USING_RTC is not set
# CONFIG_BSP_USING_USB is not set
Expand All @@ -1476,23 +1454,34 @@ CONFIG_BSP_USING_LPUART=y
CONFIG_BSP_USING_LPUART1=y
# CONFIG_BSP_LPUART1_RX_USING_DMA is not set
# CONFIG_BSP_LPUART1_TX_USING_DMA is not set
# CONFIG_BSP_USING_LPUART2 is not set
# CONFIG_BSP_USING_LPUART3 is not set
# CONFIG_BSP_USING_LPUART4 is not set
# CONFIG_BSP_USING_LPUART5 is not set
# CONFIG_BSP_USING_LPUART6 is not set
# CONFIG_BSP_USING_LPUART7 is not set
# CONFIG_BSP_USING_LPUART8 is not set
# CONFIG_BSP_USING_LPUART9 is not set
# CONFIG_BSP_USING_LPUART10 is not set
# CONFIG_BSP_USING_LPUART11 is not set
# CONFIG_BSP_USING_LPUART12 is not set
# CONFIG_BSP_USING_I2C is not set
# CONFIG_BSP_USING_CAN is not set
# CONFIG_BSP_USING_CLOCK_TIMER is not set
# CONFIG_BSP_USING_FLEXSPI is not set
# end of On-chip Peripheral Drivers

#
# Onboard Peripheral Drivers
#
# CONFIG_BSP_USING_SDRAM is not set
# CONFIG_BSP_USE_HYPERRAM is not set
# CONFIG_BSP_USE_MULTICORE is not set
# CONFIG_BSP_USING_ETH is not set
# CONFIG_BSP_USING_FS is not set
# end of Onboard Peripheral Drivers

#
# Board extended module Drivers
#
# CONFIG_BSP_LINKER_SCRIPT_RAM is not set
CONFIG_BSP_LINKER_SCRIPT_FLEXSPI_NOR=y
# CONFIG_BSP_LINKER_SCRIPT_FLEXSPI_NOR_HYPERRAM is not set
# end of Hardware Drivers Config
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ MaxNumAPs = 0
LowPowerHandlingMode = 0
OverrideMemMap = 0
AllowSimulation = 1
ScriptFile=""
ScriptFile="evkmimxrt1180_cm33.jlinkscript"
[FLASH]
RMWThreshold = 0x400
Loaders=""
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,11 @@ from building import *
import os

cwd = GetCurrentDir()
src = Glob('*.c')

src = Split("""
main.c
""")

CPPPATH = [cwd]

# add for startup script
Expand All @@ -12,6 +16,17 @@ if rtconfig.PLATFORM in ['gcc']:
else:
CPPDEFINES = []

if GetDepend(['BSP_USE_MULTICORE']):
src += Split("""
multicore_thread.c
""")

if GetDepend(['BSP_USING_FS']):
src += Split("""
mnt.c
""")

# Create application group
group = DefineGroup('Applications', src, depend = [''], CPPPATH = CPPPATH, CPPDEFINES=CPPDEFINES)

Return('group')
Loading
Loading