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

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

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

如何在Windows上搭建LiteOS的開發(fā)調(diào)試環(huán)境

lcdz66 ? 來源:雨飛工作室 ? 2023-08-23 14:05 ? 次閱讀

Huawei LiteOS是華為面向IoT領(lǐng)域,構(gòu)建的“統(tǒng)一物聯(lián)網(wǎng)操作系統(tǒng)和中間件軟件平臺”,以輕量級(內(nèi)核小于10k)、低功耗(1節(jié)5號電池最多可以工作5年),快速啟動,互聯(lián)互通,安全等關(guān)鍵能力,為開發(fā)者提供“一站式”完整軟件平臺,有效降低開發(fā)門檻、縮短開發(fā)周期。

Huawei LiteOS五大內(nèi)核模塊

下面對LiteOS基礎(chǔ)內(nèi)核的任務(wù)管理、內(nèi)存管理、中斷管理、信號量、互斥鎖五大模塊進(jìn)行簡單介紹。

01、LiteOS內(nèi)核的任務(wù)管理

任務(wù)是競爭系統(tǒng)資源的最小運(yùn)行單元。任務(wù)可以使用或等待CPU、使用內(nèi)存空間等系統(tǒng)資源,并獨(dú)立于其它任務(wù)運(yùn)行。

Huawei LiteOS是一個支持多任務(wù)的操作系統(tǒng),一個任務(wù)就表示一個線程,任務(wù)之間可以進(jìn)行切換和通信。LiteOS的任務(wù)管理模塊提供任務(wù)創(chuàng)建、刪除、延時、掛起和恢復(fù)、更改任務(wù)優(yōu)先級、鎖定任務(wù)調(diào)度和解鎖任務(wù)調(diào)度、根據(jù)任務(wù)控制塊查詢?nèi)蝿?wù) ID、根據(jù) ID 查詢?nèi)蝿?wù)控制塊信息等功能。

因為LiteOS內(nèi)核是搶占式調(diào)度內(nèi)核,所以高優(yōu)先級的任務(wù)可以打斷低優(yōu)先級任務(wù),低優(yōu)先級任務(wù)必須在高優(yōu)先級任務(wù)阻塞或結(jié)束后才能得到調(diào)度,同優(yōu)先級任務(wù)會進(jìn)行時間片輪轉(zhuǎn)調(diào)度。優(yōu)先級表示任務(wù)執(zhí)行的優(yōu)先順序,決定了在發(fā)生任務(wù)切換時即將要執(zhí)行的任務(wù)。LiteOS中的任務(wù)一共有32個優(yōu)先級 (0-31),最高優(yōu)先級為 0,最低優(yōu)先級為31。

任務(wù)控制TCB

每一個任務(wù)都含有一個任務(wù)控制塊(TCB)。TCB 包含了任務(wù)上下文棧指針(stack pointer)、任務(wù)狀態(tài)(包括就緒、運(yùn)行、阻塞、退出4種狀態(tài))、任務(wù)棧大小(任務(wù)棧里保存著局部變量、寄存器、函數(shù)參數(shù)、函數(shù)返回地址等)、任務(wù)優(yōu)先級、任務(wù)ID、任務(wù)名等信息。TCB相當(dāng)于每個任務(wù)在內(nèi)核中的身份證,可以反映出每個任務(wù)運(yùn)行情況。

運(yùn)作機(jī)制

在任務(wù)模塊初始化時,系統(tǒng)會先申請TCB需要的內(nèi)存空間。如果任務(wù)初始化成功,則系統(tǒng)對TCB內(nèi)容進(jìn)行初始化。用戶創(chuàng)建任務(wù)時,系統(tǒng)會將任務(wù)棧進(jìn)行初始化,預(yù)置上下文。此外,系統(tǒng)還會將“任務(wù)入口函數(shù)”地址放在相應(yīng)位置。這樣在任務(wù)第一次啟動進(jìn)入運(yùn)行態(tài)時,將會執(zhí)行“任務(wù)入口函數(shù)”。

02、LiteOS內(nèi)核的內(nèi)存管理

