ARM9:如何将linux2.6.38内核移植到TQ2440

发布者:古泉痴迷者最新更新时间:2018-11-26 来源: eefocus关键字:ARM9  linux2  6  内核移植  TQ2440 手机看文章 扫描二维码
随时随地手机看文章

  下面是linux2.6.38内核移植到TQ2440的具体步骤:


  1.修改根目录的Makefile中的ARCH=arm,CROSS-COMPILE=arm-linux-


  2.在arch/arm/mach-s3c2440/mach-smdk2440.c中,将163行的s3c24xx_init_clocks(16934400)改为s3c24xx_init_clocks(12000000)。


  3.修改arch/arm/tools/mach-types中379行的362改为168,因为uboot中定义的机器码是168.


  4.修改arch/arm/boot/中的Makefile文件,在58行添加@cp -f arch/arm/boot/zImage zImage.bin,实现把生成的zImage文件复制到内核源码根目录下。


  5.在根目录的Makefile的1164行添加rm -f zImage.bin,使得在执行make distclean在清除产生的文件的同时,把内核根目录下的zImage也清除。


  6.修改arch/arm/plat-s3c24xx/common-smdk.c中111行的static struct mtd_partition smdk_default_nand_part[]的nandflash分区为:


  [0] = {


  .name = "Andy_uboot",


  .offset = 0x00000000,


  .size = 0x00040000,


  },


  [1] = {


  .name = "Andy_kernel",


  .offset = 0x00200000,


  .size = 0x00200000,


  },


  [2] = {


  .name = "Andy_yaffs2",


  .offset = 0x00400000,


  .size = 0x0FB80000,


  }


  7.修改drivers/mtd/nand/s3c2410.c中的839行为chip->ecc.mode=NAND_ECC_NONE;


  8.修改arch/arm/mach-s3c2440/mach-smdk2440.c中100行为.ulcon = 0x03。


  9.在drivers/serial/samsung.c的51行添加


  #include


  #include


  在433行添加:


  if (port->line == 2) {


  s3c2410_gpio_cfgpin(S3C2410_GPH(6), S3C2410_GPH6_TXD2);


  s3c2410_gpio_pullup(S3C2410_GPH(6), 1);


  s3c2410_gpio_cfgpin(S3C2410_GPH(7), S3C2410_GPH7_RXD2);


  s3c2410_gpio_pullup(S3C2410_GPH(7), 1);


  }


  10.用git工具下载最新的yaffs2源代码。


  具体为在终端输入git clone git://www.aleph1.co.uk/yaffs2下载最新的yaffs2,下


  载完成给内核打补丁,进入yaffs目录,执行


  ./patch-kernel.sh c m opt/Andy/linux-2.6.38(以自己的内核目录为准),其中的c代表复制,m代表复合类型。


  11.用make menuconfig配置linux内核。


  12.执行make zImage,将生成的zImage.bin下载到TQ2440。


  13.制作文件系统。


  解压busybox-1.18.4.tar.bz2,修改busybox-1.18.4中的Makefile,在164行和190行分别修改为CROSS-COMPILE=arm-linux-和ARCH=arm。执行make,然后在执行make install。将生成_install复制到根目录,添加文件系统文件,用天嵌提供的mkyaffs2image生成root.bin的可执行文件,下载到开发板。


  14.启动开发板,打印信息如下:


  Start Linux ...


  Copy linux kernel from 0x00200000 to 0x30008000, size = 0x00200000 ... Copy Kernel to SDRAM done,NOW, Booting Linux......


  Uncompressing Linux... done, booting the kernel.


  Linux version 2.6.38-Andy (root@Andy) (gcc version 4.3.3 (Sourcery G++ Lite 2009q1-176) ) #15 Fri Apr 8 20:21:42 CST 2011


  CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177


  CPU: VIVT data cache, VIVT instruction cache


  Machine: Andy's TQ2440 development board!


  ATAG_INITRD is deprecated; please update your bootloader.


  Memory policy: ECC disabled, Data cache writeback


  CPU S3C2440A (id 0x32440001)


  S3C24XX Clocks, Copyright 2004 Simtec Electronics


  S3C244X: core 400.000 MHz, memory 100.000 MHz, peripheral 50.000 MHz


  CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on


  Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256


  Kernel command line: noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0


  PID hash table entries: 256 (order: -2, 1024 bytes)


  Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)


  Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)


  Memory: 64MB = 64MB total


  Memory: 60896k/60896k available, 4640k reserved, 0K highmem


  Virtual kernel memory layout:


  vector : 0xffff0000 - 0xffff1000 ( 4 kB)


  fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)


  DMA : 0xffc00000 - 0xffe00000 ( 2 MB)


  vmalloc : 0xc4800000 - 0xf6000000 ( 792 MB)


  lowmem : 0xc0000000 - 0xc4000000 ( 64 MB)


  modules : 0xbf000000 - 0xc0000000 ( 16 MB)


  .init : 0xc0008000 - 0xc0025000 ( 116 kB)


  .text : 0xc0025000 - 0xc0399000 (3536 kB)


  .data : 0xc039a000 - 0xc03bac40 ( 132 kB)


  SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1


  NR_IRQS:85


  irq: clearing pending ext status 00080000


  irq: clearing subpending status 00000003


  irq: clearing subpending status 00000002


  Console: colour dummy device 80x30


  console [ttySAC0] enabled


  Calibrating delay loop... 199.47 BogoMIPS (lpj=498688)


  pid_max: default: 32768 minimum: 301


  Mount-cache hash table entries: 512


  CPU: Testing write buffer coherency: ok


  gpiochip_add: gpios 288..303 (GPIOK) failed to register


  gpiochip_add: gpios 320..334 (GPIOL) failed to register


  gpiochip_add: gpios 352..353 (GPIOM) failed to register


  NET: Registered protocol family 16


  S3C2440: Initialising architecture


  S3C2440: IRQ Support


  S3C24XX DMA Driver, Copyright 2003-2006 Simtec Electronics


  DMA channel 0 at c4808000, irq 33


  DMA channel 1 at c4808040, irq 34


  DMA channel 2 at c4808080, irq 35


  DMA channel 3 at c48080c0, irq 36


  S3C244X: Clock Support, DVS off


  bio: create slab at 0


  SCSI subsystem initialized


  usbcore: registered new interface driver usbfs


  usbcore: registered new interface driver hub


  usbcore: registered new device driver usb


  s3c-i2c s3c2440-i2c: slave address 0x10


  s3c-i2c s3c2440-i2c: bus frequency set to 97 KHz


  s3c-i2c s3c2440-i2c: i2c-0: S3C I2C adapter


  Advanced Linux Sound Architecture Driver Version 1.0.23.


  cfg80211: Calling CRDA to update world regulatory domain


  NET: Registered protocol family 2


  IP route cache hash table entries: 1024 (order: 0, 4096 bytes)


  TCP established hash table entries: 2048 (order: 2, 16384 bytes)


  TCP bind hash table entries: 2048 (order: 1, 8192 bytes)


  TCP: Hash tables configured (established 2048 bind 2048)


  TCP reno registered


  UDP hash table entries: 256 (order: 0, 4096 bytes)


  UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)


  NET: Registered protocol family 1


  RPC: Registered udp transport module.


  RPC: Registered tcp transport module.


  RPC: Registered tcp NFSv4.1 backchannel transport module.


  msgmni has been set to 118


  io scheduler noop registered (default)


  s3c2440-uart.0: ttySAC0 at MMIO 0x50000000 (irq = 70) is a S3C2440


  s3c2440-uart.1: ttySAC1 at MMIO 0x50004000 (irq = 73) is a S3C2440


  s3c2440-uart.2: ttySAC2 at MMIO 0x50008000 (irq = 76) is a S3C2440


  loop: module loaded


  S3C24XX NAND Driver, (c) 2004 Simtec Electronics


  s3c24xx-nand s3c2440-nand: Tacls=2, 20ns Twrph0=6 60ns, Twrph1=2 20ns


  s3c24xx-nand s3c2440-nand: NAND ECC disabled


  NAND device: Manufacturer ID: 0xec, Chip ID: 0xda (Samsung NAND 256MiB 3,3V 8-bit)


  NAND_ECC_NONE selected by board driver. This is not recommended !!


  Scanning device for bad blocks


  Bad eraseblock 62 at 0x0000007c0000


  Bad eraseblock 1435 at 0x00000b360000


  cmdlinepart partition parsing not available


  Creating 3 MTD partitions on "NAND":


  0x000000000000-0x000000040000 : "Andy_uboot"


  0x000000200000-0x000000400000 : "Andy_kernel"


  0x000000400000-0x00000ff80000 : "Andy_yaffs2"


  dm9000 Ethernet Driver, V1.31


  Now use the default MAC address: 10:23:45:67:89:ab


  eth0: dm9000e at c4810000,c4814004 IRQ 51 MAC: 10:23:45:67:89:ab (EmbedSky)


  ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver


  s3c2410-ohci s3c2410-ohci: S3C24XX OHCI


  s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1


  s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000


  usb usb1: New USB device found, idVendor=1d6b, idProduct=0001


  usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1


  usb usb1: Product: S3C24XX OHCI


  usb usb1: Manufacturer: Linux 2.6.38-Andy ohci_hcd


  usb usb1: SerialNumber: s3c24xx


  hub 1-0:1.0: USB hub found


  hub 1-0:1.0: 2 ports detected


  Initializing USB Mass Storage driver...


  usbcore: registered new interface driver usb-storage


  USB Mass Storage support registered.


  usbcore: registered new interface driver usbserial


  usbserial: USB Serial Driver core


  USB Serial support registered for pl2303


  usbcore: registered new interface driver pl2303



  pl2303: Prolific PL2303 USB to serial adaptor driver


  s3c2410_udc: debugfs dir creation failed -19


  mousedev: PS/2 mouse device common for all mice


  S3C24XX RTC, (c) 2004,2006 Simtec Electronics


  s3c-rtc s3c2410-rtc: rtc disabled, re-enabling


  s3c-rtc s3c2410-rtc: rtc core: registered s3c as rtc0


  i2c /dev entries driver


  S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics


  s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled


  usbcore: registered new interface driver usbhid


  usbhid: USB HID core driver


  ALSA device list:


  No soundcards found.


  TCP cubic registered


  lib80211: common routines for IEEE802.11 drivers


  s3c-rtc s3c2410-rtc: setting system clock to 2000-01-02 00:47:19 UTC (946774039)


  yaffs: dev is 32505858 name is "mtdblock2" rw


  yaffs: passed flags ""


  VFS: Mounted root (yaffs filesystem) on device 31:2.


  Freeing init memory: 116K


  Please press Enter to activate this console.


  移植过程中产生的问题及其解决方法将在下一节说明。还有一些驱动没有移植。继续努力!


关键字:ARM9  linux2  6  内核移植  TQ2440 引用地址:ARM9:如何将linux2.6.38内核移植到TQ2440

上一篇:TQ2440裸奔程序:串口UART的PC机按键测试程序
下一篇:TQ2416开发板TIMER中断应用控制设备

推荐阅读最新更新时间:2024-03-16 16:18

苹果iPad mini6大解密:更窄的边框和Touch ID电源键
据彭博社公布的 iPad 路线图,知名爆料者 @Jon Prosser 分享了一些关于即将推出的 iPad mini 设计的消息。   他表示,第六代 iPad mini 的尺寸与第五代 iPad mini 几乎相同,然而却采用了全新的设计,例如移除 Home 键,加入 Touch ID 电源按钮,采用更大的显示屏和按比例缩小的屏幕边框,用 USB-C 替换 Lightning 接口。   IT之家了解到,当前一代 iPad mini 的显示屏为 7.9 英寸,之前消息表明新版 iPad mini 屏幕尺寸在 8.4 到 8.9 英寸之间。由于新 iPad mini 的整体尺寸可能没有变化,显然将拥有更高的屏占比。   此外,@J
[手机便携]
联发科不怕对手抢生意 TD市占明年维持6
中国台湾IC芯片大厂联发科执行副总徐至强今天表示,联发科目前在TD芯片市场市占率高达6成,排名第1,虽然明年TD芯片市场更为竞争,但联发科仍有信心维持6成市占的好成绩。关于WCDMA芯片出货情况,他表示,相关产品早已到位,只是先前和高通的协议耗时较久,预计最快年底可以开始出货。    据台湾媒体报道,联发科不仅在山寨市场吃得开,连在中国大陆独有的3G技术TD-SCDMA市场中也很吃得开,目前市占率排名第1,达60%。徐至强表示,虽然明年会陆续有许多竞争者进入市场,不过,联发科仍然乐观看待,认为明年TD芯片市占率仍有机会维持在6成左右。    联发科已在上周五(11月20日)与高通达成WCDMA芯片专利协议,联发科预计年底
[半导体设计/制造]
基于stm32f103zet6的RTC学习
RTC配置 一、秒中断的配置,RTC就是一个定时器而已,没什么大不了的! 1、NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1); NVIC_PriorityGroup,: specifies the priority grouping bits length. This parameter can be one of the following values: NVIC_PriorityGroup_0: 0 bits for pre-emption priority 4 bits for subpriority NVIC_PriorityGroup_1: 1 bits for pre-e
[单片机]
OPPO Reno6系列发布:支持AI焕采美妆及焕采光斑人像视频
今天,OPPO 在秦皇岛正式发布支持 AI 焕采美妆及焕采光斑人像视频的 OPPO Reno6 系列手机。 OPPO Reno6 系列提供 OPPO Reno6 Pro+、OPPO Reno6 Pro 以及 OPPO Reno6 可选,主打全新的“夏日晴海“外观设计,升级焕采人像视频功能以及带来更为大众化的游戏体验。 OPPO Reno 系列一直深耕影像系统,本次也在影像方面有着很多升级和突破。在硬件方面,OPPO Reno6 Pro+ 采用了 5000 万像素AI四摄,主摄像头为 IMX766 传感器,并且支持 OIS,OPPO Reno6 Pro 则搭载了 6400 万像素水光人像四摄,Reno6 则为 6400 万像
[手机便携]
联想Z6 Pro 5G手机28日开启预售售价3299元
今天联想手机官方宣布,联想Z6 Pro 5G将于11月28日开启预售,支持5G全网通,8GB+256GB版售价仅3299元。 据悉,联想Z6 Pro 5G外观和配置方面,和目前的4G版本差不多,搭载一块6.39英寸三星AMOLED水滴屏,拍照上,联想Z6 Pro 5G采用HYPER VIDEO技术加持,支持超级视频AI四摄,拥有4800万像素主摄,3200万像素前摄、支持超级夜景+超级微距+超级广角+超级美体+前后双景视频等。 联想Z6 Pro 5G搭载高通855+X50 5G调制解调器,内置4000mAh电池,支持PC级液冷散热;其他方面,该机还支持杜比全景声,解锁方面联想Z6 Pro5G搭载第六代屏幕光电指
[手机便携]
新型pSemi Sub-6 GHz射频开关
支持在5G大规模MIMO基站中创建混合波束成形架构 SP4T开关可为混合波束成形系统提供业界领先的性能 圣迭戈,2022年2月16日——村田旗下公司、专注于半导体集成技术的pSemi® Corporation扩大旗下RF SOI开关产品组合,旨在为最新的5G无线基础设施建设项目和大规模MIMO基站部署项目提供支持。通过在混合波束成形架构拓扑中使用新型的高线性度开关,基站设计人员可以节省电路板上宝贵的空间并改善系统热耗散,降低整套系统的成本、重量和功耗。pSemi先进的SP4T开关可提供同类产品最佳的线性度、插入损耗和功率处理性能,从而提高sub-6 GHz有源天线系统的频谱效率。 sub-6 GHz频段 的5G基站有
[网络通信]
新型pSemi Sub-<font color='red'>6</font> GHz射频开关
荣耀手环6发布价格249元 手环进入全面屏时代
11月3日晚间消息,今日晚间荣耀通过线上方式发布新款智能手环——荣耀手环6,该手环配备1.47英寸AMOLED全面屏,正面采用无按键设计,官方称:引领手环迈入“手环全面屏时代1.0”。   完整的屏幕可提升显示面积,较高屏占比更为用户带来全新视觉享受,将运动及健康监测结果汇聚在大屏显示。荣耀手环6还升级了磁吸式快充、长续航以及更加精准的健康监测。   荣耀手环6最大升级点是配备了1.47英寸AMOLED高清臻彩大屏,相较荣耀手环5显示面积提升了148%,屏占比达到64%,这块屏幕分辨率为368*194,正面无按键的全屏一体化设计。更大的全面屏让视觉上感受更好,荣耀还以更直观的数据图方式全方位展示在手环屏上,方便用户仅用一
[手机便携]
荣耀Magic 6 Pro眼动追踪技术可遥控汽车启停
据CNBC报道,荣耀展示了眼动追踪系统,可以遥控汽车启停,实现了眼动控车,解锁了人机交互领域的巨大可能性。 2月25日,荣耀在西班牙巴塞罗那举行的世界移动通信大会上全球发布Magic 6 Pro。在发布会上,荣耀展示了Magic 6 Pro的眼动追踪技术,通过内置的人脸识别技术和前置摄像头,实时跟踪和检测用户的眼球运动。 眼动控车的实现基于荣耀Magic6系列的眼动追踪功能,配合车的车控App(包括四个指令:引擎启动、引擎停止、倒车和前进)。当眼睛注视车控App当中的倒车或者启动等功能按键时,就可以实现眼动控车。 目前还没有消息表明,荣耀是否会与汽车制造商合作推出这项功能。 图片来源:Autocar 目前
[汽车电子]
荣耀Magic <font color='red'>6</font> Pro眼动追踪技术可遥控汽车启停
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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