⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 core_cm0.lst

📁 cortex-m0 LCD1602程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
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 + -