luckfox-pico-sdk/sysdrv/source/mcu/rt-thread/libcpu/v850/70f34/macdefs.inc
luckfox-eng29 8f34c2760d project:build.sh: Added fastboot support; custom modifications to U-Boot and kernel implemented using patches.
project:cfg:BoardConfig_IPC: Added fastboot BoardConfig file and firmware post-scripts, distinguishing between
the BoardConfigs for Luckfox Pico Pro and Luckfox Pico Max. project:app: Added fastboot_client and rk_smart_door
for quick boot applications; updated rkipc app to adapt to the latest media library. media:samples: Added more
usage examples. media:rockit: Fixed bugs; removed support for retrieving data frames from VPSS. media:isp:
Updated rkaiq library and related tools to support connection to RKISP_Tuner. sysdrv:Makefile: Added support for
compiling drv_ko on Luckfox Pico Ultra W using Ubuntu; added support for custom root filesystem.
sysdrv:tools:board: Updated Buildroot optional mirror sources, updated some software versions, and stored device
tree files and configuration files that undergo multiple modifications for U-Boot and kernel separately.
sysdrv:source:mcu: Used RISC-V MCU SDK with RT-Thread system, mainly for initializing camera AE during quick
boot. sysdrv:source:uboot: Added support for fastboot; added high baud rate DDR bin for serial firmware upgrades.
sysdrv:source:kernel: Upgraded to version 5.10.160; increased NPU frequency for RV1106G3; added support for
fastboot.

Signed-off-by: luckfox-eng29 <eng29@luckfox.com>
2024-10-14 09:47:04 +08:00

126 lines
3.6 KiB
HTML

;
; These are the macros used by the v850 port of the uCOS/II.
;
;********************************************************************
; function:
; description:
; --- Modifies ----------------------------------------------
; IO :
; Mem:
; CPU:
; --- Uses --------------------------------------------------
; IO :
; Mem:
; --- Input -------------------------------------------------
; --- Output ------------------------------------------------
; --- Notes -------------------------------------------------
;====================================================================
SAVE_CPU_CTX MACRO
;Save all registers on entry (r3 is the stack pointer)
prepare {r23,r24,r25,r26,r27,r28,r29,r30,r31},(8+(4*14)) ;Add 8 bytes for 2 more registers
mov sp, ep
sst.w r1, 0[ep]
sst.w r2, 4[ep]
sst.w r5, 8[ep]
sst.w r6, 12[ep]
sst.w r7, 16[ep]
sst.w r8, 20[ep]
sst.w r9, 24[ep]
sst.w r10, 28[ep]
sst.w r11, 32[ep]
sst.w r12, 36[ep]
sst.w r13, 40[ep]
sst.w r14, 44[ep]
sst.w r15, 48[ep]
sst.w r16, 52[ep]
;Save caller's PC
stsr EIPC, r1
sst.w r1, 56[ep]
;Save caller's PSW
stsr EIPSW, r1
sst.w r1, 60[ep]
ENDMAC
;********************************************************************
; function:
; description:
; --- Modifies ----------------------------------------------
; IO :
; Mem:
; CPU:
; --- Uses --------------------------------------------------
; IO :
; Mem:
; --- Input -------------------------------------------------
; --- Output ------------------------------------------------
; --- Notes -------------------------------------------------
;====================================================================
SAVE_SP MACRO
;Save stack pointer on OSTCBCur->OSTCBStkPtr (OSTCBStkPtr=0)
mov OSTCBCur, r21
ld.w 0[r21], r21
st.w sp, 0[r21]
ENDMAC
;********************************************************************
; function:
; description:
; --- Modifies ----------------------------------------------
; IO :
; Mem:
; CPU:
; --- Uses --------------------------------------------------
; IO :
; Mem:
; --- Input -------------------------------------------------
; --- Output ------------------------------------------------
; --- Notes -------------------------------------------------
;====================================================================
ISR_ENTRY MACRO
LOCAL _DontSaveSP
;Save all CPU registers according to the standard stack frame
SAVE_CPU_CTX
mov OSIntNesting, r1 ;Increment OSNesting by one
LD.BU 0[r1],r2
add 1, r2
ST.B r2, 0[r1]
cmp 1, r2 ;If OSNesting==1 save SP in current TCB
bne _DontSaveSP
SAVE_SP
_DontSaveSP:
ENDMAC
;********************************************************************
; function:
; description:
; --- Modifies ----------------------------------------------
; IO :
; Mem:
; CPU:
; --- Uses --------------------------------------------------
; IO :
; Mem:
; --- Input -------------------------------------------------
; --- Output ------------------------------------------------
; --- Notes -------------------------------------------------
;====================================================================
ISR_EXIT MACRO
jarl OSIntExit, lp ;Call OSIntExit()
jr OS_Restore_CPU_Context ;Restore processors registers and execute RETI
ENDMAC