| 移植準備
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命令交互。
審核編輯:劉清
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。
舉報投訴
-
嵌入式
+關注
關注
5090文章
19173瀏覽量
306844 -
串口中斷
+關注
關注
0文章
67瀏覽量
13967 -
RT-Thread
+關注
關注
31文章
1305瀏覽量
40303 -
USART串口
+關注
關注
0文章
32瀏覽量
6876
原文標題:通俗|嵌入式命令行交互工具
文章出處:【微信號:玩轉單片機,微信公眾號:玩轉單片機】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
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
?10次下載
單片機上如何做shell命令行交互
做過嵌入式Linux開發或使用過桌面Linux系統的童鞋們,肯定對shell命令交互印象比較深刻,然而我們大多數搞嵌入式軟件開發的碼農都是基于單片機,比如51、STM32等進行開發的,
評論