1 / 102
文档名称:

ecos增值软件包的详细使用说明.doc

格式:doc   页数:102页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

ecos增值软件包的详细使用说明.doc

上传人:fxl8 2013/5/3 文件大小:0 KB

下载得到文件列表

ecos增值软件包的详细使用说明.doc

文档介绍

文档介绍:ecos增值软件包的详细使用说明
       
    一些网友来信反映说ecos增值软件包的范例比较少,不太会用,希望增加详细的使用说明。其实很多关于ecos的书上都有使用方法的介绍,不过考虑到很多用户第一次使用ecos,我还是觉得有必要再给出一些详细的使用说明。因为网友的问题重复的比较多,就不一一回信了,统一写成文档共享。主要想说明线程、IO操作、中断、TCP/IP协议栈、文件系统、GUI等的使用方法及其他感觉有必要阐述的内容。
   
    在开始前先回答网友的几个问题。
    1、ecos for smartarm2200经常死机的原因是PSRM读写速度比较慢(它内部用SDRAM,外部是SRAM接口,性价比高?),用较高速度访问时容易出现采样错误,把PSRAM读写访问长度各增加1个时钟周期后,系统就很稳定了,不再出现死机现象,升级版本已经提供。
    2、关于在裸机上跑ping、TFTP、xmodem,我没有单独做过,不过redboot本身就是不带内核的ecos应用程序,其源码可以直接用在裸机上,这部分源码在ecos中已经提供了,自己看看吧。您发来的程序,我实在没时间分析了:-(
    3、关于单片机实现“服务端”方面的程序资料,我没有具体的文字资料,,建议直接看源码。
    4、关于monitor监控程序的实现原理,主要就是用软件中断指令替换断点处的语句,引发异常中断后进入处理程序,收集现场信息,然后通过通信接口部分传送到宿主机显示出来。难点是单步step调试断点的插入需要知道下一条语句的位置,不过好在有跟踪T标志,实现就容易多了。GDB的使用和串行通信协议见《Debugging with GDB》。软件包里提供了全部实现源码。
   
    *********************
    * 第一讲多任务编程*
    *********************
    第一次使用ecos,当然要先编个hello程序啦。那就编个多任务的,恩,3个线程任务同时打印信息,A线程每秒打印一次,B线程每3秒打印一次,C线程每6秒打印一次。
    这个程序在ucos51演示程序中也有,就是demo1。现在来比较一下二者的异同。
    从总体看,ecos和ucos的应用程序大同小异,都有线程/任务创建、线程/任务函数、堆栈等内容,只是API函数名字不同。
    ecos应用程序没有从main开始,而是从cyg_start启动,在cyg_start中创建test线程,再在test中创建3个实际的工作线程。
    ecos的命名规则很有层次感,比如:cyg_thread_delay(),cyg表示cygnus公司出品,thread表示这个函数是与线程相关的(如:线程创建、延时),delay表示延时。怎么样?是不是很好记忆。比ucos的OSTimeDly好记吧!所有cygnus公司提供的API函数前面都带cyg前缀,你自己写的函数可以加上你的标识前缀,如我自己定义的函数前加yy前缀。
   
    cyg_thread_create(//
创建线程
        线程优先级,
        线程函数指针,
        线程函数参数,//对应线程函数的(cyg_addrword_t data)入口参数
        线程名,      //用于调试目的
        堆栈基址,
        堆栈大小,
        线程句柄,
        保存此线程内核数据结构的存储空间
        );
   
    cyg_thread_resume(线程句柄);   //线程恢复
   
    cyg_thread_delay(延时时间);    //以10ms为单位
   
    cyg_scheduler_start();         //启动调度器开始工作。该函数被调用后不会返回,类似ucos中的OSStart();
   
    好了,第一个程序就是这么简单,跟ucos很像吧,其实,所有的RTOS都差不多的,只是函数名字不同罢了。ecos和ucos一样都是直接使用平板内存,没有特权概念,不过,ecos比ucos更高级,包含了TCP/IP栈、文件系统、GUI,功能也更强大,可以用C++开发。这个演示应用程序可以不加修改地用在任何支持ecos的平台上,例如:EASYARM2200和SMARTARM2200上的运行效果是一样的,这就是OS的好处,不用再关心定时器初始化,串口编程,抹平了硬件差异,令编程如此简单,EASY。
    下面是测试程序运