什么是交叉编译?
在一种计算机环境中能编译出另一种环境下运行的代码,这个编译过程就叫做交叉编译。
树莓派默认的用户名和密码
用户名:pi
密码:raspberry
什么是树莓派
树莓派是一台微型电脑,系统基于Linux
使用的树莓派版本
3B型号
如何使用SecureCRT连接树莓派
树莓派如何安装vim ?
sudo apt-get install vim
SD卡如何烧写树莓派镜像
SD卡烧写镜像都要先擦除SD卡内容(使用sdformatter)
然后使用win32diskimager烧写镜像
树莓派如何开启SSH ?
将SD卡插到读卡器上面,连接到电脑,在boot分区新建一个ssh的空白文件
树莓派如何连接wifi ?
https://www.cnblogs.com/wirehome/p/10129821.html
编译第一个程序helloworld,如何编译?
gcc helloworld.c
什么是wiringPi ?如何安装wiringPi ?如何用wiringPi 点亮LED?
wiringPi是树莓派控制GPIO引脚的函数库;
安装方法:使用git安装
git clone git://git.drogon.net/wiringPi
cd wiringPi
//build脚本将会自动完成wiringPi库的编译和安装
./build
树莓派移植内核,并替换
树莓派LED字符设备驱动
设备号
1.什么是设备号?
主设备号和次设备号统称为设备号;
2.什么是主设备号?
在linux内核看来,主设备号标识对应的驱动程序,告诉linux内核使用哪一个驱动程序为该设备(也就是/dev下的设备文件)服务。
主设备号相同说明使用了同一个驱动程序;
主设备号代表着同一类设备。
3.什么是次设备号?
次设备号用来标识具体且唯一的某个设备;
次设备号代表了同一类设备的不同个体
设备节点
1.如何创建设备节点?
device_create,/dev/hello
2.什么是设备节点?
设备节点使得用户可以与内核进行硬件的沟通,读写设备以及其他的操作;
在linux里面设备就像是普通文件一样的存在,访问某一个设备就好像是访问一个文件一样。
3.设备节点和设备号有什么关系?
mknod /dev/hello 10 99
4.如何操作一个设备节点?
打开:应用层调用哪个函数?驱动层对应的哪个函数被调用?
假设设备节点为/dev/hello,则
应用层:fd = open("/dev/hello",O_RDWR);
驱动层:hello_open() //内核驱动模块来实现
关闭:
应用层:close(fd)
驱动层:release
ioctl:
应用层:
int ioctl(int fd, ind cmd, …);
驱动层:
static long unlocked_ioctl(struct file*filp,unsigned int cmd,unsigned long arg)
5:字符设备注册
通过哪个函数注册?
cdev_add
通过哪个函数取消注册?
cdev_del
6:led驱动实现了哪几个回调函数?
open
release
unlocked_ioctl