Chinaunix首页 | 论坛 | 博客
  • 博客访问: 408804
  • 博文数量: 27
  • 博客积分: 470
  • 博客等级: 一等列兵
  • 技术积分: 546
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-24 11:51
文章存档

2016年(12)

2012年(15)

分类: LINUX

2012-05-09 09:36:53

上次已经将redboot的基本框架搭建起来了,之后我们就要开始实质性的基于mx27ads硬件平台的移植:

1.先理清各个子HAL层的文件分布,否则很容易把各层所包含的文件弄混淆:

通用HAL:   hal/common/v3_0/include下的文件分布:

image

相对应的源码:

image

体系结构HAL:      /hal/arm/arch/v3_0/include下的文件分布:

image

相对应的源码文件:

image

变体HAL:    /hal/arm/mx27/var/v3_0/include下的文件分布:

image

相对应的源代码文件:

image

平台HAL:    /hal/arm/mx27/mx27ads/v3_0/include下的文件分布:

image

对应的源代码文件如下:

image

以下着重强调两点:

重点一:这几个文件夹下的头文件,在make的前期,会一个不漏的拷贝到

instal tree\include\cyg\hal文件夹下,而编译过程用引用的头文件,全部位于instal tree\include文件夹下,

所以你会发现所有源文件中对头文件的引用,都是基于这个目录的引用:比如:

#include

#include

#include

#include

#include

等等无一例外。

重点二:配置工具分不清当前所处理的文件是属于kernel,redboot还是driver;它也分不清楚哪是通用抽象层,哪是体系结构抽象层,哪是变体抽象层,哪是平台抽象层;而且,你给你的文件取阿猫还是阿狗,在它看来任何区别都没有。所以,上面窗口中的文件名hal_cache.h,var_io.h,mx27_misc.h等等,不是配置工具强制要求的,你可以取abc,也可以取xyz,工具都不会怪你的名字取得不好,另外,配置工具也没有要求你一定要加几个头文件和几个源文件,你将要实现的功能放在一个源文件里也好,分成几个源文件也行,这都可以按照你的风格随心而定。

2.熟悉一下MX27的硬件资源:

image

上面的框图可以说是纵横交错,复杂之极,但是如果你理解了它,你就觉得它错落有致,层次分明,丝毫感觉不到复杂的地方。

  • 内核ARM926EJ-S:内含双AMBA AHB总线接口(指令和数据),外部协处理器接口,MMU,16K指令cache和16K数据cache,还有ETM接口。

这些,全部包含在如下的小框图里:

image

呵呵,你别看上面这么大的图,内核只占了那么一点空间,其实这是整个芯片最核心的部分。

如果我们把这一部分放大来看,就会像如下所示:

image

再具体到接口信号,就会如下所示:

image

image

是不是感觉很神奇呀,我真得感到惊讶,每一种技术,当你静下心来去深究,都是一个丰富多彩的世界。

freescale公司能在这么一个内核上整合出那么多资源和接口,也可以说是鬼斧神工了,都是一些伟大的团队呀。

  • 总线控制

          系统的总线大体上可分成内核的高速总线AHB和外围总线IP,这两者之间是通过AIPI接口来协调的,MX27里有两个AIPI接口。每个AIPI可以带31个外围设备,且每个外围设备分配4K的存储空间。所以我们MX27基本所有的外围设备都受这两个接口的控制。

          系统还带有一个6*3的多层AHB交换开关MAX,ARM 指令AHB直接连到MAX的主接口0,而ARM 数据AHB直接连到MAX的主接口1,4个预备总线主接口分别连到MAX的主接口2~5,MAX的第1个从接口被作为主AHB设计,内部连接到PAHBMUX,下面带有6个从连接:AITC中断控制器,MCTL存储器控制,2个AIPI外围接口,1个ROMPATCH模块。MAX的第2个和第3从接口被连到从AHB,从AHB的每个接口只能从platform外访问。                   

  • 系统的存储空间MAP:

        image

这个图中第一列显示了8个512M的区域划分,中间那一列是第一个AHB和第二个AHB的某些区域的分解图,右边那一列是AIPI1和AIPI2的地址空间分布

详细说明表格如下:

image

image

image

image

细分AIPI1和AIPI2的现在映射:

image

image

继续细化就到具体的寄存器了:

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

image

3.了解一下MX27ADS开发板的外围资源

板子的框图如下:

image

开发板的存储空间映射:

image

到此,我们对MX27的硬件资源基本上清楚了。之所以费那么大篇幅来介绍这些,因为我们下面基于新平台的修改就会用到它们。

阅读(5212) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~