由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - Linux Driver好写吗
相关主题
This Mysterious Chip In The iPhone 7 Could Be Key To Apple's AI Pushdocker是怎么实现的?
为啥用mmap访问文件的效率高呢?问一个machine learning/SVM 问题
谁来说说ZERO COPY和KERNEL Bypass networkingC++ delete
魏老师聊聊FPGA吧akka能和C++程序通信吗?
没人讨论这个?C++11使用感受及一些问题
这里有人有能力把Linux编译给确定的硬件吗?请问用mmap分配的共享内存如何回收?
懂deepmind得说说新手请问用mmap() copy file
请教一个码工职业选择的问题求教:c++中如何从raw data中创建对象?
相关话题的讨论汇总
话题: linux话题: driver话题: usb话题: kernel话题: i2c
进入Programming版参与讨论
1 (共1页)
b***i
发帖数: 3043
1
要写三个, 一个是一个display, 看好了一个4x32文字显示模块,还有USB wireless不
知道是不是在linux kernel里面,还有一个Real Time Clock (I2C)接口。
这些东西难吗?多长时间可以搞定?我们倒是可以找外包搞定的。多少钱合理呢?
s******u
发帖数: 501
2
文字显示模块是GPIO驱动的?这个和I2C一样,直接写user space的程序就可以了,不
一定需要用到kernel driver。
USB wireless不知道,没写过usb stack的driver,所以就不发表意见了

【在 b***i 的大作中提到】
: 要写三个, 一个是一个display, 看好了一个4x32文字显示模块,还有USB wireless不
: 知道是不是在linux kernel里面,还有一个Real Time Clock (I2C)接口。
: 这些东西难吗?多长时间可以搞定?我们倒是可以找外包搞定的。多少钱合理呢?

b***i
发帖数: 3043
3
真的?是Parallel或者serial,这个就是专门的User space? 还有I2C居然是user
space?
那太好了,我们就是怕耽误项目,

【在 s******u 的大作中提到】
: 文字显示模块是GPIO驱动的?这个和I2C一样,直接写user space的程序就可以了,不
: 一定需要用到kernel driver。
: USB wireless不知道,没写过usb stack的driver,所以就不发表意见了

s******u
发帖数: 501
4
不知道你们板子定制到什么程度,大多数的情况下可以直接用linux自己的GPIO/I2C驱
动,在编译kernel的时候把这些选项打开,然后就可以直接从user space来读写这些接
口了
如果是特制的硬件,不能用自带的驱动的话,可能就需要自己写一个简单的kernel
module了。其实无非也就是寄存器读写,内存映射,同时提供mmap之类的,写起来也不
麻烦

【在 b***i 的大作中提到】
: 真的?是Parallel或者serial,这个就是专门的User space? 还有I2C居然是user
: space?
: 那太好了,我们就是怕耽误项目,

b***i
发帖数: 3043
5
我们直接使用MicroZed(Zynq 7010)的SOM,就是自带1000M以太网/SD卡/USB等设备,但
是我们要三个附加设备:文本模式显示模块,USB wireless(ad hoc/access point模式
),和RTC(Maxim 3231)。
板子自带Linux,是生产商通过Windriver给的,启动16秒(这个我希望能降到6秒)。不
知道是否包含这些设备了。本人自认为是嵌入式工程师,也搞过DOS下的什么中断,端
口读写,也搞过简单单片机。但是这种Linux driver需要多长时间写这些代码?2个星
期搞定得否?我估计代码量不会多,1000行?但是知道写什么,怎么写,编译过程还是
需要一定知识的。准备6月去参加各培训。

【在 s******u 的大作中提到】
: 不知道你们板子定制到什么程度,大多数的情况下可以直接用linux自己的GPIO/I2C驱
: 动,在编译kernel的时候把这些选项打开,然后就可以直接从user space来读写这些接
: 口了
: 如果是特制的硬件,不能用自带的驱动的话,可能就需要自己写一个简单的kernel
: module了。其实无非也就是寄存器读写,内存映射,同时提供mmap之类的,写起来也不
: 麻烦

s******u
发帖数: 501
6
FPGA+ARM SoC?
Xillinx的我没用过,不过最近用过一些altera的类似FPGA+ARM板子
一般来说你需要别人做好的一个kernel的branch,里面有标准的配置文件,板子的
device tree文件等等。加上一个arm的cross compiler就可以build一个kernel出来了
,顺便加加减减一些用得上用不上的module,比方说I2C什么的。
SPI和I2c相对简单,绝大多数soc都有标准的实现和相应的linux驱动,所以你只要照例
子写个c程序就可以按地址读写RTC或者显示模块了,用不着自己写驱动
soc端的gpio需要看情况,至少我用的altera是给了gpio的驱动的。
另外还有个可能是你们把所有的接口放在FPGA一端来完成,这样子你可能需要写个跟
FPGA通讯的驱动程序,或者通过mmap把寄存器映射到userspace来操作。
当然对写程序来说如果能直接写个userspace的app肯定比写kernel module要来的方便
。这里有个问题,如果你的程序要求很高的实时性的话恐怕最好还是写个kernel
module比较好,userspace的process不是实时的,如果被schedule的话可能会有ms左右
的延迟
linux驱动不难写,就是照他的套路实现一堆的函数,比方说init,exit,file
operation,memory operation等等。主要是文档不好找,例子大多就在kernel tree那
一大堆的driver里面找了,看别人怎么写的,自然也就不那么浅显易懂。如果熟悉的话
写这个两个星期应该没什么问题

【在 b***i 的大作中提到】
: 我们直接使用MicroZed(Zynq 7010)的SOM,就是自带1000M以太网/SD卡/USB等设备,但
: 是我们要三个附加设备:文本模式显示模块,USB wireless(ad hoc/access point模式
: ),和RTC(Maxim 3231)。
: 板子自带Linux,是生产商通过Windriver给的,启动16秒(这个我希望能降到6秒)。不
: 知道是否包含这些设备了。本人自认为是嵌入式工程师,也搞过DOS下的什么中断,端
: 口读写,也搞过简单单片机。但是这种Linux driver需要多长时间写这些代码?2个星
: 期搞定得否?我估计代码量不会多,1000行?但是知道写什么,怎么写,编译过程还是
: 需要一定知识的。准备6月去参加各培训。

b**d
发帖数: 1174
7
Linux的driver和Windows比起来,好写几个数量级。大多数情况下,你只要在kernel
source里面找类似的代码,拿过来改改,加自己的business即可。usb driver本身很简
单,就是注册一些callback,kernel里面有例子。usb wireless adapter市场上早就有
了,你去找厂家的open source代码吧
compile本身没啥技术含量。debug的话,没死机就是dmesg了,否则就只能痛苦的
serial port...good luck!调试就是linux上最扯淡的事情
a*****g
发帖数: 19398
8
好写,俺以前写过网络的
其实俺“好写”也是经历了很长的学习周期和练习之后。

【在 b***i 的大作中提到】
: 要写三个, 一个是一个display, 看好了一个4x32文字显示模块,还有USB wireless不
: 知道是不是在linux kernel里面,还有一个Real Time Clock (I2C)接口。
: 这些东西难吗?多长时间可以搞定?我们倒是可以找外包搞定的。多少钱合理呢?

S*A
发帖数: 7142
9
应该好写,但是看你问这些问题的方式来说,估计你两个星期写不下来。
那个字符显示是用什么芯片驱动的?这个决定你的接口复杂度。
如果是 OLED 这一类那就比单纯字符的复杂很多。
usb wireless 应该用 Linux 支持的 USB 芯片直接就可以用了。
RTC 那个很简单,估计已经有人写了,你的 i2c/GPIO pin 配置对了
应该就可以直接驱动了。

【在 b***i 的大作中提到】
: 我们直接使用MicroZed(Zynq 7010)的SOM,就是自带1000M以太网/SD卡/USB等设备,但
: 是我们要三个附加设备:文本模式显示模块,USB wireless(ad hoc/access point模式
: ),和RTC(Maxim 3231)。
: 板子自带Linux,是生产商通过Windriver给的,启动16秒(这个我希望能降到6秒)。不
: 知道是否包含这些设备了。本人自认为是嵌入式工程师,也搞过DOS下的什么中断,端
: 口读写,也搞过简单单片机。但是这种Linux driver需要多长时间写这些代码?2个星
: 期搞定得否?我估计代码量不会多,1000行?但是知道写什么,怎么写,编译过程还是
: 需要一定知识的。准备6月去参加各培训。

x****u
发帖数: 44466
10
驱动显示设备的还用得着写驱动?

【在 S*A 的大作中提到】
: 应该好写,但是看你问这些问题的方式来说,估计你两个星期写不下来。
: 那个字符显示是用什么芯片驱动的?这个决定你的接口复杂度。
: 如果是 OLED 这一类那就比单纯字符的复杂很多。
: usb wireless 应该用 Linux 支持的 USB 芯片直接就可以用了。
: RTC 那个很简单,估计已经有人写了,你的 i2c/GPIO pin 配置对了
: 应该就可以直接驱动了。

1 (共1页)
进入Programming版参与讨论
相关主题
求教:c++中如何从raw data中创建对象?没人讨论这个?
"brk()" 和 mmap() 有什么区别? (转载)这里有人有能力把Linux编译给确定的硬件吗?
奇怪的问题:关于一个简单的malloc()小程序 (转载)懂deepmind得说说
怎样读一个不断更新的文件请教一个码工职业选择的问题
This Mysterious Chip In The iPhone 7 Could Be Key To Apple's AI Pushdocker是怎么实现的?
为啥用mmap访问文件的效率高呢?问一个machine learning/SVM 问题
谁来说说ZERO COPY和KERNEL Bypass networkingC++ delete
魏老师聊聊FPGA吧akka能和C++程序通信吗?
相关话题的讨论汇总
话题: linux话题: driver话题: usb话题: kernel话题: i2c