0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

手把手在1GHz单片机上支持大模型对话 | 技术集结

RT-Thread官方账号 2026-01-31 10:05 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

本文将演示如何基于RT-Thread,在RA8P1 Titan Board上,从设备驱动、W-iFi联网 到 AIOT大模型部署,构建一个端侧AIoT应用。内容聚焦具体操作与代码实现,为在高性能MCU上进行全栈开发的工程师提供一份可直接复现的实践参考。

目录


环境搭建


烧录方法


RT-Thread 设备驱动


Wi-Fi 联网实验


AIOT大模型对话实验


效果演示


获取同款硬件

1 环境搭建

XShell 软件:https://cdn.netsarang.net/v8/Xshell-latest-p

RT-Thread Studio 安装包:https://download-redirect.rt-thread.org/download/studio/RT-Thread_Studio_2.2.9-setup-x86_64_202412161335.exe

Titan Board SDK环境安装:https://www.rt-thread.org/document/site/#/rt-thread-version/rt-thread-standard/hw-board/ra8p1-titan-board/ra8p1-titan-board?id=rt-thread-studio-%e5%bc%80%e5%8f%91%e6%ad%a5%e9%aa%a4

FSP-6.0安装包:https://github.com/renesas/fsp/releases/download/v6.0.0/setup_fsp_v6_0_0_rasc_v2025-04.1.exe

如果网络不好,有离线SDK包(sdk-bsp-ra8p1-titan-board-1.0.0.zip),需要如下方式进行导入:

3e9d3410-fe49-11f0-96ea-92fbcf53809c.png

2 烧录方法

设备名称:R7KA8P1KF_CPU0

3 RT-Thread 设备驱动

实现一个RT-Thread设备

staticrt_err_tdrv_test_init(rt_device_t dev){ rt_kprintf("test drv init\n"); returnRT_EOK;}
staticrt_err_tdrv_test_open(rt_device_t dev, rt_uint16_t oflag){ rt_kprintf("test drv open flag = %d\n", oflag); returnRT_EOK;}
staticrt_err_tdrv_test_close(rt_device_t dev){ rt_kprintf("test drv close\n"); returnRT_EOK;}
staticrt_ssize_tdrv_test_read(rt_device_t dev, rt_off_t pos,void*buffer, rt_size_t size){ rt_kprintf("test drv read pos = %d, size = %d\n", pos, size); returnsize;}
staticrt_ssize_tdrv_test_write(rt_device_t dev, rt_off_t pos, constvoid *buffer, rt_size_t size){ rt_kprintf("test drv write pos = %d, size = %d\n", pos, size); returnsize;}
staticrt_err_tdrv_test_control(rt_device_t dev, int cmd,void*args){ rt_kprintf("test drv control cmd = %d\n", cmd); returnRT_EOK;}
intrt_drv_test_init(void){ rt_device_t test_dev =rt_device_create(RT_Device_Class_Char,0); if(!test_dev) { rt_kprintf("test drv create failed!"); return-RT_ERROR; }
test_dev->init = drv_test_init; test_dev->open = drv_test_open; test_dev->close = drv_test_close; test_dev->read = drv_test_read; test_dev->write = drv_test_write; test_dev->control = drv_test_control;
if(rt_device_register(test_dev,"test_drv",RT_DEVICE_FLAG_RDWR) !=RT_EOK) { rt_kprintf("test drv register failed!"); return-RT_ERROR; }
returnRT_EOK;}MSH_CMD_EXPORT(rt_drv_test_init, enable test drv app);
staticintdrv_test_app(void){ rt_device_t test_dev =rt_device_find("test_drv"); if(test_dev ==RT_NULL) { rt_kprintf("can not find test drv!"); return-RT_ERROR; }
rt_device_open(test_dev,RT_DEVICE_OFLAG_RDWR); rt_device_control(test_dev,RT_DEVICE_CTRL_CONFIG,RT_NULL); rt_device_write(test_dev,100,RT_NULL,1024); rt_device_read(test_dev,20,RT_NULL,128);
rt_device_close(test_dev);
returnRT_EOK;}MSH_CMD_EXPORT(drv_test_app, enable test drv app);

