Chinaunix首页 | 论坛 | 博客
  • 博客访问: 119405
  • 博文数量: 24
  • 博客积分: 616
  • 博客等级: 中士
  • 技术积分: 375
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-01 10:54
文章分类
文章存档

2012年(24)

我的朋友

分类: LINUX

2012-04-01 10:55:15

硬件设备:micro 2440
LINUX系统:ubuntu
LINUX内核版本:2.6.32.2

一。
1.准备micro2440原理图及中文数据手册如下:


2.本人使用的LINUX2.6.32.2版本的内核,从网络中直接下载,在ubuntu系统中直接下载使用如下命令:
    wget  

3.使用tar xvzf linux-2.6.32.2.tar.gz解压缩

4.修改总目录下的makefile文件设定编译工具链接及内核默认的平台为ARM平台,
   原:
         
   改:(注:CROSS_COMPILE后面的内容是编译器在系统中的绝对路径,不要搞错)
         

5.验证LINUX的编译是否能够正常通过,如果通过不了则需要继续修改上面步骤的内容直到正确为止
   使用如下命令进行验证:make s3c2410_defconfig然后在make

二。建立自己的目标平台:

       1.机器码:(注:内核在启动时,是通过bootloader传入的机器码(MACH_TYPE)确定应启动哪种目标平台。将自己创建平台的机器码添加
          到linux-2.6.32.2/arch/arm/tools/mach_types文件中。在此因为本人现在工作项目中使用了TI的DAVINCI系列芯片也在此文件中找到了)有   
          图有真相请见:
          

          
          注意如果bootloader传入的机器码跟内核的机器码不匹配,就会出现系统报错。
          那么U- boot的机器码定义在哪里呢?如下:u-boot/include/asm-arm/mach-types.h,由此可以想到我前几天在移植uboot时报错说什么机器码
          第一次使用,没有被定义,原来原因在这里,LINUX我初学所以呵呵出这样的问题太正常了,还得努力多实践啊。u-boot自2009.06 版本
          开始,也已经加入MINI2440的机器码定义。在此就先暂且使用MINI2440了,等全部试验一遍后自己改个其他名字的板子试验一下,毕竟
          现在如果使用全新的名字定义的话,还得涉及到重新编译u-boot,先解决掉当前任务再逐步深入吧。
          因国外爱好者为mini2440移植添加的主要内容,我们不使用它将他直接删除 路径为:linux-2.6.32.2/arch/arm/mach-s3c2440/mach-mini2440.c,然后再复制一份mach-smdk2440.c改名字为mach-mini2440.c.
          找到MACHINE_START,将里面的内容修改为:"MINI2440,"FRIENDLYARM MINI2440 development board""
    

       2.修改时钟源频率
          在上面文件中查找160行将原先的晶振改为12000000

       3.从SMDK2440到MINI2440
          将mach-mini2440.c中所有的smdk2440字样改为mini2440,可以使用gedit软件实现批处理功能。另外将smdk_machine_init()注释掉。
       4.编译测试
          make mini2440_defconfig
          make zImage
          重新编译通过的zImage位于arch/arm/boot目录中。

         使用超级终端及DNW配合下载zImage文件  选择K下载LINUX内核,下载完毕后再按b运行系统,因为大多数硬件驱动还没有添加所以
         系统运行到半截就不运行了,下篇做下一步工作。
阅读(1089) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:00002-----配置菜单中的mini2440选项

给主人留下些什么吧!~~