您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>电子元器件>接口定义>

与CPU或编译器 - 基于mC/OS-II的视频监控终端无线网络接口设计

2011年08月24日 15:13 本站整理 作者:网络 用户评论(0
与CPU或编译器

  相关的include文件

  在/src/arch/include/arch 目录下的cc.h、cpu.h、perf.h中有一些与CPU或编译器相关的定义,如数据长度、字的高低位顺序等,这应该与用户实现mC/OS-II时定义的数据长度等参数一致。一般情况下C语言的结构体struct是4字节对齐的,但是在处理数据包的时候,LwIP是通过结构体中不同数据的长度来读取相应数据的,所以,一定要在定义struct的时候使用_packed关键字,让编译器放弃struct的字节对齐。

  sys_arch操作系统相关部份

  sys_arch. [ch]中的内容是与操作系统相关的一些结构和函数。mC/OS-II实现了消息队列结构OSQ及其操作,但没有对消息队列中的消息进行管理,因此不能直接使用,必须重新实现。对队列本身的管理可利用mC/OS-II自己的OSQ操作完成,然后使用mC/OS-II中的内存管理模块实现对消息的创建、使用、删除回收,两部分综合起来即可形成LwIP的消息队列功能。

  sys_thread_new 创建新线程

  在mC/OS-II 中,没有线程(thread)的概念,只有任务(Task)。它已经提供了创建新任务的系统API调用OSTaskCreate,因此只要把 OSTaskCreate封装一下,就可以实现sys_thread_new。需要注意的是LwIP中的thread并没有mC/OS-II中优先级的概念,实现时要由用户事先为LwIP中创建的线程分配好优先级。

  lib_arch中库函数的实现

  LwIP协议栈中用到了8个外部函数,这些函数通常与用户使用的系统或编译器有关,因此应由用户自己实现。

  LwIP的设备驱动程序接口

  LwIP与PPP的程序结构简要描述如下:

  #define NTHREADS 3

  #define STACKSIZE( CYG NUM_HAL_STACK_SIZE_TYPICAL + 4096 )

  #define NTHREADS 3

  #define STACKSIZE ( CYG NUM_HAL_STACK_SIZE_TYPICAL + 4096 )

  err = cyg_io_lookup( "/dev/ser1", &handle1 );

  if (ENOERR == err) {

  middleblink();

  } else {

  leftblink();

  };

  pppInit();

  pppSetAuth(PPPAUTHTYPE_ PAP," pppuser","pppassword");

  pd=pppOpen(handle1,ppp LinkStatus Callback,NULL);

  void pppLinkStatusCallback (void * ctx, int errCode, void * arg) {

  skipblink();

  }

  结语

  本设计有机地结合了嵌入式终端设备和无线传输,符合嵌入式和无线网络结合的发展趋势。同时,这一接口设计也对其它视频监控系统的发展起到一定的借鉴意义。

非常好我支持^.^

(0) 0%

不好我反对

(0) 0%

( 发表人:小兰 )

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!