位置:51电子网 » 技术资料 » 嵌入式系统

修改Angel中与目标系统相关的源文件

发布时间:2008/12/23 0:00:00 访问次数:599

  在基于pid评估板的angel中,与目标系统相关的源文件主要有:

  ●target.s,包含了一些系统启动时需要的宏。

  ●makelo.c,当本文件被编译时可以产生一个汇编文件,在其中包含了一些在c语言源程序中定义的常量。这样,这些常量就可以同时在c语言代码和汇编程序代码中被使用。

  ●banner.n,包含了在angel启动时发送给主机上调试器的一些提示性信息。用户可以修改其内容,以反映当前通信信道的特征。

  ●device.c,定义各设备的寄存器基地址、数据结构,并设置各设备的中断处理程序。

  ●devconf.h,是主要的配置文件,其中包含了目标系统中各设备的声明、存储器的布局、数据栈的设置等。

  ●device drivers,包含了目标系统中的设备驱动程序。

  下面将比较详细地介绍这些源文件。

  (1)target.s文件

  target.s文件中包含了一些系统启动时需要的宏,这些宏将会被angel中的startrom.s和suppasm,s调用。下面简要介绍各宏的含义,紧接着给出基于linkup公司的l7205sdb评估板的angel中的相关代码。读者阅读这些代码,可以进一步明确各个宏的含义。

  ●unmaprom:这个宏被rom初始化程序startrom.s调用。在有些系统中使用这个宏,可以在系统复位时将rom存储器映射到地址0x0的空间;在系统初始化完成后,再将rom存储器映射到其物理地址所在的位置,而将ram存储器映射到地 址为0x0的空间。

  ●startupcode:这个宏被程序startrom.c调用,它主要完成目标系统的启动过程。

  ●initmmu:对于包含mmu的系统,这个宏完成mmu的初始化。在这个过程中,页表的存放位置非常重要。

  ●initmer:可以在这个宏中初始化系统中需要的时钟。angel本身并没有用到时钟。

  ●getsource:这个宏被程序interrupt.s调用。angel调用这个宏来判断一个中断是否是angel的中断,如果是,确定中断源。这个宏返回一个整数值,用来代表中断源,这个值与中断源的对应关系是在源文件devconf.h中确定的。

  ●cache_ibr:这个宏被程序suppasm.s调用,用来设置ibr。在基于strongarm的目标系统的angel中需要这个宏。

  程序3.1列出了基于linkup公司的l7205sdb评估板的angel中源文件target.s的代码。由于在开发基于arm的目标系统中,系统的初始化部分通常需要花费很大的精力,因此阅读这部分代码不仅可以了解移植angel,而且对于编写系统启动代码也很有帮助。注意:这部分代码主要用于说明如何移植target.s,它并不完整,相应的完整代码需要联系linkup公司得到。

  程序3.1 源文件target.s中的一些宏




  欢迎转载,信息来自维库电子市场网(www.dzsc.com)



  在基于pid评估板的angel中,与目标系统相关的源文件主要有:

  ●target.s,包含了一些系统启动时需要的宏。

  ●makelo.c,当本文件被编译时可以产生一个汇编文件,在其中包含了一些在c语言源程序中定义的常量。这样,这些常量就可以同时在c语言代码和汇编程序代码中被使用。

  ●banner.n,包含了在angel启动时发送给主机上调试器的一些提示性信息。用户可以修改其内容,以反映当前通信信道的特征。

  ●device.c,定义各设备的寄存器基地址、数据结构,并设置各设备的中断处理程序。

  ●devconf.h,是主要的配置文件,其中包含了目标系统中各设备的声明、存储器的布局、数据栈的设置等。

  ●device drivers,包含了目标系统中的设备驱动程序。

  下面将比较详细地介绍这些源文件。

  (1)target.s文件

  target.s文件中包含了一些系统启动时需要的宏,这些宏将会被angel中的startrom.s和suppasm,s调用。下面简要介绍各宏的含义,紧接着给出基于linkup公司的l7205sdb评估板的angel中的相关代码。读者阅读这些代码,可以进一步明确各个宏的含义。

  ●unmaprom:这个宏被rom初始化程序startrom.s调用。在有些系统中使用这个宏,可以在系统复位时将rom存储器映射到地址0x0的空间;在系统初始化完成后,再将rom存储器映射到其物理地址所在的位置,而将ram存储器映射到地 址为0x0的空间。

  ●startupcode:这个宏被程序startrom.c调用,它主要完成目标系统的启动过程。

  ●initmmu:对于包含mmu的系统,这个宏完成mmu的初始化。在这个过程中,页表的存放位置非常重要。

  ●initmer:可以在这个宏中初始化系统中需要的时钟。angel本身并没有用到时钟。

  ●getsource:这个宏被程序interrupt.s调用。angel调用这个宏来判断一个中断是否是angel的中断,如果是,确定中断源。这个宏返回一个整数值,用来代表中断源,这个值与中断源的对应关系是在源文件devconf.h中确定的。

  ●cache_ibr:这个宏被程序suppasm.s调用,用来设置ibr。在基于strongarm的目标系统的angel中需要这个宏。

  程序3.1列出了基于linkup公司的l7205sdb评估板的angel中源文件target.s的代码。由于在开发基于arm的目标系统中,系统的初始化部分通常需要花费很大的精力,因此阅读这部分代码不仅可以了解移植angel,而且对于编写系统启动代码也很有帮助。注意:这部分代码主要用于说明如何移植target.s,它并不完整,相应的完整代码需要联系linkup公司得到。

  程序3.1 源文件target.s中的一些宏




  欢迎转载,信息来自维库电子市场网(www.dzsc.com)



相关IC型号

热门点击

 

推荐技术资料

DFRobot—玩的就是
    如果说新车间的特点是“灵动”,FQPF12N60C那么... [详细]
版权所有:51dzw.COM
深圳服务热线:13692101218  13751165337
粤ICP备09112631号-6(miitbeian.gov.cn)
公网安备44030402000607
深圳市碧威特网络技术有限公司
付款方式


 复制成功!