|
1 | | -# FRDM-IMX91 RT-Thread BSP |
| 1 | +# FRDM-IMX91 板级支持包 使用说明 |
2 | 2 |
|
3 | | -This folder contains the RT-Thread BSP for the NXP FRDM-IMX91 development board. |
| 3 | +本目录包含NXP FRDM-IMX91 开发板的板级支持包代码。 |
4 | 4 |
|
5 | | -## Board Overview |
| 5 | +## 1. 简介 |
6 | 6 |
|
7 | | -## Build and Run |
| 7 | +### 1.1 i.MX91系列处理器简介 |
8 | 8 |
|
9 | | -### Setup RT-Thread Development Environment |
| 9 | +i.MX 91系列采用了可扩展的Arm® Cortex®-A55内核,其主频高达1.4GHz,支持新一代LPDDR4内存以延长平台寿命,支持双千兆以太网和双USB端口,以及面向医疗、工业和消费物联网市场细分领域的丰富外设。 |
10 | 10 |
|
11 | | -### Setup Network and TFTP Server for FRDM-IMX91 |
12 | 11 |
|
13 | | -### Build RT-Thread BSP for FRDM-IMX91 |
14 | 12 |
|
15 | | -1. Clone the RT-Thread repository: |
16 | | - ``` |
17 | | - git clone https://github.com/RT-Thread/rt-thread.git |
18 | | - ``` |
| 13 | +### 1.2 FRDM-i.MX91开发板简介 |
19 | 14 |
|
20 | | -2. Navigate to the BSP folder: |
21 | | - ``` |
22 | | - cd rt-thread/bsp/nxp/imx/imx91 |
23 | | - ``` |
| 15 | +FRDM i.MX 91开发板是一款低成本、紧凑型开发板,采用i.MX 91应用处理器。该板配备板载IW610模块,集成了恩智浦的三频解决方案,支持Wi-Fi 6、BLE 5.4和802.15.4,适用于开发现代工业和物联网应用。该开发板包含LPDDR4、用于快速启动的eMMC存储、PMIC以及扩展功能。 |
24 | 16 |
|
25 | | -3. Build the BSP: |
26 | | - ``` |
27 | | - scons -j 8 |
28 | | - ``` |
| 17 | +FRDM i.MX 91开发板是一款入门级紧凑型开发板,采用i.MX 91应用处理器。 |
29 | 18 |
|
30 | | -4. copy the `rtthread.bin` to the TFTP server working directory: |
31 | | - ``` |
32 | | - cp rtthread.bin /path/to/tftp_work_dir/ |
33 | | - ``` |
| 19 | + |
34 | 20 |
|
35 | | -### Run RT-Thread on FRDM-IMX91 with u-boot |
| 21 | +开发板主要硬件资源: |
| 22 | + |
| 23 | +| 资源 | 简介 | |
| 24 | +| ------------------ | ------------------------------------------------------------ | |
| 25 | +| 处理器 | ◆ i.MX 91应用处理器< br />◆ [email protected]< br />◆ EdgeLock®安全区域 | |
| 26 | +| 存储器 | ◆ 1GB LPDDR4<br />◆ 8GB eMMC5.1<br />◆ MicroSD插槽<br />◆ EEPROM | |
| 27 | +| 显示器和摄像头接口 | ◆ 并行RGB LCD接口(40引脚扩展接口)<br />◆ 并行摄像头接口(40引脚扩展接口) | |
| 28 | +| 无线 | ◆ u-blox MAYA-W476-00B三频Wi-Fi 6/BLE 5.4/802.15.4模块 | |
| 29 | +| 音频 | ◆ 3.5mm耳机插孔 | |
| 30 | +| 连接 | ◆ USB2.0 Type-C连接器<br />◆ USB2.0 type A连接器 <br />◆ 两个GbE RJ45 <br />◆ CAN(HDR) <br />◆ 40引脚(2x20) <br />◆ 扩展接口 <br />◆ I²C HDR <br />◆ ADC HDR | |
| 31 | +| 调试 | ◆ SWD连接器 <br />◆ 通过USB Type C的UART | |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | +### 1.3 开发板和PC之间的连接 |
| 36 | + |
| 37 | +在FRDM i.MX 91开发板上调测RT-Thread的过程中,需要使用到的接口有: |
| 38 | + |
| 39 | +1. POWER(P1),USB供电接口,用于向开发板供电; |
| 40 | +2. DEBUG(P16),带有USB转串口芯片,用于U-Boot和RT-Thread日志输出、命令行交互; |
| 41 | +3. ENET1(P4)或者ENET2(P3),以太网口,用于网络下载编译生成的RT-Thread固件; |
| 42 | + |
| 43 | + |
| 44 | + |
| 45 | +## 2. 编译 |
| 46 | + |
| 47 | +### 2.1 下载AArch64工具链 |
| 48 | + |
| 49 | +从ARM开发者网站下载AArch64裸机工具链, |
| 50 | + |
| 51 | +下载页面: [Arm GNU Toolchain Downloads – Arm Developer](https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads) |
| 52 | + |
| 53 | +例如,64位Windows主机上下载: https://developer.arm.com/-/media/Files/downloads/gnu/14.3.rel1/binrel/arm-gnu-toolchain-14.3.rel1-mingw-w64-x86_64-aarch64-none-elf.zip |
| 54 | + |
| 55 | +例如,下载后解压到本地路径:`D:\ARM\arm-gnu-toolchain-14.3.rel1-mingw-w64-x86_64-aarch64-none-elf` |
| 56 | + |
| 57 | + |
| 58 | + |
| 59 | +### 2.2 下载RT-Thread Env工具 |
| 60 | + |
| 61 | +下载页面:[rt-thread.org/download.html#download-rt-thread-env-tool](https://www.rt-thread.org/download.html#download-rt-thread-env-tool) |
| 62 | + |
| 63 | + |
| 64 | + |
| 65 | +### 2.3 下载RT-Thread源代码 |
| 66 | + |
| 67 | +在Env环境中,使用git命令下载RT-Thread源代码,例如: |
36 | 68 |
|
37 | 69 | ```sh |
| 70 | +git clone https://github.com/RT-Thread/rt-thread.git |
| 71 | +``` |
| 72 | + |
| 73 | + |
| 74 | + |
| 75 | +### 2.4 编译FRDM-i.MX 91目标 |
| 76 | + |
| 77 | +在Env环境中,转到`i.MX 91`的BSP目录: |
| 78 | + |
| 79 | +```sh |
| 80 | +cd bsp/nxp/imx/imx91/ |
| 81 | +``` |
| 82 | + |
| 83 | +然后,设置工具链路径(Windows Env环境): |
| 84 | + |
| 85 | +```bat |
| 86 | +set RTT_EXEC_PATH=D:\ARM\arm-gnu-toolchain-14.3.rel1-mingw-w64-x86_64-aarch64-none-elf\bin |
| 87 | +``` |
| 88 | + |
| 89 | +或者(bash): |
| 90 | + |
| 91 | +```sh'' |
| 92 | +export RTT_EXEC_PATH=/path/to/aarch64-none-elf/bin |
| 93 | +``` |
| 94 | + |
| 95 | +接着,执行`scons`命令开始编译: |
| 96 | + |
| 97 | +```sh |
| 98 | +scons -j 8 |
| 99 | +``` |
| 100 | + |
| 101 | + |
| 102 | + |
| 103 | +## 3.下载 |
| 104 | + |
| 105 | +开发板默认固件带有U-Boot启动加载器,开机3秒内通过串口发送换行符,可以进入U-Boot命令行界面。 |
| 106 | + |
| 107 | +### 3.1 准备U-Boot网络环境 |
| 108 | + |
| 109 | +将开发板和PC连接到同一个路由器。 |
| 110 | + |
| 111 | +例如,PC的IP地址为:`192.168.0.101` |
| 112 | + |
| 113 | +在开发板的U-Boot命令行界面内,设置FRDM-i.MX为静态IP: |
| 114 | + |
| 115 | +```sh |
| 116 | +setenv ipaddr 192.168.0.120 |
| 117 | +``` |
| 118 | + |
| 119 | +或者从路由器动态获取IP: |
| 120 | + |
| 121 | +```sh |
| 122 | +dhcp |
| 123 | +``` |
| 124 | + |
| 125 | +成功后,可以使用ping命令测试是否可以访问PC: |
| 126 | + |
| 127 | +```sh |
| 128 | +ping 192.168.0.101 |
| 129 | +``` |
| 130 | + |
| 131 | +成功则表示网络环境正常,可以执行后续步骤。 |
| 132 | + |
| 133 | + |
| 134 | + |
| 135 | +### 3.2 安装TFTP服务 |
| 136 | + |
| 137 | +Windows系统可以使用Tftpd,下载链接: [Releases · PJO2/tftpd64](https://github.com/PJO2/tftpd64/releases/) |
| 138 | + |
| 139 | +例如,下载portable免安装版本: https://github.com/PJO2/tftpd64/releases/download/v4.74/tftpd64_portable_v4.74.zip |
| 140 | + |
| 141 | +启动后,设置TFTP工作目录: |
| 142 | + |
| 143 | + |
| 144 | + |
| 145 | + |
| 146 | + |
| 147 | +### 3.3 拷贝rtthread.bin到TFTP工作目录 |
| 148 | + |
| 149 | +在PC的Env环境中,将 `rtthread.bin` 拷贝到TFTP工作目录: |
| 150 | +```bat |
| 151 | +copy /Y rtthread.bin D:\PortableSoftwareApps\tftpd64_portable_v4.74\work\ |
| 152 | +``` |
| 153 | + |
| 154 | +或者: |
| 155 | + |
| 156 | +```sh |
| 157 | +cp rtthread.bin /path/to/tftp_work_dir/ |
| 158 | +``` |
| 159 | + |
| 160 | + |
| 161 | + |
| 162 | +### 3.4 下载rtthread.bin到开发板内存中 |
| 163 | + |
| 164 | +在开发板的U-Boot命令行界面中,首先执行如下命令,设置TFTP服务地址(PC的IP地址): |
| 165 | + |
| 166 | +```sh |
| 167 | +setenv serverip 192.168.0.101 |
| 168 | +``` |
| 169 | + |
| 170 | +然后,继续在开发板的U-Boot命令行界面中,执行如下命令,将`rtthread.bin`下载到内存中: |
| 171 | + |
| 172 | +```sh |
| 173 | +tftp 0x80000000 rtthread.bin |
| 174 | +``` |
| 175 | + |
| 176 | +下载的目标内存地址为:`0x80000000`; |
| 177 | + |
| 178 | + |
| 179 | + |
| 180 | +## 4. 运行 |
| 181 | + |
| 182 | +### 4.1 通过U-Boot的tftp命令下载、运行rtthread.bin |
| 183 | + |
| 184 | +完成前述步骤后,在开发板的 U-Boot 命令行界面中,继续执行以下命令,以跳转至 `0x80000000` 地址并执行代码: |
| 185 | + |
| 186 | +```sh |
| 187 | +dcache flush |
| 188 | +icache flush |
| 189 | +go 0x80000000 |
| 190 | +``` |
| 191 | + |
| 192 | +每次开发板上电启动后,均需执行上述 U-Boot 命令,RT-Thread 方可正常运行。这在需要反复调试时显得不够便捷。 |
| 193 | + |
| 194 | +为此,可将以上命令写入 U-Boot 的环境变量 `bootcmd` 中,从而实现开机自动执行,便于后续调试。具体操作命令如下: |
| 195 | + |
| 196 | +```sh |
| 197 | +setenv ipaddr 192.168.0.120 |
| 198 | +setenv serverip 192.168.0.101 |
38 | 199 | setenv bootcmd "tftp 0x80000000 rtthread.bin; dcache flush; icache flush; go 0x80000000" |
39 | 200 | saveenv |
40 | 201 | reset |
41 | 202 | ``` |
| 203 | + |
| 204 | +其中,`saveenv` 命令用于保存环境变量的值,确保重启后依然生效;最后的 `reset` 为重启命令。 |
| 205 | + |
| 206 | +执行效果如下图所示: |
| 207 | + |
| 208 | + |
| 209 | + |
| 210 | +### 4.2 通过U-Boot的fatload命令下载、运行rtthread.bin |
| 211 | + |
| 212 | +另外,也可以先将PC上编译生产的`rtthread.bin`文件拷贝到MicroSD卡中,再将MicroSD弹出后插到开发板上,然后通过U-Boot的`fatload`命令将MicroSD卡中的文件加载内存,再执行跳转: |
| 213 | + |
| 214 | +```sh |
| 215 | +fatload mmc 1:1 0x80000000 rtthread.bin; dcache flush ; icache flush; go 0x80000000 |
| 216 | +``` |
| 217 | + |
| 218 | +相应的也可以保存到`bootcmd`变量中: |
| 219 | + |
| 220 | +```sh |
| 221 | +setenv bootcmd "fatload mmc 1:1 0x80000000 rtthread.bin; dcache flush ; icache flush; go 0x80000000" |
| 222 | +``` |
| 223 | + |
| 224 | + |
| 225 | + |
| 226 | +## 5. 参考链接 |
| 227 | + |
| 228 | +1. 维护人: [xusiwei](https://github.com/xusiwei) |
| 229 | +2. AArch64工具链下载页面: [Arm GNU Toolchain Downloads – Arm Developer](https://developer.arm.com/downloads/-/arm-gnu-toolchain-downloads) |
| 230 | +3. Tftp64下载页面:https://github.com/PJO2/tftpd64/releases |
| 231 | +4. FRDM-i.MX91开发板介绍:[FRDM i.MX 91 Development Board | NXP 半导体](https://www.nxp.com.cn/design/design-center/development-boards-and-designs/FRDM-IMX91) |
| 232 | +5. i.MX91处理器介绍: [i.MX 91 Applications Processors Family | NXP 半导体](https://www.nxp.com.cn/products/i.MX91) |
| 233 | + |
0 commit comments