RISC-V單片機快速入門03-基於RT_Thread Nano添加控制臺

2020-08-30 小驛物聯

前言:

上一節,我們完成了GD32VF103在RT_Thread Nano上的移植,本節我們為其增加控制臺輸出功能,以及通過FinSH組件和用戶交互功能。

一、基礎知識

1.FinS H簡介

RT-Thread FinSH 是 RT-Thread 的命令行組件(shell),提供一套供用戶在命令行調用的操作接口,主要用於調試或查看系統信息。它可以使用串口 / 乙太網 / USB 等與 PC 機進行通信,使用 FinSH 組件基本命令的效果圖如下所示:

二、添加步驟

1.導入工程

將上一節內容進行複製,修改.project中工程名字為lesson3

重新import進來新的工程

2.控制臺輸出

適配號控制臺輸出,就可以使用RT_Thread中rt_kprintf()函數進行串口信息的列印,方便調試Bug、獲取系統當前運行狀態。

(1) 串口初始化

在gd32vf102c_start.c中定義調試串口初始化函數void uart_debug_init(void),同時在gd32vf103c_start.h中聲明。

然後再board.c中rt_hw_board_init()函數中調用uart_debug_init()。

(2) 實現 rt_hw_console_output

在gd32vf102c_start.c文件中,實現rt_hw_console_output如下:

void rt_hw_console_output(const char str){ rt_enter_critical(); while(str != &39;) { if (&39; == *str) { usart_data_transmit(EVAL_COM0, &39; ); while ( usart_flag_get(EVAL_COM0, USART_FLAG_TBE)== RESET); } usart_data_transmit(EVAL_COM0, (uint8_t) *str++ ); while ( usart_flag_get(EVAL_COM0, USART_FLAG_TBE)== RESET); } rt_exit_critical();}

(3) 修改main.c中led_process_thread_entry函數

void led_process_thread_entry(void parameter){ rt_err_t ret = RT_EOK; while(1) { / insert 500 ms delay / rt_thread_mdelay(500); / toggle the LED / gpio_bit_write(GPIOA, GPIO_PIN_1, (bit_status)(1-gpio_input_bit_get(GPIOA, GPIO_PIN_1))); rt_kprintf(&34;); / insert 500 ms delay */ rt_thread_mdelay(500); }}

增加​rt_kprintf(&34;);​函數,每隔1S列印一次數據。

三、運行結果

運行結果如下所示