PIN 设备解析

3eb3ab00-fe49-11f0-96ea-92fbcf53809c.png3ec2dfda-fe49-11f0-96ea-92fbcf53809c.png

4Wi-Fi 联网实验

1.首先我们需要传输wifi的固件资源到文件系统:

参考https://rt-thread-studio.github.io/sdk-bsp-ra8p1-titan-board/latest/driver/Titan_driver_wifi/README_zh.html#id11

2.在MSH命令行中,输入以下命令扫描附近的wifi热点信息:

wifiscan

3ed0d2c0-fe49-11f0-96ea-92fbcf53809c.png

3.在MSH命令行中,输入以下命令来让wifi模块联网:

wifi join[wifi 名称][wifi 密码]

3ee7276e-fe49-11f0-96ea-92fbcf53809c.png

4.我们可以使用ping命令测试是否联网成功:

3ef5da3e-fe49-11f0-96ea-92fbcf53809c.png

5.添加自动联网应用代码

#include#include#include"hal_data.h"#include#include#include#include#include#defineLOG_TAG "wifi"#include#defineLED_PIN_0 BSP_IO_PORT_00_PIN_12/* Onboard LED pins */#defineFS_PARTITION_NAME "filesystem"voidhal_entry(void){ intresult = RT_EOK; rt_kprintf("\nHello RT-Thread core0!\n"); structrt_device *mtd_dev = RT_NULL; externintfal_init(void); fal_init(); mtd_dev =fal_mtd_nor_device_create(FS_PARTITION_NAME); if(!mtd_dev) { LOG_E("Can't create a mtd device on '%s' partition.", FS_PARTITION_NAME); } else { if(dfs_mount(FS_PARTITION_NAME,"/","lfs",0,0) ==0) { LOG_I("Filesystem initialized!"); if(mkdir("/webnet",0777) ==0) { LOG_I("Created '/webnet' directory."); } } else { dfs_mkfs("lfs", FS_PARTITION_NAME); if(dfs_mount("filesystem","/","lfs",0,0) ==0) { LOG_I("Filesystem initialized!"); } else { LOG_E("Failed to initialize filesystem!"); } } } /* Initialize WiFi device and auto-connect */ LOG_I("Starting WiFi auto-connection..."); LOG_I("Connecting to SSID: %s", BSP_WIFI_SSID); /* Wait for WiFi device to be ready */ rt_thread_mdelay(2000); /* Connect to WiFi network */ result =rt_wlan_connect(BSP_WIFI_SSID, BSP_WIFI_PASSWORD); if(result == RT_EOK) { LOG_I("WiFi connection initiated successfully!"); /* Wait for connection to complete */ rt_thread_mdelay(5000); /* Check connection status */ if(rt_wlan_is_connected()) { LOG_I("WiFi connected successfully!"); /* Get and print IP address */ structrt_wlan_infoinfo; if(rt_wlan_get_info(&info) == RT_EOK) { LOG_I("Connected to: %s", info.ssid.val); LOG_I("RSSI: %d dBm", info.rssi); } } else { LOG_E("WiFi connection failed!"); } } else { LOG_E("Failed to initiate WiFi connection: %d", result); } while(1) { rt_pin_write(LED_PIN_0, PIN_HIGH); rt_thread_mdelay(1000); rt_pin_write(LED_PIN_0, PIN_LOW); rt_thread_mdelay(1000); }}

5AIOT大模型对话实验

下面的实验需要基于 Wi-Fi 工程 基础上进行相关配置

使能 llmchat 软件包

点击添加软件包按钮,搜索并添加 llmchat软件包:

3f0dcf54-fe49-11f0-96ea-92fbcf53809c.png

添加成功后如下图

3f1b44d6-fe49-11f0-96ea-92fbcf53809c.png

通义千问账号注册

1.注册阿里云账号,并进入阿里云百炼平台:选择模型广场→API调用示例

3f328fa6-fe49-11f0-96ea-92fbcf53809c.png

2.模型使用需要充值,请酌情充值即可,这里演示充值1元就可使用:

https://billing-cost.console.aliyun.com/fortune/fund-management/recharge

3.接下来新建大模型的 API-KEY:

3f4783c0-fe49-11f0-96ea-92fbcf53809c.png

4.填写描述后即可创建API-KEY(SK-XXXXXXXX):

3f562772-fe49-11f0-96ea-92fbcf53809c.png3f611902-fe49-11f0-96ea-92fbcf53809c.png

5.打开 RT-Thread Settings,进入 RT-Thread online packages → AI packages → Large Language Models(LLM) for RT-Thread 目录下;按照下图进行配置:

llm qwen user api key:API KEY 需要在通义千问控制台获取;

llm qwen model name:选择模型的名称默认是 qwen-plus;

3f6c90fc-fe49-11f0-96ea-92fbcf53809c.png

6.按照下图修改llm配置,同时使能 llmchat webnet 模式:

3f7ece52-fe49-11f0-96ea-92fbcf53809c.png

注意:如果在配置中没有显示“Enable llmchat webnet mode”选项,请进入到下图所示的目录下,编辑Kconfig文件:

3f9a9e34-fe49-11f0-96ea-92fbcf53809c.png

请按照下图所示,添加相关代码,注意缩进:

3faa5482-fe49-11f0-96ea-92fbcf53809c.png

config PKG_LLMCHAT_WEBNET_MODE bool"Enable llmchat webnet mode" selectPKG_USING_WEBNET selectWEBNET_USING_CGI defaultn help Afterusingthe WebNet model, you can communicatewiththe llmusinga browser webpage.

保存,回到 Studio 中重新打开 RT-Thread Settings 即可显示此选项

7.进入 RT-Thread online packages → IoT - internet of things → WebClient: A HTTP/HTTPS Client for RT-Thread 选择MbedTLS support

3fbede84-fe49-11f0-96ea-92fbcf53809c.png

8.进入 RT-Thread online packages → security packages → mbedtls 菜单,修改 Maxium fragment length in bytes 字段为 6144(否则TLS会握手失败)

3fd034ae-fe49-11f0-96ea-92fbcf53809c.png

9.使能旧版本兼容支持:

3fe72cfe-fe49-11f0-96ea-92fbcf53809c.png

10.修改 LWIP 配置,增加 LWIP 线程栈大小:

3ff629e8-fe49-11f0-96ea-92fbcf53809c.png

11.使能组件-驱动中的软件模拟RTC设备:

401276ac-fe49-11f0-96ea-92fbcf53809c.png

12.退出保存配置,studio会自动拉取软件包:

402529f0-fe49-11f0-96ea-92fbcf53809c.png

13.修改 webnet线程栈大小为 8K:

404091b8-fe49-11f0-96ea-92fbcf53809c.png

14.软件包下载成功后,会在本地 packages下显示:

40513a9a-fe49-11f0-96ea-92fbcf53809c.png

15.编译,烧录工程

6 效果演示


7 获取同款硬件

