嵌入式技术论坛
直播中

贾飞小

7年用户 1769经验值
私信 关注
[经验]

在RT-Thread studio中如何完成一个简单的DEMO

1 RA 开发环境搭建

可以参考:【基于 RT-Thread Studio的CPK-RA6M4 开发板环境搭建】

找到下载的文件打开:setup_fsp_v3_5_0_rasc_v2021-10.exe

配置安装路径,安装完成后找到此路径,之后添加 CPK-RA6M4 板级支持包 时会用到

勾选 Licenese

点击 install 等待安装完成。

运行 rasc.exe,验证是否安装成功。路径:\eclipse\rasc.exe

成功启动后关闭即可,继续接下来的操作

1.2.2 CPK-RA6M4 板级支持包

下载后确认支持包版本 3.5.0。从网盘下载可忽略此下载步骤

在下载的支持包中可以找到以下三个文件

此时找到 FSP 的安装路径,进入 \internal\projectgen\ra\ ,将文件复制到对应的文件夹中。

再次打开 rasc.exe,查看是否添加成功。点击 next 进入工程创建

确认是否存在已添加的 CPK-RA6M4 开发板的支持包,此步骤仅为验证是否添加成功,不必继续创

建工程,关闭即可。

到此基本将瑞萨开发板相关的环境搭建完成。调试器 J-link 的安装,在下面的步骤中介绍。

2 RT-Thread 开发环境搭建

2.1 基于 RT-Thread studio

2.1.1 下载安装必备软件环境

下载并安装 RT-Thread studio

下载 BSP 支持包,勾选最新版即可。

2.1.2 创建工程测试结果

打开 RT-Thread studio,创建开发板模板工程


打开创建的工程,双击 RA Smart Configurator 即可打开刚刚安装的 FSP 配置工具

第一次打开需要配置 FSP 路径,选择到安装路径即可。确认可打开 FSP 即可关闭,先不做修改继

续后续操作。

编译工程,确认工具链配置正确

接线:连接串口工具、USB-Jlink,跳线(normal opearation, device mode)

连接 UART7 (TX:P613; RX:P614),波特率 115200。此路串口用于 RT-Thread 系统命令行交互。

下载程序到开发板,注意下载的是 HEX 文件。

查看运行结果

下载程序成功之后,系统会自动运行并打印系统信息。

连接开发板对应串口到 PC , 在终端工具里打开相应的串口(115200-8-1-N),复位设备后,可以

看到 RT-Thread 的输出信息。输入 help 命令可查看系统中支持的命令。

\ | /

  • RT - Thread Operating System

/ | \ 4.1.0 build Jan 18 2022 18:48:37

2006 - 2021 Copyright by rt-thread team

Hello RT-Thread!

msh >

RT-Thread shell commands:

icu_sample - icu sample

list - list all commands in system

list_device - list device in system

list_timer - list timer in system

list_msgqueue - list message queue in system

list_mailbox - list mail box in system

list_mutex - list mutex in system

list_event - list event in system

list_sem - list semaphore in system

list_thread - list thread

version - show RT - Thread version information

clear - clear the terminal screen

hello - say hello world

free - Show the memory usage in the system.

ps - List threads in the system.

help - RT - Thread shell help.

reboot - Reboot System

msh >

应用入口函数

应用层的入口函数在 bsp\ra6m4-cpk\src\hal_emtry.c 中 的 void hal_entry(void) 。用户编写的源文件

可直接放在 src 目录下。

void hal_entry(void)

{

rt_kprintf("\nHello RT-Thread!\n");

while (1)

{

rt_pin_write(LED3_PIN, PIN_HIGH);

rt_thread_mdelay(500);

rt_pin_write(LED3_PIN, PIN_LOW);

rt_thread_mdelay(500);

}

}

2 IIC 光线传感器实验

使用上文中创建好的工程,根据以下操作完成板载光线传感器的实验。

2.1 添加传感器软件包.

打开 RT-Thread settings,在软件包中心搜索 isl29035 并点击添加软件包。

2.2 配置软件 IIC

打开 硬件 配置页,在 芯片设备驱动 配置中打开I2C外设,可以查看开发板的用户手册确认板载光线传

感器对接的芯片引脚号,并配置软件I2C使用的引脚,注意引脚编号是16进制数表示。

2.3 测试验证

配置完成后 ctrl + s 保存工程,接下来就是验证传感器能否正常工作。

