sam9x5平台搭建及rt3070驱动移植总结

发布者:SereneSunset最新更新时间:2022-07-01 来源: csdn关键字:平台搭建  驱动移植 手机看文章 扫描二维码
随时随地手机看文章

............................................................................................................


PC机系统:ubuntu 11.10


Linux kerner :  2.6.39


............................................................................................................


RT3070驱动编译过程不在多说,如果觉得改的什么问题也没有,且内核也进行了相应的配置,在编译时还是出现很多错误。对于这种情况建议从网上从新找个驱动源代码进行编译。我试过个了,对两个不同版本的3070驱动进行编译,一样的改的,一个可以编译成功,另一个却不行。


驱动编译好了之后,下载到板子,


>[root@mcuzone /home]#insmod rt3070sta.ko

rt3070sta: Unknown symbol __bswapsi2 (err 0)

insmod: can't insert 'rt3070sta.ko': unknown symbol in module or invalid parameter


显示__bswapsi2没有定义。因为板子内核是自带的,考虑是不是内核没有加相应东西,于是在PC上编译内核,使用SAM-BA烧写的板子上,重新启动,出现:


NAND read: device 0 offset 0x200000, size 0x300000

atmel_nand : multiple errors detected. Unable to correct.

NAND read from offset 200000 failed -1

 88064 bytes read: ERROR

Wrong Image Format for bootm command

ERROR: can't get kernel image!

U-Boot>


仔细阅读开发资料,发现厂家只建议采用所提供的bat烧写方式,于是连接上J-link,将文件中的内核替换成自己编译的,烧写完毕启动,发现终端只打印


roomboot


经过几次测试,发现个小细节,用bat烧写方式,完毕后要先关闭板子,拔出J-link,之后再才能重启。


期间为了烧写方便,自己弄了个NFS文件系统,挂载时出现


ending DHCP requests .....

eth0: link up (100/Full)

., OK

IP-Config: Got DHCP answer from 0.0.0.0, my address is 192.168.1.102

IP-Config: Complete:

     device=eth0, addr=192.168.1.102, mask=255.255.255.0, gw=192.168.1.1,

     host=192.168.1.102, domain=, nis-domain=(none),

     bootserver=0.0.0.0, rootserver=0.0.0.0, rootpath=, mtu=576

VFS: Cannot open root device "nfs" or unknown-block(0,255)

Please append a correct "root=" boot option; here are the available partitions:

1f00           65536 mtdblock0  (driver?)

1f01          196608 mtdblock1  (driver?)

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,255)


[] (unwind_backtrace+0x0/0xe0) from [] (panic+0x50/0x170)

[] (panic+0x50/0x170) from [] (mount_block_root+0x234/0x284)


[] (mount_block_root+0x234/0x284) from [] (prepare_namespace

+0x164/0x1b8)

[] (prepare_namespace+0x164/0x1b8) from [] (kernel_init+0x10

0/0x13c)

[] (kernel_init+0x100/0x13c) from [] (kernel_thread_exit+0x0

/0x8)


类似错误信息,查看后发现原来是没mount上,mout格式如下:


>setenv bootargs mem=128M console=ttyS0,115200 root=/dev/nfs rw nfsroot=192.168.1.108:/mcuzone/nfsroot/my_rootfs ip=dhcp


当内核替换之后以为驱动可以加载上了,试了之后发现还是会打印—bswapsi2没定义。自此排除原因为内核导致。上网搜了相关资料,有说是GCC的bug,于是考虑替换gcc。


原来gcc版本为arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 解压,用版本arm-2007q1-10-arm-none-linux-gnueabi.tar.bz2 解压后,采用新的gcc对驱动进行编译,完了之后下载到板子,出现


>rt3070sta: version magic '2.6.39 mod_unload ARMv5 p2v8 ' should be '2.6.39 mod_unload ARMv5 '

>insmod: can't insert 'rt3070sta.ko': invalid module format


