[ARM开发] 如何使用yocto编译用户驱动程序,请教各位!

embedbird   2015-11-23 19:43 楼主
    我购买了Helio开发板,按照Altera的GSRD流程完成了下面的工作:
    (1)在SocEDS命令行中编译preloader及uboot;
    (2)使用yocto的bitbake编译Linux内核以及JFFS2文件系统;
    (3)直接在QSPI中构建JFFS2文件系统;
    (4)使用quartus_hps软件对QSPI烧写preloader和uboot;
    (5)在uboot中烧写内核及文件系统到QSPI中。

    现在可以正常从QSPI启动Linux内核,并在Linux命令行中加载FPGA配置文件soc_system.rbf。
使用led_blink工程从应用程序访问板上的跑马灯也能正常跑起来。下一步将构建用户驱动程序。
准备仿照骏龙提供的驱动程序范例(参见附件)来构建。makefile的文件内容如下:

obj-m += char_dev.o
char_dev-objs = char_dev_driver.o read_register.o

KDIR := /home/ebsoc/yocto/build/tmp/work/socfpga_cyclone5-poky-linux-gnueabi/linux-altera-dist-1.0-r1/linux-socfpga
PWD = $(shell pwd)

default:
        make -C $(KDIR) M=$(PWD) modules

clean:
        make -C $(KDIR) M=$(PWD) clean


    在Linux命令行中运行make命令,出现下面的错误:

$ make
make -C /home/ebsoc/yocto/build/tmp/work/socfpga_cyclone5-poky-linux-gnueabi/linux-altera-dist-1.0-r1/linux-socfpga M=/mnt/share/cytec modules
make[1]: Entering directory `/home/ebsoc/yocto/build/tmp/work/socfpga_cyclone5-poky-linux-gnueabi/linux-altera-dist-1.0-r1/linux-socfpga'
  CC [M]  /mnt/share/cytec/char_dev_driver.o
/mnt/share/cytec/char_dev_driver.c:1: 错误:代码模式‘kernel’在 32 位模式下不受支持
/mnt/share/cytec/char_dev_driver.c:1: 对不起,尚未实现:未编译入对 64 位模式的支持
make[2]: *** [/mnt/share/cytec/char_dev_driver.o] 错误 1
make[1]: *** [_module_/mnt/share/cytec] 错误 2
make[1]: Leaving directory `/home/ebsoc/yocto/build/tmp/work/socfpga_cyclone5-poky-linux-gnueabi/linux-altera-dist-1.0-r1/linux-socfpga'
make: *** [default] 错误 2


    现在的问题是:在yocto环境中,如何正确编译驱动程序呢?现在这个yocto和bitbake与先前传统的ARM9开发Linux
驱动程序大相径庭,现在都不知道怎么办了!恳请各位赐教,在此提前感谢!

    cytec_driver.rar (2015-11-23 19:28 上传)

    2.86 KB, 下载次数: 30

    骏龙培训提供的驱动程序源码及makefile

回复评论 (10)

你的问题解决了吗
点赞  2015-12-2 12:42
还没有啊,卡住了!好像这个论坛只有我一个人这样做一样。
点赞  2015-12-2 18:33
引用: embedbird 发表于 2015-12-2 18:33
还没有啊,卡住了!好像这个论坛只有我一个人这样做一样。

我昨天也按照你的方法做了一下,也是同样的错误,是不是电脑是32位的原因,我看网上说是没有申明交叉变量环境,你做了这么久尝试过什么方法没有有什么启示,我也想做一个这样的驱动程序一起努力啊
点赞  2015-12-3 09:26
兄弟,我已经明白怎么回事了,如果你还有没有解决有需要的话私聊我
点赞  2015-12-3 13:13
>>EE大学堂,精彩视频汇聚的地方
点赞  2015-12-3 14:49
To:wenchao1991
听说你明白了,我真是太高兴了!到现在我都没有明白过来,能够指点我一下吗?就是不知道在yocto环境下编译驱动程序。我的QQ:251755689,电子邮件:embedbird@126.com,手机:13986089722。请您及时联系我!万分感谢!
点赞  2015-12-3 20:28
我的QQ你可以加我,加我的时候请注明你的身份708948311
点赞  2015-12-4 11:15
To:wenchao1991
早就加了你的QQ,一直没有通过你的好友验证呐!
点赞  2015-12-5 19:22
请问helio板子资料可以上传一份给我么?谢谢
点赞  2015-12-9 19:46
太大了,请713lyc同学直接到http://rocketboards.org中的helio专版去下载吧!
点赞  2015-12-9 21:02
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复