性无码一区二区三区在线观看,少妇被爽到高潮在线观看,午夜精品一区二区三区,无码中文字幕人妻在线一区二区三区,无码精品国产一区二区三区免费

程序小白
認(rèn)證:優(yōu)質(zhì)創(chuàng)作者
所在專題目錄 查看專題
基于嵌入式的軟件追蹤技術(shù)(上)
基于嵌入式的軟件追蹤技術(shù)(中)
基于嵌入式的軟件追蹤技術(shù)(下)
作者動(dòng)態(tài) 更多
基于stm32采用PWM驅(qū)動(dòng)伺服控制器學(xué)習(xí)筆記
5天前
基于STM32驅(qū)動(dòng)TM1638學(xué)習(xí)筆記——軟件篇
04-19 12:42
基于TM1638驅(qū)動(dòng)8位數(shù)碼管設(shè)計(jì)分享
02-24 11:26
RT-Thread驅(qū)動(dòng)之路: Studio創(chuàng)建FAL分區(qū)⑤
01-02 08:30
RT-Thread驅(qū)動(dòng)之路: Studio 掛載通用SPI flash④
2024-12-23 13:41

基于嵌入式的軟件追蹤技術(shù)(下)

      這篇文章是咬牙堅(jiān)持寫的,目標(biāo)是讓你能看懂,寫完發(fā)現(xiàn)的確是很難懂,全是我的錯(cuò),其實(shí)錄個(gè)視頻講一講可能就明白了(后面一定補(bǔ)上,我保證。。。),關(guān)于軟件追蹤,可能是我們?cè)谘邪l(fā)階段中最重要的收尾環(huán)節(jié),希望這篇文章像一粒種子一樣,種在你的小腦袋瓜里,不求看懂,大體知道還有這么一個(gè)玩意兒,等你真正想要應(yīng)用它到你的項(xiàng)目當(dāng)中時(shí),我強(qiáng)烈建議你點(diǎn)個(gè)收藏,memeda,下面開啟復(fù)雜難懂的正文。

      軟件追蹤其實(shí)最重要的并不是如何移植,這個(gè)相對(duì)來講比較簡(jiǎn)單,最重要的是如何在目標(biāo)板你需要的追蹤內(nèi)容,并根據(jù)輸出的最終記錄分析你的系統(tǒng)動(dòng)態(tài)運(yùn)行的軌跡,看看是否符合你的狀態(tài)機(jī)圖設(shè)計(jì),確保程序的健壯性。建議先往后拉,文章的末尾有這個(gè)軟件demo的狀態(tài)圖,設(shè)計(jì)的原圖,有點(diǎn)本末倒置,見諒,大體有個(gè)數(shù),然后再繼續(xù)我們的講解。

      這里如何通過軟件追蹤記錄來分析軟件的執(zhí)行流程,正常來講其實(shí)應(yīng)該先講一下,這個(gè)軟件大概的一個(gè)功能,有了大體的理解以后再去講追蹤記錄,這里我想嘗試一下在不了解這個(gè)軟件功能的情況下,對(duì)比源代碼來看一下軟件執(zhí)行流程。進(jìn)一步了解狀態(tài)機(jī)的狀態(tài)遷移及執(zhí)行流程。

      1.初始化記錄,bsp.c文件中相關(guān)的記錄與源代碼對(duì)應(yīng):

   2.初始化記錄,Philo.c文件中相關(guān)記錄與源代碼對(duì)應(yīng):

===RTC===> St-Init  (完成了狀態(tài)機(jī)的init初始化,RTC的意思是,運(yùn)行到完成,可理解為連續(xù)執(zhí)行,后面的->Philo_thinking為狀態(tài)轉(zhuǎn)換,也是就是執(zhí)行Q_TRAN的目標(biāo)狀態(tài)),狀態(tài)機(jī)在進(jìn)行狀態(tài)轉(zhuǎn)換的時(shí)候,到目標(biāo)狀態(tài),要執(zhí)行目標(biāo)狀態(tài)的進(jìn)入處理。

    3. 初始化記錄,Philo.c文件中相關(guān)記錄與源代碼對(duì)應(yīng):

      下面進(jìn)行關(guān)鍵部分的分析,就是這個(gè)軟件是怎么跑起來的,這是事件驅(qū)動(dòng)型的系統(tǒng),所以有輸入的部分,才會(huì)激活這個(gè)系統(tǒng),例如系統(tǒng)定時(shí)發(fā)送一個(gè)事件給目標(biāo)對(duì)象:

      目標(biāo)對(duì)象接收事件追蹤記錄:

      接下來我們根據(jù)記錄,找到源代碼,看看這個(gè)狀態(tài)處理函數(shù),如何處理這個(gè)事件,然后按照我們的執(zhí)行流程去對(duì)比追蹤記錄的反饋,看看是否一致?狀態(tài)處理函數(shù)如下:

到這里程序運(yùn)轉(zhuǎn)的流程基本上從源代碼的方向分析完了,接下來對(duì)比一下QSPY的追蹤記錄是否吻合,先貼出這塊的追蹤記錄,再逐條分析一下,看看狀態(tài)到底是不是這樣轉(zhuǎn)換的。

整個(gè)系統(tǒng)執(zhí)行反饋的記錄完美的與我們程序設(shè)計(jì)的轉(zhuǎn)換執(zhí)行路線相同,確定軟件是我們?cè)O(shè)計(jì)的運(yùn)行軌跡進(jìn)行狀態(tài)轉(zhuǎn)換的。到這里整篇軟件追蹤就結(jié)束了,有興趣的同學(xué)可以研究研究原文,在對(duì)照我做的分析做下參考。最后送上我們的QM生成的狀態(tài)圖,其實(shí)我們的代碼都是這個(gè)QM狀態(tài)圖自動(dòng)生成的,只是部分內(nèi)容我們自己填寫,如下:

聲明:本內(nèi)容為作者獨(dú)立觀點(diǎn),不代表電子星球立場(chǎng)。未經(jīng)允許不得轉(zhuǎn)載。授權(quán)事宜與稿件投訴,請(qǐng)聯(lián)系:editor@netbroad.com
覺得內(nèi)容不錯(cuò)的朋友,別忘了一鍵三連哦!
贊 8
收藏 9
關(guān)注 150
成為作者 賺取收益
全部留言
0/200
  • 星球居民-G9sQj7p6 2020-12-30 13:03
    感謝分享
    回復(fù)