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

中文资料:vxwork bsp的制作2

发布时间:2008/8/5 0:00:00 访问次数:647

  vxworks下bsp制作教程1 vxworks概述vxworks是wind river公司的产品。作为一种商用的嵌入式操作系统?vxworks拥有强大的功能和友好的用户界面。与免费的嵌入式操作系统相比?商用操作系统经过严格的测试?具有良好的实时性?易用性和大量的文档支持?但是它的源码是不公开的并且价格昂贵;免费的嵌入式操作系统有很多?大都是linux的移植?公开源代码?但缺乏文档?要对照源码进行开发。

  2 bsp的流程bsp流程分成两部分。首先是位于bootrom中的boot代码?它的作用是实现配置硬件和启动vxworks下载程序。接下来是下载后跳转到vxworks的入口地址运行操作系统和应用程序。

  流程入图:rom中的启动代码部分:rominit在文件在文件rominit.s中。它是运行的开始?实现这一部分是首先的。

  它实现判断启动类型?配置内核和非内核寄存器以及内存和外围设备的读写时序?因此可以在此处加入内存检测功能。在bsp中无法进行调试?只能通过闪灯实现云信正确与否的判断。闪灯功能函数也要在此加入。

  判断启动类型和配置寄存器?这一部分不需要改动。

  配置内存和外围设备读写时序?要进行改动。这一部分的sdram?rom?flash?fpga有相应的模板可以参考。它的实现是通过使用宏定义来实现的。但是要改动的话也不难?一般是改动空间大小的屏蔽位?读写位数?以及片选寄存器or和br.至于特殊外设的读写有待讨论。

  内存检测在这里实现较复杂?它根据相应的内存检测算法实现。主要是对地址线和数据线的检测。通过写入数据再会读出数据来判断。使用"走步1"和"走步0"算法。这一部分较多的依赖硬件?可移植性较差?根据自己的单板改动。

  闪灯在这一部分是强烈推荐的。因为闪灯才能定位程序的运行位置。闪灯函数可移植?一般要改动?因为灯可能接在不同的i/o口上。另外注意860sar的port b是32位的。具体的端口见相应的cpu的i/o口的参数?配置相应的寄存器。

  rominit在函数结尾跳入romstart. romstart在bootint.c文件中。它是系统运行的第一个c函数。这一部分是wind river公司提供的标准程序?一般不需改动。该函数是c的入口函数,由汇编程序调用,主要完成清内存,将rom中的程序拷贝到ram,解压并跳至解压后的程序处运行。

  usrinit在bootconfig.c文件中。它主要是实现硬件的初始化。其中涉及到串口?网口的初始化?console的配置等。

  其中串口和网口的配置是bsp的重要部分?但860cpu对串口和王口有很好的支持?只要做很小的改动即可?串口很简单?网口较复杂一些。

  usrroot在bootconfig.c文件中。它主要是实现vxworks文件的下载?并且跳转到vxworks的入口地址。从而进入到操作系统中去。

  vxworks文件中的代码部分:sysinit在sysalib.s中。它是vxworks的启动代码。它与rominit的作用相同?对于这个文件?我们一般不需要去改动它。

  usrinit在usrconfig.c中。它的作用与boot中的usrinit的作用相同?

  他们都调用syslib.c中的子函数。实现相同的硬件初始化功能。

  usrroot在usrconfig.c中。它的作用与boot中的usrroot的作用类似。但是这里的usrroot是最终进入到应用程序中去。



  vxworks下bsp制作教程1 vxworks概述vxworks是wind river公司的产品。作为一种商用的嵌入式操作系统?vxworks拥有强大的功能和友好的用户界面。与免费的嵌入式操作系统相比?商用操作系统经过严格的测试?具有良好的实时性?易用性和大量的文档支持?但是它的源码是不公开的并且价格昂贵;免费的嵌入式操作系统有很多?大都是linux的移植?公开源代码?但缺乏文档?要对照源码进行开发。

  2 bsp的流程bsp流程分成两部分。首先是位于bootrom中的boot代码?它的作用是实现配置硬件和启动vxworks下载程序。接下来是下载后跳转到vxworks的入口地址运行操作系统和应用程序。

  流程入图:rom中的启动代码部分:rominit在文件在文件rominit.s中。它是运行的开始?实现这一部分是首先的。

  它实现判断启动类型?配置内核和非内核寄存器以及内存和外围设备的读写时序?因此可以在此处加入内存检测功能。在bsp中无法进行调试?只能通过闪灯实现云信正确与否的判断。闪灯功能函数也要在此加入。

  判断启动类型和配置寄存器?这一部分不需要改动。

  配置内存和外围设备读写时序?要进行改动。这一部分的sdram?rom?flash?fpga有相应的模板可以参考。它的实现是通过使用宏定义来实现的。但是要改动的话也不难?一般是改动空间大小的屏蔽位?读写位数?以及片选寄存器or和br.至于特殊外设的读写有待讨论。

  内存检测在这里实现较复杂?它根据相应的内存检测算法实现。主要是对地址线和数据线的检测。通过写入数据再会读出数据来判断。使用"走步1"和"走步0"算法。这一部分较多的依赖硬件?可移植性较差?根据自己的单板改动。

  闪灯在这一部分是强烈推荐的。因为闪灯才能定位程序的运行位置。闪灯函数可移植?一般要改动?因为灯可能接在不同的i/o口上。另外注意860sar的port b是32位的。具体的端口见相应的cpu的i/o口的参数?配置相应的寄存器。

  rominit在函数结尾跳入romstart. romstart在bootint.c文件中。它是系统运行的第一个c函数。这一部分是wind river公司提供的标准程序?一般不需改动。该函数是c的入口函数,由汇编程序调用,主要完成清内存,将rom中的程序拷贝到ram,解压并跳至解压后的程序处运行。

  usrinit在bootconfig.c文件中。它主要是实现硬件的初始化。其中涉及到串口?网口的初始化?console的配置等。

  其中串口和网口的配置是bsp的重要部分?但860cpu对串口和王口有很好的支持?只要做很小的改动即可?串口很简单?网口较复杂一些。

  usrroot在bootconfig.c文件中。它主要是实现vxworks文件的下载?并且跳转到vxworks的入口地址。从而进入到操作系统中去。

  vxworks文件中的代码部分:sysinit在sysalib.s中。它是vxworks的启动代码。它与rominit的作用相同?对于这个文件?我们一般不需要去改动它。

  usrinit在usrconfig.c中。它的作用与boot中的usrinit的作用相同?

  他们都调用syslib.c中的子函数。实现相同的硬件初始化功能。

  usrroot在usrconfig.c中。它的作用与boot中的usrroot的作用类似。但是这里的usrroot是最终进入到应用程序中去。



相关IC型号

热门点击

 

推荐技术资料

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


 复制成功!