Toggle navigation
首页
问答
文章
积分商城
专家
专区
更多专区...
文档中心
返回主站
搜索
提问
会员
中心
登录
注册
FinSH
基于 RT-Thread nano 软件包实现 shell 功能 按照这个教程操作....
发布于 2019-08-27 02:01:46 浏览:1861
订阅该版
使用cubemx或keil添加nano软件包方式的工程,按照教程操作不成功,在"uart_config.h"文件里有句#include "dma_config.h",软件报错找不到此文件,查找了工程里确实也没有这个文件,但是教程里没有讲到这个,注册掉这个文件报错更多。 请高手们指点啊搞了两天了 我使用全功能版正常的,但是全功能版的太占空间了什么代码都不写都站40K了,只有使用nano 另外再问个问题,教程里的实现shell功能,要先在cubemx里配置串口吗?还是shell自动配置 的 谢谢大家了
查看更多
17
个回答
默认排序
按发布时间排序
abcd
2019-08-27
这家伙很懒,什么也没写!
>文档没仔细看吧,这里写了要屏蔽以及要增加的头文件呀: >https://www.rt-thread.org/document/site/tutoria ... --- 一步一步跟着这个官方教程做的啊
abcd
2019-08-27
这家伙很懒,什么也没写!
>用的是文档中链接里面的uart驱动吗? --- 都是教程里的3.12,下载的三个文件也是教程里的连接3.12的,这教程里的是l4 我用的是f1的,我对比了下l4和f1的uart_config.h的类容,不一样,l4 没有#include "dma_config.h" 这句
abcd
2019-08-27
这家伙很懒,什么也没写!
全部都是按着教程里做的,只是uart_config换成了f1的,重复做了几次,还换了台电脑做的,都一样的结果,
abcd
2019-08-27
这家伙很懒,什么也没写!
/* * Copyright (c) 2006-2018, RT-Thread Development Team * * SPDX-License-Identifier: Apache-2.0 * * Change Logs: * Date Author Notes * 2018-10-30 BalanceTWK first version * 2019-01-05 SummerGift modify DMA support */ #ifndef __UART_CONFIG_H__ #define __UART_CONFIG_H__ #include
#include "dma_config.h" #ifdef __cplusplus extern "C" { #endif #if defined(BSP_USING_UART1) #ifndef UART1_CONFIG #define UART1_CONFIG \ { \ .name = "uart1", \ .Instance = USART1, \ .irq_type = USART1_IRQn, \ } #endif /* UART1_CONFIG */ #if defined(BSP_UART1_RX_USING_DMA) #ifndef UART1_DMA_RX_CONFIG #define UART1_DMA_RX_CONFIG \ { \ .Instance = UART1_RX_DMA_INSTANCE, \ .dma_rcc = UART1_RX_DMA_RCC, \ .dma_irq = UART1_RX_DMA_IRQ, \ } #endif /* UART1_DMA_RX_CONFIG */ #endif /* BSP_UART1_RX_USING_DMA */ #if defined(BSP_UART1_TX_USING_DMA) #ifndef UART1_DMA_TX_CONFIG #define UART1_DMA_TX_CONFIG \ { \ .Instance = UART1_TX_DMA_INSTANCE, \ .dma_rcc = UART1_TX_DMA_RCC, \ .dma_irq = UART1_TX_DMA_IRQ, \ } #endif /* UART1_DMA_TX_CONFIG */ #endif /* BSP_UART1_TX_USING_DMA */ #endif /* BSP_USING_UART1 */ #if defined(BSP_USING_UART2) #ifndef UART2_CONFIG #define UART2_CONFIG \ { \ .name = "uart2", \ .Instance = USART2, \ .irq_type = USART2_IRQn, \ } #endif /* UART2_CONFIG */ #if defined(BSP_UART2_RX_USING_DMA) #ifndef UART2_DMA_RX_CONFIG #define UART2_DMA_RX_CONFIG \ { \ .Instance = UART2_RX_DMA_INSTANCE, \ .dma_rcc = UART2_RX_DMA_RCC, \ .dma_irq = UART2_RX_DMA_IRQ, \ } #endif /* UART2_DMA_RX_CONFIG */ #endif /* BSP_UART2_RX_USING_DMA */ #if defined(BSP_UART2_TX_USING_DMA) #ifndef UART2_DMA_TX_CONFIG #define UART2_DMA_TX_CONFIG \ { \ .Instance = UART2_TX_DMA_INSTANCE, \ .dma_rcc = UART2_TX_DMA_RCC, \ .dma_irq = UART2_TX_DMA_IRQ, \ } #endif /* UART2_DMA_TX_CONFIG */ #endif /* BSP_UART2_TX_USING_DMA */ #endif /* BSP_USING_UART2 */ #if defined(BSP_USING_UART3) #ifndef UART3_CONFIG #define UART3_CONFIG \ { \ .name = "uart3", \ .Instance = USART3, \ .irq_type = USART3_IRQn, \ } #endif /* UART3_CONFIG */ #if defined(BSP_UART3_RX_USING_DMA) #ifndef UART3_DMA_RX_CONFIG #define UART3_DMA_RX_CONFIG \ { \ .Instance = UART3_RX_DMA_INSTANCE, \ .dma_rcc = UART3_RX_DMA_RCC, \ .dma_irq = UART3_RX_DMA_IRQ, \ } #endif /* UART3_DMA_RX_CONFIG */ #endif /* BSP_UART3_RX_USING_DMA */ #if defined(BSP_UART3_TX_USING_DMA) #ifndef UART3_DMA_TX_CONFIG #define UART3_DMA_TX_CONFIG \ { \ .Instance = UART3_TX_DMA_INSTANCE, \ .dma_rcc = UART3_TX_DMA_RCC, \ .dma_irq = UART3_TX_DMA_IRQ, \ } #endif /* UART3_DMA_TX_CONFIG */ #endif /* BSP_UART3_TX_USING_DMA */ #endif /* BSP_USING_UART3 */ #if defined(BSP_USING_UART4) #ifndef UART4_CONFIG #define UART4_CONFIG \ { \ .name = "uart4", \ .Instance = UART4, \ .irq_type = UART4_IRQn, \ } #endif /* UART4_CONFIG */ #if defined(BSP_UART4_RX_USING_DMA) #ifndef UART4_DMA_RX_CONFIG #define UART4_DMA_RX_CONFIG \ { \ .Instance = UART4_RX_DMA_INSTANCE, \ .dma_rcc = UART4_RX_DMA_RCC, \ .dma_irq = UART4_RX_DMA_IRQ, \ } #endif /* UART4_DMA_RX_CONFIG */ #endif /* BSP_UART4_RX_USING_DMA */ #if defined(BSP_UART4_TX_USING_DMA) #ifndef UART4_DMA_TX_CONFIG #define UART4_DMA_TX_CONFIG \ { \ .Instance = UART4_TX_DMA_INSTANCE, \ .dma_rcc = UART4_TX_DMA_RCC, \ .dma_irq = UART4_TX_DMA_IRQ, \ } #endif /* UART4_DMA_TX_CONFIG */ #endif /* BSP_UART4_TX_USING_DMA */ #endif /* BSP_USING_UART4 */ #if defined(BSP_USING_UART5) #ifndef UART5_CONFIG #define UART5_CONFIG \ { \ .name = "uart5", \ .Instance = UART5, \ .irq_type = UART5_IRQn, \ } #endif /* UART5_CONFIG */ #endif /* BSP_USING_UART5 */ #if defined(BSP_UART5_RX_USING_DMA) #ifndef UART5_DMA_RX_CONFIG #define UART5_DMA_RX_CONFIG \ { \ .Instance = DMA_NOT_AVAILABLE, \ } #endif /* UART5_DMA_RX_CONFIG */ #endif /* BSP_UART5_RX_USING_DMA */ #ifdef __cplusplus } #endif #endif
abcd
2019-08-27
这家伙很懒,什么也没写!
* 2019-01-05 SummerGift modify DMA support 这个文件1.5更新过,是不是和这个有关?改变了结构
abcd
2019-08-27
这家伙很懒,什么也没写!
>我看了下,确实不一样 --- 你成功移值的是什么ic呢?
tyustli
2019-08-27
这家伙很懒,什么也没写!
[i=s] 本帖最后由 tyustli 于 2019-8-27 18:36 编辑 [/i] >你成功移值的是什么ic呢? --- 按照教程 CUBEMX + F4 移植,是可以成功的。串口硬件引脚也要在 CUBEMX 中配置好。有关 DMA 的报错,楼主直接删除就可以了。最后注意一下 rt_hw_board_init 函数里面串口初始化的顺序: ``` #ifdef RT_USING_SERIAL extern void rt_hw_usart_init(); rt_hw_usart_init(); #endif #if defined(RT_USING_CONSOLE) && defined(RT_USING_DEVICE) rt_console_set_device(RT_CONSOLE_DEVICE_NAME); #endif ```
abcd
2019-08-27
这家伙很懒,什么也没写!
>按照教程 CUBEMX + F4 移植,是可以成功的。串口硬件引脚也要在 CUBEMX 中配置好。有关 DMA 的报错,楼主 ... --- compiling cpuport.c... compiling drv_usart.c... ..\Src\drv_usart.c(231): error: #20: identifier "RT_SERIAL_DMA_TX" is undefined if (RT_SERIAL_DMA_TX == direction) ..\Src\drv_usart.c(251): error: #136: struct "rt_uart_ops" has no field "dma_transmit" .dma_transmit = stm32_dma_transmit ..\Src\drv_usart.c: 0 warnings, 2 errors 删了dma_config.h文件,又出现这个报错,我是初学者,都搞不懂了
abcd
2019-08-27
这家伙很懒,什么也没写!
把报错的代码都删了,成功了。 出现这个界面,可是没有命令 nano版的shell没有 自带命令? 谢谢两位朋友了,这个入门真难。 还是全功能版简单,就是太占flash了。 \ | / - RT - Thread Operating System / | \ 3.1.2 build Aug 27 2019 2006 - 2019 Copyright by rt-thread team msh >help help: command not found. msh >
tyustli
2019-08-28
这家伙很懒,什么也没写!
>把报错的代码都删了,成功了。 >出现这个界面,可是没有命令 >nano版的shell没有 自带命令? --- 按 TAB 键试一下
撰写答案
登录
注册新账号
关注者
0
被浏览
1.9k
关于作者
abcd
这家伙很懒,什么也没写!
提问
2
回答
8
被采纳
0
关注TA
发私信
相关问题
1
RT-THREAD shell无反应呢?
2
RT-thread2.0beta下用类似linux风格MSH,参数如何输入和导出
3
rt-thread finsh windows下的那个终端软件叫什么来着
4
板子上只有485接口,能把FINSH改造成485的么?
5
finsh最大字符问题
6
finsh命令个数是不是有限制啊
7
finsh支持转义字符吗
8
不用finsh如何知道堆栈使用量
9
强烈建议 RT-Thread下finsh原理深入分析
10
finsh输入命令全部返回null node
推荐文章
1
RT-Thread应用项目汇总
2
玩转RT-Thread系列教程
3
国产MCU移植系列教程汇总,欢迎查看!
4
机器人操作系统 (ROS2) 和 RT-Thread 通信
5
五分钟玩转RT-Thread新社区
6
【技术三千问】之《玩转ART-Pi》,看这篇就够了!干货汇总
7
关于STM32H7开发板上使用SDIO接口驱动SD卡挂载文件系统的问题总结
8
STM32的“GPU”——DMA2D实例详解
9
RT-Thread隐藏的宝藏之completion
10
【ART-PI】RT-Thread 开启RTC 与 Alarm组件
最新文章
1
freemodbus主机在freertos的适配,参考rtthread例程
2
开源共生 商业共赢 | RT-Thread 2024开发者大会议程正式发布!
3
【24嵌入式设计大赛】基于RT-Thread星火一号的智慧家居系统
4
RT-Thread EtherKit开源以太网硬件正式发布
5
还在担心bsp不好维护吗?快使用yml管理主线bsp
热门标签
RT-Thread Studio
串口
Env
LWIP
SPI
AT
Bootloader
Hardfault
CAN总线
FinSH
ART-Pi
USB
DMA
文件系统
RT-Thread
SCons
RT-Thread Nano
线程
MQTT
STM32
RTC
FAL
rt-smart
ESP8266
I2C_IIC
WIZnet_W5500
UART
ota在线升级
PWM
cubemx
freemodbus
flash
packages_软件包
BSP
潘多拉开发板_Pandora
定时器
ADC
GD32
flashDB
socket
中断
Debug
编译报错
msh
SFUD
rt_mq_消息队列_msg_queue
keil_MDK
ulog
MicroPython
C++_cpp
本月问答贡献
a1012112796
20
个答案
3
次被采纳
张世争
12
个答案
3
次被采纳
踩姑娘的小蘑菇
7
个答案
3
次被采纳
用户名由3_15位
14
个答案
2
次被采纳
rv666
9
个答案
2
次被采纳
本月文章贡献
程序员阿伟
9
篇文章
2
次点赞
hhart
3
篇文章
4
次点赞
RTT_逍遥
1
篇文章
8
次点赞
大龄码农
1
篇文章
5
次点赞
ThinkCode
1
篇文章
1
次点赞
回到
顶部
发布
问题
分享
好友
手机
浏览
扫码手机浏览
投诉
建议
回到
底部