树莓派的基本操作
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程实验报告
课程名称:计算机组成原理
实验名称:树莓派硬件检测及操作
院系:计算机科学与技术
专业班级:
学号:
姓名:
指导教师:
2015 年12 月30 日
原创性声明
本人郑重声明:所呈交的实验报告,是本人独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究作出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。
作者签名:
日期:年月日
目录
一、课题背景 (5)
1. 平台背景 (5)
2. 实验背景 (5)
二、课题目标 (6)
1. 检测硬件信息 (6)
2. 超频操作及效果检测 (6)
3. 动态调整内存主频 (6)
三、实验过程记录 (6)
1. 建立连接 (6)
2. 硬件信息检测 (9)
1) CPU基本信息(静态信息) (9)
2) 动态信息 (10)
3. 超频操作 (13)
1) 原主频 (13)
2) 第一次超频 (14)
3) 第二次超频 (14)
4. 动态调整内存主频 (15)
四、实验结论 (15)
五、实验中的问题 (16)
六、实验总结 (16)
1.平台背景
在本次计算机组成原理大作业中,我选择了树莓派(raspberry pi)作为开发试验的平台。树莓派只有信用卡大小的卡片式电脑,其系统基于Linux。自从其问世以来深受计算机爱好者的喜爱。其较小的外形使它拥有了便携,易于安装到其他设备上等特点。
在其较小的外表下隐藏着两大的功能:
●网卡:10/100 自适应网卡
●CPU:Broadcom BCM2836 900MHz 4核ARM Cortex-A7
●GPU:支持Open GL ES 2.0, OpenVG 硬件加速,1080p30 H.264 高清解
码,带宽1Gpixel/s, 1.5Gtexel/s or 24GFLOPs DMA 纹理解析
●内存:1GB
正是这些性价比较高的硬件支持,使得树莓派在开发者手中有不俗的表现。作为计算机专业的学生,正好借此机会学习体验树莓派的强大功能,提升自己对计算机硬件方面的理解。
2.实验背景
本次实验主要是通过在树莓派官方的操作系统下实现对cpu频率,温度,内存及硬盘的使用情况的检测,以及对其进行超频并检测器性能上的变化。
1.检测硬件信息
通过编写程序或使用系统调用来实现对树莓派硬件信息的实时监控,如cpu占用率,cpu温度,内存使用情况,cpu的频率以及cpu各个核的信息等。
2.超频操作及效果检测
对树莓派进行两次不同频率的超频操作,并在每次超频后对系统的功能进行测试分析,总结得出结论。
3.动态调整内存主频
将内存主频在CPU和GPU之间动态调整分配可提高CPU与内存之间的交互效率,使超频后的树莓派能更好的适应高频的CPU工作状态。
三、实验过程记录
1.建立连接
由于树莓派只是一个集成了许多芯片的开发板,并没有鼠标键盘显示器等外设,所以第一步就是将树莓派与本人的笔记本电脑进行连接以实现后续操作。经过查询资料最终确定了使用ssh(安全外壳协议)连接的方法,采用PuTTY软件进行ssh连接。由于本连接方法的限制,所以必须将树莓派和笔记本电脑接在一个局域网内(本实验采用接在同意路由器下),通过对树莓派的ip访问建立ssh连接。
图3-1 使用PuTTY软件建立连接第一步
图3-2成功连接
在建立连接后为方便后续的实验操作,我还安装了生成图形界面投影到笔记本的软件vncserver。通过在ssh连接的窗口中输入命令语句实现软件的安装与界面的生成。由于树
莓派的官方系统为debain系统,是基于linux的系统所以命令语句与在Ubuntu下的基本相同,操作起来比较习惯。
图3-3建立名为1的界面
图3-4将界面投影到笔记本
图3-5生成界面
2.硬件信息检测
1)CPU基本信息(静态信息)
通过系统调用来显示CPU的基本信息,具体结果如下:
●ARM四核
●每个核的MIPS均为38.4mHz
其他部分的信息经过查资料后只是能知道其名称,不太理解其具体的作用与含义,在此不做赘述。
图3-6 CPU基本信息
2)动态信息
动态信息指的是cpu温度,cpu占用率,内存占用情况等信息。本部分通过使用树莓派的默认开发语言python语言编写的程序来实现。
核心代码为:
import os
# Return CPU temperature as a character string //CPU温度信息
def getCPUtemperature():
res = os.popen('vcgencmd measure_temp').readline()
return(res.replace("temp=","").replace("'C\n",""))
# Return RAM information (unit=kb) in a list
# Index 0: total RAM
# Index 1: used RAM
# Index 2: free RAM
def getRAMinfo(): //获取内存信息
p = os.popen('free')
i = 0
while 1:
i = i + 1
line = p.readline()
if i==2: