衡阳派盒市场营销有限公司

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RT-Thread finsh組件工作流程詳解

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來源:網(wǎng)絡(luò)整理 ? 作者:工程師陳翠 ? 2018-09-23 11:04 ? 次閱讀

finsh是RT-Thread的命令行外殼(shell),提供一套供用戶在命令行的操作接口,主要用于調(diào)試、查看系統(tǒng)信息。在大部分嵌入式系統(tǒng)中,一般開發(fā)調(diào)試都使用硬件調(diào)試器和printf日志打印,在有些情況下,這兩種方式并不是那么好用。比如對于RT-Thread這個(gè)多線程系統(tǒng),我們想知道某個(gè)時(shí)刻系統(tǒng)中的線程運(yùn)行狀態(tài)、手動(dòng)控制系統(tǒng)狀態(tài)。如果有一個(gè)shell,就可以輸入命令,直接相應(yīng)的函數(shù)執(zhí)行獲得需要的信息,或者控制程序的行為。這無疑會(huì)十分方便。

finsh支持兩種模式:

1. C語言解釋器模式, 為行文方便稱之為c-style;

2. 傳統(tǒng)命令行模式,此模式又稱為msh(module shell)。C語言表達(dá)式解釋模式下, finsh能夠解析執(zhí)行大部分C語言的表達(dá)式,并使用類似C語言的函數(shù)調(diào)用方式訪問系統(tǒng)中的函數(shù)及全局變量,此外它也能夠通過命令行方式創(chuàng)建變量。在msh模式下,finsh運(yùn)行方式類似于dos/bash等傳統(tǒng)shell。

大致工作流程

一、finsh組件初始化函數(shù)finsh_system_init(),并且添加了INIT_COMPONENT_EXPORT(finsh_system_init),支持組件初始化;

這個(gè)函數(shù)會(huì)初始化finsh組件,包括一些finsh變量以及相關(guān)數(shù)據(jù)結(jié)構(gòu)。

然后它會(huì)創(chuàng)建一個(gè)線程,代碼如下:

可以看到,線程函數(shù)是finsh_thread_entry,在下一節(jié)中我們將分析它具體工作流程。

二、void finsh_set_device(const char* device_name)函數(shù)為finsh設(shè)置終端設(shè)備,在stm32中主要設(shè)置串口設(shè)備為終端。該函數(shù)一般放在組件初始化函數(shù)rt_component_init()后面,因?yàn)橐韧瓿蒮insh組件初始化才能設(shè)置終端設(shè)備。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    3624

    瀏覽量

    129749
  • 組件
    +關(guān)注

    關(guān)注

    1

    文章

    517

    瀏覽量

    17922

