s3c2440上linux-2.6.28.7内核配置及Qtopia文件系统移植和搭建

发布者:Lihua1314520最新更新时间:2022-07-21 来源: csdn关键字:s3c2440  linux-2  6  7  内核配置 手机看文章 扫描二维码
随时随地手机看文章

一、linux-2.6.28.7内核配置过程


1,新编译好的内核下载到FLASH中,启动linux以后报错,说找不到rootfs入口,解决方法是内核编译选项中选中“file system->yaffs2 fs support”,以及"let yaffs to its ecc".


2,烧写好内核及文件系统后,发现无论怎么点击触摸屏,系统都没有反应,可是开发板自带的kernel烧上去后就没有问题,所以,判断问题还是出于内核配置的问题。解决办法是内核配置“device drivers->input device->(*)touchscreen interface并且(*)touchscreen event”, 以及“device drivers->input device->touchscreen->enable s3c2410 touchscreen”。配置完成以后,启动linux以后触屏功能正常,正常进入到屏幕校准的程序。但是屏幕校准很多次都有问题,判断有可能是x和y的坐标颠倒了,下面进行修改。(其实起初我也不能肯定是哪里有问题,只是命令行能打印出touchscreen点击的坐标信息,但是系统界面就是没有反应,所以我才想驱动应该没问题,问题可能出在和qtopia沟通的问题,然而文件系统又没有问题,因此,我只能抱着试试的态度把内核当中的touchscreen interface选上,再把event功能选上,没想到还真的行了,其实就是猜出来的。现在真是汗颜呀。。。以后开发要是靠猜的话,那活就没法干了。。。)


3,现在出现屏幕校准总是无法通过的问题,看开发板的说明文档上说,应该是x和y坐标颠倒了。因此想办法修改代码。我确定是/drivers/input/touchscreen/s3c2410_ts.c这个文件操作touchscreen,但是不应该修改驱动代码(因为代码没有错),只能修改与板相关的定义文档,因此修改了/arch/arm/plat-s3c/include/plat/regs-adc.h,这些都是与板相关的寄存器值的定义,我修改了:


#define S3C2410_ADCDAT0    S3C2410_ADCREG(0x0C)

#define S3C2410_ADCDAT1    S3C2410_ADCREG(0x10)


修改为


#define S3C2410_ADCDAT1    S3C2410_ADCREG(0x0C)

#define S3C2410_ADCDAT0    S3C2410_ADCREG(0x10)


然后重新编译内核,烧入后就解决了这个问题,触摸屏成功校准,然后一切正常。


考虑这次修改,把x和y的数据寄存器交换了,我觉得这样改有可能在以后会出现问题,比如可能影响到AD转换时的某些功能。但是目前真想不出什么更好的办法,先这样吧。


4.为开发板配置LED流水灯驱动和功能


需要首先配置内核,“device drivers->leds driver->(M)led class”以及“device drivers->leds driver->(M)s3c24xx led drivers”总共选择了两项,并且都选择编译为模块的形式。保存,


在重新编译内核之前,需要修改一下内核当中的板级文件,这里主要需要修改/arch/arm/plat-s3c24xx/common-smdk.c文件,里面定义了led设备的led-platform-device和led-platdata,在这个文件中,需要根据开发板硬件电路图分析出led接在哪个GPIO口上了,然后进行相应修改,文件中原来是GPF4,改为GPB5,改了四个灯。然后修改文件中的设备结构数组,修改设备初始化函数。这些地方都需要修改,修改内容根据修改后的led-platform-device和led-platdata。


修改完后,重新编译内核,结果在/drivers/leds/目录下生成了两个文件:leds-class.ko以及s3c24xx-leds.ko. 其中,s3c24xx-leds.ko模块依赖于leds-class.ko文件,insmod的时候,需要先insmod leds-class.ko文件。


在开发板上成功insmod s3c24xx-leds.ko后,可以发现在/sys/devices/platform/下面多了led灯的设备,让灯点亮和熄灭的方法是:


