[ZLG-ARM] 疑问:进行ucos移植时进行软中断是必须的吗?

[复制链接]
 楼主| kun9766 发表于 2010-4-15 10:09 | 显示全部楼层 |阅读模式
本帖最后由 kun9766 于 2010-4-15 18:31 编辑

最近看了周工的ucos移植版本和44b0的移植版本(基于ADS1.2),对其中的软中断使用有些不解,希望有明白其中缘由的能给予指点!先谢谢了
        在调用OS_Ctx_Sw()时,周工是使用软中断的方法,先在头文件OS_CPU.h中用_SWI进行声明,然后调用这个函数的时候产生一个软中断,然后再回来调用OS_Ctx_Sw()函数。我从网上找的其他版本的移植,只是在头文件中声明了这个函数,然后是直接调用了,没有看到关于软中断的。我又看了UCOS的源文件代码,OS_Sched()在最后是直接调用了OS_Ctx_Sw(),我现在不明白的是周工的版本为什么还要加个软中断而不直接调用呢?还是因为不能直接调用?期待您的解答,谢谢
虎虎生威 发表于 2010-4-15 20:25 | 显示全部楼层
应该可以把
 楼主| kun9766 发表于 2010-4-17 21:54 | 显示全部楼层
谢谢楼上的,怎么其他人都没反应啊,还是问题太简单。。。
juventus9554 发表于 2010-4-17 21:56 | 显示全部楼层
对于我是太难了
 楼主| kun9766 发表于 2010-4-19 08:24 | 显示全部楼层
4# juventus9554 呵呵,没接触而已
airwill 发表于 2010-4-19 14:12 | 显示全部楼层
我觉得软中断有个好处,  就是硬件自动保证不发生重入的情况.
贾君鹏子 发表于 2010-4-19 22:23 | 显示全部楼层
软中断好处多多啊
 楼主| kun9766 发表于 2010-4-20 10:29 | 显示全部楼层
7# 贾君鹏子
呵呵,说说在这个地方软中断的好处吧
cosmicy 发表于 2010-4-20 14:38 | 显示全部楼层
其实是一样的道理,在头文件中声明、在C文件中实现,然后调用时引用头文件就行了,我想每个人移植UCOS时肯定不可能完全一样,只要符合C的规则不就行了。
易达口香糖 发表于 2010-4-21 22:58 | 显示全部楼层
更加强大吧
 楼主| kun9766 发表于 2010-4-22 08:19 | 显示全部楼层
10# 易达口香糖 易达能否说详细点,呵呵,怎么更加强大的?
虎虎生威 发表于 2010-4-22 21:08 | 显示全部楼层
移植方便
 楼主| kun9766 发表于 2010-4-25 13:19 | 显示全部楼层
周工的工程师怎么不见身影啊??
虎虎生威 发表于 2010-4-26 18:57 | 显示全部楼层
可能最近比较忙吧
Swd21ic 发表于 2010-6-10 20:54 | 显示全部楼层
传统的实现一般都是使用软中断,这样可以自动保存PC到堆栈.

但ARM的跳转指令, 在跳转的时候就已经把PC保存到LR中了, 因此不需要软中断了
 楼主| kun9766 发表于 2010-6-23 20:55 | 显示全部楼层
传统的实现一般都是使用软中断,这样可以自动保存PC到堆栈.

但ARM的跳转指令, 在跳转的时候就已经把PC保存到LR中了, 因此不需要软中断了
Swd21ic 发表于 2010-6-10 20:54

那周工的版本的软中断就可以不用了?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

65

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部