diff --git a/bsp/bluetrum/ab32vg1-ab-prougen/.config b/bsp/bluetrum/ab32vg1-ab-prougen/.config index ae0ddcec8bf69e5adf5935a857040340c649e15c..d6b19f6f8b8c81c347333966ab1ac5669f6c5c73 100644 --- a/bsp/bluetrum/ab32vg1-ab-prougen/.config +++ b/bsp/bluetrum/ab32vg1-ab-prougen/.config @@ -288,6 +288,7 @@ CONFIG_RT_USING_LIBC=y # CONFIG_PKG_USING_PDULIB is not set # CONFIG_PKG_USING_BTSTACK is not set # CONFIG_PKG_USING_LORAWAN_ED_STACK is not set +# CONFIG_PKG_USING_WAYZ_IOTKIT is not set # # security packages @@ -437,6 +438,8 @@ CONFIG_RT_USING_LIBC=y # CONFIG_PKG_USING_QKEY is not set # CONFIG_PKG_USING_RS485 is not set # CONFIG_PKG_USING_NES is not set +# CONFIG_PKG_USING_VIRTUAL_SENSOR is not set +# CONFIG_PKG_USING_VDEVICE is not set # # miscellaneous packages @@ -495,13 +498,13 @@ CONFIG_RT_USING_LIBC=y # Onboard Peripheral Drivers # CONFIG_BSP_USING_USB_TO_USART=y +CONFIG_BSP_USING_AUDIO=y +CONFIG_BSP_USING_AUDIO_PLAY=y # # On-chip Peripheral Drivers # CONFIG_BSP_USING_UART0=y -CONFIG_BSP_USING_AUDIO=y -CONFIG_BSP_USING_AUDIO_PLAY=y # # Board extended module Drivers diff --git a/bsp/bluetrum/ab32vg1-ab-prougen/rtconfig.h b/bsp/bluetrum/ab32vg1-ab-prougen/rtconfig.h index a123d38a5e10cb3a75a9d5308a68040b6b650943..3ce6012a617bc6f34cb0f733bc182139f213b547 100644 --- a/bsp/bluetrum/ab32vg1-ab-prougen/rtconfig.h +++ b/bsp/bluetrum/ab32vg1-ab-prougen/rtconfig.h @@ -169,12 +169,12 @@ /* Onboard Peripheral Drivers */ #define BSP_USING_USB_TO_USART +#define BSP_USING_AUDIO +#define BSP_USING_AUDIO_PLAY /* On-chip Peripheral Drivers */ #define BSP_USING_UART0 -#define BSP_USING_AUDIO -#define BSP_USING_AUDIO_PLAY /* Board extended module Drivers */ diff --git a/bsp/bluetrum/libcpu/cpu/context_gcc.S b/bsp/bluetrum/libcpu/cpu/context_gcc.S index 9139657eaa3b5223f029ee6db08dc66db21c1add..e9a6cc28e3d03d8e2ce9fdd604154515e352c299 100644 --- a/bsp/bluetrum/libcpu/cpu/context_gcc.S +++ b/bsp/bluetrum/libcpu/cpu/context_gcc.S @@ -44,7 +44,7 @@ enable_int_ret: /* Macro for saving task context */ .macro save_context - addi sp, sp, -120 + addi sp, sp, -124 /* Save Context */ sw x1, 0(sp) @@ -79,6 +79,8 @@ enable_int_ret: lw a5, EPC(zero) //Saves current program counter (EPC) as task program counter sw a5, 116(sp) + lw a5, EPICCON(zero) + sw a5, 120(sp) sw sp, rt_cur_thread_sp, a4 //store sp in preempted tasks tcb .endm @@ -93,6 +95,8 @@ enable_int_ret: /* Load task program counter EPC*/ lw a5, 116(sp) sw a5, EPC(zero) + lw a5, 120(sp) + sw a5, EPICCON(zero) /* Restore registers, Skip global pointer because that does not change */ @@ -126,7 +130,7 @@ enable_int_ret: lw x30, 108(sp) lw x31, 112(sp) - addi sp, sp, 120 + addi sp, sp, 124 mret .endm diff --git a/bsp/bluetrum/libcpu/cpu/cpuport.c b/bsp/bluetrum/libcpu/cpu/cpuport.c index 576401421ad2df7d015be8205f190080a4d74c0e..7689018a519bea358cdabcc880f6151823887551 100644 --- a/bsp/bluetrum/libcpu/cpu/cpuport.c +++ b/bsp/bluetrum/libcpu/cpu/cpuport.c @@ -39,6 +39,8 @@ rt_uint8_t *rt_hw_stack_init(void *tentry, stack_addr = (rt_uint8_t *)RT_ALIGN_DOWN((rt_uint32_t)stack_addr, 8); stk = (rt_uint32_t *)stack_addr; + stk--; + *stk = (rt_uint32_t)0x10003; /* Start address */ stk--; *stk = (rt_uint32_t)tentry; /* Start address */ stk -= 22;