amobbs.com 阿莫电子技术论坛

标题: ucos求助……火急求大侠帮助 [打印本页]

作者: xiaozi022121    时间: 2012-7-4 17:33
标题: ucos求助……火急求大侠帮助
本帖最后由 xiaozi022121 于 2012-7-4 17:45 编辑

OS_ENTER_CRITICAL();
OS_EXIT_CRITICAL();
我正在用sep4020(arm720t的内核)移植一个工程,一个ucos的工程原来是在ADS下面的现在移植到MDK下,编译下载都成功了。但是代码执行途中出错了。
就是在其中的一个OS_EXIT_CRITICAL();明明是开中断,返回时程序就会重启。不知道是什么原因,因为自己学的还比较浅所以不理解问题产生的原因。所以希望懂得人指点一下。

想请教一下是不是OS_ENTER_CRITICAL();OS_EXIT_CRITICAL();这两个函数的调用是不是有时候会出错导致压栈出错啊

对了,同样的代码在ADS编译下没有出错,在MDK下出错了……所以更加不理解,两个唯一的区别就是启动代码!所以请高手指点
作者: xiaozi022121    时间: 2012-7-4 17:33
自己先顶一下,希望高手路过指点一二……
作者: xiaozi022121    时间: 2012-7-5 16:15
难道没有人遇到相同问题吗?请一起探讨一下啊
作者: yuguoliang    时间: 2012-7-5 16:32
先改用方式一看看,方式一只执行开关中断,方式二有栈操作,可能你没有修改宏,指令不兼容
作者: i55x    时间: 2012-7-5 16:34
去官网下载吧。
作者: xiaozi022121    时间: 2012-7-5 16:47
本帖最后由 xiaozi022121 于 2012-7-5 16:57 编辑
yuguoliang 发表于 2012-7-5 16:32
先改用方式一看看,方式一只执行开关中断,方式二有栈操作,可能你没有修改宏,指令不兼容 ...


你说的方式一和方式二是什么啊……请赐教,刚刚我看了我用的就是第二种方式
作者: xiaozi022121    时间: 2012-7-5 17:07
i55x 发表于 2012-7-5 16:34
去官网下载吧。

谢谢你的回复……但是不知道为什么要去官网下载啊
作者: lijg8421    时间: 2012-7-5 17:10
临界区有三种实现方式啊!
作者: xiaozi022121    时间: 2012-7-5 17:18
lijg8421 发表于 2012-7-5 17:10
临界区有三种实现方式啊!

谢谢你的回答……可是你回答的有点笼统啊,不明白你对我的问题要表达什么意思?
作者: lijg8421    时间: 2012-7-5 17:21
xiaozi022121 发表于 2012-7-5 16:47
你说的方式一和方式二是什么啊……请赐教,刚刚我看了我用的就是第二种方式 ...

我是针对你这句疑问发的!
作者: xiaozi022121    时间: 2012-7-5 17:58
lijg8421 发表于 2012-7-5 17:21
我是针对你这句疑问发的!

但是不知道你知道我的错误的原因不?
作者: yuguoliang    时间: 2012-7-6 20:41
你到OS_CPU.H找到OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()相应的宏定义  
找里面对应的压栈、出栈指令,然后改成你CPU所支持的压栈、出栈指令
方式一 OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()只定义了关总中断与开总中断
方式二 OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL() 定义了(压栈,关中断)与出栈
作者: yuguoliang    时间: 2012-7-6 20:50
#define  OS_CRITICAL_METHOD   1            定义OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()采用的方式
  
作者: xiaozi022121    时间: 2012-7-7 09:44
yuguoliang 发表于 2012-7-6 20:50
#define  OS_CRITICAL_METHOD   1            定义OS_ENTER_CRITICAL()和OS_EXIT_CRITICAL()采用的方式
   ...

谢谢回答……我之前尝试过了……好像不是这里的原因




欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/) Powered by Discuz! X3.4