出现内核版本不匹配,突然想起编译uImage时是采用2011.03.-41版本的gcc,而驱动是采用2007q1-10版本的gcc。于是用2007-q1-10版本的gcc先对内核进行编译,并make install,在对驱动代码进行编译。注意这个前后顺序不能改变,不然内核虽然改过来了。驱动却还是用之前编译的内核,加载驱动就会出现


>rt3070sta: version magic'2.6.39 mod_unload ARMv5 ' should be'2.6.39 mod_unload ARMv5 p2v8 '


>insmod: can't insert 'rt3070sta.ko': invalid module format


到现在驱动能加载了


[root@mcuzone /home]#chmod 777 rt3070sta.ko

[root@mcuzone /home]#insmod rt3070sta.ko

rtusb init --->

usbcore: registered new interface driver rt2870

关键字:平台搭建  驱动移植 引用地址:sam9x5平台搭建及rt3070驱动移植总结

上一篇:对SAM9X5移植的总结
下一篇:SylixOS 共用中断号机制

推荐阅读最新更新时间:2024-10-30 23:18

嵌入式驱动移植之触摸驱动初识
开发环境 BootLoader:u-boot-1.1.6 kernel:linux-2.6.30.4 CPU:s3c2440 开发板:TQ2440 参考资料:《天嵌科技Linux移植手册》 移植步骤 1、触摸驱动编写 此处直接用天嵌提供的源码,从天嵌科技提供的 2.6.30.4 的源码中的“drivers/input/touchsreen/”拷贝“tq2440_ts.c”文件到我的内核的“drivers/input/touchsreen/”目录下,然后修改驱动源码的 41 行为如下内容: //extern struct semaphore ADC_LOCK; //这个原来的内容 DECLARE_MUTEX(ADC_LOCK
[单片机]
嵌入式<font color='red'>驱动</font><font color='red'>移植</font>之触摸<font color='red'>驱动</font>初识
使用RapidIO技术搭建可重构信号处理平台
  摘 要: 军事领域常选择ADI公司的TS201芯片用于信号处理平台,但由于其采用基于电路交换的LINK口进行连接,难以实现军方对电子系统设计提出的可重构性的需求。FPGA可以用来实现接口转换功能,如果利用FPGA将基于电路交换的LINK口转换成基于包交换的其他形式的接口,就能在不改变硬件连接的基础上,实现DSP系统的重构。本文介绍了一种基于串行RapidIO技术的可重构的信号处理平台,并对其中核心的FPGA的逻辑设计进行了讨论。   在雷达、声纳、电子对抗等军用电子设备中,数字信号处理机作为实现信号处理算法的平台,起着至关重要的作用。在传统的信号处理平台中,军事领域多选用ADI公司的TigerShark系列的DSP芯片作为信
