嵌入式实验报告1-6要求(1)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验六综合设计实验
实验类型:□验证■综合■设计□创新实验日期: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
#include
#include
#include
#include
#include
#include
int main(int argc, char **argv)
{
int on;
int led_no;
int fd;
if (argc != 3 || sscanf(argv[1], "%d", &led_no) != 1 || sscanf(argv[2],"%d", &on) != 1 || on < 0 || on > 1 || led_no < 0 || led_no > 3)
{
fprintf(stderr, "Usage: leds led_no 0|1\n");
exit(1);
}
fd = open("/dev/leds0", 0);
if (fd < 0) {
fd = open("/dev/leds", 0);
}
if (fd < 0) {
perror("open device leds");
exit(1);
}
ioctl(fd, on, led_no);
close(fd);
return 0;
}
五、实验结果及分析
实验结果:
在Ubuntu的终端命令行中键入./led 2 1时,Tiny4412母板上的2号LED灯被点亮,键入./led 2 0时,Tiny4412母板上的2号LED灯熄灭
实验分析: