新闻中心

EEPW首页 > 手机与无线通信 > 设计应用 > 基于mC/OS-II的视频监控终端无线网络接口设计

基于mC/OS-II的视频监控终端无线网络接口设计

作者:时间:2011-08-29来源:网络收藏
与CPU或编译器

本文引用地址:http://www.eepw.com.cn/article/155834.htm

  相关的include文件

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

  sys_arch操作系统相关部份

  sys_arch. [ch]中的内容是与操作系统相关的一些结构和函数。实现了消息队列结构OSQ及其操作,但没有对消息队列中的消息进行管理,因此不能直接使用,必须重新实现。对队列本身的管理可利用自己的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();

  }

  结语

  本有机地结合了嵌入式设备和无线传输,符合嵌入式和结合的发展趋势。同时,这一也对其它系统的发展起到一定的借鉴意义。

tcp/ip相关文章:tcp/ip是什么



上一页 1 2 下一页

评论


相关推荐

技术专区

关闭