Android学习笔记10&s3c2440学习系列10

来源:互联网 发布:异界之全科技召唤知轩 编辑:程序博客网 时间:2024/06/06 05:48

关于mini2440的开发板的移植,第一步是要多读两遍S3C2440.pdf,以及mini2440原理图.pdf。

在移植设备驱动的时候,更要针对相应的spec来研究。

首先我们从bootloader开始,可以从我前段时间s3c2440学习系列。

开始看起:

在bootloader里面有一个match-type的问题

MACH_TYPE = 782
kernel  include/asm/mach-types.h
uboot   include/asm_arm/mach-types.h
          MACH_TYPE_MINI2440   782
vivi      include/platform/smdk2440.h  MACH_TYPE 782 

要全部对应起来

 



下面部分是copy网络上的介绍(转过来的)

<!-- /* Font Definitions */ @font-face{font-family:宋体;panose-1:2 1 6 0 3 1 1 1 1 1;mso-font-alt:SimSun;mso-font-charset:134;mso-generic-font-family:auto;mso-font-pitch:variable;mso-font-signature:3 135135232 16 0 262145 0;}@font-face{font-family:Verdana;panose-1:2 11 6 4 3 5 4 4 2 4;mso-font-charset:0;mso-generic-font-family:swiss;mso-font-pitch:variable;mso-font-signature:536871559 0 0 0 415 0;}@font-face{font-family:"/@宋体";panose-1:2 1 6 0 3 1 1 1 1 1;mso-font-charset:134;mso-generic-font-family:auto;mso-font-pitch:variable;mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal{mso-style-parent:"";margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;mso-pagination:none;font-size:10.5pt;mso-bidi-font-size:12.0pt;font-family:"Times New Roman";mso-fareast-font-family:宋体;mso-font-kerning:1.0pt;} /* Page Definitions */ @page{mso-page-border-surround-header:no;mso-page-border-surround-footer:no;}@page Section1{size:612.0pt 792.0pt;margin:72.0pt 90.0pt 72.0pt 90.0pt;mso-header-margin:36.0pt;mso-footer-margin:36.0pt;mso-paper-source:0;}div.Section1{page:Section1;}-->

关于Android内核与主线Linux内核不同的地方,夜猫子大侠已经做了分析,分析的比较到位,现在拷贝在这里,标注红色的为与硬件相关的,标注蓝色的是硬件无关的,黑色的部分是笔者目前还不清楚的,有待研究:

  1)基于ARM架构增加Gold-Fish平台,相应增加的目录如下:

      kernel/arch/arm/mach-goldfish

      kernel/include/asm-arm/arch-goldfish

2)增加了yaffs2 FLASH文件系统,相应增加的目录为:

      kernel/fs/yaffs2

      实际上,Android包经过编译后生成的system.imgramdisk.img文件就是yaffs2格式的包.
   3.
增加了Android的相关Driver,相应目录为:
      kernel/drivers/android  
     
主要分为:
  
        Android IPC系统:       Binder (binder.c)
           Android
日志系统:      Logger (logger.c)

          Android 电源管理:       Power(power.c)

           Android 闹钟管理:      Alarm  (alarm.c)
          Android 内存控制台:    Ram_console (ram_console.c)
          Android 时钟控制的gpio: Timed_gpio (timed_gpio.c)
   4.
增加了switch处理, 相应的目录为:

   kernel/drivers/switch/   
   5.
增加了一种新的共享内存处理方式, 相应增加的文件为:
     
kernel/mm/ashmem.c  
   6. 其他为Linux-2.6.25内核所做的补丁等等,例如BlueTooth,在此不做详细分析
  
另外GoldFish平台相关的驱动文件如下:
   1.
字符输出设备:
   
 kernel/drivers/char/goldfish_tty.c   
   2. 图象显示设备: (FrameBuffer)
    
 kernel/drivers/video/goldfishfb.c 
   3. 键盘输入设备:
     
kernel/drivers/input/keyboard/goldfish_events.c
   4. RTC设备: (Real TimeClock)
     
kernel/drivers/rtc/rtc-goldfish.c
   5. USBDevice设备:
     
kernel/drivers/usb/gadget/android_adb.c

这里只要用了支持AndroidADB工具,用于调试
   6. SD卡设备:
     
kernel/drivers/mmc/host/goldfish.c
   7. FLASH设备:
     
kernel/drivers/mtd/devices/goldfish_nand.c
     kernel/drivers/mtd/devices/goldfish_nand_reg.h 
   8. LED设备:
     
kernel/drivers/leds/ledtrig-sleep.c
   9. 电源设备:
     
kernel/drivers/power/goldfish_battery.c
   10. 音频设备:
     
  kernel/arch/arm/mach-goldfish/audio.c
   11. 电源管理:
      
kernel/arch/arm/mach-goldfish/pm.c
   12. 时钟管理:
     
  kernel/arch/arm/mach-goldfish/timer.c

原创粉丝点击