打开软件包目录下的 README 文档,查看文档中描述的测试验证方法。

将测试代码添加到 hal_entry.c 文件中。保存修改,编译下载。

hal_entry.c

/*

  • Copyright (c) 2006-2021, RT-Thread Development Team
  • SPDX-License-Identifier: Apache-2.0
  • Change Logs:
  • Date Author Notes
  • 2021-10-10 Sherman first version
  • 2021-11-03 Sherman Add icu_sample

*/

#include <rtthread.h>

#include "hal_data.h"

#include <rtdevice.h>

#define LED3_PIN BSP_IO_PORT_01_PIN_06

#define USER_INPUT "P105"

void hal_entry(void)

{

rt_kprintf("\nHello RT-Thread!\n");

while (1)

{

    rt_pin_write(LED3_PIN, PIN_HIGH);

    rt_thread_mdelay(500);

    rt_pin_write(LED3_PIN, PIN_LOW);

    rt_thread_mdelay(500);

}

}

void irq_callback_test(void *args)

{

rt_kprintf("\n IRQ00 triggered \n");

}

void icu_sample(void)

{

/* init */

rt_uint32_t pin = rt_pin_get(USER_INPUT);

rt_kprintf("\n pin number : 0x%04X \n", pin);

rt_err_t err = rt_pin_attach_irq(pin, PIN_IRQ_MODE_RISING, irq_callback_test, RT_NULL);

if(RT_EOK != err)

{

    rt_kprintf("\n attach irq failed. \n");

}

err = rt_pin_irq_enable(pin, PIN_IRQ_ENABLE);

if(RT_EOK != err)

{

    rt_kprintf("\n enable irq failed. \n");

}

}

MSH_CMD_EXPORT(icu_sample, icu sample);

#include "sensor_renesas_isl29035.h"

#define ISL29035_I2C_BUS "i2c1"

int rt_hw_isl29035_port(void)

{

struct rt_sensor_config cfg;

cfg.intf.dev_name  = ISL29035_I2C_BUS;

rt_hw_isl29035_init("isl29035", &cfg);

return RT_EOK;

}

INIT_ENV_EXPORT(rt_hw_isl29035_port);

可能默认使用的JLink-v7.50版本会下载失败,可以修改为6.80版本的JLink再尝试下载。

根据 README 中的介绍,输入测试命令 sensor_polling li_isl29 验证传感器能否正常读到数

据。

msh >[I/I2C] I2C bus [i2c1] registered

\ | /

  • RT - Thread Operating System

/ | \ 4.1.0 build Aug 15 2022 10:56:59

2006 - 2022 Copyright by RT-Thread team

[I/sensor] rt_sensor[li_isl29035] init success

Hello RT-Thread!

msh >help

RT-Thread shell commands:

icu_sample - icu sample

clear - clear the terminal screen

version - show RT-Thread version information

list_thread - list thread

list_sem - list semaphore in system

list_event - list event in system

list_mutex - list mutex in system

list_mailbox - list mail box in system

list_msgqueue - list message queue in system

list_timer - list timer in system

list_device - list device in system

help - RT-Thread shell help.

ps - List threads in the system.

free - Show the memory usage in the system.

sensor_fifo - Sensor fifo mode test function

sensor_int - Sensor interrupt mode test function

sensor_polling - Sensor polling mode test function

sensor - sensor test function

reboot - Reboot System

msh >sensor_polling li_isl29

[I/sensor.cmd] num: 0, light: 122 lux, timestamp:536876370

[I/sensor.cmd] num: 1, light: 124 lux, timestamp:536876370

[I/sensor.cmd] num: 2, light: 125 lux, timestamp:536876370

[I/sensor.cmd] num: 3, light: 124 lux, timestamp:536876370

[I/sensor.cmd] num: 4, light: 124 lux, timestamp:536876370

[I/sensor.cmd] num: 5, light: 81 lux, timestamp:536876370

[I/sensor.cmd] num: 6, light: 65 lux, timestamp:536876370

[I/sensor.cmd] num: 7, light: 62 lux, timestamp:536876370

[I/sensor.cmd] num: 8, light: 126 lux, timestamp:536876370

[I/sensor.cmd] num: 9, light: 56 lux, timestamp:536876370

msh >

原作者:2345vor

更多回帖

发帖
×
20
完善资料,
赚取积分