相關焦點

  • RISC-V單片機快速入門04-基於RT_Thread Nano添加FinSH
    前言:上一節,我們適配了控制臺輸出,可以列印調試信息,本節我們為系統增加FinSH功能,增加FinSH組件後,用戶可輸入命令調試或查看系統信息。FinSH源碼到工程將rt-thread-3.1.3/components/finsh下文件添加到RT-Thread下。
  • RISC-V單片機快速入門02-移植RT_Thread Nano
    /document/site/tutorial/nano/nano-port-gcc-riscv/an0042-nano-port-gcc-riscv/include &34;34;gd32vf103c_start.h&include &34;static rt_thread_t dynamic_thread = RT_NULL;void led_process_thread_entry(void
  • RT-Thread Nano 3.1.3 正式發布
    它還具備體積小、啟動快速、實時性高、佔用資源小等特點,可用於家電、消費電子、醫療設備、工控等領域大量使用的 32 位 ARM 入門級 MCU 的場合。適用於系統資源緊張或是項目功能較為簡單,僅需使用RTOS內核,無需豐富功能的場景。
  • RISC-V單片機快速入門06-控制ESP8266啟動Http Server
    二、程序說明程序主要包括如下4個功能模塊:ESP-01S初始化、串口處理、Event回調函數、事件處理;Http協議是基於TCP協議的, &34;) && rt_strstr(Esp8266_Frame_Record.Data_RX_BUF, &34;)) { rt_memset(hal_sys_contex_get()->data_buf, 0x00, SYS_CTX_UART_RECV_SIZE); sscanf(Esp8266_
  • RISC-V單片機快速入門05-玩轉ESP8266 WIFI模塊②
    (&34;, sock); break; case STA_CLOSED: rt_kprintf(&34;, sock); break; case STA_DATA_ARRIVED: rt_kprintf(&34;, sock); break; default: break; }}typedef enum { STA_CONNECTED, STA_CLOSED
  • RT-Thread教程一之Linux下開發環境及QEMU配置
    RT-Thread原始碼Linux下安裝git後在工程目錄下(比~/Workplace)執行git clone https://github.com/RT-Thread/rt-thread我們看一下樹目錄結構rt-thread git:(master) tree . -L 1.
  • RISC-V單片機快速入門05-玩轉ESP8266 WIFI模塊②
    \r\n", sock); break; case STA_CLOSED:        rt_kprintf("Sock %d closed!\r\n", sock); break; case STA_DATA_ARRIVED:        rt_kprintf("Sock %d data arrived!
  • RISC-V單片機快速入門01-開發環境搭建
    一、基礎知識1.RISC-V簡介RISC-V(讀作「RISC-FIVE」)是基於精簡指令集計算(RISC)原理建立的開放指令集架構(ISA),V表示為第五代RISC(精簡指令集計算機),美國加州大學伯克利分校於2010年開始啟動該項目,RISC-V是完全開源,採用BSD協議,此外,相較於ARM
  • 【RT-Thread】線程的基本知識
    在裸機系統中,他們統統放在一個叫棧的地方,棧是單片機 RAM 裡面一段連續的內存空間,棧的大小一般在啟動文件或者連結腳本裡面指定, 最後由 C 庫函數_main 進行初始化。但是, 在多線程系統中,每個線程都是獨立的,互不幹擾的,所以要為每個線程都分配獨立的棧空間,這個棧空間通常是一個預先定義好的全局數組, 也可以是動態分配的一段內存空間,但它們都存在於 RAM 中。
  • 物聯網作業系統一站式開發工具:RT-Thread Studio
    RT-Thread Studio 下載地址:https://www.rt-thread.org通過兩種工程嚮導的模式,從此告別 RT-Thread 移植過程◆ 基於開發板創建工程:可以快速驗證功能原型,是入門學習的利器;◆ 基於晶片創建工程
  • RT-Thread V4.0.2 正式發布,優化 BSP、多核等方面體驗
    下面就根據目前的更改情況,對v4.0.x的優化迭代部分做個總結:● 優化部分主要體現在BSP上,我們支持了更多的晶片、板子,也完善了驅動;     ◕ v4.0.2還對 NXP i.MXRT BSP 進行了重構,這也是攜手NXP公司,並聯合他們的工程師一起推動完成的;●
  • RT Thread v2.1.0 正式版發布
    下載連結:git打包下載:http://git.oschina.net/rtthread/rt-thread/repository/archive/v2.1.0這個版本經歷的時間比較長,並且原定的一些目標也還未能完成(更全的POSIX支持,包括device fd,socket等在內的select API接口等)。
  • 玩轉RT-Thread之荔枝派Nano(全志F1C100S)一、新手上路
    組件層,這些是基於RT-Thread核心基礎上的外圍組件,例如文件系統,命令行shell接口,LwIP輕型TCP/IP協議棧,GUI圖形引擎等。更詳細信息及開發文檔可在官網https://www.rt-thread.org獲取。
  • 開發,從未如此簡單——RT-Thread 4.0版本IoT OS
    而此次我們把許可協議從GPL v2.0+更改為更寬鬆、開放的Apache License v2.0,將使得更多企業、,開發者無法律上的顧慮,讓更多企業融入到RT-Thread開發者社區生態中來。」RT-Thread Smart(以下簡稱為rt-smart) 是基於RT-Thread作業系統衍生的新分支——混合微內核作業系統,主要面向帶 MMU(內存管理單元Memory Management Unit)的中高端處理器,為眾多領域提供更具競爭力的作業系統基礎軟體平臺,具備快速啟動、兼容POSIX 接口、開發調試便利、應用與內核分離、高安全性等特性。
  • RT-Thread Studio v2.0 大版本發布,支持 RISC-V 的國產集成開發環境
    RT-Thread Studio v2.0 已發布,這是一個大版本更新,帶來了許多重磅的新功能以及新特性。
  • RT-Thread Studio V1.1 新版本發布
    【官網下載地址】https://www.rt-thread.org/page/studio.html(或點擊文末閱讀原文下載) > RT-Thread Studio V1.1.0 快速上手體驗  RT-Thread Studio 主要包括工程創建和管理,代碼編輯,SDK管理器,RT-Thread配置,構建配置,調試配置,程序下載和調試等功能,結合圖形化配置系統以及軟體包和組件資源
  • RT-Thread Studio V1.0.2 發布,物聯網作業系統一站式開發工具
    為了解決大家的這些痛點,RT-Thread 官方團隊歷經一年用心打磨,推出了 RT-Thread Studio 集成開發環境(IDE),讓大家告別 ENV,能夠基於一款 IDE 快速的進行 RT-Thread 項目開發。日前,RT-Thread Studio V1.0.2 也已經正式發布了。
  • RT-Thread最新推出Nano極簡版
    最新推出Nano極簡版 RT-Thread供稿 發表於 2017-07-31 11:35:12 RT-Thread適時推出第一個RT-Thread Nano極簡版,適用於家電、消費電子、醫療設備、工控等領域大量使用的32位ARM入門級
  • RT-Thread多線程學習後的總結
    RT-Thread多線程學習後的總結 RTThread物聯網操作 發表於 2021-01-13 16:34:03 多線程是實時作業系統裡面最重要的知識點之一,要學習RTOS,多線程是必須(沒錯,是必須)要熟練掌握的內容
  • RT-Thread Studio開發環境搭建
    社區版本永久免費支持主流C/C++語言開發強大的代碼編輯和重構功能SDK管理器支持在線下載更新 RT-Thread 最新源碼包簡單易用的工程創建嚮導,快速驗證原型全新圖形化配置系統,同時支持架構圖和樹形圖配置軟體包市場提供豐富的可用軟體包資源豐富的調試功能