Huawei LiteOS的內(nèi)存管理模塊管理系統(tǒng)的內(nèi)存資源,主要包括內(nèi)存的初始化、分配及釋放,是操作系統(tǒng)的核心模塊之一。在系統(tǒng)運(yùn)行過程中,內(nèi)存管理模塊通過對內(nèi)存的申請/釋放操作,來管理用戶和OS對內(nèi)存的使用,使內(nèi)存的利用率和使用效率達(dá)到最優(yōu),同時最大限度地解決系統(tǒng)的內(nèi)存碎片問題。

Huawei LiteOS的內(nèi)存管理分為動態(tài)內(nèi)存管理和靜態(tài)內(nèi)存管理。

動態(tài)內(nèi)存管理

在動態(tài)內(nèi)存池中分配用戶指定大小的內(nèi)存塊。

o 優(yōu)點(diǎn):按需分配。

o 缺點(diǎn):內(nèi)存池中可能出現(xiàn)碎片。

靜態(tài)內(nèi)存管理

在靜態(tài)內(nèi)存池中分配用戶初始化時預(yù)設(shè)(固定)大小的內(nèi)存塊,初始化后塊大小不可變更。

o 優(yōu)點(diǎn):分配和釋放效率高,靜態(tài)內(nèi)存池中無碎片。

o 缺點(diǎn):只能申請到初始化預(yù)設(shè)大小的內(nèi)存塊,不能按需申請。

03、LiteOS內(nèi)核的中斷管理

中斷是指出現(xiàn)需要時,CPU暫停執(zhí)行當(dāng)前程序,轉(zhuǎn)而執(zhí)行新程序的過程。即在程序運(yùn)行過程中,系統(tǒng)出現(xiàn)了一個必須由CPU立即處理的事務(wù)。此時,CPU暫時中止當(dāng)前程序的執(zhí)行轉(zhuǎn)而處理這個事務(wù),這個過程就叫做中斷。

為什么需要中斷?

眾多周知,CPU的處理速度比外設(shè)的運(yùn)行速度快很多,外設(shè)可以在沒有CPU介入的情況下完成一定的工作,但某些情況下需要CPU為其做一定的工作。通過中斷機(jī)制,在外設(shè)不需要CPU介入時,CPU可以執(zhí)行其它任務(wù),而當(dāng)外設(shè)需要CPU時通過產(chǎn)生中斷信號使CPU立即中斷當(dāng)前任務(wù)來響應(yīng)中斷請求。用戶通過中斷申請,注冊中斷處理程序,可以指定CPU響應(yīng)中斷請求時所執(zhí)行的具體操作。這樣可以使CPU避免把大量時間耗費(fèi)在等待、查詢外設(shè)狀態(tài)的操作上,因此將大大提高系統(tǒng)實(shí)時性以及執(zhí)行效率。

相關(guān)的硬件

與中斷相關(guān)的硬件可以劃分為三類:設(shè)備、中斷控制器、CPU本身。

設(shè)備:發(fā)起中斷的源,當(dāng)設(shè)備需要請求CPU時,產(chǎn)生一個中斷信號,該信號連接至中斷控制器。

中斷控制器:中斷控制器是 CPU 眾多外設(shè)中的一個,它一方面接收其它外設(shè)中斷引腳的輸入,另一方面,它會發(fā)出中斷信號給CPU??梢酝ㄟ^對中斷控制器編程實(shí)現(xiàn)對中斷源的優(yōu)先級、觸發(fā)方式、打開和關(guān)閉源等設(shè)置操作。常用的中斷控制器有VIC(Vector Interrupt Controller)和GIC(General Interrupt Controller),在 ARM Cortex-M 系列中使用的中斷控制器是NVIC(Nested Vector Interrupt Controller)。

CPU:CPU會響應(yīng)中斷源的請求,中斷當(dāng)前正在執(zhí)行的任務(wù),轉(zhuǎn)而執(zhí)行中斷處理程序。

主要功能

Huawei LiteOS支持:中斷初始化、中斷創(chuàng)建、開/關(guān)中斷、恢復(fù)中斷、中斷使能、中斷屏蔽。

04、LiteOS內(nèi)核的信號量

