导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→发表看法:[MICKEYMOUSE]Realview MDK中实时



No.43569
作者:MICKEYMOUSE
邮件:zhanghf@embedinfo.com
ID:104569
登陆:13次
文章数:28篇
最后登陆IP:183.38.85.6
最后登陆:2011/6/29 15:33:54
注册:2008/4/1 15:50:28
财富:301
发帖时间:2008/5/15 11:46:03
发贴者IP:218.18.131.108
标题:MICKEYMOUSE:Realview MDK中实时操作系统内核RTX的使用[推荐]
摘要:No.43569Realview MDK中实时操作系统内核RTX的使用[推荐]      针对复杂的嵌入式应用,MDK内部集成了由ARM开发的实时操作系统(RTOS)内核RTX,它可以帮助用户解决多时序安排、任务调度、定时等工作。值得一提的是,RTX可以无缝集成到MDK工具中,是一款需要授权的、无版税的RTOS。RTX程序采用标准C语言编写,由RVCT编译器进行编译。

使用RTX内核,首先打开Options for Target,选择Target标签,将Target标签中的Operating下拉框改为 RTX Kernel,如图1所示。

 


按此在新窗口浏览图片


图1 Options for Target

这样,无需任何定义和声明,可以直接调用操作系统的函数。笔者通过一个实验进行说明。该实验利用RTX在Cortex-M3上实现多任务。Cortex-M3处理器是ARM首次针对低成本应用提供技术,减少使用内存,并在极小的RISC内核上提供优异的性能。此外,基于系统外设的高度集成化最佳地使用了芯片空间。RTX内核非常小,效率高,正好适用于Cortex-M3上,达到优化系统性能目的。

该实验设计了四个任务。第一个任务用来初始化其他任务,第二个任务用来不断读取AD采样的值;第三个任务用来在LCD屏上动态显示采样值;第四个任务用来根据采样值控制LED灯闪烁。程序开始运行时首先运行init任务,该任务用来初始化其他三个任务t_phase_ADC,t_phase_LCD,t_phase_LED。任务创建完毕后,三个任务都处于READY状态。在英蓓特STM103V100开发板上,旋转AD按钮,进行采样(任务2),采样的值显示在LCD屏上(任务3),同时通过采样值控制LED灯闪烁的速度(任务4)。使用操作系统OS_TID定义任务名称t_phase_ADC,t_phase_LCD ,t_phase_LED。

OS_TID t_phase_ADC;                            /* assigned task id of task: 2 */

OS_TID t_phase_ LCD;                            /* assigned task id of task: 3 */

OS_TID t_phase_LED;                           /* assigned task id of task: 4 */
 


使用os_tsk_create创建任务t_phase_ADC,t_phase_LCD,t_phase_LED。os_tsk_delete_self删除自身任务,实行任务切换。 任务的创建和初始化是在主函数中定义的。

int main (void) {

   SetupClock();

  NVIC_Configuration();

  SetupADC  ();

  SetupTIMER1();

  SetupWWDG();

  lcd_init  ();

  lcd_clear ();

  lcd_print ("Motor Speed Is:"); 

  os_sys_init (init);                    /* Initialize RTX and start init    */

}

void init (void) __task {

   t_phase_ADC = os_tsk_create (phase_ADC, 0);  /* start task phase2   */

   t_phase_LCD = os_tsk_create (phase_LCD, 0);   /* start task phase3   */

   t_phase_LED = os_tsk_create (phase_LED, 0);   /* start task phase4   */  ......

>>返回讨论的主题



  发表回复
用户名   *您没有注册?
密码   *
验证码   * .
标题   *
心情
随便说说    我回答你    最新发现    得意的笑   
气死我了    真是没劲    坚决同意    表示反对   
大家过来    好奇怪哟    懒得理它    大家小心   
文件上传
内容


字体:      字体大小:    颜色:
粗体 斜体 下划线 居中 超级连接 Email连接 图片 Flash图片 Shockwave文件 realplay视频文件 Media Player视频文件 QuickTime视频文件 引用 飞行字 移动字 发光字 阴影字 查看更多的心情图标 背景音乐
点击加入表情
                         
选项
有回复时用短消息通知您?

   




老古网执行:16毫秒 最大:5328毫秒 查询6次