怎么让RT-Thread在frdm-k64上运行起来

发布时间:2021-12-17 14:50:49 作者:柒染
来源:亿速云 阅读:168
# 怎么让RT-Thread在frdm-k64上运行起来

## 前言

RT-Thread作为一款开源的实时操作系统(RTOS),因其高可裁剪性和丰富的组件生态,被广泛应用于嵌入式领域。FRDM-K64F是NXP基于ARM Cortex-M4内核的开发板,本文将详细介绍如何从零开始将RT-Thread移植到该硬件平台。

---

## 一、准备工作

### 1.1 硬件准备
- FRDM-K64F开发板(主控MK64FN1M0VLL12)
- Micro-USB数据线
- J-Link/OpeOCD调试器(可选)

### 1.2 软件环境
- RT-Thread源码(建议4.1.0+版本)
- ARM GCC工具链(gcc-arm-none-eabi)
- OpenOCD或J-Link驱动
- 串口终端工具(Putty/Tera Term)
- ENV工具(RT-Thread配置工具)

---

## 二、获取RT-Thread源码

通过Git克隆官方仓库:
```bash
git clone https://github.com/RT-Thread/rt-thread.git
cd rt-thread/bsp/frdm-k64

若bsp目录下无frdm-k64,需手动移植(详见第四章)


三、编译与下载

3.1 配置工程

使用ENV工具配置:

scons --menuconfig

选择以下关键配置: - 架构:Cortex-M4 - 时钟频率:120MHz - 串口设备:UART0(默认调试口) - 启用FinSH组件

3.2 编译固件

scons

生成rtthread.binrtthread.elf文件

3.3 烧录固件

方法一:OpenOCD

openocd -f interface/cmsis-dap.cfg -f target/k64.cfg -c "program rtthread.bin reset exit"

方法二:J-Link Commander

device MK64FN1M0XXX12
loadfile rtthread.elf
r
g

四、手动移植指南(无现成BSP时)

4.1 创建BSP基础结构

复制相近BSP模板(如stm32f4xx)并重命名:

cp -r bsp/stm32f4xx bsp/frdm-k64

4.2 修改关键文件

1. 时钟配置(board.c)

void SystemClock_Config(void) {
    /* K64主频设置为120MHz */
    SIM->CLKDIV1 = 0x10030000; 
    OSC0->CR = 0x0000;
    MCG->C2 = 0x0100;
    /* 具体PLL配置省略... */
}

2. 串口驱动(drv_usart.c)

static struct rt_serial_device serial0;
const struct rt_uart_ops k64_uart_ops = {
    .putc = k64_uart_putc,
    .getc = k64_uart_getc
};

int rt_hw_usart_init(void) {
    /* 初始化UART0硬件 */
    PORTB->PCR[16] = 0x0300;  // PTB16 as UART0_RX
    UART0->BDH = 0x00;
    UART0->BDL = 0x88;        // 115200 baud
    rt_serial_register(&serial0, "uart0", &k64_uart_ops);
    return 0;
}

4.3 链接脚本调整

修改link.lds中的内存分布:

MEMORY {
    FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 1M
    RAM (rwx)  : ORIGIN = 0x20000000, LENGTH = 256K
}

五、验证运行

5.1 串口输出检查

连接开发板USB至PC,波特率115200:

 \ | /
- RT -     Thread Operating System
 / | \     4.1.0 build Aug 2023
2006 - 2023 Copyright by RT-Thread team
msh >

5.2 基础功能测试

# 查看线程列表
msh >ps_thread
thread   pri  status      sp     stack size max used left tick
------   ---  ------      --     ---------- -------- ---------
tshell    20  ready   0x00000100 0x00001000    15%   0x00000010

六、常见问题解决

6.1 无法进入msh

6.2 硬件异常(HardFault)

6.3 外设驱动异常


结语

通过本文步骤,开发者可以快速在FRDM-K64F上搭建RT-Thread开发环境。建议后续结合RT-Thread的PIN/I2C/SPI等设备框架,进一步开发具体应用。官方社区(club.rt-thread.org)提供了丰富的技术资源可供参考。 “`

注:实际字数约1100字,可根据需要增减调试细节或补充外设驱动开发内容。

推荐阅读:
  1. 怎么在Windows上运行Linux容器
  2. 如何让PHP在Android上实现应用

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

frdm-k64 rt-thread

上一篇:代码中的Thread.sleep(0) 有什么意义呢

下一篇:如何进行springboot配置templates直接访问的实现

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》