📄 core_cm0.lst
字号:
N * @brief Set the Main Stack Pointer
N *
N * @param topOfMainStack Main Stack Pointer
N *
N * Assign the value mainStackPointer to the MSP
N * (main stack pointer) Cortex processor register
N */
N__ASM void __set_MSP(uint32_t mainStackPointer)
X__asm void __set_MSP(uint32_t mainStackPointer)
N{
N msr msp, r0
N bx lr
N}
N
N/**
N * @brief Reverse byte order in unsigned short value
N *
N * @param value value to reverse
N * @return reversed value
N *
N * Reverse byte order in unsigned short value
N */
N__ASM uint32_t __REV16(uint16_t value)
X__asm uint32_t __REV16(uint16_t value)
N{
N rev16 r0, r0
N bx lr
N}
N
N/**
N * @brief Reverse byte order in signed short value with sign extension to integer
N *
N * @param value value to reverse
N * @return reversed value
N *
N * Reverse byte order in signed short value with sign extension to integer
N */
N__ASM int32_t __REVSH(int16_t value)
X__asm int32_t __REVSH(int16_t value)
N{
N revsh r0, r0
N bx lr
N}
N
N
N#if (__ARMCC_VERSION < 400000)
X#if (410713 < 400000)
S
S
S/**
S * @brief Return the Priority Mask value
S *
S * @return PriMask
S *
S * Return state of the priority mask bit from the priority mask register
S */
S__ASM uint32_t __get_PRIMASK(void)
S{
S mrs r0, primask
S bx lr
S}
S
S/**
S * @brief Set the Priority Mask value
S *
S * @param priMask PriMask
S *
S * Set the priority mask bit in the priority mask register
S */
S__ASM void __set_PRIMASK(uint32_t priMask)
S{
S msr primask, r0
S bx lr
S}
S
S/**
S * @brief Return the Control Register value
S *
S * @return Control value
S *
S * Return the content of the control register
S */
S__ASM uint32_t __get_CONTROL(void)
S{
S mrs r0, control
S bx lr
S}
S
S/**
S * @brief Set the Control Register value
S *
S * @param control Control value
S *
S * Set the control register
S */
S__ASM void __set_CONTROL(uint32_t control)
S{
S msr control, r0
S bx lr
S}
S
N#endif /* __ARMCC_VERSION */
N
N
N
N#elif (defined (__ICCARM__)) /*------------------ ICC Compiler -------------------*/
S/* IAR iccarm specific functions */
S#pragma diag_suppress=Pe940
S
S/**
S * @brief Return the Process Stack Pointer
S *
S * @return ProcessStackPointer
S *
S * Return the actual process stack pointer
S */
Suint32_t __get_PSP(void)
S{
S __ASM("mrs r0, psp");
S __ASM("bx lr");
S}
S
S/**
S * @brief Set the Process Stack Pointer
S *
S * @param topOfProcStack Process Stack Pointer
S *
S * Assign the value ProcessStackPointer to the MSP
S * (process stack pointer) Cortex processor register
S */
Svoid __set_PSP(uint32_t topOfProcStack)
S{
S __ASM("msr psp, r0");
S __ASM("bx lr");
S}
S
S/**
S * @brief Return the Main Stack Pointer
S *
S * @return Main Stack Pointer
S *
S * Return the current value of the MSP (main stack pointer)
S * Cortex processor register
S */
Suint32_t __get_MSP(void)
S{
S __ASM("mrs r0, msp");
S __ASM("bx lr");
S}
S
S/**
S * @brief Set the Main Stack Pointer
S *
S * @param topOfMainStack Main Stack Pointer
S *
S * Assign the value mainStackPointer to the MSP
S * (main stack pointer) Cortex processor register
S */
Svoid __set_MSP(uint32_t topOfMainStack)
S{
S __ASM("msr msp, r0");
S __ASM("bx lr");
S}
S
S/**
S * @brief Reverse byte order in unsigned short value
S *
S * @param value value to reverse
S * @return reversed value
S *
S * Reverse byte order in unsigned short value
S */
Suint32_t __REV16(uint16_t value)
S{
S __ASM("rev16 r0, r0");
S __ASM("bx lr");
S}
S
S
S#pragma diag_default=Pe940
S
S
S#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/
S/* GNU gcc specific functions */
S
S/**
S * @brief Return the Process Stack Pointer
S *
S * @return ProcessStackPointer
S *
S * Return the actual process stack pointer
S */
Suint32_t __get_PSP(void) __attribute__( ( naked ) );
Suint32_t __get_PSP(void)
S{
S uint32_t result=0;
S
S __ASM volatile ("MRS %0, psp\n\t"
S "MOV r0, %0 \n\t"
S "BX lr \n\t" : "=r" (result) );
S return(result);
S}
S
S/**
S * @brief Set the Process Stack Pointer
S *
S * @param topOfProcStack Process Stack Pointer
S *
S * Assign the value ProcessStackPointer to the MSP
S * (process stack pointer) Cortex processor register
S */
Svoid __set_PSP(uint32_t topOfProcStack) __attribute__( ( naked ) );
Svoid __set_PSP(uint32_t topOfProcStack)
S{
S __ASM volatile ("MSR psp, %0\n\t"
S "BX lr \n\t" : : "r" (topOfProcStack) );
S}
S
S/**
S * @brief Return the Main Stack Pointer
S *
S * @return Main Stack Pointer
S *
S * Return the current value of the MSP (main stack pointer)
S * Cortex processor register
S */
Suint32_t __get_MSP(void) __attribute__( ( naked ) );
Suint32_t __get_MSP(void)
S{
S uint32_t result=0;
S
S __ASM volatile ("MRS %0, msp\n\t"
S "MOV r0, %0 \n\t"
S "BX lr \n\t" : "=r" (result) );
S return(result);
S}
S
S/**
S * @brief Set the Main Stack Pointer
S *
S * @param topOfMainStack Main Stack Pointer
S *
S * Assign the value mainStackPointer to the MSP
S * (main stack pointer) Cortex processor register
S */
Svoid __set_MSP(uint32_t topOfMainStack) __attribute__( ( naked ) );
Svoid __set_MSP(uint32_t topOfMainStack)
S{
S __ASM volatile ("MSR msp, %0\n\t"
S "BX lr \n\t" : : "r" (topOfMainStack) );
S}
S
S
S/**
S * @brief Return the Priority Mask value
S *
S * @return PriMask
S *
S * Return state of the priority mask bit from the priority mask register
S */
Suint32_t __get_PRIMASK(void)
S{
S uint32_t result=0;
S
S __ASM volatile ("MRS %0, primask" : "=r" (result) );
S return(result);
S}
S
S/**
S * @brief Set the Priority Mask value
S *
S * @param priMask PriMask
S *
S * Set the priority mask bit in the priority mask register
S */
Svoid __set_PRIMASK(uint32_t priMask)
S{
S __ASM volatile ("MSR primask, %0" : : "r" (priMask) );
S}
S
S/**
S * @brief Return the Control Register value
S*
S* @return Control value
S *
S * Return the content of the control register
S */
Suint32_t __get_CONTROL(void)
S{
S uint32_t result=0;
S
S __ASM volatile ("MRS %0, control" : "=r" (result) );
S return(result);
S}
S
S/**
S * @brief Set the Control Register value
S *
S * @param control Control value
S *
S * Set the control register
S */
Svoid __set_CONTROL(uint32_t control)
S{
S __ASM volatile ("MSR control, %0" : : "r" (control) );
S}
S
S
S/**
S * @brief Reverse byte order in integer value
S *
S * @param value value to reverse
S * @return reversed value
S *
S * Reverse byte order in integer value
S */
Suint32_t __REV(uint32_t value)
S{
S uint32_t result=0;
S
S __ASM volatile ("rev %0, %1" : "=r" (result) : "r" (value) );
S return(result);
S}
S
S/**
S * @brief Reverse byte order in unsigned short value
S *
S * @param value value to reverse
S * @return reversed value
S *
S * Reverse byte order in unsigned short value
S */
Suint32_t __REV16(uint16_t value)
S{
S uint32_t result=0;
S
S __ASM volatile ("rev16 %0, %1" : "=r" (result) : "r" (value) );
S return(result);
S}
S
S/**
S * @brief Reverse byte order in signed short value with sign extension to integer
S *
S * @param value value to reverse
S * @return reversed value
S *
S * Reverse byte order in signed short value with sign extension to integer
S */
Sint32_t __REVSH(int16_t value)
S{
S uint32_t result=0;
S
S __ASM volatile ("revsh %0, %1" : "=r" (result) : "r" (value) );
S return(result);
S}
S
S
S#elif (defined (__TASKING__)) /*------------------ TASKING Compiler ---------------------*/
S/* TASKING carm specific functions */
S
S/*
S * The CMSIS functions have been implemented as intrinsics in the compiler.
S * Please use "carm -?i" to get an up to date list of all instrinsics,
S * Including the CMSIS ones.
S */
S
N#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -