历史上的今天
返回首页

历史上的今天

今天是:2024年11月26日(星期二)

正在发生

2018年11月26日 | ARM9:如何将linux2.6.38内核移植到TQ2440

2018-11-26 来源:eefocus

  下面是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.


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


推荐阅读

史海拾趣

ERA Transformers公司的发展小趣事

在国内市场取得一定成功后,ERA Transformers公司开始将目光投向国际市场。为了打开国际市场,公司积极参加国际电子展会和交流活动,与多家国际知名企业建立了联系。通过深入了解国际市场需求和标准,公司对产品进行了针对性的改进和优化。经过一段时间的努力,ERA Transformers公司的产品成功打入了国际市场,并获得了良好的销售业绩和口碑。

GSG公司的发展小趣事
检查通信接口是否连接正确,通信协议是否匹配,以及通信线路是否受到干扰或损坏。
DDP Engineered LED Solutions公司的发展小趣事

在公司的发展过程中,DDP Engineered LED Solutions公司高度重视团队建设和人才培养。公司建立了完善的组织架构和人力资源管理体系,通过内部培训和外部引进相结合的方式,不断提升员工的专业素养和综合能力。同时,公司还注重营造积极向上的企业文化氛围,激发员工的工作热情和创造力。正是这些努力,让DDP的团队成为了推动公司不断前进的重要力量。

Datasensor公司的发展小趣事

1978年,DATALOGIC公司成功研制出欧洲第一台条码扫描器,并将此产品应用于商业领域。这一创新不仅展示了公司在光电技术领域的实力,也为其在工业自动化领域赢得了良好的声誉。条码扫描器的成功推出,为公司带来了可观的收益,也为公司后续的技术研发和市场拓展提供了强有力的支持。

ARBOR公司的发展小趣事

随着全球电子市场的日益繁荣,ARBOR公司开始实施国际化战略。公司在多个国家和地区设立了分支机构,积极与当地企业合作,拓展市场份额。通过不断调整和优化产品线,ARBOR公司的产品逐渐在全球范围内赢得了良好的口碑。国际化战略的实施不仅提升了公司的知名度,也为公司的持续发展奠定了坚实基础。

酷宅(Coolkit)公司的发展小趣事

酷宅科技在创业之初就意识到了海外市场的重要性。因此,公司将自己的服务部署在亚马逊的AWS云上,并针对AWS Alexa for Business、Google Home等主流智能音箱平台进行了深度优化。这一战略使酷宅科技的产品能够更好地适应海外市场的需求,提高其品牌在国际市场的竞争力。同时,酷宅还积极参加国际展览和论坛,与全球合作伙伴建立广泛的联系,进一步推动其国际化战略的实施。

问答坊 | AI 解惑

C51的一些误区和注意事项

作者:未知1)C忌讳绝对定位。 常看见初学者要求使用_at_,这是一种谬误,把C当作ASM看待了。在C中变量的定位是编译器的事情,初学者只要定义变量和变量的作 用域,编译器就把一个固定地址给这个变量。怎么取得这个变量的地址?要用指针。比如unsigned c ...…

查看全部问答>

lm741的资料

本帖最后由 paulhyde 于 2014-9-15 09:01 编辑 rt  …

查看全部问答>

关于铝电解电容漏电流

目前国内设计都用哪些公司的铝电解电容啊! 不同的电压等级的铝电解电容漏电流应该不一样,但是一般大家确定电压等级和容量,没确定型号之前,这个漏电流是怎么估计的?…

查看全部问答>

杭州知名企业招驱动工程师

岗位名称:驱动工程师 岗位要求: 1.电子、通信、计算机、自控类相关专业本科以上学历; 2.1年以上嵌入式产品开发经验,熟悉各种常用的外围扩展芯片的驱动。 比如SCI,SPI,I2C总线,smartcard,tuner。 3.精通C语言、汇编,有嵌入式系统和实时 ...…

查看全部问答>

哪位高手能帮我看看这个函数谢谢

如下这个函数是在WINCE的BSP里面的,pTOC是ROMHDR结构,/* Routine to copy the flashed NK image to RAM */ int EverythingRelocate(void) {     LONG len;     ROMHDR *ptoc;     ULONG pc, *toc, offset, dest ...…

查看全部问答>

如何降低嵌入式设备中的电视卡的工作能耗?

一个装有Linux的嵌入式设备,要减少其电视卡的功耗该如何处理啊?(电视卡为mini pci接口) 我的想法有: 1. 让系统待机。但是不知道让系统待机的话,该电视卡是否还在继续接收电视信号? 2. 关闭电视卡的接收端口,但不知怎么写啊,那位大虾推 ...…

查看全部问答>

USB 错误

插入USB设备时,打印出如下调试错误: device not accepting address 2, error -32 请问这是怎么回事啊…

查看全部问答>

STM32F103的USB/CAN怎么共用?(电路设计问题)

请问一下STM32的USB/CAN口在不能remap的条件下,接口电路(CAN收发器/usb总线)能否实现两个应用并存但是不同时应用:指的是在用CAN时不用USB,在用USB时不用CAN,能否实现?需要注意什么? 补充一下:我测试了TJA1050的RX/TX脚有内部上拉也不知 ...…

查看全部问答>

有个项目,有兴趣的朋友进来看看!

我手上有一个项目:希望能找到朋友合作,酬劳1K--2K。有兴趣的朋友可以跟我联系515105256! 总体要求: 由一个上位机    2个下位机组成      上位机和下位机之间通过RS485传输(单工、半双工、全双 ...…

查看全部问答>

这个版块确实冷清了一点

难得看到几个新帖,回帖的人也不多,怎么就这么冷清呢?不过貌似21ic那边的Stellaris版块也是比较冷清难道是用TI的少吗?在阿莫那边STM32的讨论倒是挺热闹的,可能那边有个主题吧野火弄了个野火版的STM32,坛子里就能围绕这个中心展开话题版主可以 ...…

查看全部问答>