E8a 仿真器具有在用戶程序開始運行之前和停止之后立即執行用戶程序指定例程的功能。此功能稱為啟動/停止功能。在電機控制或類似的其他應用中,如果用戶程序在調試過程中突然停止,電機將突然停止。這將導致出現問題。因此,使用啟動/停止功能允許停止電機或定時器控制的進程或重新啟動它的進程在用戶程序停止后或啟動后立即執行。這樣,就可以安全地調試程序。
本文檔解釋了啟動/停止功能的概述,并描述了如何使用啟動/停止功能測量用戶程序的執行時間,作為其應用程序的示例。本文檔中的說明假設使用 Renesas Starter Kit for R8C/2D 及其附帶的教程程序。然而,如果程序的定時器處理部分被改變,這里的解釋也適用于其他瑞薩微機。
啟動/停止功能概述
使用啟動/停止功能,可以在用戶程序開始運行之前和停止之后立即執行用戶程序的指定例程,如下所示。用戶程序開始運行前和停止后立即執行的例程可以單獨設置。這些例程按以下流程圖所示的時序執行。
實際上,在上述流程圖中,在Start例程執行完成后,在用戶程序實際開始運行之前,以及在程序停止后執行Stop例程之前,存在一些固件處理。雖然因微機或所使用的軟件版本而異,但在 Start 例程執行完成后,用戶程序實際開始運行之前需要大約 50 到 100 個周期的有限時間,并且在此之前需要大約 100 到 150 個周期的有限時間。停止程序在程序停止后執行。
在電機控制程序等中,將停止電機的過程指定為停止程序,將重新啟動電機的過程指定為啟動程序,即使用戶程序在此期間停止,也可以安全地停止和重新啟動電機。一個調試。
編寫開始/停止例程時的注意事項
雖然開始/停止例程可以用 C 語言和匯編程序編寫,但每個例程都必須以 RTS 指令結束。
此外,由于啟動/停止功能與仿真器調試器的控制密切相關,除非遵守下述預防措施,否則仿真器將變得無法控制。(這里,開始和停止例程統稱為“指定”例程。)
不要更改 E8a 仿真器固件使用的 SFR。有關 E8a 仿真器固件使用的 SFR 的詳細信息,請參閱為每種 MCU 類型提供的單獨的 E8a 仿真器用戶手冊。
使用看門狗定時器時,一定要在指定的例程中刷新看門狗定時器,而不僅僅是在用戶程序中。
不要在指定的例程中設置斷點。
要在指定例程中使用堆棧,請務必使用用戶堆棧 (USP)。不能使用中斷堆棧 (ISP)。
指定例程開始執行時的寄存器值是不確定的。盡管可以在指定的例程中更改寄存器值,但下面列出的寄存器和標志受到限制。
編輯:hfy
-
仿真器
+關注
關注
14文章
1018瀏覽量
83741 -
C語言
+關注
關注
180文章
7604瀏覽量
136813 -
定時器
+關注
關注
23文章
3248瀏覽量
114792 -
調試器
+關注
關注
1文章
305瀏覽量
23739
發布評論請先 登錄
相關推薦
評論