3247|3

5

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

有关MSP430单片机移植uCOS的问题!! [复制链接]

这两天心绪来潮,想把uCosII烧到MSP430上,经过查阅网上教程,移算是成功了,在开发板上可以运行几个任务。

但做到中断实验时,却遇到了麻烦,一直难以解决。大家知道用IAR写程序时,中断函数是直接用C写的,是因为

编译器支持,可这又违背uCos中断函数必须用汇编写。本人对汇编只是能看懂的地步,所以仿照网上例程,它是用

看门狗定时器中断作为程序的时钟源,可我的程序一直不能调试成功,请各位提提意见!!!

他的看门狗中断函数:

WDT_ISR                                     ; //看门狗定时器中断服务程序
            PUSHALL                         ; //保护所有寄存器            
            
            bic.b    #0x01, IE1             ; //关闭看门狗定时器中断
            
            cmp.b    #0, &OSIntNesting      ; if (OSIntNesting == 0) 
            jne      WDT_ISR_1
                              
            mov.w    &OSTCBCur, R13         ; //保存任务堆栈    
            mov.w    SP, 0(R13)

            mov.w    &OSISRStkPtr, SP       ; //载入中断堆栈            

WDT_ISR_1
            inc.b    &OSIntNesting          ; OSIntNesting++
            bis.b    #0x01, IE1             ; //开看门狗定时器中断
            
            EINT                            ; //开中断允许中断嵌套

            call     #OSTimeTick            ; //调用节拍处理函数 
            mov.b    #0x99 ,&TXBUF0

            DINT                            ; //这一点非常重要,调用函数OSIntExit()前关闭中断

            call     #OSIntExit             ; //调用退出中断函数

            cmp.b    #0, &OSIntNesting      ; if (OSIntNesting == 0)
            jne      WDT_ISR_2

            mov.w    &OSTCBHighRdy, R13     ; //恢复任务堆栈
            mov.w    @R13, SP
                      
WDT_ISR_2
            POPALL                          ; //恢复所有寄存器
            
            reti                            
                                          

;********************************************************************************************************
;                             //保存和恢复状态寄存器SR
;
;********************************************************************************************************

OSCPUSaveSR
            MOV.W    SR,R12
            DINT
            RET


OSCPURestoreSR
            MOV.W    R12,SR
            RET

;********************************************************************************************************
;                                 //看门狗定时器中断向量
;
; //AQ430头文件定义的是各中断向量的偏移量,故看门狗中断向量为0xFFE0+WDT_VECTOR
;********************************************************************************************************
;======================================================
 COMMON INTVEC ;Interrup vector
;====================================================== 
            ORG WDT_VECTOR
            DW  WDT_ISR  

            END

 

我仿照写的Uart接收中断:

U0RX_ISR                                   
            PUSHALL                             
            
            //bic.b    #0x01, IE1           
            
            cmp.b    #0, &OSIntNesting     
            jne      U0RX_ISR_1
                              
            mov.w    &OSTCBCur, R13           
            mov.w    SP, 0(R13)

            mov.w    &OSISRStkPtr, SP               

U0RX_ISR_1
            inc.b    &OSIntNesting         
            bis.b    #URXIE0, IE1           
            
            EINT                           

            call     #OSTimeTick                      

            DINT                           

            call     #OSIntExit           
            mov.b    #0xc0,&TXBUF0
            mov.b    &RXBUF0,&TXBUF0

            cmp.b    #0, &OSIntNesting     
            jne      WDT_ISR_2

            mov.w    &OSTCBHighRdy, R13   
            mov.w    @R13, SP
                      

            POPALL                        
            
            reti                            
                                          

 

OSCPUSaveSR
            MOV.W    SR,R12
            DINT
            RET


OSCPURestoreSR
            MOV.W    R12,SR
            RET


 COMMON INTVEC 

            ORG UART0RX_VECTOR
            DW  U0RX_ISR  

            END           

 

欢迎大家发表意见  
  

最新回复

关于UCOS在MSP430上的移植,在TI官网上有相关的资料,是基于MSP430F5438A的移植,您可以去查找相关方面的资料。  详情 回复 发表于 2012-7-20 04:08
 
点赞 关注

回复
举报

5

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
自己顶一下
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
没人愿意指导小弟吗?谢特

点评

关于UCOS在MSP430上的移植,在TI官网上有相关的资料,是基于MSP430F5438A的移植,您可以去查找相关方面的资料。  详情 回复 发表于 2012-7-20 04:08
 
 
 

回复

188

帖子

0

TA的资源

纯净的硅(中级)

4
 

回复 板凳 小的他 的帖子

关于UCOS在MSP430上的移植,在TI官网上有相关的资料,是基于MSP430F5438A的移植,您可以去查找相关方面的资料。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表