12、嵌入式系统中的时序分析与测量技术

嵌入式系统中的时序分析与测量技术

1. 时序测量基础

在嵌入式系统开发中,准确测量代码运行时间至关重要。测量运行时间时,会存在一定的开销,例如测量函数本身的运行时间。通过修改主函数代码,让测量函数之间无代码执行,可测量出一半的开销。如将主函数中“result = (unsigned short) sqrt(i);”行暂时注释或移除,使端口引脚设置后立即复位,以 ATmega128 和 16 MHz 晶体为例,这一过程耗时 125 ns,对应两个处理器周期。测量时减去这 125 ns 可得到更精确的结果。由于函数使用了 inline 前缀,编译器不生成函数调用,仅在代码中放置一条机器指令,从而降低了开销。

2. 无端口引脚的测量方法

当端口引脚或外部测量方法不可用时,可使用硬件定时器进行测量。具体步骤如下:
1. 在测量元素开始时存储定时器值。
2. 测量结束时再次读取定时器值。
3. 计算两个值的差值,该差值反映了以定时器滴答为单位的总运行时间。
4. 根据定时器滴答的持续时间(定时器频率的倒数)将其转换为秒。

以下是基于软件的运行时间测量的代码实现:
- observation.h

#ifndef OBSERVATION_H_
#define OBSERVATION_H_

#include <avr/io.h>
#include <avr/interrupt.h>

extern unsigned short startTime;
extern unsigned sh
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值