LDD3 硬體通訊 章節出現的問題總結

2021-06-01 18:56:49 字數 1376 閱讀 4297

1、編譯的時候,出現:

iso c90 forbids mixed declarations and code

我一直搞不清出怎麼

回事,後來上網google一下,發現原來是變數定義之前,如果有非變數語句出現,那麼就有這個警告,把非變數移到變數之後,就沒有警告了。不用擔心,不是程式問題。

2、我用的s3c6410,在使用埠的時候,我沒有用核心給出的埠位址,而是根據手冊上寫的gpio位址,自己定義的。開始沒有用ioremap。報oops。後來查來查去,知道想要用埠,那就要用核心給出的埠位址了,自己定義的話就要ioremap一下。當然還要iounmap。別忘了。當然這種方法下使用的是io mem了。。不是io port

3、模組解除安裝。非常的疼。。。我以前都是在ubuntu上做實驗,沒有上過開發板。在ubuntu上的時候,要解除安裝模組,比如hello.ko,使用rmmod hello.ko就行了,但是到了開發板上,得用rmmod hello不要有那個ko。

另外,如果rmmod使用後,報說什麼chdir怎麼怎麼了,沒記太清楚,是因為你make核心之後,沒有make module。make module之後 還要記得用make module_install 將make好的module放入你自己用nfs建立起來的核心檔案系統(就是開發板進入的那個檔案系統了)。

4、如果想要使用linux核心定義的s3c6410的gpio埠。首先需要包含如下標頭檔案:

#include (主要包含的是埠的實體地址與虛擬位址之間的對映,非常重要)

#include (包含埠的基位址)

#include (我用的飛凌的開發板,led連在m埠上)

這三個標頭檔案缺一不可,都要包含上。

我用的是linux 2.6.36的核心。

使用的時候,埠名稱為:s3c64xx_gpmcon、s3c64xx_gpmdat、s3c64xx_gpmpud三個。

5、另外講個小白問題。。可惜我不懂。。

上面所說的包含的三個標頭檔案,mach/map.h等,在核心原始碼下arch/arm/mach-s3c64xx/include/mach

LDD3 帶有引數的模組

include include include static char who who static int time 1 module param time,int,s irugo module param who,charp,s irugo static int hello init void ...

LDD3 中 awk 語句的解釋

在 ldd3 的乙個建立節點的 shell 指令碼中,用到了 awk文字處理工具,在這裡做一下解釋。原句 major awk 2 module proc devices module 變數在指令碼中定義為 scull.proc devices 是awk 要處理的輸入檔案。2,1,分別代表輸入檔案中的...

LDD3學習筆記 模組的編譯

新手上路,ldd3學習之旅開始,以下內容純屬筆記,若有錯誤,望見諒!1.什麼是 模組 可以在系統執行時加入到核心中的 故 模組包括但不限於裝置驅動程式。2.如何寫乙個模組?1 c檔案 2 實現module init,module exit3.ldd3中makefile編寫規則 照搬 ifneq ke...