嵌入式linux(內核爲linux 2.6.30.4)開發中遇到的一些問題解決方法

 

1.設置環境變量
gedit /etc/profile
再在文本中添加
export PATH="$PATH:路徑名"
保存後到shell執行source /etc/profile使信設置的環境路徑生效


2.靜態編譯格式
gcc/arm-linux-gcc -static -o 輸出文件名    原文件名

3.如何設置主機與虛擬機操作系統的共享文件
a.首先在虛擬機工具欄上電機VM-》setting-》opitions-》shared folder-》alwas enable
b.在虛擬機中安裝VM TOOls,將vm tools中的壓縮文件解壓,進入其解壓目錄中,以超級用戶登錄,運行vmware-install.pl
c.運行結束後,按照a的操作進入頁面,點擊右邊的ADD按鈕,然後按照操作添加共享文件

4.配置內核時出現invalid option `abi=aapcs-linux'錯誤的處理方法
處理方法1:用的編譯器比較舊,用的可能是arm-linux-gcc 3.4.1版本的,用的是OABI的,而配置內核時又選擇了EABI的,修改內核配置,
到內核源代碼的目錄下運行make menuconfig  進入配置的圖形界面   找到Kernel Features---》選項  進入  找到Use the ARM  EABIto  compile the kernel不選EABI,編譯器再編即可通過
處理方法2:換用arm-linux-gcc 4.3.3的交叉編譯器編譯

5.關於如何編譯嵌入式的驅動程序使其可以動態加載到GT2440開發板上(針對S3C2440的芯片)
      這裏要注意幾個問題,我們編譯的驅動程序是基於開發板上的操作系統的,直接用arm-linux-gcc進行編譯可能會出錯,因爲虛擬機,所以我們在編譯驅動程序時,要將驅動程序放入嵌入式操作系統內核如linux-2.6.30.4目錄下的drivers子目錄下的char目錄下(如果編譯的是字符設備的驅動程序則放在此目錄下,注意此時嵌入式操作系統必須是交叉編譯過的),然後修改char目錄下的kconfig文件,在其中加入以下的代碼
    config GT2440_GPIO_MODULE
 tristate "GT2440 GPIO Module sample"
 depends on ARCH_S3C2440
 default m if ARCH_S3C2440
 help
   GT2440 GPIO module sample.(這個help的內容就是對這個驅動程序的功能的描述可以自己任意的發揮)
   改完後,再在makefile文件中加入以下的代碼
   obj-$(CONFIG_GT2440_GPIO_MODULE)  += gpio.o
   然後到linux-2.6.30.4的原目錄下運行make menuconfig 進入圖形配置界面 ,找到Device drivers-》並進入 找到  character devices-》並進入
   就會找到我們加進去的GT2440 GPIO Module sample 了,選到它按空格就可以選擇編譯模式,可以選擇編譯進內核,此時< >裏顯示*,也可一選擇編譯模塊化的動態加載的編譯模式,此時 < > 裏顯示的是M ,選擇SELECT 按enter,再退出到linux-2.6.30.4目錄下,運行make modules即可在char 目錄下產生gpio.ko
   ,然後將gpio.ko下載到開發板上,放到/home/plg目錄下,再在終端運行 insmod gpio.ko就可以將起動態加載到開發板上,用rmmod gpio.ko就可以卸載gpio.ko了
  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章