嵌入式导论实验报告Guo-Lab3
TM4C123GXL Performance
实验题目
熟悉实验环境和实验工具
熟练使用C语言和GPOI的定义和改变
实验目的
搭建实验环境—Code Compose Studio,熟悉开发板EK-TM4C123GXL
改变编译优先级观察开平方根运行效率
实验要求
先选择不同优化级别,运行程序,观察elapsed记录的对100和230400两个数求平方根的执行时间。
使用PF1开灯和关灯语句取代用定时器测量的elapsed语句,用逻辑分析仪观察PF1波形,计算函数运算时间
板级运行程序,观察pf2灯的亮灭、观察存入内存记录的PF2状态值,以及tt所求的ss平方根值
实验过程
- 先选择不同优化级别,运行程序,观察elapsed记录的对100和230400两个数求平方根的执行时间。
![](https://img.haomeiwen.com/i2560767/c66c9a4605c64efe.png)
ss = 230400;//100或100000;
unsigned long sum=0;
unsigned long i=10;
while(i--)
{
before = NVIC_ST_CURRENT_R;//开始计时
tt = sqrt(ss);
elapsed = (before-NVIC_ST_CURRENT_R)&0x00FFFFFF;//相减计算出sqrt计算时间
sum=sum+elapsed;
}
sum/=10;
优先级为1的10次开方平均时间
![](https://img.haomeiwen.com/i2560767/61a48a7432aa85a8.png)
优先级为3的10次开方平均时间
![](https://img.haomeiwen.com/i2560767/a6e7879c39dae746.png)
- 使用PF1开灯和关灯语句取代用定时器测量的elapsed语句,用逻辑分析仪观察PF1波形,计算函数运算时间
![](https://img.haomeiwen.com/i2560767/2daea6386214bd43.png)
GPIO_PORTF_DATA_R= 0x02; // turn on led LED
tt = sqrt(ss);
GPIO_PORTF_DATA_R = 0x00; // turn off led LED
优先级为1的波形
![](https://img.haomeiwen.com/i2560767/078c745541c2f6e7.jpg)
优先级为3的波形
![](https://img.haomeiwen.com/i2560767/f30827801bc0f830.jpg)
- 板级运行程序,观察pf2灯的亮灭、观察存入内存记录的PF2状态值,以及tt所求的ss平方根值
![](https://img.haomeiwen.com/i2560767/6aa547e1fa52f35d.png)
Data的值,记录了LED的亮灭过程
![](https://img.haomeiwen.com/i2560767/c985a5348b07200e.png)
当Data[i]=0
,灯灭;
当Data[i]=2
,灯亮;
Sqrt的值,记录了开根号的结果
![](https://img.haomeiwen.com/i2560767/0e8ed5c4dc2d380a.png)
//拍照
//Dump data to memory
unsigned long i;
unsigned long Sqrt[50];
unsigned long Data[50];
unsigned long Led;
i = 0; // array index
ss=10;
while(1)
{
Led = GPIO_PORTF_DATA_R; // read previous
Led = Led^0x02; // toggle red LED
GPIO_PORTF_DATA_R = Led; // output GPIO_PORTF_DATA_R;
tt = sqrt(ss);
if(i<50)
{
Sqrt[i] = sqrt(ss); // sqrt
Data[i] = GPIO_PORTF_DATA_R&0x02; // record PF2
i++;
ss=ss*2;
}
SysTick_Wait10ms(100);// wait 1s
}
实验总结
板子开根号速度很快,如果用灯去观察计算的时间,灯亮灭就在瞬间除非加延迟。
板子开根号速度只是灯不能捕捉,但是相对于普通加减乘除运算是很慢的了。开根号是加减乘除的500倍左右的时间。
进行加减法运算
![](https://img.haomeiwen.com/i2560767/e32347b1acde4134.png)
进行乘除法运算
![](https://img.haomeiwen.com/i2560767/2048b31f0a6477f1.png)
进行开根号运算
![](https://img.haomeiwen.com/i2560767/d5ec5d159afc984d.png)
![](https://img.haomeiwen.com/i2560767/239cf64f09a78ced.png)
网友评论