cd /sys/devices/platform/s3c24xx-led.0/s3c24xx-led.0


echo 1 > brightness(开灯)


echo 0 > brightness(关灯)


5,配置网络文件系统(NFS)


之前按照开发板手册进行NFS挂载,结果怎么也挂不上。今天(20110603)才终于发现,原来是内核配置有问题,最后配置的时候经过这样配置,就成功挂载了:file system->network file system->


   --- Network File Systems                                         │ │ 

  │ │    <*>   NFS client support                                         │ │ 

  │ │    [*]     NFS client support for NFS version 3                     │ │ 

  │ │    [ ]       NFS client support for the NFSv3 ACL protocol extension│ │ 

  │ │    [ ]     NFS client support for NFS version 4 (EXPERIMENTAL)      │ │ 

  │ │    [ ]     Root file system on NFS


6,内核突然出现不能insmod模块的问题及解决。


今天(20110611)希望给内核上insmod一个驱动,结果insmod出错,不能insmod这个驱动,然后我就觉得奇怪,为什么突然不能insmod了?然后我就把以前曾经测试没问题的流水灯的驱动模块试着加载一下,结果也加载不上,insmod leds-class.ko的时候,出现“unknown relocation:40”。真是太奇怪了!以前明明都行的!后来到网上一查,据说是因为binutil这个工具被我升级了,才会导致的,是内核的一个bug,需要打个patch,没办法,只好去找patch了。但是我记得我好像没升级过呀,网上有网友说他从binutils2.8升级到2.9就出现这个问题,但是我怎么也不记得自己升级过,算了,只好打补丁了。找到一个arm_R_ARM_V4BX_fix.patch的包,然后打上:patch -p1 arm_R_ARM_V4BX_fix.patch


然后重新编译内核。


结果这回终于可以把模块insmod上了。


7,为内核添加USB闪存的支持功能


这个功能需要配置如下地方:


--- USB support                                                  │ │ 

  │ │    <*>   Support for Host-side USB                                  │ │ 

  │ │    [ ]     USB verbose debug messages                               │ │ 

  │ │    [ ]     USB announce new devices                                 │ │ 

  │ │            *** Miscellaneous USB options ***                        │ │ 

  │ │    [*]     USB device filesystem                                    │ │ 

  │ │    [*]     USB device class-devices (DEPRECATED)                    │ │ 

  │ │    [ ]     Dynamic USB minor allocation                             │ │ 

  │ │    [*]     USB Monitor                                              │ │ 

  │ │    < >     Enable Wireless USB extensions (EXPERIMENTAL)            │ │ 

  │ │    < >     Support WUSB Cable Based Association (CBA)


            *** USB Host Controller Drivers ***                      │ │ 

  │ │    < >     Cypress C67x00 HCD support                               │ │ 

  │ │    < >     ISP116X HCD support                                      │ │ 

  │ │    <*>     OHCI HCD support                                         │ │ 

  │ │    < >     SL811HS HCD support                                      │ │ 

  │ │    < >     R8A66597 HCD support                                     │ │ 

  │ │    < >     Host Wire Adapter (HWA) driver (EXPERIMENTAL)            │ │ 

  │ │    < >   Inventra Highspeed Dual Role Controller (TI, ...) 


        *** NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may al│ │ 

  │ │          *** see USB_STORAGE Help for more information ***          │ │ 

  │ │       USB Mass Storage support                                   │ │ 

  │ │    [ ]     USB Mass Storage verbose debug                           │ │ 

  │ │    [ ]     Datafab Compact Flash Reader support                     │ │ 

  │ │    [ ]     Freecom USB/ATAPI Bridge support                         │ │ 

  │ │    [ ]     ISD-200 USB/ATA Bridge support                           │ │ 

  │ │    [ ]     Microtech/ZiO! CompactFlash/SmartMedia support           │ │ 

  │ │    [ ]     USBAT/USBAT02-based storage support                      │ │ 

  │ │    [ ]     SanDisk SDDR-09 (and other SmartMedia) support           │ │ 

  │ │    [ ]     SanDisk SDDR-55 SmartMedia support             