[嵌入式]
如何搭建一个能够有效表征放大器干扰灵敏度的测试平台
在便携式应用中,无线收发器的激增就需要对在高频无线电发射机附近电子电路操作能力进行重点关注。在千兆赫无线电系统中,无线电天线与低频放大器配件的密切接近可以引起无线电信号的解调,导致接收电路中的破坏性干扰。 本文说明了如何利用在多数高频模拟实验室中所使用的标准设备,构建一个测试平台。这个测试平台适用于测试和表征在低频音频电路中辐射的无线电频率干扰(RFI)。此测试平台最初用于在耳机放大器的输出端检查带有过量噪音问题的蓝牙应用。尽管由蓝牙发射器所引发的噪音在放大器输出中很容易被观察到,但是频率跳变RF与噪音信号的复杂编码调制相结合将生成一个干扰信号,而这个信号将特别复杂,很难进行分析。 本文中所提到的测试平台通过创建一个干扰环境
[测试测量]
如何<font color='red'>搭建</font>一个能够有效表征放大器干扰灵敏度的测试<font color='red'>平台</font>
linux2.6.32.2 mini2440平台移植-- 串口驱动移植、I2C-EEPROM 驱动移植、看门狗驱动移植
1.7.1 把 UART2 改为普通串口驱动 S3C2440 芯片具有 3 个串口:UART0,1,2,我们下载的 Linux-2.6.32.2 已经具备完善的 UART0,1 的驱动,但对UART2 却用作了红外通讯(Irda),因此我们需要把 UART2 驱动稍微调整一下,以便作为普通串口来用。 先看看 S3C2440 串口部分寄存器的说明,如下图 接下来我们修改内核中关于 UART2 的配置,打开 mach-mini2440.c 文件,找到,如下红色代码为修改后的: static struct s3c2410_uartcfg mini2440_uartcfgs __initdata = { = {
[单片机]
linux2.6.32.2 mini2440<font color='red'>平台</font><font color='red'>移植</font>-- 串口<font color='red'>驱动</font><font color='red'>移植</font>、I2C-EEPROM <font color='red'>驱动</font><font color='red'>移植</font>、看门狗<font color='red'>驱动</font><font color='red'>移植</font>
电信业4G平台的快速搭建催热手机移动游戏市场
众所周知,近年来随着智能移动终端被广泛应用,移动游戏的发展势头极为迅猛。移动游戏如黑马一般闯入了大众的视野,但想要赢得用户及企业的青睐,必定要具备一些自身独有的优势。400电话(www.400wo.com)首先,移动游戏具备无可比拟的便捷性,便携的终端让用户在进行游戏时变得非常轻松,只需打开手机或平板电脑,就可以随时享受游戏带来的乐趣;其次,移动游戏的玩法更休闲、时间利用更合理,为了在较短的时间内让用户体验游戏,移动游戏往往被设计成为休闲、短小的形式,这样能够使用户不必枯坐在电脑前等待游戏的结果;再次,移动游戏在收费上更加透明,移动游戏的收费形式虽然较少,但透明性更高,比如下载收费或高级关卡收费等,一款移动游戏的收费点也许只有一到
[网络通信]
基于s3c2410的触摸屏驱动移植
在 linux2.6.14/drivers/input/touchscreen 目录下建立新的文件s3c2410_ts.c 文件,驱动文件我们可以参考类似的触摸屏驱动,具体的内容参看网站或者光盘提供的源代码。 首先:修改 linux2.6.14/drivers/input/touchscreen 目录下的 makefile 文件,在文件的最后 添加 : obj-$(CONFIG_TOUCHSCREEN_S3C2410) += hfrk_s3c2410_ts.o 第二:在 linux2.6.14/ drivers/input/touchscreen/Kconfig 中添加: config TOUCHSCREEN_S
[单片机]
STM32L051上使用RT-Thread (五、完结篇)
前言 在完成基本的传感器采集,串口通讯移植修改后,其实作为一个单品传感器已经是正常的工作起来了,但是如果我们在使用产品的时候有特殊情况,比如需要发送特定的无线报文,或者设置不同的工作模式之类的操作,我们就可以通过按键操作进行一定的配置。 所以本文会移植一个按键驱动,能够支持按键 短按,固定时间的长按等操作,同时周期执行的程序改成使用定时器来控制。 本文是《RT-Thread 应用篇 — 在STM32L051上使用 RT-Thread》完结篇 ❤️ 一个简单的应用:无线温湿度传感器 ❤️ 一个小内存的芯片:STM32L051C8T6 ❤️ 一个小而美丽的物联网操作系统:RT-Thread ❤️ 本 RT-Thread 专栏记录的
[单片机]
STM32L051上使用RT-Thread (五、完结篇)
DM9000的驱动在TQ2440+linux2.6.32下的移植
这里我们主要阐述DM9000的驱动在TQ2440+linux2.6.32下的移植,分俩部分,一是驱动移植,一是测试程序 硬件平台:TQ2440,DM9000EP 内核 : linux2.6.32 编译工具: codesource出品 arm-linux-none-gnueabi-4.3.3 文件系统: busybox1.1.11+yaffs 在此推荐一个文档: http://singleboy.blog.163.com/blog/static/5490019420115141426387/ mini2440的,在移植过程中参考了此文,鸣谢 一、DM9000驱动移植 主要修改俩个文件,一是mach-smdk2440.c,一
[单片机]
DM9000的<font color='red'>驱动</font>在TQ2440+linux2.6.32下的<font color='red'>移植</font>
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved