这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » 悠龙(μTenux系统)开发进程贴--智能--物联

共28条 3/3 1 2 3 跳转至
高工
2013-07-31 15:33:24     打赏
21楼

11. 实验十 (系统时间管理)


1. 概念学习

    系统时间管理主要注意三点:相对时间(REL TIM)、系统时间(SYS TIM)、超时的时限(TMO);

    1.1 相对时间(REL TIM):用作系统调用超时,定时等计时使用,时间基准为1ms,是一个32位的无符号整数,即最大可以设定的时间长度为65535ms。

    1.2 系统时间(SYS TIM):用作表示系统当前时间,改变系统时间不会影响相对时间,而系统时间也是以1ms为时间基准,时间基准是一个64位的有符号整数,因处理器为32位的,因些系统时间需要定义自已的结构体:

    typedef struct systim{

    W hi;

    UW lo;

    }SYSTIM;

    1.3 超时的时限(TMO):用作系统调用的超时处理。时间基准同样是1ms,是一个32位的无符号整数,需要任务作进程作无限制等待时可以使用语句:TMO_FEVR(=-1);

    相关函数:

    设置系统时间: ER ercd=tk_set_tim(SYSTIM *pk_tim)
    获得系统时间:ER ercd=tk_get_tim(SYSTIM *pk_tim)
    获得系统工作时间:ER ercd=tk_get_otm(SYSTIM *pk_tim)


2. 实验操作


3. 程序分析


高工
2013-07-31 16:25:14     打赏
22楼

12. 实验十一 (周期性处理)


这一章先放在这里,因为在看教程时没有看懂,预习都不算,目前有个问题,就是那个周期性指的是整个操作系统休眠还是用于管理系统中的某个任务,猜是整个系统,因为某个任务要休眠的话可以直接用前几张的延时函数就可以解决或者任务的休眠函数。先暂时放在这里是为了回去做完实验后再更新……

1. 概念学习


2. 实验操作


3.程序分析


高工
2013-07-31 16:53:48     打赏
23楼

13. 实验十二 (警报处理)


1. 概念学习

    应用环境:

    警报处理比较容易理解,这里所说的报警处理的依据是时间长度,即设定的延时是否到达,与其他因素无关。从激活某一个ID的报警处理的函数参数中的时间参数类型(RELTIM)可以看出,这里的延时长度仍然是以1ms为基准,且最多设置65535ms的延时长度。

    报警程序在运行时属于与任务无关的部分,对任务状态的切换有分派延迟,即任务状态的切换请求会等到已被触发启动的报警处理程序结束后才执行。

    相关函数:

    创建警报处理:ID almid = tk_cre_alm(T_CALM * pk_calm)

    启动警报处理:ER ercd = tk_sta_alm(ID almid,RELTIM almtim)

    停止警报处理:ER ercd = tk_stp_alm(ID almid)

    删除警报处理:ER ercd = tk_del_alm ( ID almid )

    查询警报处理:ER ercd = tk_ref_alm(ID almid, T_RALM * pk_ralm)

    警报处理程序形式(采用C语言编写,属性指定TA_HLNG)
    Void AlarmHandler (VP_INT exinf ){
            // 实际的处理代码在这下面添加
           return;
    }


2. 实验操作


3. 程序分析


高工
2013-08-01 10:06:58     打赏
24楼

14. 实验十三 (中断处理)




1. 概念学习

    概念:

    uT/Keunel 规范中有两种类型的中断:1. 包括设备引发的外部中断;2. CPU异常产生的中断。

    每个中断都有一个中断号,这个中断号可定义一段中断服务程序。中断处理函数可以设计成直接启动的,基本上无须操作系统的干预;同样也可以通过一个高级语言的支持函数来启动。 中断管理函数用于执行外部中断及CPU异常等处理操作。

    uT/Kernel的中断是可嵌套的中断,在低优先级服务函数运行的过程中可能会被高优先级的中断停止,待高优先级中断完成后才能继续执行低优先级中断,最后等所有中断执行完成后继续执行其他任务,具体如下图:

    相关函数:


    定义中断处理程序:ER ercd=tk_def_int(UINT dintno, T_DINT *pk_dint)

    从中断处理程序中返回:void tk_ret_int( )

    禁止所有外部中断:DI(UINT intsts)

    允许所有外部中断:EI(UINT intsts)

    获得存放在 intsts 中外部中断禁止的状态 BOOL isDI( UINT intsts )


2. 实验操作【待更新】



3. 程序分析


高工
2013-08-01 13:18:31     打赏
25楼

15. 实验十四 (系统状态管理)



1. 概念学习

    概念:

    系统状态管理函数是用来改变和查询系统状态的函数,这些函数所提供的功能为:翻转队列中的任务优先级、并取出处于运行状态的任务ID、禁止或使能任务派送、查询上下文和系统,以及查询uT/Kernel版本。

    相关函数:

    翻转就绪队列: ER ercd = tk_rot_rdq ( PRI tskpri )

    获取任务标识符: ID tskid = tk_get_tid ( ) 

    禁止分派: ER ercd = tk_dis_dsp ( ) 

    允许分派; ER ercd = tk_ena_dsp ( ) 

    查询系统状态: ER ercd = tk_ref_sys ( T_RSYS *pk_rsys ) 

    查询版本信息:ER ercd = tk_ref_ver ( T_RVER* pk_rver )


2. 实验操作



3. 程序分析



高工
2013-08-02 15:36:29     打赏
26楼
今天发现一个很严重的问题啊,就是利用悠龙写好的框架测试学习操作系统还好办,但是如果要加其他的东西到系统里面,还是麻烦啊,因为我等还没有认真地看AT91SAM3S4C的器件及编程手册啊,捉急了啊

高工
2013-08-02 16:06:54     打赏
27楼
你不捉急?

高工
2013-08-02 17:20:19     打赏
28楼
果断把STM32开发板拿出来整

共28条 3/3 1 2 3 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]