当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: o-bookmark:
 

 

    摘要:tagsupport与bodytagsupport的区别主要是标签处理类是否需要与标签体交互,如果不需要交互的就用tagsupport,否则如果不需要交互就用bodytagsupport。 交互到底是什么意思呢?我的认识就是标签处理类是否要读取标签体的内容和改变标签体返回的内容。 这里需要注意的是tagsupport也可以有体,如果理解成tagsupport是没有体的标签,而bodytagsu......
    摘要:这是我完成的在大学完成的一个课题,终于可以把它放到网上去了,希望不会太迟。所有完成的源代码都有,包括实时测试,中断时间测试,上下文切换测试,rtlinux示例程序等。需要的人请给我email联系索取。有什么问题的可以直接在这里讨论或者给我email。我的email:ryan_joseph@163.net 本人现在在广州,极为想找到一个嵌入式方面的开发工作,或者是测试方面的工作,有意者请联系上面e......


Linux嵌入式实时操作系统开发与设计(七)
第四章  rtlinux应用程序设计

每个实时应用程序可以分为两部分:实时部分与非实时部分[2].非实时部分在用户空间执行,称为用户部分.实时部分要尽可能简单,只包含直接与时间相关的代码;由于硬件对时间的约束,低级的与硬件通信的代码一般也包含在实时部分.用户部分的代码主要实现为数据的处理,包括数据的发布.保存与用户界面.两部分之间的通信采用数据缓冲区. 【程序编程相关:Squid 详细介绍2

4.1  程序结构 【推荐阅读:代码生成器的存在价值

  【扩展信息:总结之Struts

图4.1所示的数据流程图是依照这个程序模型的典型实时应用程序.

 

图4.1  程序结构图

 

4.2  基本api

4.2.1  posix线程创建函数

就像前面介绍的那样,一个实时程序是由几个执行的线程组成的.线程是轻量级进程,它们共享共有的地址空间.在rtlinux中,所有的线程共享linux内核地址空间.

int pthread_create (pthread_t *thread, pthread_attr_t * attr,  void * (* start_routine)(void *),  void *arg)

这是rtlinux的标准posix线程创建函数.这个线程运行函数指针start_routine指向的过程,arg是这个函数的指针的入口参数.线程的属性由attr对象决定,可以为这个属性设置cpu号.堆栈大小等属性.设定若为null,将会使用默认属性.返回0表示成功创建线程,线程号放在thread所指向的空间;返回非0表示创建失败.线程的属性决定在特定的cpu上创建线程(pthread_attr_setcpu_np),是否使用fpu(pthread_attr_setfp_np).

 

int pthread_attr_init (pthread_attr_t *attr)

初始化线程运行的属性.

 

int pthread_ attr_setschedparam (pthread_attr_t *attr,  const struct sched_param *param)与int pthread_ attr_setschedparam (const pthread_attr_t *attr, struct sched_param *param)

这两个函数根据程序的需要相应地从attr中设定/取得线程的运行参数.param是为调度的sched_fifo与sched_rr策略定义的属性.

 

int pthread_attr_setcpu_np (pthread_atte_t *attr, int cpu)与

int pthread_attr_getcpu_np (pthread_atte_t *attr, int cpu)

设定/取得线程运行的cpu号.在smp机器上允许线程在一个特定的cpu上运行.

 

int pthread_cancel (pthread_t thread)

取消一个运行的线程.

int pthread_delete_np (pthread_t thread)

删除一个线程,并且释放该线程的所有资源.返回0表示成功删除,非0表示删除失败.

 

pthrad_t pthread_self (void)

获得当前正在运行的线程号.

 

clockid_t rtl_getschedclock (void)

获得当前调度方法的时钟.

 

int rtl_setclockmode (clockid_t clock, int mode, hrtime_t mode_param)

设置当前的时钟模式,mode=rtl_clock_mode_oneshot时是非周期(一次性)模式mode_param参数无用;mode=rtl_clock_mode_periodic时是周期模式,mode_param参数是周期的长度.(有关时钟模式见3.4节的说明)

 


...   下一页
 · 如何计算java对象占用的内存     »显示摘要«
    摘要:java有一个很好的地方就是java的垃圾收集机制,这个机制集成于jvm的,对程序员来说是隐藏且不透明的。这种情况下,如何得到某个对象消耗的内存呢?   曾经看到过有人用以下方法来计算:在生成该object的前后都调用java.lang.runtime.freememory()方法,然后看两者之差即为该object消耗的内存量。 这种方法的代码是: long totalmem......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE