硬汉嵌入式论坛

 找回密码
 立即注册
查看: 904|回复: 1
收起左侧

[Event Recorder] EventRecoder如何选择自己的时间戳

[复制链接]

38

主题

194

回帖

318

积分

高级会员

积分
318
发表于 2022-5-11 13:56:59 | 显示全部楼层 |阅读模式
本帖最后由 会飞的猪_2020 于 2022-5-11 13:58 编辑

我看到Conf.h里关于TimeStamp Source的选项有如下五个:
DWT
SysTick
CMSIS-RTOS2 System Timer
User Timer(Normal Reset)
User Timer(Powr-On Reset)

因为我是在L0单片机里,移植了ThreadX,因为板子没串口,但是我又想看调试数据,突然记起来有个EventRecoder有打印的功能。
然后,M0内核没DWT所以第一个用不了。
选了第二个编译后,提示Systick_Handler重定义了。看了一下ThreadX的SysTick_Handler是用汇编写的。而EventRecoder的那部分代码是只读的,不知道咋把两个结合起来。
[C] 纯文本查看 复制代码
SysTick_Handler:
@ VOID SysTick_Handler (VOID)
@ {
@
    PUSH    {r0, lr}
#if (defined(TX_ENABLE_EXECUTION_CHANGE_NOTIFY) || defined(TX_EXECUTION_PROFILE_ENABLE))
    BL      _tx_execution_isr_enter             // Call the ISR enter function
#endif
    BL      _tx_timer_interrupt
#if (defined(TX_ENABLE_EXECUTION_CHANGE_NOTIFY) || defined(TX_EXECUTION_PROFILE_ENABLE))
    BL      _tx_execution_isr_exit              // Call the ISR exit function
#endif
    POP     {r0, r1}
    MOV     lr, r1
    BX      lr
@ }


第三个选项应该需要CMSIS-RTOS2的封装层,我这里也没有所以应该也不能用。

只剩下第四个和第五个选项了。
Normal 和 Power-On 这两个不知道有什么区别?

编译之后,看到它需要我实现三个函数。
EventRecoderTimerGetCount
EventRecoderTimerGetFreqEventRecoderTimerGetSetup

不知道这三个函数应该怎么写?在哪里有手册之类的说明。


回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106622
QQ
发表于 2022-5-11 15:29:07 | 显示全部楼层
直接用滴答定时器就行。在你楼主位贴的汇编代码里再加入BL跳转,执行一次。就是精度不高,这个是1ms 一次的。
下面截图的函数换个名字,防止定义冲突,同时static静态声明删掉。让BL跳转。
image.png
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-27 02:17 , Processed in 0.161033 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表