信號量(Semaphore)是一種實(shí)現(xiàn)任務(wù)間通信的機(jī)制,可以用于任務(wù)之間同步或臨界資源的互斥訪問。信號量可以被任務(wù)獲取或者申請,不同的信號量通過信號量索引號來唯一確定,每個信號量都有一個計數(shù)值和任務(wù)隊列。通常信號量的計數(shù)值表示有效的資源數(shù),即剩下的可被占用的互斥資源數(shù)。當(dāng)任務(wù)申請(Pend)信號量時,如果申請成功,則信號量的計數(shù)值遞減,如申請失敗,則掛起在該信號量的等待任務(wù)隊列上,一旦有任務(wù)釋放該信號量,則等待任務(wù)隊列中的任務(wù)被喚醒開始執(zhí)行。

信號量運(yùn)作示意圖:

wKgZomTlobyARe4yAACFyzav8Ic231.png

使用場景

信號量是一種非常靈活的同步方式,可以運(yùn)用在多種場合中,實(shí)現(xiàn)鎖、同步、資源計數(shù)等功能,也能方便的用于任務(wù)與任務(wù),中斷與任務(wù)的同步中。

· 任務(wù)間互斥。用作互斥時,信號量創(chuàng)建后記數(shù)是滿的,在需要使用臨界資源時,先申請信號量,使其變空,這樣其他任務(wù)需要使用臨界資源時就會因為無法申請到信號量而阻塞,從而保證了臨界資源的安全。

· 任務(wù)間同步。用作同步時,信號量在創(chuàng)建后被置為空,任務(wù)1申請信號量而阻塞,任務(wù)2在某種條件發(fā)生后,釋放信號量,于是任務(wù)1得以進(jìn)入READY或RUNNING態(tài),從而達(dá)到了兩個任務(wù)間的同步。

· 資源計數(shù)。用作資源計數(shù)時,信號量的作用是一個特殊的計數(shù)器,可以遞增或者遞減,但是值永遠(yuǎn)不能為負(fù)值,典型的應(yīng)用場景是生產(chǎn)者與消費(fèi)者的場景。

· 中斷與任務(wù)的同步。用作中斷與任務(wù)的同步時,可以在中斷未觸發(fā)時將信號量的值置為0,從而堵塞中斷服務(wù)處理任務(wù),一旦中斷被觸發(fā),則喚醒堵塞的中斷服務(wù)處理任務(wù)進(jìn)行中斷處理。

05、LiteOS內(nèi)核的互斥鎖

互斥鎖(mutex)又稱互斥型信號量,是一種特殊的二值信號量,用于實(shí)現(xiàn)對共享資源的獨(dú)占式處理。互斥鎖主要使用在多任務(wù)環(huán)境下,此時往往存在多個任務(wù)競爭同一共享資源的應(yīng)用場景。另外,Huawei LiteOS通過優(yōu)先級繼承算法,解決了信號量存在的優(yōu)先級翻轉(zhuǎn)問題。

運(yùn)作機(jī)制

任意時刻互斥鎖只有兩種狀態(tài):開鎖或閉鎖。當(dāng)有任務(wù)持有時,互斥鎖處于閉鎖狀態(tài),這個任務(wù)獲得該互斥鎖的所有權(quán)。當(dāng)該任務(wù)釋放它時,該互斥鎖被開鎖,任務(wù)失去該互斥鎖的所有權(quán)。當(dāng)一個任務(wù)持有互斥鎖時,其他任務(wù)將不能再對該互斥鎖進(jìn)行開鎖或持有,所以其他任務(wù)此時訪問這個公共資源將會被阻塞,直到互斥鎖被持有該鎖的任務(wù)釋放后,其他任務(wù)才能重新訪問該公共資源。

互斥鎖運(yùn)作示意圖:

wKgaomTlobyAJTArAABPmq9XoY4055.png

圖解LiteOS開發(fā)環(huán)境快速搭建

下面介紹如何在Windows上搭建 LiteOS 的開發(fā)調(diào)試環(huán)境?;诘挠布脚_采用的是華為官方推薦的IoT開發(fā)板——小熊派(BearPi)。下面將首先介紹開發(fā)板與 Windows連接所需的驅(qū)動安裝,再介紹用于開發(fā)LiteOS系統(tǒng)級別軟件的集成開發(fā)環(huán)境(IDE)。LiteOS開發(fā)可以使用兩種IDE開發(fā)環(huán)境,分別是華為提供的LiteOS Studio和Keil公司提供的MDK。主要介紹華為目前自研主推的LiteOS Studio,并通過一個簡單的用例演示如何使用LiteOS Studio創(chuàng)建一個工程,并對其進(jìn)行編譯、燒錄和設(shè)備在線調(diào)試的具體操作步驟。

