智能家居实训(华清远见)第三天

内容:(课程主要内容,代码/作业,收获,感悟,建议等)
主要内容:(1)对昨天留下的作业进行讲解;
(2)复习昨天讲解的知识
(3)讲解今天所需要的知识点以及操作步骤
#include <sys/ioctl.h>
int ioctl(int d, int request, …);
参数1: 要操作的外设模块的文件描述符
参数2: 对外设模块的操作指令
参数3的有无取决于参数2

参数2:命令由4部分组成 幻数 序数 数据传输方向 数据大小
幻数: 0 ~ 0xff
序数:命令编号

_IO(type,nr) ; //没有参数的命令
_IOR(type,nr,size); //从驱动读取数据
_IOW(type,nr,size); //向驱动写数据
_IOWR(type,nr,size); //双向传输
这里的size只需要填充参数的类型

***************现在虚拟机上编辑代码,然后用arm-linux-gcc编译,然后将生成的可执行文件移动或者复制到~/Documents/board/nfs/rootfs下面

开关 串口 网线三条线插上 打开开关

第一步:配置电脑的ip地址 适配器—》右击以太网—》属性—》TCP/ipv4—>属性 使用下面的IP地址 自己配置ip 网关 子网掩码
第二步:配置虚拟机的ip
编辑—》虚拟网络编辑器—》桥接模式----》桥接到本机以太网----》保存
虚拟机—》设置----》网络适配器----》设备状态全勾选—》桥接模式(勾选)
右击网络标志----》edit connections—>add---->ipv4 settings—>manual—>add—>自己添加ip 网关 子网掩码 (ip要跟电脑在同一网段)----》save
右击网络标志—》选择刚才编辑的这个连接

用ifconfig命令查看一下ip
ping 电脑的ip

查看COM号是多少,然后用putty串口助手打开,波特率115200 流控制关闭
启动板子,用pri查看环境变量
setenv ipaddr 192.168.1.188
//板子的ip
setenv ipaddr 192.168.9.120
setenv serverip 192.168.1.134 //虚拟机的ip
setenv serverip 192.168.15.255
setenv gatewayip 192.168.1.1
setenv gatewayip 192.168.15.1
setenv bootcmd tftp 41000000 uImage;tftp 42000000 exynos4412-fs4412.dtb;bootm 41000000 - 42000000
set bootargs noinitrd root=/dev/nfs nfsroot=192.168.15.255:/home/farsight/Documents/board/nfs/rootfs rw rootwait console=ttySAC2,115200n8 init=/linuxrc ip=192.168.9.120 clk_ignore_unused
saveenv

set bootargs noinitrd root=/dev/nfs nfsroot=192.168.1.134:/home/farsight/Documents/board/nfs/rootfs rw rootwait console=ttySAC2,115200n8 init=/linuxrc ip=192.168.1.188 clk_ignore_unused

启动内核:
先去虚拟机上重启tftp和nfs
sudo service tft… restart
sudo service nfs… restart (Tab补全)
代码:点灯实验

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <strings.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>

#define LED_MAGIC 'h'
#define CMD_ON 1
#define CMD_OFF 2

#define LED_ON _IOW(LED_MAGIC,CMD_ON,int)

//0 1 2 3

int main()
{
	int ledFd = open("/dev/led",O_RDWR);
	if(ledFd < 0)
	{
		perror("led");
		return -1;
	}
	ioctl(ledFd,LED_ON,1);

	close(ledFd);
}

收获和感悟:调试网络,配置时一定要耐心,稍稍不注意就出错了。本人深有感触,一个小小的网络配置搞了半天,找同学帮忙,找老师帮忙,串口调试时要注意波特率的更改。编写代码时要细心,理清条理,看清提示改bug,改起来会比较快。听讲时一定要记一记,随手写一写比较容易被忽略的步骤。每一次的开发板都是以点灯开始的,这是一个基础实验,只有将基础实验做好那么我们才能一步一个脚印的完成实训。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值