嵌入式技术论坛
直播中

ss

8年用户 8762经验值
擅长:电源/新能源 制造/封装 RF/无线
私信 关注
[问答]

将rt-thread移植到atsamd20g18芯片上,它的指令无法使用是为什么?

想要将rt-thread移植到microchip公司的atsamd20g18芯片上, 该芯片是cortex M0+架构,文档原文如下:

参考了同样是m0+架构的STM32L系列芯片代码,在移植到PendSV_Handler函数时,报了以下错误,

大家有遇到过嘛,这个问题该怎么解决呢?
PendSV_Handler代码如下:
.globl PendSV_Handler
PendSV_Handler:
    mrs     r2, PRIMASK
    cpsid   I
    ldr     r0, =rt_thread_switch_interrupt_flag
    ldr     r1, [r0]
    cmp        r1, #0
    beq        pendsv_exit
    mov    r1, #0x00
    str    r1, [r0]
    ldr    r0, =rt_interrupt_from_thread
    ldr    r1, [r0]
    cmp       r1, #0
    beq       switch_to_thread
    mrs     r1, psp
    sub     r1, r1, #32
    ldr        r0, [r0]
    str        r1, [r0]
    stmia   r1!, {r4-r7}
    mov        r4, r8
    mov        r5, r9
    mov        r6, r10
    mov        r7, r11
    stmia    r1!, {r4-r7}
switch_to_thread:
    ldr     r1, =rt_interrupt_to_thread
    ldr     r1, [r1]
    ldr     r1, [r1]
    ldmia   r1!, {r4 - r7}
    push    {r4    - r7}
    ldmia    r1!, {r4 - r7}
    mov        r8,     r4
    mov        r9,  r5
    mov        r10, r6
    mov        r11, r7
    pop        {r4    - r7}
    msr     psp, r1
pendsv_exit:
    msr     PRIMASK, r2
    movs    r0, #0x4
    r***s    r0, r0, #0x0

    bx        r0

回帖(2)

ss

2022-3-24 14:23:08
r***s r0,r0,#0试试呢
举报

ss

2022-3-24 14:23:19
如果手上有编译通过的版本工程,建议抓一下编译选项
CFLAGS,然后再对比下现在这个出错的CFLAGS,找出差异,再配成一样,试试看。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分