1、準(zhǔn)備環(huán)境

1.1 小熊派(BearPi)介紹

小熊派(BearPi)是一款基于STM32L431RCT6設(shè)計的高性能物聯(lián)網(wǎng)開發(fā)板。具有強(qiáng)大的可擴(kuò)展性,提供給開發(fā)者評估及快速設(shè)計相關(guān)物聯(lián)網(wǎng)的應(yīng)用產(chǎn)品。下圖展示了BearPi核心板的構(gòu)成:

wKgZomTlobyAPS2jAAEfn5IMIwQ793.jpg

圖 1 - BearPi 的核心板

出于演示多種物聯(lián)網(wǎng)解決方案的目的,以及擴(kuò)展性的需要,整個BearPi套件除了核心板外還提供有多款外擴(kuò)擴(kuò)展板插件,整體上這些外擴(kuò)插件板分為兩大類:

一類擴(kuò)展板上集成了多種 “傳感(Sensor)” 設(shè)備和 “動作(Actuator)” 設(shè)備,“Sensor” 的主要職能是負(fù)責(zé)從周邊環(huán)境中采集信息并由MCU(圖 2 中標(biāo)號為 “2” 的黃色線框部分)進(jìn)行讀取,譬如溫度傳感器可以采集周邊環(huán)境的溫度值、光照傳感器可以采集周邊環(huán)境的光照值等等;而 “Actuator” 則指的是一些可以接受控制指令進(jìn)行動作的元器件,譬如馬達(dá)用于執(zhí)行旋轉(zhuǎn)功能、燈泡可以發(fā)光,蜂鳴器可以發(fā)出聲音等等。這些 “Sensor” 和 “Acurator” 根據(jù)不同的應(yīng)用場景組合后集成在一系列的擴(kuò)展板上,可以通過標(biāo)準(zhǔn)的插口以插件的形式和 BearPi 的核心板進(jìn)行連接。參考圖2中標(biāo)號為1的紅色線框部分。

另一類擴(kuò)展板上集成了各種通訊芯片射頻單元,譬如NB-IoT發(fā)射單元、Wi-Fi 發(fā)射單元等,這些擴(kuò)展板主要負(fù)責(zé)在MCU的控制下實(shí)現(xiàn)網(wǎng)絡(luò)連接,實(shí)現(xiàn)BearPi 和網(wǎng)絡(luò)云端設(shè)備的互聯(lián)互通。這些負(fù)責(zé)網(wǎng)絡(luò)通訊的擴(kuò)展板同樣通過標(biāo)準(zhǔn)的插口以插件的形式連接在BearPi的核心板上。參考圖2中標(biāo)號為“3” 的綠色線框部分。

wKgZomTlobyAIp5wAAKF0TAywSQ066.jpg

圖 2 - BearPi 的三大組成部分

1.2 安裝驅(qū)動

BearPi 開發(fā)板通過Micro USB線與PC連接,所以在具體開發(fā)調(diào)試前首先要在PC上為開發(fā)板安裝USB驅(qū)動。BearPi 已經(jīng)提供了配套的驅(qū)動和 LiteOS Studio 安裝包,不做特殊說明,以下安裝包采用的都是 BearPi 套件自帶的版本。

驅(qū)動的安裝比較簡單,解壓 “小熊派開發(fā)板資料1軟件資料” 目錄下的 “STLINK驅(qū)動.zip” 壓縮包,雙擊與自己系統(tǒng)對應(yīng)的安裝程序即可, 如圖3所示,32位系統(tǒng)選擇 X86 安裝程序,64位系統(tǒng)選擇64位安裝程序,并根據(jù)安裝程序提示安裝驅(qū)動(也可以直接運(yùn)行stlink_winusb_install.bat這個批處理安裝腳本文件)。要注意的是,由于后面安裝的LiteOS Studio軟件包只支持64位的版本,所以建議大家開發(fā)調(diào)試時使用Windows 7版本以上64位的系統(tǒng),下面演示所使用的環(huán)境就是 Windows 7的64位系統(tǒng)。

