| 移植准备
1、去托管平台把源码下下来;
2、准备一个基础工程,实现串口重定义输出:
|移植源码
1、把核心源码复制到工程中:
2、把命令示例源码复制到工程中:
3、把源码添加到工程中:
4、屏蔽RT-Thread 的头文件:
5、修改输出的末尾行模式:
6、初始化nr_micro_shell:
#include "gd32f10x.h" #include "stdio.h" #include "nr_micro_shell.h" // uart配置 void hal_log_init(void) { /* 使GPIO时钟 */ rcu_periph_clock_enable(RCU_GPIOA); /* 使USART时钟 */ rcu_periph_clock_enable(RCU_USART0); /* 连接端口到USARTx_Tx */ gpio_init(GPIOA, GPIO_MODE_AF_PP, GPIO_OSPEED_50MHZ, GPIO_PIN_9); /* 连接端口到USARTx_Rx */ gpio_init(GPIOA, GPIO_MODE_IN_FLOATING, GPIO_OSPEED_50MHZ, GPIO_PIN_10); /* USART配置 */ usart_deinit(USART0); /*!< 复位外设USART */ usart_word_length_set(USART0, USART_WL_8BIT); /*!< 配置USART字长 */ usart_stop_bit_set(USART0, USART_STB_1BIT); /*!< 配置USART停止位 */ usart_parity_config(USART0, USART_PM_NONE); /*!< 配置USART奇偶校验 */ usart_baudrate_set(USART0, 115200U); /*!< 配置USART波特率 */ usart_receive_config(USART0, USART_RECEIVE_ENABLE); /*!< USART/UART接收器配置 */ usart_transmit_config(USART0, USART_TRANSMIT_ENABLE); /*!< USART/UART发送器配置 */ usart_enable(USART0); /*!< 使能USART */ /*中断管理器使能,并分配优先级*/ nvic_irq_enable(USART0_IRQn, 1, 0); /*清除中断标志*/ usart_interrupt_flag_clear(USART0, USART_INT_FLAG_RBNE); usart_interrupt_flag_clear(USART0, USART_INT_FLAG_IDLE); /* 使能串口中断 */ usart_interrupt_enable(USART0, USART_INT_RBNE); /*!< 接收不为空中断 */ } // usart0中断 void USART0_IRQHandler(void) { if(RESET != usart_interrupt_flag_get(USART0, USART_INT_FLAG_RBNE)) { /* 清除标志位 */ usart_interrupt_flag_clear(USART0, USART_INT_FLAG_RBNE); /* 接收数据(注意) */ shell(usart_data_receive(USART0)); } } //printf重定向函数 int fputc(int ch,FILE *f) { usart_data_transmit(USART0, (uint8_t)ch); //发送一字节数据 while(RESET == usart_flag_get(USART0, USART_FLAG_TBE)); //等待发送完成 return ch; } // 外设初始化 void hal_device_init(void) { hal_log_init(); /* 初始化 */ shell_init(); } // 主循环 int main(void) { // 设置优先级组 nvic_priority_group_set(NVIC_PRIGROUP_PRE4_SUB0); // 外设初始化 hal_device_init(); while (1) { } }
7、查看效果:
| 定义指令
1、添加自定义指令代码:
2、查看效果:
| 最终效果
移植成功后就可以在MCU中体验Linux的shell命令那种感觉,注意一定要修改输出的末尾行模式,不然会不能正常使用,来感受一下最终效果:
最终的效果还是不错的,和Linux的体验类似,感兴趣的同学可以移植来体验一下MCU级别的shell命令交互。
审核编辑:刘清
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
嵌入式
+关注
关注
5068文章
19014浏览量
303210 -
串口中断
+关注
关注
0文章
64浏览量
13858 -
RT-Thread
+关注
关注
31文章
1272浏览量
39917 -
USART串口
+关注
关注
0文章
32浏览量
6805
原文标题:通俗|嵌入式命令行交互工具
文章出处:【微信号:玩转单片机,微信公众号:玩转单片机】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
Linux命令行的基本使用
嵌入式Linux开发环境的构建,Linux命令行的基本使用,VI、GCC、Makefile基本工具的使用,交叉开发环境的使用。学习条件: 1.C语言编程基础
发表于 11-05 09:08
Linux命令行怎么使用
嵌入式Linux开发环境的构建,Linux命令行的基本使用,VI、GCC、Makefile基本工具的使用,交叉开发环境的使用。学习条件: 1.C语言编程基础
发表于 12-16 07:46
在单片机上实现shell命令行交互的方法
文章发表于我的个人微信公众号:嵌入式软件那些事公众号会定期分享一些嵌入式软件开发相关的技术经验,涉及嵌入式Linux、STM32、RTOS等,希望对大家有所帮助!如何在单片机上实现shell命
发表于 01-12 07:33
Xilinx软件命令行工具:XSCT开发和调试
了解如何使用XSCT,Xilinx软件命令行工具进行开发和调试。
该视频演示了XSCT如何充当Xilinx SDK的命令行控制台。
Xilinx软件命令行工具进行开发和调试
了解如何使用XSCT,Xilinx软件命令行工具进行开发和调试。
该视频演示了XSCT如何充当Xilinx SDK的命令行控制台。
使用串口登录嵌入式Linux设备命令行的方法
使用串口登录嵌入式Linux设备命令行的方法如下:举例如下:平台:AT91SAM9G45OS: linux-2.6.66交叉编译器:arm-linux-gcc ,版本:3.4.1用到的命令
发表于 11-01 16:57
•10次下载
学习笔记(02):嵌入式Linux开发基础-shell命令使用
嵌入式Linux开发环境的构建,Linux命令行的基本使用,VI、GCC、Makefile基本工具的使用,交叉开发环境的使用。学习条件: 1.C语言编程基础
发表于 11-01 18:00
•14次下载
mini shell命令行调试工具(单片机、c语言)
@mini shell命令行调试工具介绍Mini shell 命令行调试工具(单片机、c语言)Mini shell是一个特别适合低内存的单片机上使用的一个
发表于 11-29 10:21
•9次下载
单片机上如何做shell命令行交互
做过嵌入式Linux开发或使用过桌面Linux系统的童鞋们,肯定对shell命令交互印象比较深刻,然而我们大多数搞嵌入式软件开发的码农都是基于单片机,比如51、STM32等进行开发的,
评论