这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » 软件与操作系统 » UCOS_II移植STM32过程中关于“PendSV_Handler”的问题?

共6条 1/1 1 跳转至

UCOS_II移植STM32过程中关于“PendSV_Handler”的问题?

高工
2013-05-13 11:51:16     打赏

    参照移植教程进行ucos_II的移植,教程中没有使用OS_CPU_SysTickHandler(),而调用了stm32库中的systick-handler()。为了统一代码,启动文件startup_stm32f10x_hd.s尽量少该,能不改就不改。


基于上述理由,我把UCOS_II中的所有中断向量OS_CPU_PendSVHandler改成了pendsd_handler,

如://    EXPORT  PendSV_Handler 
    EXTERN  PendSV_Handler       //用做上下文切换也就是任务切换,最重要的中断
还有it.c中的文件等等。

这样一来问题就出来了,在编译的出现了“PendSV_Handler”重复定义的问题:

//OS_CPU_PendSVHandler

PendSV_Handler
    CPSID   I                                                   ; Prevent interruption during context switch
    MRS     R0, PSP                                             ; PSP is process stack pointer
    CBZ     R0, OS_CPU_PendSVHandler_nosave                     ; Skip register save the first time


    SUBS    R0, R0, #0x20                                       ; Save remaining regs r4-11 on process stack
    STM     R0, {R4-R11}


    LDR     R1, =OSTCBCur                                       ; OSTCBCur->OSTCBStkPtr = SP;
    LDR     R1, [R1]

    STR     R0, [R1]     

messages:

Building configuration: STM32_uCOSII_DEMO - Debug

Updating build tree...

os_cpu_a.asm

Error[42]: Duplicate label:'PendSV_Handler' D:\Stm32_ucosII_demo_yang\OS_uCOS_II\port\os_cpu_a.asm 202

Error while running Assembler


Total number of errors: 1

Total number of warnings: 0

我想这个问题应该出在STM32的启动代码那一块,不知道如何解决呢?求高手予以指点啊。




关键词: ucos_II移植     STM32    

高工
2013-05-13 12:27:04     打赏
2楼
去年armdiy活动时候,我好像也碰到类似的问题。也是重复定义。好像还不是头文件引用的问题。

高工
2013-05-13 12:27:48     打赏
3楼
最后怎么解决的却想不起来了。哎!

高工
2013-05-13 12:45:55     打赏
4楼
这个问题困扰我良久了,中间忙别的就没顾上,今天翻出来了发个帖请教一下,看来很有必要在捋捋啦

高工
2013-05-21 19:21:45     打赏
5楼
此问题记得到解决,多谢大家的援助

菜鸟
2016-11-17 14:46:13     打赏
6楼
注释掉stm32xx.it.c文件中的PendSV_Handler

共6条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]