wKgaomTlobyAPRgWAAC2Rz_H1gI467.png

圖 3 - STLINK驅(qū)動的安裝

安裝完驅(qū)動后,將開發(fā)板通過Micro USB線與PC電腦連接,同時打開Windows的 設(shè)備管理器。如果在設(shè)備管理器中能找到如圖四所示的COM端口,證明驅(qū)動安裝成功。具體是 “COM3” 還是 “COM4”,這個值在不同的電腦上顯示的可能不同,記住這個值,后面使用LiteOS Studio設(shè)置串口參數(shù)的時候會有用。

wKgaomTlobyAbeJlAADqEh0d1A8031.png

圖 4 - STLINK 虛擬串口

但有時候插上USB線加載驅(qū)動會碰到問題,驅(qū)動提示安裝不成功。

wKgZomTlobyAZuK0AAElnLbldcc093.jpg

圖 5 - 驅(qū)動提示安裝不成功

同時設(shè)備管理器中出現(xiàn)惱人的黃色感嘆號,并提示 “ST-Link VCP Ctrl”。

wKgZomTlobyARwdgAABsiy75Xeo067.png

圖 6 - 設(shè)備管理器提示 “ST-Link VCP Ctrl” 失敗

這個問題據(jù)說多半是由于使用了非正版的Windows系統(tǒng)所致。

2、LiteOS Studio開發(fā)環(huán)境搭建

LiteOS Studio是華為基于LiteOS嵌入式系統(tǒng)軟件開發(fā)的工具,支持C、C++匯編等多種開發(fā)語言,提供代碼編輯、編譯、燒錄及調(diào)試等一站式開發(fā)體驗。目前支持 ARM Cortex-M0、Cortex-M4、Cortex-M7、Cortex-A7和ARM926EJ-S等芯片架構(gòu)。LiteOS Studio目前已經(jīng)適配了多種開發(fā)板,其中包括ST、HiSilicon、Fudan Microelectronics等主流廠商的開發(fā)板。BearPi基于ST的芯片方案,很方便地可以得到LiteOS Studio的支持。

2.1 安裝LiteOS Studio

解壓 “小熊派開發(fā)板資料1軟件資料” 目錄下的 “LiteOS_IDE.zip” 壓縮包 ,雙擊安裝程序,如 圖7 所示, 根據(jù)提示進(jìn)行安裝。

安裝過程中注意以下幾點(diǎn):

安裝路徑不能有中文路徑,否則即使安裝成功程序運(yùn)行也會異常。

目前IDE只支持 Win7 以上的64位操作系統(tǒng),所以安裝前請先確認(rèn) Windows 系統(tǒng)版本是否滿足。

wKgaomTlobyANExNAABBi8NHC1I053.png

圖 7 - 安裝 LiteOS Studio

2.2 創(chuàng)建LiteOS Studio工程

打開LiteOS Studio軟件,在首頁上單擊 “創(chuàng)建LiteOS Studio工程”。

wKgZomTlobyAejzbAAB6abcW-AY101.png

圖 8 - 創(chuàng)建 LiteOS Studio 工程

然后LiteOS Studio會彈出 “配置工程界面”,此時可以對新創(chuàng)建的工程進(jìn)行基本配置。我們采用最簡單的方式進(jìn)行演示,依次配置如下信息,參考圖9的紅色線框標(biāo)識:

wKgaomTlobyAE8bHAAB-A0M0WCA431.png

圖 9 - 配置LiteOS Studio工程信息

LiteOS SDK版本:即本工程基于的LiteOS的內(nèi)核和中間件的版本,對于LiteOS這樣的嵌入式系統(tǒng),應(yīng)用和內(nèi)核是一起參與編譯的。這里我們使用缺省版本,即LiteOS Studio安裝時自帶的一份SDK模版。

工程名稱:自己定義,本文填寫為 demo。

工程目錄:工程的父目錄,請選擇一個本機(jī)存在的目錄即可,本文填寫為 D:wsiot-dev。

工程類型:選擇 “端云最佳實(shí)踐”,這里L(fēng)iteOS Studio 自帶了一份配合BearPi 的樣例工程,我們直接使用即可。