原文標(biāo)題:RT-Thread finsh組件工作流程

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    RT-Thread記錄(二、RT-Thread內(nèi)核啟動(dòng)流程

    在前面我們RT-Thread Studio工程基礎(chǔ)之上講一講RT-Thread內(nèi)核啟動(dòng)流程.
    的頭像 發(fā)表于 06-20 00:30 ?5096次閱讀
    <b class='flag-5'>RT-Thread</b>記錄(二、<b class='flag-5'>RT-Thread</b>內(nèi)核啟動(dòng)<b class='flag-5'>流程</b>)

    RT-Thread學(xué)習(xí)筆記和finsh shell配置方法

    RT-Thread finsh 同時(shí)支持:c-style 模式與msh 模式,但是默認(rèn)進(jìn)入c-style模式,執(zhí)行[ msh() ]即可切換到msh 模式。在msh 模式下執(zhí)行[ exit ]后即
    發(fā)表于 02-12 00:01

    RT-Thread Studio 上使用 RT-Thread Nano

    _hw_console_output() ,默認(rèn)可以進(jìn)行打印。打開串口終端,可以發(fā)現(xiàn)在終端中執(zhí)行了打印?;?Nano 添加 FinSH雙擊 RT-Thread Settings 進(jìn)入配置,打開組件,勾選
    發(fā)表于 05-18 15:59

    【每日一練】RT-Thread Nano-Finsh組件支持(第四節(jié)學(xué)習(xí)視頻)

    Nano-啟動(dòng)運(yùn)行流程分析(第二節(jié)學(xué)習(xí)視頻)【每日一練】RT-Thread Nano-rt_kprintf支持(第三節(jié)視頻學(xué)習(xí))
    發(fā)表于 05-20 09:52

    RT-Thread FinSH 控制臺

    ?n?]。讀完本章,我們會(huì)對 FinSH工作方式以及如何導(dǎo)出自己的命令到 FinSH 有更加深入的了解。FinSH 簡介FinSH
    發(fā)表于 05-20 18:10

    rt-thread studio如何配置finsh組件?

    為什么rt-thread studio沒有配置finsh組件的?
    發(fā)表于 03-28 14:21

    RT-ThreadFinSH命令行組件原理是什么

    1、FinSH組件介紹FinSHRT-Thread 的命令行組件,提供一套供用戶在命令行調(diào)用的操作接口,主要用于調(diào)試或查看系統(tǒng)信息。它
    發(fā)表于 04-26 16:00

    RT-Thread FinSH命令行組件導(dǎo)出自定義msh命令

    1、RT-Thread FinSH控制臺添加自定義msh命令原理FinSHRT-Thread 的命令行組件,提供一套供用戶在命令行調(diào)用
    發(fā)表于 05-27 16:08

    HC32F460移植RT-Thread Nano+FinSh工程源碼下載

    HC32F460移植RT-Thread Nano+FinSh工程源碼下載
    發(fā)表于 01-05 10:30 ?6次下載

    RT-Thread 應(yīng)用筆記 - RTC Alarm 組件的使用

    RT-Thread 應(yīng)用筆記 - 不正確使用LOG也會(huì)引發(fā)hard faultRT-Thread 應(yīng)用筆記 - RTC Alarm 組件的使用RT-Thread 應(yīng)用筆記 - free
    發(fā)表于 01-25 18:18 ?10次下載
    <b class='flag-5'>RT-Thread</b> 應(yīng)用筆記 - RTC Alarm <b class='flag-5'>組件</b>的使用

    RT-Thread全球技術(shù)大會(huì):Kconfig在RT-Thread中的工作機(jī)制

    RT-Thread全球技術(shù)大會(huì):Kconfig在RT-Thread中的工作機(jī)制 ? ? ? ? ? ? ? 審核編輯:彭靜
    的頭像 發(fā)表于 05-27 14:49 ?1584次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術(shù)大會(huì):Kconfig在<b class='flag-5'>RT-Thread</b>中的<b class='flag-5'>工作</b>機(jī)制

    RT-Thread全球技術(shù)大會(huì):如何使用組件以及自動(dòng)初始化流程

    RT-Thread全球技術(shù)大會(huì):如何使用組件和自動(dòng)初始化流程 ? ? ? ? ? 審核編輯:彭靜
    的頭像 發(fā)表于 05-27 15:16 ?990次閱讀
    <b class='flag-5'>RT-Thread</b>全球技術(shù)大會(huì):如何使用<b class='flag-5'>組件</b>以及自動(dòng)初始化<b class='flag-5'>流程</b>

    RT-Thread文檔_RT-Thread SMP 介紹與移植

    RT-Thread文檔_RT-Thread SMP 介紹與移植
    發(fā)表于 02-22 18:31 ?9次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> SMP 介紹與移植

    RT-Thread文檔_FinSH 控制臺

    RT-Thread文檔_FinSH 控制臺
    發(fā)表于 02-22 18:41 ?0次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>FinSH</b> 控制臺

    RT-Thread文檔_FAL 組件

    RT-Thread文檔_FAL 組件
    發(fā)表于 02-22 18:41 ?0次下載
    <b class='flag-5'>RT-Thread</b>文檔_FAL <b class='flag-5'>組件</b>
    百家乐官网投注平台| 永利百家乐的玩法技巧和规则| bet365体育在线注册| 网上的百家乐官网怎么才能赢| 时时彩论坛| 百家乐有什么打法| 两当县| 赌博百家乐下载| 百家乐官网关键词| 威尼斯人娱乐 老品牌| 免费百家乐官网的玩法技巧和规则| 网上赌博| 百家乐9人桌| 百家乐官网全讯网娱乐城 | 百家乐官网百家乐官网视频游戏世界| 老虎机上分器原理图| 百家乐官网那里可以玩| 百家乐平注常赢玩法| 在线百家乐合作| 南京百家乐官网在哪| 大发888 xp缺少 casino| 网上百家乐网站导航| 爱赢百家乐官网开户送现金| 全讯网高手| 百家乐筹码样式| 香港六合彩码报| 澳门百家乐娱乐平台| 金龍百家乐官网的玩法技巧和规则| 狮威亚洲娱乐城| 皇家百家乐的玩法技巧和规则| 百家乐官网皇室百家乐官网的玩法技巧和规则 | 百家乐官网开庄概率| 网络百家乐开户网| LV百家乐官网娱乐城| 百家乐官网破解版下载| 大发888怎么打不开| 免费百家乐在线| 百家乐官网官网站| 百家乐官网下注口诀| 新塘太阳城巧克力| 奔驰百家乐可信吗|