嵌入式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了
  

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值