Re: [問題] 在ARM板上執行Drivertest檔 發生錯誤

看板LinuxDev作者 (行在自我上)時間14年前 (2011/06/22 17:53), 編輯推噓0(003)
留言3則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《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

06/22 23:50, , 1F
感覺起來你說的都不是重點 XD
06/22 23:50, 1F

06/22 23:51, , 2F
一般來講 如果是用kernel 2.6, 使用udev, device node
06/22 23:51, 2F

06/22 23:51, , 3F
會自動產生... XD
06/22 23:51, 3F
文章代碼(AID): #1E0RkcMY (LinuxDev)
文章代碼(AID): #1E0RkcMY (LinuxDev)