首页 > 应用与设计 > 中国新基建  > TI机器人系统学习套件(TI-RSLK) >

人工智能

最新课程

热门课程

TI-RSLK 模块 10 - 讲座视频 - 调试实时系统 - SysTick 中断

大家好,我是 在本视频中,让我们 现在,创建一个复杂 需要通过可靠的 因此,在本章中, 一些经证实有效的 和以可视化方式 行为。 在本视频中, 我们将讨论转储。 我们将讨论示波器和逻辑 分析仪。 然后,我们将向您 强大的将数据 方法,我很喜欢这种方法。 好的,让我们开始吧。 大家都知道,检测是一个 物理和软件方面的调试术语, 来测试我们的程序。 举例来说,如果我编写 然后我把该代码 用于调试, 把这归类为 请注意,存在好的 因此,我们可以 对我们尝试测量的 进行归类 例如,您可以在这里 检测,它主要是获取 并把它转储到该数组中。 那么,这就是我说的 它要将某些重要的 您可以看到,它将 在前 然后它停止记录。 但是,如果我想了解它的效果 那么我需要检测程序, 多长时间。 那么,执行这些行,一, 花费了多长时间。 我可以做两件事情之一。 我可以打开 它生成的代码。 请注意,在这里, 指令,以执行该转储检测。 然后,一旦我 花费了多长时间,我就 时间与转储调用的 例如,如果我每毫秒 那么我可以在这里 执行该代码的时间 如果该比率较小,那么 极低的侵入性。 这是一件好事。 请注意,我们在前一章 SysTick 那么,如果您希望 对汇编指令进行 查找每条 执行的确切 可以执行 前一章中所学 基本来说,转储通常使用 可用于任何您 的调试的 这里没有终端。 那么,我要做的是, 填充这些数组。 然后,在实时系统 使用调试器以可视化 那么,我稍后将执行它。 正如我们将在 如果 来提供额外存储 那么我们稍后将看到它。 好的,我们在前一张 现在,我们可以执行 我把其中一个 在前面的转储中, 但该转储,正如您看到的, 它所做的是,当缓冲区 它会翻转并 因此,如果我查看 我现在能够以可视化方式 这可能比另一种 现在,您应该记得,有关 包含 我们需要能够控制 内容和位置。 在这里,在本次 是可观察性。 我们需要能够 现在,转储和 它们会生成大量的信息, 以至于我们没有 因此,管理 关键策略之一是一个 这意味着,如果某个 那么我将记录数据。 这样,它将极大地 数据量。 举例来说, 恰好在我撞到墙 或者恰好在我 或者,如果这样或 因此,我可以设置一个筛选器。 现在,我可以看到, if 那么我输入一个 我输入可能发生的 然后,我将仅在该条件 该经过筛选的数据确实 少很多。 我最喜欢的筛选器之一 因此,如果我 该参数 因此,再说一次,这样 我查看的数据将更少, 观察所发生的事情 因此,再说一次,对于调试 非常重要、非常强大的方法, 执行它所需要的 我们可能需要 称为评测或 在执行性能调试时, 感兴趣,比如,它在 位置执行? 何时调用了某个函数,是否调用了某个函数, 如果对它进行了调用, 当我这么做时, 确定一个未用于 我将使它成为输出。 然后,我将切换到它, 那么,在本例中, 不是系统的一部分。 但是,您可以看到, 得到一个脉冲。 现在,我可以使用它 函数所需的时间。 这个很有趣。 我有两个函数, 它们是否相关 但重点是, 知道哪个先执行。 或者我希望知道, 执行了多少次 因此,如果我采用 双通道示波器,然后 好的,端口P2.2这个 端口P2.3是那个。 我现在可以及时地以可视化 因此,我可以询问一些 之前发生的 我可以测量执行 sad 我们再次使用逻辑分析仪。 我们要将这称为 因为与该执行 相比,执行 所花费的 那么,这是评测, 哪个部分正在运行, 之间的相对运行顺序。 这种评测中 问题之一是 看到的一个东西。 这个东西称为 我们将在中断部分中 但可以这么说, 读取、修改、写入访问 在本例中,它是端口 输出可能会导致问题。 我们可以做的用来消除 位带。 因此,如果我们查看 这是所有 如果我们查看 这是端口 把它分为两个部分。 我们有顶部部分 我获取这里的 我获取这里我 然后我执行该函数。 我们把这视为一个常数。 我始终采用 我乘以 我把该 我获取这里的位置, 现在,它为我提供了 地址,一个位带地址。 因此,您可以看到这里的 一个 写入 因此,我可以使用位带 调试检测。 现在,这是一种 例如,如果您在 或在您的逻辑分析仪上 看到以下行为。 如果发生一个中断, LED 它几乎立即改变方向。 因此,一,二,它运行 三,去那里。 然后,我们有一个较长的 因此,该技术的优势是, 告诉我这里的 而且还告诉我 然后,会在此时 服务例程的主体。 那么,这是另一个 称为三次切换技术。 因此,我要将它切换三次, 显示它是否发生, 时间,还显示实际 花费了多长时间。 我们确实有 用于转储的空间。 但是,如果您耗尽 该微控制器采用的 那么,该实验 我将采用该 把我的程序 然后,我将采用 您可以看到其中的 这是闪存 那么,这是 您会说,嘿,John,我 嗯,我们有技巧。 如果我们知道相关的方法, 因此,我要把数据 我要把我的转储 现在,它具有 因此,我可以绕着赛道一圈 然后,我可以关闭 把它移到我的 把我的机器人插入 调试器,然后,嘣, 我的所有记录 这就是这种称为 美妙之处。 好,那么 好的,再说一次, 它其实是通过这种非常 我们将有 它是一个晶体管。 它有 这里的有趣 如果您考虑具有三个 该晶体管的基极 这是基极。 在闪存 它是未连接的。 然后,它采用 把它上下颠倒。 把这两个基极 这是一件怪异的事情。 有人在很久以前 但在这两个基极之间, 这是晶体管的 我们将采用该栅极。 我们将在这里 看到了吗? 就在这里,有两个栅极, 我们将使用一个 栅极放在一起,这样它就 然后,我们要做的是, 该晶体管的 这就是它具有 存在电荷将 不存在电荷 我们将通过 来确定该 我的 无论它存储为 这里有几个技巧。 其实,我们可以 擦除的 我将获取大量的 正如您知道的, 从而使捕获的任何 因此,我将从所有 这将导致这个 这将导致这个 所有这些位 然后,如果我想 再说一次,我 我把它擦除为 我不是仅擦除一个位。 我擦除大量的位, 但是,当我想对它 在这里颠倒电流, 再说一次,擦除 编程是把电荷 现在,问题在于, 需要的时间为毫秒级。 此外,编程也非常慢, 但是,读取的速度 无论那里有无 那么,再说一次,ROM 它具有很高的密度, 这里针对每个位 擦除操作 编程操作是根据 清除为 现在,我需要向您讲授的 实际上,为了执行 您只有两个要担心的函数。 您有一个 您应该还记得,我说过 事实上,您将 通过向该函数 一次可以擦除 然后,嘣,4,096 这样一来,您执行一次 但是,当我想对它进行编程时, 那么,这里的函数 这里的参数具有一个 一个指向该数组的指针。 它具有您想对其进行 然后,该 然后,它将获取 获取该 再说一次,执行这里的 为毫秒级。 不过,这种技术非常强大, 可用于在计算机上存储数据。 好,总之, 调试检测。 检测可能是 比如您的逻辑 也可能是 比如切换位或 因此,我们切换了位 在前一章中,我们 某件事情发生需要多长时间。 因此我们可以测量时间 某件事的起始时间。 我们采用某个函数 要花费多长时间。 我们调用 将这两者相减 需要一定量的 一定量的 执行这 这将减去它。 因此,举例来说, 该函数将返回 好,我们讨论了 ROM 对于只读闪存, 这会把所有位都设置为 我们可以通过在我们 来对它进行编程。 这两者很慢。 读取它很快。 好,希望您喜欢本次实验。 这是一个强大的实验, 调试技能。