配置好后直接點(diǎn)擊 “完成”,需要一些時間,完成后打開IDE的界面如下。

wKgZomTlobyATVSMAADJ9t22x4M031.png

圖 10 - LiteOS Studio 界面布局

同時在你指定的 “工程目錄” 下創(chuàng)建名為demo的工程子目錄并拷貝了相應(yīng)的SDK和樣板工程的代碼在工程目錄里。

wKgaomTlobyASeXRAAA_ACyyz0A435.png

圖 11 - 創(chuàng)建的工程目錄

2.3 配置LiteOS Studio工程

工程打開后先不要急著編譯,正常流程中還需要先配置一下。菜單選擇 “工程” -> “工程配置”,或者直接點(diǎn)擊工具欄中的圖標(biāo)如下圖所示。

wKgZomTlobyAYiEbAACSB37QMig069.png

圖 12 - 配置LiteOS Studio工程

彈出如下 “工程配置” 對話框。由于這里我們使用的是樣板工程,這些內(nèi)容已經(jīng)都給我們配置好了,所以可以直接忽略這一步。

wKgaomTlobyAIKwpAABUoHcx1lM910.png

圖 13 - LiteOS Studio工程配置界面

2.4 編譯LiteOS Studio工程

菜單選擇 “工程” -> “編譯” 或者點(diǎn)擊工具欄上的圖標(biāo)如下圖所示。

wKgZomTlobyATAu8AAC4xKavgqE091.png

圖 14 - 編譯LiteOS Studio工程

編譯會需要一點(diǎn)時間,但相對于Linux那樣的大型系統(tǒng)來說還是很快的。編譯完成后顯示 “編譯成功” 以及編譯花費(fèi)的時間。

wKgaomTlob2ASHXkAAEJs2Rf-y0041.png

圖 15 - 編譯成功

3.5 燒錄LiteOS Studio工程

無論是運(yùn)行還是調(diào)試,都需要將編譯好的程序先下載(習(xí)慣上稱之為 “燒錄”)到開發(fā)板上去。這里我們先確保使用Micro USB線將BearPi 開發(fā)板和PC連接好,確保設(shè)備管理器上的虛擬串口加載完成(即設(shè)備管理器中出現(xiàn)COM端口,如圖4所示),然后菜單選擇 “工程” -> “燒錄”,或者直接點(diǎn)擊工具欄中的圖標(biāo)如下圖所示。

wKgZomTlob2APbjYAABty7eYrxU124.png

圖 16 - 燒錄LiteOS Studio工程

等待燒錄完成,界面的控制臺中會輸出整個燒錄過程信息,直到完成后顯示 “燒錄成功”。

wKgaomTlob2AC_ujAACTMSxc3rk622.png

圖 17 - 燒錄成功

2.6 調(diào)試LiteOS Studio工程

簡單介紹一下如何在 LiteOS 工程中通過串口打印實(shí)現(xiàn)日志跟蹤以及如何使用在線調(diào)試單步跟蹤。

2.6.1 串口打印

調(diào)試手段中最基本的就是加打印輸出,LiteOS也支持通過串口輸出跟蹤信息。下面介紹一下如何配置串口。注意:如果要確保下面的步驟中能夠在 “串口終端” 中看到打印輸出,需要檢查BearPi的AT開關(guān),確保其撥到MCU一側(cè),如下圖所示。

wKgaomTlob2AUxBYAAB6yiKFmLw464.jpg

圖 18 - AT 開關(guān)

采用LiteOS Studio自帶的串口終端即可接收MCU發(fā)送的信息。第一次安裝后缺省不顯示串口終端,通過菜單選擇 “查看” -> “串口終端” 可以將該終端窗口顯示出來。

wKgZomTlob2AXERyAABz_FJWsVk748.png

圖 19 - 顯示串口終端

串口終端顯示后還需要對LiteOS Studio做一些串口的基本配置才可以接收串口信息。點(diǎn)擊下圖中左上側(cè)的 “齒輪” 圖標(biāo)。

wKgZomTlob2AVxhEAAA8EHzjB4Y499.png

圖 20 - 配置串口終端

再次打開 “工程配置” 對話框,選擇 “串口配置” 項后配置如下信息:

