-
确认个人信息无误,感谢eeworld
-
信息确认无误,非常感谢
-
个人信息无误,发送所获得礼品实物,感谢EEWORLD和NXP
-
感觉是移植适配的时候有问题,OSStart只有在启动的时候调用一次,正常运行中任务切换是不会调到那儿去的;如果在OSTimeDlyHMSM里出不来,感觉是任务不能切换,可以查查OS_TASK_SW是不是有问题
-
四个任务的优先级分别是多少?如果是task0的优先级最高,task1和task3不运行可以理解,但是task2应该会运行啊,你确定task2没有调用OSSemPend么?LED_ON2()肯定没执行么?
-
建议参考uCOS的user manual,里面有详细的说明所有的scheduling points
A task signals or sends a message to another task;
A task calls OSTimeDly() or OSTimeDlyHMSM();
A task waits for an event to occur and the event has not yet occurred;
If a task aborts a pend;
If a task is created;
If a task is deleted;
If a kernel object is deleted;
A task changes the priority of itself or another task;
A task suspends itself by calling OSTaskSuspend();
A task resumes another task that was suspended by OSTaskSuspend();
At the end of all nested ISRs;
The scheduler is unlocked by calling OSSchedUnlock();
A task gives up its time quanta by calling OSSchedRoundRobinYield();
The user calls OSSched();
-
https://www.micrium.com/download ... 1768&supported=true
-
谢谢EEworld,信息确认无误~
-
切换栈主要是为了中断使用自己独立的栈,这样就不用在每个任务的栈空间中给中断预留了
中断嵌套时,只要压栈和出栈成对使用,高优先级中断退出后栈指针还是会回到中断产生前的位置
-
铢量寸度 发表于 2016-1-15 19:40
这个叫算是嵌入式了?
不算么?
-
铢量寸度 发表于 2016-1-15 15:16
对对对,就是它。 但是我的英文不好,找不出其中的重要信息,你能帮忙看看数据么
先看明白IIC的时序,写51程序模拟IIC;然后主要根据第5章写读写芯片寄存器的接口;然后根据6、7章各个寄存器的定义及加速度的算法来处理数据,大概就是这么个流程吧。总得自己搞一遍,如果想做嵌入式,读懂芯片手册是必须的技能
-
是这款吗?
http://wenku.baidu.com/link?url= ... bngWXQWsNEShNtktAea
数据手册上写的CS是
CS SPI enable,I2C/SPI mode selection (1: I2C mode; 0: SPI enabled)
将CS配置为1后,得看手册上IIC的时序图,用51的IO端口模拟IIC和芯片通信
-
delay_ms怎么实现的?是不是死等,不会释放CPU?
-
OS_CFG_SCHED_ROUND_ROBIN_EN打开了不?
-
报什么错,方便贴出来不?
-
信息确认正确
-
本帖最后由 JasonWangSE 于 2014-10-22 23:13 编辑
貌似和Xilinx的Zynq系列是竞争对手
-
可以先起一个任务,里面做完AD再做DA,看有没有问题。会不会你的转换程序只是发起了转化,并没有等待转换完成,导致一个正在转换的时候另一个发起了转换?
-
把mov r0,pc张成mov r0,lr
-
其实任务栈的检查都是防患于未然的行为,要想做出谁溢出谁死亡,不影响其他任务的安全特性,只有浪费些内存,将栈做成页对齐的型式,采用MMU页保护的方法才能避免。栈检测应该是一种产品开发期间的统计行为,可以在创建任务时将栈初始化为全F或魔鬼数字,长时间多场景地运行系统,统计出各任务栈的使用情况,内存允许的话,可以将各任务栈大小设置为其最大栈使用值的1.5倍就基本安全了