大家好,我是

在本视频中,让我们

现在,创建一个复杂

需要通过可靠的

因此,在本章中,

一些经证实有效的

和以可视化方式

行为。

在本视频中,

我们将讨论转储。

我们将讨论示波器和逻辑

分析仪。

然后,我们将向您

强大的将数据

方法,我很喜欢这种方法。

好的,让我们开始吧。

大家都知道,检测是一个

物理和软件方面的调试术语,

来测试我们的程序。

举例来说,如果我编写

然后我把该代码

用于调试,

把这归类为

请注意,存在好的

因此,我们可以

对我们尝试测量的

进行归类

例如,您可以在这里

检测,它主要是获取

并把它转储到该数组中。

那么,这就是我说的

它要将某些重要的

您可以看到,它将

在前

然后它停止记录。

但是,如果我想了解它的效果

那么我需要检测程序,

多长时间。

那么,执行这些行,一,

花费了多长时间。

我可以做两件事情之一。

我可以打开

它生成的代码。

请注意,在这里,

指令,以执行该转储检测。

然后,一旦我

花费了多长时间,我就

时间与转储调用的

例如,如果我每毫秒

那么我可以在这里

执行该代码的时间

如果该比率较小,那么

极低的侵入性。

这是一件好事。

请注意,我们在前一章

SysTick

那么,如果您希望

对汇编指令进行

查找每条

执行的确切

可以执行

前一章中所学

基本来说,转储通常使用

可用于任何您

的调试的

这里没有终端。

那么,我要做的是,

填充这些数组。

然后,在实时系统

使用调试器以可视化

那么,我稍后将执行它。

正如我们将在

如果

来提供额外存储

那么我们稍后将看到它。

好的,我们在前一张

现在,我们可以执行

我把其中一个

在前面的转储中,

但该转储,正如您看到的,

它所做的是,当缓冲区

它会翻转并

因此,如果我查看

我现在能够以可视化方式

这可能比另一种

现在,您应该记得,有关

包含

我们需要能够控制

内容和位置。

在这里,在本次

是可观察性。

我们需要能够

现在,转储和

它们会生成大量的信息,

以至于我们没有

因此,管理

关键策略之一是一个

这意味着,如果某个

那么我将记录数据。

这样,它将极大地

数据量。

举例来说,

恰好在我撞到墙

或者恰好在我

或者,如果这样或

因此,我可以设置一个筛选器。

现在,我可以看到,

if

那么我输入一个

我输入可能发生的

然后,我将仅在该条件

该经过筛选的数据确实

少很多。

我最喜欢的筛选器之一

因此,如果我

该参数

因此,再说一次,这样

我查看的数据将更少,

观察所发生的事情

因此,再说一次,对于调试

非常重要、非常强大的方法,

执行它所需要的

我们可能需要

称为评测或

在执行性能调试时,

感兴趣,比如,它在

位置执行?

何时调用了某个函数,是否调用了某个函数,

如果对它进行了调用,

当我这么做时,

确定一个未用于

我将使它成为输出。

然后,我将切换到它,

那么,在本例中,

不是系统的一部分。

但是,您可以看到,

得到一个脉冲。

现在,我可以使用它

函数所需的时间。

这个很有趣。

我有两个函数,

它们是否相关

但重点是,

知道哪个先执行。

或者我希望知道,

执行了多少次

因此,如果我采用

双通道示波器,然后

好的,端口P2.2这个

端口P2.3是那个。

我现在可以及时地以可视化

因此,我可以询问一些

之前发生的

我可以测量执行

sad

我们再次使用逻辑分析仪。

我们要将这称为

因为与该执行

相比,执行

所花费的

那么,这是评测,

哪个部分正在运行,

之间的相对运行顺序。

这种评测中

问题之一是

看到的一个东西。

这个东西称为

我们将在中断部分中

但可以这么说,

读取、修改、写入访问

在本例中,它是端口

输出可能会导致问题。

我们可以做的用来消除

位带。

因此,如果我们查看

这是所有

如果我们查看

这是端口

把它分为两个部分。

我们有顶部部分

我获取这里的

我获取这里我

然后我执行该函数。

我们把这视为一个常数。

我始终采用

我乘以

我把该

我获取这里的位置,

现在,它为我提供了

地址,一个位带地址。

因此,您可以看到这里的

一个

写入

因此,我可以使用位带

调试检测。

现在,这是一种

例如,如果您在

或在您的逻辑分析仪上

看到以下行为。

如果发生一个中断,

LED

它几乎立即改变方向。

因此,一,二,它运行

三,去那里。

然后,我们有一个较长的

因此,该技术的优势是,

告诉我这里的

而且还告诉我

然后,会在此时

服务例程的主体。

那么,这是另一个

称为三次切换技术。

因此,我要将它切换三次,

显示它是否发生,

时间,还显示实际

花费了多长时间。

我们确实有

用于转储的空间。

但是,如果您耗尽

该微控制器采用的

那么,该实验

我将采用该

把我的程序

然后,我将采用

您可以看到其中的

这是闪存

那么,这是

您会说,嘿,John,我

嗯,我们有技巧。

如果我们知道相关的方法,

因此,我要把数据

我要把我的转储

现在,它具有

因此,我可以绕着赛道一圈

然后,我可以关闭

把它移到我的

把我的机器人插入

调试器,然后,嘣,

我的所有记录

这就是这种称为

美妙之处。

好,那么

好的,再说一次,

它其实是通过这种非常

我们将有

它是一个晶体管。

它有

这里的有趣

如果您考虑具有三个

该晶体管的基极

这是基极。

在闪存

它是未连接的。

然后,它采用

把它上下颠倒。

把这两个基极

这是一件怪异的事情。

有人在很久以前

但在这两个基极之间,

这是晶体管的

我们将采用该栅极。

我们将在这里

看到了吗?

就在这里,有两个栅极,

我们将使用一个

栅极放在一起,这样它就

然后,我们要做的是,

该晶体管的

这就是它具有

存在电荷将

不存在电荷

我们将通过

来确定该

我的

无论它存储为

这里有几个技巧。

其实,我们可以

擦除的

我将获取大量的

正如您知道的,

从而使捕获的任何

因此,我将从所有

这将导致这个

这将导致这个

所有这些位

然后,如果我想

再说一次,我

我把它擦除为

我不是仅擦除一个位。

我擦除大量的位,

但是,当我想对它

在这里颠倒电流,

再说一次,擦除

编程是把电荷

现在,问题在于,

需要的时间为毫秒级。

此外,编程也非常慢,

但是,读取的速度

无论那里有无

那么,再说一次,ROM

它具有很高的密度,

这里针对每个位

擦除操作

编程操作是根据

清除为

现在,我需要向您讲授的

实际上,为了执行

您只有两个要担心的函数。

您有一个

您应该还记得,我说过

事实上,您将

通过向该函数

一次可以擦除

然后,嘣,4,096

这样一来,您执行一次

但是,当我想对它进行编程时,

那么,这里的函数

这里的参数具有一个

一个指向该数组的指针。

它具有您想对其进行

然后,该

然后,它将获取

获取该

再说一次,执行这里的

为毫秒级。

不过,这种技术非常强大,

可用于在计算机上存储数据。

好,总之,

调试检测。

检测可能是

比如您的逻辑

也可能是

比如切换位或

因此,我们切换了位

在前一章中,我们

某件事情发生需要多长时间。

因此我们可以测量时间

某件事的起始时间。

我们采用某个函数

要花费多长时间。

我们调用

将这两者相减

需要一定量的

一定量的

执行这

这将减去它。

因此,举例来说,

该函数将返回

好,我们讨论了

ROM

对于只读闪存,

这会把所有位都设置为

我们可以通过在我们

来对它进行编程。

这两者很慢。

读取它很快。

好,希望您喜欢本次实验。

这是一个强大的实验,

调试技能。

视频报错
手机看
扫码用手机观看
收藏本课程

视频简介

TI-RSLK 模块 10 - 讲座视频 - 调试实时系统 - SysTick 中断

所属课程:TI机器人系统学习套件(TI-RSLK) 发布时间:2018.08.27 视频集数:69 本节视频时长:00:20:36
在该实验中,你将学习如何利用SysTick产生周期性中断。
TI培训小程序