juntianya

    1. 一个都不会做怎么办,跪求解救啊 28/6261 模拟电子 2014-10-25
      你们老师太牛叉了  感觉都可以拿去做笔试题了   一点都不应试教育啊
    2. 顶个贴 看代码 谢谢分享
    3. 学习,谢谢分享
    4. 开关电源助理工程师面试题 317/51362 模拟与混合信号 2013-05-25
      看看答案
    5. 技巧:给笔记本电脑做个音频放大器 97/20699 单片机 2013-04-19
      感谢分享
    6. 电子行业主要公司 平均工资 排行榜 102/21539 单片机 2013-04-11
      好奇:pleased:
    7. 单节锂电池充电IC可以用TP4056。5V升压IC就自己找吧,也不知道你要求多大的功率额……
    8. ADI实验室电路合集(第一册) 1465/163327 ADI参考电路 2012-07-31
      回复查看……
    9. UC/OSII菜鸟求助一个问题。 6/3496 实时操作系统RTOS 2012-06-27
      TASK_LED第一次释放信号量后由于等待延时的原因产生任务切换,系统运行TASK1。TASK1执行至第二次等待信号之时进入等待状态,产生任务切换。注意:由于此时TASK_LED尚在等待延时结束而且你并没有其他任务,因此系统进入统计任务或空闲任务,直至2S的延时结束系统自动切换到TASK_LED。TASK_LED第二次释放信号量,随后等待2S延时结束。任务切换,系统运行TASK1,关闭LED。。。。。
    10. 请教任务切换问题 6/3751 嵌入式系统 2012-06-17
      OSTaskSuspend(B),这句话的意思是将B任务挂起。但是,这个函数时如何完成对于任务的挂起的呢?说白了,就是两步。第一步:将这个任务置为OS_STAT_SUSPEND(挂起状态),这样做可以保证任务在未被恢复之前将不会被涉及到OS的任务调度中去。第二步:调用OS_Sched()函数,进行任务切换。 而在我们现在讨论的场景之下,第一步被执行了,但是第二步却被阻止了。于是,由于没有执行任务调度,占用CPU的还是任务B,OSTaskSuspend(B)函数执行完成以后又返回到了任务B当中执行下一条代码,也就是OSSchedUnlock()函数,完成了调度开锁和任务调度操作。 说白了,就是将挂起函数的第二步拖延到调度开锁以后再执行。
    11. 电子面试题 267/33935 工作这点儿事 2012-06-17
      kankna
    12. 请教任务切换问题 6/3751 嵌入式系统 2012-06-17
      额……第二句 OSLockNesting++;应该是OSLockNesting--;吧? 这样做可以。 不过直接对OSLockNesting自增和自减而不做任何的保护是有一定风险的,会影响系统的稳定性。你可以用OSSchedLock ()和OSSchedUnlock()来代替,考虑到OSSchedUnlock()中会进行任务调度的问题,可以把这句放到 OSTaskSuspend(B)之后。 又或者至少使用OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()来对OSLockNesting自增和自减做保护。 当然以上的两种做法主要是考虑到系统的稳定性问题。如果你的程序本身比较简单的话,就无关紧要了,直接按你自己说的来就行了。恕我啰嗦了,呵呵……
    13. 请教任务切换问题 6/3751 嵌入式系统 2012-06-15
      err = OSTaskSuspend(OS_PRIO_SELF);//挂起当前任务--自动巡航 当这条语句被执行结束之后,任务AutoModeTask即被挂起,后续的代码不被执行(也就是说StopModeTask这个任务是无法被激活的,而2、3也不会输出),由于此时你的其他两个任务StopModeTask、ManualModeTask也都处于被挂起的状态。因此,此时系统实际上是在运行空闲任务或者统计任务。 这是根据你给出的代码所做的推测,因为不清楚你其他部分的代码是怎么写的,所以仅供参考。
    14. OS_ENTER_CRITICAL()与 OSTimeDly(OS_TICKS_PER_SE... 4/6623 嵌入式系统 2012-06-15
      别听二楼胡说。之所以会产生你所说的现象,原因在于OSTimeDly()这个函数。在这个函数源代码中存在着OS_EXIT_CRITICAL()这句话。也就是说,你在任务中的操作失效了。但是警告下,在简单的场景下,你可以像现在这样子写,但如果是多个任务,并且具有一定复杂度的时候你再这样写,我保证你程序跑飞……
    15. uCOS源码求教 6/3855 实时操作系统RTOS 2012-06-05
      第二个问题。判断是否仍有空余使用的不是OSTCBTbl,而是OSFreeList。OSTCBPrioTbl在你贴出的那一部分代码中是用于判断你想要建立的任务的优先级是不是已经被其它已建立的任务占用了,而不是判断空余的。
    16. uCOS源码求教 6/3855 实时操作系统RTOS 2012-06-05
      先说第一个问题吧,if (ptcb != (OS_TCB *)0) 这句话在你的理解中是判断TCB是否为0,也就是TCB是否为未使用的。 但是,实际上,uc/os在这里判断的是在空余TCB池中还有没有TCB,而非是针对TCB本身进行判断。OSTCBFreeList是什么?它是空余TCB链表的表头,当它的值为0时,就意味着已经没有空余TCB了。这就是为什么这段代码最后返回的是 return (OS_NO_MORE_TCB); //没有更多的任务控制块被分配,将无法创建新的任务 而不是TCB已使用的信息了。至于这个TCB是不是为空?抱歉,这里不关心这个问题。
    17. uCOS源码求教 6/3855 实时操作系统RTOS 2012-06-05
      第一点,你的理解出错了。代码中查找的是空余的TCB,注意是“空余”。ptcb = OSTCBFreeList;这句话是获取空余TCB链表中OSTCBFreeList所指向的那个TCB,如果链表中已经没有空余TCB了,那么OSTCBFreeList=0,也就是ptcb 所赋的值其实是0。 第二点,OS_TCBPrioTbl和OSTCB事两回事,你搞混了。
    18. ucos 临界保护 问题 10/8957 实时操作系统RTOS 2012-06-05
      确实不用加,理由上面几位都说了。但是,这里有一个前提:你是在做实验,而不是在做产品。如果你是做产品,那么你还是加上吧,这是牵涉到一个后期调试还有代码稳定性的问题……
    19. uCOS-II中任务级的任务切换问题! 3/4484 实时操作系统RTOS 2012-06-02
      那啥,你没明白我的意思。任务的切换不一定是在中断函数中完成的。但是邵贝贝的那句话也没有错,原因是从切换函数(就是汇编代码那里)进入到新的任务执行,这一步必然是需要使用中断返回指令来完成的。 至于你提出的那个替换的问题,抱歉我没有研究过80x86的案例,暂时不能回答,因为这是和硬件相关的,你不能直接就断言可以这样做,至少只更换这一句代码……我估计悬。
    20. stm32中断遇到的问题 5/3775 stm32/stm8 2012-06-02
      EXTI_GenerteSWInterrupt函数未定义

最近访客

< 1/1 >

统计信息

已有252人来访过

  • 芯积分:--
  • 好友:3
  • 主题:3
  • 回复:57

留言

你需要登录后才可以留言 登录 | 注册


稔珏 2012-6-25
查看全部