wKgZomTlob2AXuzIAAB4elbRROU826.png

圖 21 - 配置串口終端界面

端口:這里選擇在安裝驅(qū)動時看到的COM的端口值,這里選擇COM3。

波特率:115200,缺省不變。

數(shù)據(jù)位:8,缺省不變。

停止位:1,缺省不變。

奇偶(校驗):None,缺省不變。

流控:None,缺省不變。

此外還可以勾選是否自動將串口輸出的內(nèi)容保存到日志文件中并指定日志文件的存放路徑。

點(diǎn)擊 “確認(rèn)” 后保存串口配置,但此時串口并未開始工作,需要繼續(xù)參考下圖將端口打開使能。這樣以后我們就可以看到 “串口終端” 中開始有內(nèi)容輸出了,左邊顯示的是可讀的ASCII字符信息,右邊顯示的是對應(yīng)的十六制輸出。之所以存在輸出是因為我們這里演示采用的例子中已經(jīng)有一些調(diào)用printf() 函數(shù)的輸出,以后我們在實(shí)驗中也可以通過類似操作在這里查看程序的執(zhí)行過程。

wKgaomTlob2AHquLAACOVZVONyM888.png

圖 22 - 打開串口

2.6.2 單步跟蹤 LiteOS Studio工程

LiteOS Studio也支持在線單步調(diào)試程序。方法很簡單。首先確保BearPi開發(fā)板通過 Micro USB線連接PC(這也是我們稱之為 “在線調(diào)試” 的原因),并將需要調(diào)試的程序下載燒錄到開發(fā)板中,然后菜單選擇 “調(diào)試” -> “開始/繼續(xù)”,或者直接點(diǎn)擊工具欄中的圖標(biāo)如下圖所示。

wKgaomTlob2AHR04AACFSZU9ODE886.png

圖 23 - 調(diào)試LiteOS Studio工程

此時調(diào)試器會自動加載對應(yīng)代碼并暫停在整個系統(tǒng)程序的入口處,接下來的操作和我們操作其他的IDE類似。

wKgaomTlob2APNG8AAFrv7sbHR4465.jpg

圖 24 - LiteOS Studio工程調(diào)試界面

審核編輯:湯梓紅

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

    關(guān)注

    3

    文章

    3503

    瀏覽量

    87875
  • 開發(fā)環(huán)境
    +關(guān)注

    關(guān)注

    1

    文章

    215

    瀏覽量

    16519
  • Huawei
    +關(guān)注

    關(guān)注

    1

    文章

    176

    瀏覽量

    20062
  • Liteos
    +關(guān)注

    關(guān)注

    10

    文章

    32

    瀏覽量

    47483
  • 內(nèi)核模塊
    +關(guān)注

    關(guān)注

    0

    文章

    10

    瀏覽量

    3076

原文標(biāo)題:漫談Huawei LiteOS五大內(nèi)核模塊,圖解LiteOS開發(fā)環(huán)境快速搭建

文章出處:【微信號:雨飛工作室,微信公眾號:雨飛工作室】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    Windows下基于MSVC搭建libjpeg開發(fā)環(huán)境

    Windows下基于MSVC搭建libjpeg開發(fā)環(huán)境
    的頭像 發(fā)表于 06-08 10:23 ?1467次閱讀
    <b class='flag-5'>Windows</b>下基于MSVC<b class='flag-5'>搭建</b>libjpeg<b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b>

    Windows下基于MSVC搭建libusb開發(fā)環(huán)境

    Windows下基于MSVC搭建libusb開發(fā)環(huán)境
    的頭像 發(fā)表于 06-08 10:25 ?2432次閱讀
    <b class='flag-5'>Windows</b>下基于MSVC<b class='flag-5'>搭建</b>libusb<b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b>

    Windows下基于MSVC搭建ffmpeg開發(fā)環(huán)境

    Windows下基于MSVC搭建ffmpeg開發(fā)環(huán)境
    的頭像 發(fā)表于 06-08 10:27 ?1607次閱讀
    <b class='flag-5'>Windows</b>下基于MSVC<b class='flag-5'>搭建</b>ffmpeg<b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b>

    Windows下基于MSVC搭建SDL開發(fā)環(huán)境

    Windows下基于MSVC搭建SDL開發(fā)環(huán)境
    的頭像 發(fā)表于 06-08 10:29 ?1378次閱讀
    <b class='flag-5'>Windows</b>下基于MSVC<b class='flag-5'>搭建</b>SDL<b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b>

    Windows下使用pthread-開發(fā)環(huán)境搭建

    Windows下使用pthread-開發(fā)環(huán)境搭建
    的頭像 發(fā)表于 06-08 10:32 ?5234次閱讀
    <b class='flag-5'>Windows</b>下使用pthread-<b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>

    何在Linux搭建Melis3.0開發(fā)環(huán)境?

    何在Linux搭建Melis3.0開發(fā)環(huán)境?
    發(fā)表于 12-29 06:10

    【小凌派RK2206開發(fā)板試用體驗】在windows搭建鴻蒙OS開發(fā)環(huán)境

    LiteOS-A,在QEMU運(yùn)行(不用硬件開發(fā)板,只需要一臺電腦,方便你驗證),通過一步步搭建起基本的開發(fā)
    發(fā)表于 06-05 23:54

    開發(fā)環(huán)境搭建教程

    android Windows系統(tǒng)下開發(fā)環(huán)境搭建
    發(fā)表于 03-22 17:42 ?0次下載

    搭建C語言開發(fā)環(huán)境Windows平臺)匯總

    本文給大家匯總了5種在WIN平臺下搭建C語言開發(fā)環(huán)境的方法,包括在Windows平臺配置GNU環(huán)境,使用Sublime Test
    的頭像 發(fā)表于 02-01 10:03 ?3627次閱讀

    ESP32教程——Windows開發(fā)環(huán)境搭建.pdf下載

    ESP32教程——Windows開發(fā)環(huán)境搭建.pdf
    發(fā)表于 04-14 10:41 ?47次下載
    ESP32教程——<b class='flag-5'>Windows</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b><b class='flag-5'>搭建</b>.pdf下載

    何在Mac下搭建PHP開發(fā)環(huán)境

    本文檔的主要內(nèi)容詳細(xì)介紹的是如何在Mac下搭建PHP開發(fā)環(huán)境
    發(fā)表于 06-21 15:17 ?14次下載

    ESP32教程之如何在Windows系統(tǒng)搭建開發(fā)環(huán)境

    本文檔的主要內(nèi)容詳細(xì)介紹的是ESP32教程之如何在Windows系統(tǒng)搭建開發(fā)環(huán)境。
    發(fā)表于 12-13 15:34 ?40次下載
    ESP32教程之如<b class='flag-5'>何在</b><b class='flag-5'>Windows</b>系統(tǒng)<b class='flag-5'>上</b><b class='flag-5'>搭建</b><b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b>

    MM32F013x——Windows環(huán)境下基于Eclipse開發(fā)、調(diào)試MM32

    前面一章節(jié)介紹了在Windows搭建Eclipse開發(fā)環(huán)境,本章節(jié)將介紹在Windows環(huán)境
    發(fā)表于 01-25 18:53 ?2次下載
    MM32F013x——<b class='flag-5'>Windows</b><b class='flag-5'>環(huán)境</b>下基于Eclipse<b class='flag-5'>開發(fā)</b>、<b class='flag-5'>調(diào)試</b>MM32

    MM32F013x——Windows搭建Eclipse開發(fā)環(huán)境

    前段時間有客戶問到如何在Windows環(huán)境下基于Eclipse開發(fā)、調(diào)試MM32 MCU,經(jīng)過嘗試,現(xiàn)將
    發(fā)表于 01-25 18:58 ?2次下載
    MM32F013x——<b class='flag-5'>Windows</b>下<b class='flag-5'>搭建</b>Eclipse<b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b>

    MM32F013x——Windows搭建Eclipse開發(fā)環(huán)境

    何在Windows環(huán)境下基于Eclipse開發(fā)、調(diào)試MM32 MCU,經(jīng)過嘗試,現(xiàn)將環(huán)境
    發(fā)表于 02-08 16:27 ?1次下載
    MM32F013x——<b class='flag-5'>Windows</b>下<b class='flag-5'>搭建</b>Eclipse<b class='flag-5'>開發(fā)</b><b class='flag-5'>環(huán)境</b>