8种机械键盘轴体对比
本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?
前言
对于这个实验,本人并不是很感兴趣,课也没好好听过几节,所以实验的原理和意义完全不清楚……记录的内容仅仅是操作步骤,大概能看懂是在干什么吧,仅此而已。
实验文件hardware.zip——里面包含着各种硬件代码实例
armlinuxgcc.zip——Linux下arm-gcc 3.4.5版本
实验步骤
在Linux下配置arm-gcc环境
学校机房虚拟机里配置的是RedHat 5,因为我们只是需要一个linux环境可以编译一下代码,最终需要的是编译后的二进制文件,所以这里就大概介绍下。
配置环境这个东西很简单,简单起见,我就不多做解释,直接上操作代码和步骤了——解压文件放置在/opt文件夹下1
2
3
4# unzip armlinuxgcc.zip
# tar -jxvf arm-linux-gcc-3.4.5-glibc-2.3.6.tar.bz2
# mv gcc-3.4.5-glibc-2.3.6/ gcc/#改名
# mv gcc/ /opt#移动到/opt文件夹下
配置环境变量(简单版)1# vim ~/.bashrc
在.bashrc文件最后一行添加如下内容:1export PATH=/opt/gcc/bin:$PATH检查环境
在终端里输入arm-linux-gcc大概就能匹配到arm-gcc命令了。
编写实验代码
Linux驱动编程这门课的实验都是用已有代码的(除了第四次),只需要改一些文件就可以进行编译了,其实只是重在体验操作过程,代码并不是很重要。
本次实验所用代码是/hardware/led_on/文件夹下的led_on.S,需要改动一些数据,以下是改动后的文件代码:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20******************************************************************************
@ File:led_on.S
@ 功能:LED点灯程序,点亮LED1
@******************************************************************************
.text
.global _start
_start:
LDR R0,=0x56000060 @ R0设为GPBCON寄存器。此寄存器
@ 用于选择端口B各引脚的功能:
@ 是输出、是输入、还是其他
MOV R1,#0x00050000
STR R1,[R0] @ 设置GPB5为输出口, 位[10:9]=0b01
LDR R0,=0x56000064 @ R0设为GPBDAT寄存器。此寄存器
@ 用于读/写端口B各引脚的数据
MOV R1,#0x00000200 @ 此值改为0x00000020,
@ 可让LED1熄灭
STR R1,[R0] @ GPB5输出0,LED1点亮
MAIN_LOOP:
B MAIN_LOOP
在上面我们已经把所需要的arm-gcc环境配置好了,接下来直接make命令就会得到一个led_on.bin文件。然后把二进制文件从虚拟机里拖出来,关闭或暂停虚拟机(虚拟机运行的时候占用通讯端口,需要把它关闭才能进行下一步),然后打开程序-通讯-终端(大概是这个样子),准备进入下一步。如果懒得弄了,也可以下载led_on.S、led_on.bin这两个文件直接进行操作。
实验操作通讯设置
改两个参数,一个是第一个改为115200,另一个是最后一个改为“无”。
开启arm板
开启办法:按动arm板上的复位/重启按钮,同时按键盘上的空格。
地址写入1> load ram 0x30000000 0x4000 x //0x30000000为地址,0x4000为代码最大容量
这时候arm板会等待装入程序,我们点击装入程序,然后选择之前拖出来的led_on.bin文件即可。运行程序1> go 0x30000000
实验现象
可以很清楚的看到,在通讯接口旁的led灯从原先两个都亮变成只亮一个……就这么简单。
总结
其实感觉如果认真学的话还是很简单的,不过需要吐槽的是,这一个简单的实验,老师让我们花一上午4个学时实验课的时间做……