最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Keil MDK Trace功能的配置

2022-12-29 16:22 作者:億道電子  | 我要投稿

一、硬件、軟件環(huán)境

1、件環(huán)境:

(1)開(kāi)發(fā)板:ATSAMV71Q21開(kāi)發(fā)板(注:開(kāi)發(fā)板需帶ETM模塊接口)

圖片

(2)仿真器:ULINK pro仿真器(注:仿真器支持ETM功能即可)

圖片

2、軟件環(huán)境:

(1)系統(tǒng):window11?專(zhuān)業(yè)版

(2)軟件:Keil MDK pro版


二、ETM功能配置流程

1、新建初始化文件”SAMx7_TP.ini”

圖片

初始化文件的內(nèi)容如圖所示:(注:不同型號(hào)的芯片的對(duì)應(yīng)trace功能的初始化文件可能不一致,不同芯片的trace功能的初始化文件可以參考幫助文檔Configure Cortex-M Devices for Tracing部分)

圖片

初始化文件主要內(nèi)容是將ETM功能使能和對(duì)應(yīng)的GPIO口進(jìn)行對(duì)應(yīng)的使能。

首先是對(duì)于電源管理控制器(PMC)進(jìn)行寫(xiě)保護(hù)失能,使得可以對(duì)PMC對(duì)應(yīng)的寄存器進(jìn)行操作。據(jù)數(shù)據(jù)手冊(cè)查詢(xún),PCK3時(shí)鐘對(duì)應(yīng)的是ETM外部設(shè)備,所以要設(shè)置ETM的主時(shí)鐘,使能PCK3時(shí)鐘。

圖片

然后是使能PIOD的時(shí)鐘,要對(duì)于PIOD組進(jìn)行設(shè)置也需要對(duì)于PIOD的寫(xiě)保護(hù)進(jìn)行失能并禁止PIO控制相對(duì)應(yīng)的引腳,啟用對(duì)于對(duì)應(yīng)引腳的外圍控制,讓仿真器可以對(duì)于對(duì)應(yīng)IO口進(jìn)行控制。

然后是對(duì)于IO口的復(fù)用,需要對(duì)于寄存器0和寄存器1進(jìn)行設(shè)置。讓PD8設(shè)置成無(wú)上拉下拉,PD7~4設(shè)置成輸入改變中斷模式,無(wú)上拉下拉。

最后設(shè)置一個(gè)重啟執(zhí)行函數(shù)OnResetExec,讓該函數(shù)可以通過(guò)uVision的“重置”按鈕重置后執(zhí)行。

2、添加初始化文件:將初始化文件添加到Keil->option for target->Debug->Initialization File中,

圖片
圖片
圖片

3、選擇仿真器

仿真器需要選擇支持ETM功能的,而ULINK pro仿真器支持ETM功能,所以仿真器選項(xiàng)可以選擇”ULINK Pro Cortex Debugger”。

圖片

4、配置Keil的debug和trace選項(xiàng)

(1)點(diǎn)擊settings進(jìn)入設(shè)備設(shè)置界面

圖片

(2)在Debug選項(xiàng)中,需要將port選擇SW接口

圖片

(3)然后在trace配置上,需要設(shè)置core clock,核心時(shí)鐘必須與設(shè)備配置相對(duì)應(yīng)。并且勾選”Use Core Clock”,讓trace clock和core clock保持一致。

圖片

(4)然后,勾選”Trace Enable”和”ETM Trace Enable”,讓Trace和ETM功能使能。

圖片

(5)Trace Port的設(shè)置必須始終與”xxxx.ini”文件中的設(shè)置相對(duì)應(yīng)。在配置文件中,配置了PD4-PD8五個(gè)IO口,其中TRACED[0..3]在引腳PD4到PD7上輸出,跟蹤時(shí)鐘TRACECK在引腳PD8上配置。所以,Trace Port選擇”Sync Trace Port with 4-bit Data”。

CLK為引腳TRACECLK設(shè)置以ns為單位的信號(hào)延遲。通常,無(wú)需更改,0.0 ns的值就足夠了。

D0..D3為引腳TRACEDATA[0]..TRACEDATA[3]設(shè)置以ns為單位的信號(hào)延遲。通常,無(wú)需更改,0.0 ns的值就足夠了。

圖片

(6)這里的PC Sampling部分定義了生成儀器跟蹤數(shù)據(jù)的間隔。除了周期性生成外,還可以為每個(gè)存儲(chǔ)器讀/寫(xiě)操作生成PC采樣。設(shè)置PC的采樣間隔為1024*16.(周期性PC值的頻率?= 核心時(shí)鐘/預(yù)分頻器)

圖片