以上将USB的host端以及usb mass storage support都加上了。但是配置文件还提到需要加上SCSI支持,配置如下:


    < > RAID Transport Class                                         │ │ 

  │ │    <*> SCSI device support                                          │ │ 

  │ │    SCSI target support                                          │ │ 

  │ │    [*] legacy /proc/scsi/ support                                   │ │ 

  │ │        *** SCSI support type (disk, tape, CD-ROM) ***               │ │ 

  │ │    <*> SCSI disk support                                            │ │ 

  │ │    SCSI tape support                                            │ │ 

[1] [2]
关键字:s3c2440  linux-2  6  7  内核配置 引用地址:s3c2440上linux-2.6.28.7内核配置及Qtopia文件系统移植和搭建

上一篇:FL2440烧写bootloader的方法
下一篇:jz2440烧写方法笔记

推荐阅读最新更新时间:2024-11-10 09:41

uboot-2011.12移植到S3C2440(序一)——ELF可执行文件及其组成
我们可以把可执行文件分为2种情况:存放态和运行态 1.存放态:可执行文件经过烧到存储介质上(flash或磁盘)的分布,此时可执行文件通常有2部分组成,代码段和数据段,代码段又分为可执行代码段 (.text)和只读数据段(.rodata),数据段可以分为初始化数据段(.data)和未初始化代码段(.bss),如下: +-------------+----------- | .bss | (ZI) +-------------+-- 数据段 | .data | (RW) +-------------+----------- | .rodata | |_____________| 代码段(RO) | .text | +--
[单片机]
STM32F103RCT6之FLASH读写操作
一、STM32F103的FLASH简介 1、如图所示,STM32F103内部FLASH存储区分为三个区域:主存储区、信信息块和闪存存储器接口寄存器。 储存储区是我们读写FLASH的主要的存储区,MCU程序以及一些需要掉电保存的数据都是存储在这个区域的。 信息快:程序启动代码被存储在这部分。 最后的寄存器则是FLASH读写需要配置的一些寄存器位置。 主存储器的起始位置0x08000000,除去程序占用的空间,剩余部分就可以作为数据保存的区域了,所以在利用内部FLASH存储数据的时候,一定不要占用程序本身所占用的空间,否则会导致死机。 主存储器一共256页,每页2K字节长度。 二、FLASH存储寄存器的配置 1、FPEC键寄存器
[单片机]
STM32F103RCT<font color='red'>6</font>之FLASH读写操作
富士康斥资百亿美元在美建设液晶工厂:6月8日动工
    新浪科技讯 北京时间5月12日上午消息,富士康科技集团发言人证实,该公司将于6月28日在美国芒特普莱森(Mount Pleasant)为其投资100亿美元建设的液晶面板工厂举行动工仪式。   这条消息最初来自一档广播节目,当时有消息称,该公司已经邀请当地的重要人物出席。而富士康发言人随后也证实了这一日期,但并未提供额外信息,包括美国总统特朗普是否会出席动工仪式。   当地政府官员本月早些时候针对该项目举行活动,总包商也已将建筑设备运送到工地现场。人员也已经在那里启动准备工作。这座工厂有望于2019年8月完工。   由于富士康在当地获得的补贴规模过大,审批速度过快,所以该项目之前曾经引发争议。而6月28日的动工日期距离美国白
