工具/软件:
尊敬的 TI 团队:
我使用的是 AM2634和 MCAL 软件、我遇到了以下问题。
TI 是否提供 MCAL 演示工程?
目前、 MCAL_AM263X_10.00.00.zip MCAL 演示工程。
2.读取当前正在执行的寄存器的中断号
使用 TI AM263x 时、不能通过寄存器直接读取当前执行中断的中断号。 相反、有必要首先读取另一个寄存器(存储当前正在执行中断处理程序的地址)、然后读取原始寄存器以获取中断编号。 我不确定此方法是否被视为一种权变措施。
/* Get current interrupt number */ VIM_InterruptHandler interruptHandler = (VIM_InterruptHandler)(ptrVIMRegs->irqVectorAddress); uint32 intNum = (ptrVIMRegs->activeIrq & 0x3FFU);
3.在演示代码中使用 sys_vim.c 时遇到的问题
TI 提供的 MCAL 包括一个 VIM (矢量中断管理器)演示代码、该代码使用汇编语言来启用和禁用中断(enableDisableIrqFiq)。 但是、当启用编译器优化时、此汇编代码会导致陷阱。 这似乎是演示代码中的一个错误。 TI 是否有这个演示代码的更新版本?
4.如何计算 GPT 定时器中断间隔
目前、我们正在使用由 RTI 模块驱动的 GPT 计时器。 RTI 模块有一个根据进行分频的时钟源 ClockDivId 、得到的频率将成为实际 RTI 频率。 所有这些配置均通过设置 EB 。
在运行时、我们可以配置 RTI 触发事件的频率、每个事件触发 GPT 计时器一次。 StartTime()
可以在运行时调用该函数来设置中断间隔。
但是、计算得出的中断间隔与测量结果不匹配。
余弦值 EB 设置:
-
GPT 计时器参考
McuClockSettingConfig_RTI0
的McuClockReferencePoint_0
(图1)。 -
McuClockReferencePoint_0
进行配置 2E8. (图2)。 -
时钟分频器为 0 (图3)。
图1.
图2.
图3.
运行时设置:
-
比较递增计数器1 设置为 199 (图4)、表示每200个周期触发一次事件。
-
这意味着 2E8 / 200 = 1E6 约为 每事件1微秒 。
-
图5显示 GPT 计时器已启动、并且每次都会发生中断 20,000个事件 、这意味着它应该每被触发一次 1微秒× 20,000 = 20ms 。
-
但是、使用 TSMASTER 时、实际测量的中断间隔为 0.2ms 、即 比预期短100倍 。
图4.
图5.
这些是我的问题、我期待着你的答复。
谢谢。
此致、
人参 pH 值