?(7)Trace Event設(shè)置這里可以根據(jù)需求自行進(jìn)行勾選,勾選項(xiàng)會(huì)在Event Counters窗口出展示。

圖片
圖片

CPI(每條指令的周期):用于指令周期計(jì)數(shù)估計(jì)的通用計(jì)數(shù)器。此計(jì)數(shù)器在執(zhí)行多周期指令所需的每個(gè)額外周期上遞增。在任何指令獲取暫停的每個(gè)周期,計(jì)數(shù)器也會(huì)遞增。指令的第一個(gè)周期和LSU記錄的周期不計(jì)數(shù)。

EXC(異常開(kāi)銷(xiāo)):計(jì)數(shù)器在與異常條目或返回相關(guān)聯(lián)的每個(gè)周期上遞增。也就是說(shuō),它統(tǒng)計(jì)與入口堆疊、返回取消堆疊、搶占和其他異常相關(guān)進(jìn)程相關(guān)的周期。

SLEEP(睡眠周期):無(wú)論是由WFI或WFE指令啟動(dòng),還是由退出時(shí)休眠功能啟動(dòng),計(jì)數(shù)器在與省電相關(guān)的每個(gè)周期上遞增。

LSU(加載存儲(chǔ)單元周期):此計(jì)數(shù)器在執(zhí)行多周期加載存儲(chǔ)指令所需的每個(gè)額外周期上遞增。它不計(jì)算執(zhí)行任何指令所需的第一個(gè)周期。

FOLD(折疊指令):計(jì)數(shù)器對(duì)以零周期執(zhí)行的任何指令遞增(例如,IT指令被折疊且不使用任何周期)。

EXCTRC(異常跟蹤):計(jì)數(shù)器在異常、中斷條目和中斷退出時(shí)遞增?!案櫘惓!贝翱陲@示統(tǒng)計(jì)信息和事件查看器隨時(shí)間的執(zhí)行情況。

5、完成上述步驟,Trace功能和ETM功能就配置完成,進(jìn)入調(diào)試界面后,界面下方出現(xiàn)”Trace: Running”則表示配置成功,可以使用Trace、ETM功能。

圖片

若出現(xiàn)的不是”Trace:Running”,需要根據(jù)對(duì)應(yīng)的提示信息對(duì)于配置流程進(jìn)行篩查。

例如:

“Trace:Communication Error”:表示檢測(cè)到無(wú)效通信。不正確的時(shí)鐘設(shè)置或硬件問(wèn)題導(dǎo)致此消息。在main()程序中更改核心時(shí)鐘的應(yīng)用程序可能會(huì)在數(shù)據(jù)捕獲錯(cuò)誤時(shí)拋出此消息。一旦核心時(shí)鐘調(diào)整到系統(tǒng)設(shè)置,此錯(cuò)誤消息將消失。

“Trace:HW Buffer”:表示檢測(cè)到溢出USB端口無(wú)法以適配器發(fā)送數(shù)據(jù)的速度接收數(shù)據(jù)。關(guān)閉不需要的跟蹤事件,或跳過(guò)“PC采樣”。

“Trace:SW Buffer”:表示PC上的內(nèi)部SW緩沖區(qū)溢出。調(diào)整跟蹤端口的SWO時(shí)鐘預(yù)分頻器或調(diào)試端口的最大時(shí)鐘。

“Trace:No Synchronization”:表示未從目標(biāo)接收到同步數(shù)據(jù)包。跟蹤硬件未連接或配置不正確。

“Trace:Data Stream Error”:表示跟蹤端口太忙,無(wú)法傳輸所有跟蹤數(shù)據(jù)包。捕獲太多跟蹤數(shù)據(jù)時(shí)會(huì)發(fā)生這種情況。減少跟蹤事件的數(shù)量。“指令跟蹤窗口”顯示溢出發(fā)生的位置。


三、功能展示

1、代碼覆蓋率功能:可以顯示函數(shù)的執(zhí)行百分比了。

圖片

2、性能分析功能:可以查看工程中每一個(gè)文件、函數(shù)、語(yǔ)句的執(zhí)行時(shí)間和占用總時(shí)間的比例。

圖片


Keil MDK Trace功能的配置的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
璧山县| 鲁甸县| 肥城市| 兴文县| 望城县| 富平县| 贡觉县| 安乡县| 龙州县| 屏山县| 茂名市| 景宁| 屏边| 灯塔市| 呈贡县| 深泽县| 红原县| 绩溪县| 台东县| 喜德县| 怀集县| 普洱| 赤壁市| 酒泉市| 美姑县| 介休市| 张北县| 兰州市| 枝江市| 瑞昌市| 克什克腾旗| 禹城市| 迭部县| 正镶白旗| 清河县| 于田县| 曲靖市| 平顶山市| 南丰县| 金寨县| 都江堰市|