这两天在公司由于一直没有太过于繁重的任务,于是便给分配了驱动开发的任务,之前一直不明白驱动开发和普通的嵌入式开发到底有什么区别,然后有没有经过系统的学习,于是就一直愣在那里。
不过慢慢的还是经过查资料,虽然代码没有编写出来,但是对于系统的一些东西学习的终于有了一定的了解,感觉这个十分的重要,也为了给自己在以后不懂得时候可以拿出来翻翻,留个念想。
首先,什么是驱动,驱动是硬件设备和应用程序之间的一个中间软件层,它使得某个特定得硬件能够响应一个良好的内部编程接口,同时完全隐蔽了工作的细节。
linux驱动也没有那么难以实现,就是后续的操作会有点麻烦,在编写号代码之后需要进行一下操作。
(1)首先使用 makemenuconfig配置文件,使用make生成Uimage内核文件。
(2)在平台代码下make pack 生成bin文件,和update.img文件
(3)进入uboot,运行run up 和 run tk,其中一个是升级内核,一个是升级所有文件,当然采用的是tftp升级
明白了流程之后就是需要看代码了,这个代码极其笼统,操作业挺复杂的,不过要有耐心。
毕竟驱动开发本身就比较难。
在这里想记下笔记,是关于运算符的,之前没有怎么接触过。
六种位运算符。
&是双目运算符,其功能是两数各对应的二进位相与。
|是双目运算符,其功能是两数各对应的二进位相或。
^是双目运算符,其功能是两数各对应的二进位相异或。
~是单目运算符,具有右结合性,功能是对运算数各二进位求反。
《左移运算符 》右移运算符