[手机便携]
SIMATIC S7-1500 PLC的通信及其应用—OSI参考模型
通信网络的核心是OSI(OSI-Open System Interconnection,开放式系统互联)参考模型。1984年,国际标准化组织(ISO)提出了开放式系统互联的7层模型,即OSI模型。该模型自下而上分为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。 OSI的上3层通常称为应用层,用来处理用户接口、数据格式和应用程序的访问。下4层负责定义数据的物理传输介质和网络设备。OSI参考模型定义了大多数协议栈共有的基本框架,如图1所示。 图1 1.物理层(Physical Layer):定义了传输介质、连接器和信号发生器的类型,规定了物理连接的电气、机械功能特性,如电压、传输速率、传输距离等特性。建立、维护
[嵌入式]
SIMATIC S<font color='red'>7</font>-1500 PLC的通信及其应用—OSI参考模型
uboot-2011.12移植到S3C2440(四)——SDRAM初始化之后,卡在board.c的memset不动
按照转载的(四序)中设置SDRAM,并且修改uboot.lds之后,程序走到memset不再运行,无法解决。暂停。这应该是NANDFLASH代码挪窝的问题,说是2410和2440不兼容。研究中。 uboot-2010.09和201112这两个版本的memset不同,在2011.12版本中,将memset写成汇编语言了,这个比较难整,等待N人解决吧。 这一部分,csdn有csuwzc进行了201103的版本的移植,简单看了下,发现做的很好,我出错的原因大致就在于栈设置不正确,以及其它的小细节,我不打算继续深究,我现在以uboot-2010.09为模板移植。
[单片机]
极致双核A7国产处理器,米尔T113-S3核心板零售价低至79元!
国产低成本处理器,核心板低至79元!米尔基于全志T113-S3核心板发布 国产低成本核心板低至79元!米尔基于全志T113-S3核心板发布 米尔新品低至79元!国产低成本处理器-全志T113-S3 关键词:核心板、开发板、国产处理器、T113-S3、全志T113-S3 近年来,中国的芯片产业发展势头迅猛,国产芯片公司不断推出新产品,让中国的芯片产业发展迎来了新的高度。米尔2022年推出全志国产处理器T507核心板,取得良好的市场反响,这款车规级处理器广泛应用于能源电力、PLC控制、物联网网关、医疗器械、商业显示等行业。此次米尔与全志再度合作,推出国产低成本双核A7处理器——T113-S3的核心板和开发板,这款MYC-YT
[嵌入式]
极致双核A<font color='red'>7</font>国产处理器,米尔T113-S3核心板零售价低至79元!
s3c2440裸机-时钟编程(二、配置时钟寄存器)
1.2440时钟时序 下图是2440时钟配置时序: 1.上电后,nRESET复位信号拉低,此时cpu还无法取指令工作。 2.nRESET复位信号结束后变为高电平,此时cpu开始工作。此时cpu主频FCLK=osc。 3.此时可以配置PLL,经过lock time后,FCLK倍频成新的时钟。 2.如何配置时钟 在参考手册的特性里介绍了S3C2440的工作频率,Fclk最高400MHz,Hclk最高136MHz,Pclk最高68MHz。那么 我们干脆配置FCLK:HCLK:PCLK= 400:100:50 (MHz). 1,先配置lock time 我们取芯片手册上的推荐值。 /* LOCKTIME(0x4C000000)
[单片机]
<font color='red'>s3c2440</font>裸机-时钟编程(二、<font color='red'>配置</font>时钟寄存器)
线上线下 无处不见P6
    今天华为高级副总裁余承东微博中说道“P6正以迅速稳健的脚步走向世界!” 看到华为在泰国的Shopping mall中,最大的智能机专卖店,最NB的位置,让华为来Show。 近日,英国流行歌手Rita Ora在Twitter(美国社交网站)上秀出了自己的手机,手机品牌正是华为Ascend P6,据消息称Rita Ora并没有拿华为的宣传费,只是自己喜欢这部手机所以跟大家分享一下。可见P6的极致之美,吸引到了外国年轻人。 最近小编在公交站,移动营业厅以及迪信通之类的运营商门口,无不见到P6的海报,永远是在最明显的位置,更何况线上的各大网站了。就连一直只用国外品牌手机的朋友,都转变念想换了部P6,可见
[手机便携]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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