作者FUFrench (行在自我上)
看板LinuxDev
标题Re: [问题] 在ARM板上执行Drivertest档 发生错误
时间Wed Jun 22 17:53:38 2011
※ 引述《FUFrench (行在自我上)》之铭言:
: 好不容易 写出driver
: 好不容易 让arm板可以insmod
: 然後开开心心的写了个 test.c 要和driver 沟通看看!!
: but.....
: 执行./test 後
: 9f80: 00000005 c0030088 c3b39fa4 c3b39f98 c009927c c0099174 00000000 c3b39fa8
: 9fa0: c002fee0 c0099268 00000000 00000000 000087e8 00000000 4014b000 00008590
: 9fc0: 00000000 00000000 00000000 00000005 00000000 00000000 40024000 beef9d54
: 9fe0: 00000000 beef9d40 000085b8 400daa6c 60000010 000087e8 00000000 00000000
: Backtrace:
: [<c009dc24>] (chrdev_open+0x0/0x160) from [<c0099374>]
: (__dentry_open+0xd4/0x26c
: Code: e58470e8 e1a03007 e5b3102c e28420e0 (e5812004)
: Segmentation fault
: [root@FriendlyARM /]#
: 出现以上一堆看不懂的东西 然後 显示Segmentation fault ....
: 我有设定mknod
: /dev/ 下也找的到设定好的档案
: 可是这个dev 档 不管是 cat 还是用 open函数 呼叫 都会有类似错误....
: 请问我大概问题出在哪里.....残念 Orz
: 补充发现的新问题 rmmod 该 driver 系统会跟我说 没有这个东西
: 可是lsmod 明明就有.... 这两个问题 的原因 是不是相同啊...
目前问题解决了 可是自己也搞不清楚怎麽解决的.....
最开始时候 编好的driver 连insmod 都进不去 原因为
kernel 的版本不同 可是经过 uname-r 查询 版本编号一样 只是arm板的
kernel後面还有多这些讯息 -Friendly ARM
後来 解决的方法是 重编一个kernel 让他版本後面没有 友善之臂的字串
但是之後 能 insmod but 不能在shell层跟driver沟通..
cat /dev/mydevice 都会出现一大堆错误讯息
最後 上网找 不用改kernel 也能把driver 编成 符合他的方法
(找到的方法是 利用 .config 设定 些改device/char 下的Makefile
用make modules 请他帮忙编 我在去device/char 找我的.ko 档案
之後 新编的driver 就可以cat /dev/mydevice 了
但其实我还是有修改过我的driver的code 可是我只改了
#define DEVICE_NAME "xxxxxxxxx" 这一行....
当初不懂这个定义是干麽的 范例code 的内容也没有使用这个define的地方..
可是却好像影响了 dev/ 下 该driver 的档名...
另外个问题 又让我很傻眼 就是 insmod 後
mknod 的指令错误 他说该档案已存在
我去 /dev/ 下找 还真的有mydevice 一般都是要 mknod 之後才会出现的说
然後直接 cat他 正常~~
用test程式和他沟通 正常 ~~
测量下达指令後 改变的GPIO脚 电位 如预期中改变....
虽然解决了很好.....但还是想搞清楚自己怎麽解决的 ORZ
--
_\^^^^^^^^/ ◣\◣◣
◣◢)◢
\ \\\ // / 万事屋的.. ★
\/ \◣ /∠◢
★ \ /★ ◢
\◤◤◤◤\◣
⊙ ⊙ ☆ ◥┬ ┬" ▼
○ o ◤
/|≡
≡|\ /
\▼/◣ by freijaking
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.115.236.24
1F:→ manlike:感觉起来你说的都不是重点 XD 06/22 23:50
2F:→ manlike:一般来讲 如果是用kernel 2.6, 使用udev, device node 06/22 23:51
3F:→ manlike:会自动产生... XD 06/22 23:51