40617e1e-fe49-11f0-96ea-92fbcf53809c.jpg

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6078

    文章

    45629

    浏览量

    675392
  • mcu
    mcu
    +关注

    关注

    147

    文章

    19232

    浏览量

    405188
  • RT-Thread
    +关注

    关注

    32

    文章

    1657

    浏览量

    45454
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    手把手教你学单片机之AVR入门视频教程

    `手把手教你学单片机之AVR入门视频教程AVR单片机软硬件设计视频教程-入门篇本视频是 力天电子 尹延辉 录制的 详情请登 力天电子第01讲-单片机及其开发工具简介_
    发表于 03-02 11:04

    力天手把手教你学单片机视频全集下载

    /file/belfh4ic#02电路图【力天电子原创】.rarhttp://115.com/file/dpl0n2u7#03.第二讲.硬件技术基本知识上--力天手把手教你学单片机之入门篇.rarhttp
    发表于 02-14 17:06

    手把手教你单片机

    小宋老师单片机教程手把手教你单片机 链接: http://pan.baidu.com/s/1kTvEOo3 密码: vzox
    发表于 12-07 17:59

    手把手教你学CPLD/FPGA与单片机联合设计》-周兴华

    作者从2009年1月起,《电子世界》杂志上连载了《手把手教你学CPLD/FPGA设计》讲座。《手把手教你学CPLD/FPGA与单片机联合设
    发表于 12-29 17:10

    手把手教你学CPLD/FPGA与单片机联合设计》-周兴华

    `作者从2009年1月起,《电子世界》杂志上连载了《手把手教你学CPLD/FPGA设计》讲座。《手把手教你学CPLD/FPGA与单片机联合
    发表于 01-06 17:21

    手把手教你学习FPGA—LED篇

    电子专业单片机相关知识学习教材资料——手把手教你学习FPGA—LED篇
    发表于 08-08 17:19 0次下载

    手把手教你学LabVIEW视觉设计

    手把手教你学LabVIEW视觉设计手把手教你学LabVIEW视觉设计手把手教你学LabVIEW视觉设计手把手教你学LabVIEW视觉设计手把手
    发表于 03-06 01:41 3589次阅读

    手把手教你学会AVR单片机pdf.01

    手把手教你学会AVR单片机pdf.01
    发表于 09-30 17:33 0次下载

    手把手教你学会AVR单片机pdf.02

    手把手教你学会AVR单片机pdf.02
    发表于 09-30 17:34 0次下载

    手把手教你学会AVR单片机pdf.03

    手把手教你学会AVR单片机pdf.03
    发表于 09-30 17:36 0次下载

    手把手教你学会AVR单片机pdf.04

    手把手教你学会AVR单片机pdf.04
    发表于 09-30 17:37 0次下载

    手把手教你学会AVR单片机pdf.05

    手把手教你学会AVR单片机pdf.05
    发表于 09-30 18:19 0次下载

    手把手教你开发基于单片机的wifi通信的物联网项目(远程灯控制)

    手把手教你开发基于单片机的wifi通信的物联网项目(远程灯控制)
    发表于 11-12 19:36 18次下载
    <b class='flag-5'>手把手</b>教你开发基于<b class='flag-5'>单片机</b>的wifi通信的物联网项目(远程灯控制)

    51单片机手把手教学(二)—— 点亮 LED 灯(GPIO 操作)

    对话框进入专栏主页↓↓↓CSDN 请求进入专栏       _ O x是否进入《51单片机手把手教学》?       确定文章目录一、51单片机的GPIO口简介二、GPIO 操作 —— 点亮第一个LED灯
    发表于 11-17 16:06 8次下载
    51<b class='flag-5'>单片机手把手</b>教学(二)—— 点亮 LED 灯(GPIO 操作)

    手把手教程:基于RT-Thread单片机上部署大模型AI终端

    ;HelloWorld"到"Hey,AI"记得刚入行时,点亮一个LED灯都激动半天。如今,我们的嵌入式设备已经可以直接和AI大模型对话了!这不仅是技术的进步,更是开发思路的革命。今天,我将手把
    的头像 发表于 04-11 18:19 2609次阅读
    <b class='flag-5'>手把手</b>教程:基于RT-Thread<b class='flag-5'>在</b><b class='flag-5'>单片机上</b>部署大<b class='flag-5'>模型</b>AI终端