实验六 综合设计实验
实验类型:□验证 ■综合 ■设计 □创新 实验日期:2018.12.15-2019.1.5(12) 实验成绩: 一、实验目的
1、掌握linux移植的过程。
2、掌握在Android或QT上驱动开发的过程。 二、实验内容
1、刷写Android或QT,调用内核文件运行某个模块; 2、编写代码在Android或QT上驱动LED或KEY。 三、实验过程
1、Linux系统下安装MiniTools
Linux下的MiniTools使用静态编译的方式发行。但要注意的是,必须要使用root用户来运行MiniTools,否则有可能会出现USB无法连接到开发板的情况,建议平时就使用root用户来进行日常开发。Linux系统下的MiniTools安装比较简单,只需要用命令解压A光盘tools目录下的MiniTools-Linux-YYYYMMDD.tgz到本地即可,要启动MiniTools,进入MiniTools目录,在命令行下执行./start.sh 即可,如非root用户,需要先su切换到root用户,再执行。
2、SD卡准备工作
a. 用SD-Flasher工具将Superboot烧写到SD卡中。
b. 将光盘中的images/FriendlyARM.ini文件拷贝到SD卡中的images目录下。
c. 编辑SD卡中的images/FriendlyARM.ini文件文件,增加一行代码:USB-Mode = yes
3、使用MiniTools工具烧写系统
a. 先使用su命令切换root用户。
b. 在虚拟机中打开MiniTools,此时Ubuntu的终端命令行中会显示root@FriendlyARM c. 烧写配置基本与FriendlyARM.ini配置文件相同,你可以参照FriendlyARM.ini手动填写界面上的配置,不过,一个更方便的办法是点击界面上的“选择images目录”按钮,并将目录定位到光盘的images目录下,MiniTools会自动所选目录下的FriendlyARM.ini配置内容,并填写到界面上。
d. 将在Ubuntu中编译自己写的led.c文件。编译方式:使用gcc编译器,利用gcc led.c命令就可以对c程序进行编译并且会生成一个led.o文件。
e. 将编译后生成的可执行文件led.o放到SD卡中
4、在Ubuntu中进行控制
先将Tiny4413和电脑用串口连接起来。然后在Tiny4412的显示界面关闭LED灯自动闪烁。然后按SD卡中编写的代码,在Ubuntu的中断命令行中输入对应控制代码,可以观察到Tiny4412母板上的LED灯被控制点亮或者熄灭。
四、实验代码 #include
int main(int argc, char **argv) { int on; int led_no; int fd; if (argc != 3 || sscanf(argv[1], \ on < 0 || on > 1 || led_no < 0 || led_no > 3)
{ fprintf(stderr, \ exit(1); } fd = open(\ if (fd < 0) { fd = open(\ } if (fd < 0) { perror(\ exit(1); } ioctl(fd, on, led_no); close(fd); return 0; }
五、实验结果及分析
实验结果:
在Ubuntu的终端命令行中键入./led 2 1时,Tiny4412母板上的2号LED灯被点亮,键入./led 2 0时,Tiny4412母板上的2号LED灯熄灭
实验分析: