主题 : 请问下 ARM的硬件驱动和linux驱动是一个概念吗 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 64769
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
贡献值: 0 点
综合积分: 14 分
注册时间: 2012-03-09
最后登录: 2012-11-20
楼主  发表于: 2012-11-20 09:58

 请问下 ARM的硬件驱动和linux驱动是一个概念吗

最近想学ARM的硬件驱动   但是看到很多都是ARM的linux驱动
不知这两者是什么区别。。。
比较低端 希望大神不吝赐教 谢谢
级别: 新手上路
UID: 81076
精华: 0
发帖: 48
金钱: 240 两
威望: 48 点
贡献值: 0 点
综合积分: 96 分
注册时间: 2012-11-04
最后登录: 2013-02-18
1楼  发表于: 2012-11-20 10:09
没啥区别,都是根据芯片datasheet操作芯片外设,然后给应用提供调用接口
*無鈳取玳
级别: 论坛版主
UID: 27
精华: 12
发帖: 5398
金钱: 40120 两
威望: 17929 点
贡献值: 71 点
综合积分: 11036 分
注册时间: 2008-01-16
最后登录: 2014-11-22
2楼  发表于: 2012-11-20 12:10

 回 1楼(wrc-3) 的帖子

对于硬件的操作是没有区别的,区别在于提供给应用程序的接口,每个操作系统多少都不一样。这就是为什么谈论驱动程序的时候需要指定操作系统的前提。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
级别: 新手上路
UID: 81113
精华: 0
发帖: 8
金钱: 40 两
威望: 8 点
贡献值: 0 点
综合积分: 16 分
注册时间: 2012-11-04
最后登录: 2013-02-07
3楼  发表于: 2012-11-22 17:13
微处理器驱动的本质,就是设置片内各种寄存器。所以实现的目的,都是一样的。
只不过linux这个系统,它只给了你抽象出来的上层软件区域,如果你要操作底层硬件,就要和它的内核进行交互,那么用到的一种方式就是加载、卸载内核驱动模块,你写的驱动就会被封装成模块送给内核,让它知道可以怎样去运行这个硬件(记住,只是“怎样运行”,而不是“如何运行”,“如何运行”由你的应用程序完成),当然,对于一个模块的操作,linux还是提供了很标准的一系列操作函数给你,类似于open,read,write,ioctl,release等,因为在linux里,一切都被看成文件来,所以驱动的操作和文件一样。。。你想设置什么寄存器,就在那些操作函数里去实现,和单片机编程是一样了,最后用用函数指针的方式封装进file_opreation结构体,交给内核,OK
以上如有错误,欢迎纠正
~你真的很逊耶~双子星...
级别: 新手上路
UID: 82411
精华: 0
发帖: 14
金钱: 70 两
威望: 14 点
贡献值: 0 点
综合积分: 28 分
注册时间: 2012-11-22
最后登录: 2016-02-16
4楼  发表于: 2012-11-26 10:15
科普帖子,谢谢
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
微处理器驱动的本质,就是设置片内各种寄存器。所以实现的目的,都是一样的。
只不过linux这个系统,它只给了你抽象出来的上层软件区域,如果你要操作底层硬件,就要和它的内核进行交互,那么用到的一种方式就是加载、卸载内核驱动模块,你写的驱动就会被封装成模块送给内核,让它知道可以怎样去运行这个硬件(记住,只是“怎样运行”,而不是“如何运行”,“如何运行”由你的应用程序完成),当然,对于一个模块的操作,linux还是提供了很标准的一系列操作函数给你,类似于open,read,write,ioctl,release等,因为在linux里,一切都被看成文件来,所以驱动的操作和文件一样。。。你想设置什么寄存器,就在那些操作函数里去实现,和单片机编程是一样了,最后用用函数指针的方式封装进file_opreation结构体,交给内核,OK
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------