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

📄 core_cm3.lst

📁 stm32+ucos-ii
💻 LST
📖 第 1 页 / 共 3 页
字号:
    514            return(result);
    515          }
    516          
    517          /**
    518           * @brief  Set the Base Priority value
    519           *
    520           * @param  basePri  BasePriority
    521           *
    522           * Set the base priority register
    523           */
    524          void __set_BASEPRI(uint32_t value)
    525          {
    526            __ASM volatile ("MSR basepri, %0" : : "r" (value) );
    527          }
    528          
    529          /**
    530           * @brief  Return the Priority Mask value
    531           *
    532           * @return PriMask
    533           *
    534           * Return state of the priority mask bit from the priority mask register
    535           */
    536          uint32_t __get_PRIMASK(void)
    537          {
    538            uint32_t result=0;
    539          
    540            __ASM volatile ("MRS %0, primask" : "=r" (result) );
    541            return(result);
    542          }
    543          
    544          /**
    545           * @brief  Set the Priority Mask value
    546           *
    547           * @param  priMask  PriMask
    548           *
    549           * Set the priority mask bit in the priority mask register
    550           */
    551          void __set_PRIMASK(uint32_t priMask)
    552          {
    553            __ASM volatile ("MSR primask, %0" : : "r" (priMask) );
    554          }
    555          
    556          /**
    557           * @brief  Return the Fault Mask value
    558           *
    559           * @return FaultMask
    560           *
    561           * Return the content of the fault mask register
    562           */
    563          uint32_t __get_FAULTMASK(void)
    564          {
    565            uint32_t result=0;
    566            
    567            __ASM volatile ("MRS %0, faultmask" : "=r" (result) );
    568            return(result);
    569          }
    570          
    571          /**
    572           * @brief  Set the Fault Mask value
    573           *
    574           * @param  faultMask  faultMask value
    575           *
    576           * Set the fault mask register
    577           */
    578          void __set_FAULTMASK(uint32_t faultMask)
    579          {
    580            __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) );
    581          }
    582          
    583          /**
    584           * @brief  Return the Control Register value
    585          * 
    586          *  @return Control value
    587           *
    588           * Return the content of the control register
    589           */
    590          uint32_t __get_CONTROL(void)
    591          {
    592            uint32_t result=0;
    593          
    594            __ASM volatile ("MRS %0, control" : "=r" (result) );
    595            return(result);
    596          }
    597          
    598          /**
    599           * @brief  Set the Control Register value
    600           *
    601           * @param  control  Control value
    602           *
    603           * Set the control register
    604           */
    605          void __set_CONTROL(uint32_t control)
    606          {
    607            __ASM volatile ("MSR control, %0" : : "r" (control) );
    608          }
    609          
    610          
    611          /**
    612           * @brief  Reverse byte order in integer value
    613           *
    614           * @param  value  value to reverse
    615           * @return        reversed value
    616           *
    617           * Reverse byte order in integer value
    618           */
    619          uint32_t __REV(uint32_t value)
    620          {
    621            uint32_t result=0;
    622            
    623            __ASM volatile ("rev %0, %1" : "=r" (result) : "r" (value) );
    624            return(result);
    625          }
    626          
    627          /**
    628           * @brief  Reverse byte order in unsigned short value
    629           *
    630           * @param  value  value to reverse
    631           * @return        reversed value
    632           *
    633           * Reverse byte order in unsigned short value
    634           */
    635          uint32_t __REV16(uint16_t value)
    636          {
    637            uint32_t result=0;
    638            
    639            __ASM volatile ("rev16 %0, %1" : "=r" (result) : "r" (value) );
    640            return(result);
    641          }
    642          
    643          /**
    644           * @brief  Reverse byte order in signed short value with sign extension to integer
    645           *
    646           * @param  value  value to reverse
    647           * @return        reversed value
    648           *
    649           * Reverse byte order in signed short value with sign extension to integer
    650           */
    651          int32_t __REVSH(int16_t value)
    652          {
    653            uint32_t result=0;
    654            
    655            __ASM volatile ("revsh %0, %1" : "=r" (result) : "r" (value) );
    656            return(result);
    657          }
    658          
    659          /**
    660           * @brief  Reverse bit order of value
    661           *
    662           * @param  value  value to reverse
    663           * @return        reversed value
    664           *
    665           * Reverse bit order of value
    666           */
    667          uint32_t __RBIT(uint32_t value)
    668          {
    669            uint32_t result=0;
    670            
    671             __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) );
    672             return(result);
    673          }
    674          
    675          /**
    676           * @brief  LDR Exclusive (8 bit)
    677           *
    678           * @param  *addr  address pointer
    679           * @return        value of (*address)
    680           *
    681           * Exclusive LDR command for 8 bit value
    682           */
    683          uint8_t __LDREXB(uint8_t *addr)
    684          {
    685              uint8_t result=0;
    686            
    687             __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) );
    688             return(result);
    689          }
    690          
    691          /**
    692           * @brief  LDR Exclusive (16 bit)
    693           *
    694           * @param  *addr  address pointer
    695           * @return        value of (*address)
    696           *
    697           * Exclusive LDR command for 16 bit values
    698           */
    699          uint16_t __LDREXH(uint16_t *addr)
    700          {
    701              uint16_t result=0;
    702            
    703             __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) );
    704             return(result);
    705          }
    706          
    707          /**
    708           * @brief  LDR Exclusive (32 bit)
    709           *
    710           * @param  *addr  address pointer
    711           * @return        value of (*address)
    712           *
    713           * Exclusive LDR command for 32 bit values
    714           */
    715          uint32_t __LDREXW(uint32_t *addr)
    716          {
    717              uint32_t result=0;
    718            
    719             __ASM volatile ("ldrex %0, [%1]" : "=r" (result) : "r" (addr) );
    720             return(result);
    721          }
    722          
    723          /**
    724           * @brief  STR Exclusive (8 bit)
    725           *
    726           * @param  value  value to store
    727           * @param  *addr  address pointer
    728           * @return        successful / failed
    729           *
    730           * Exclusive STR command for 8 bit values
    731           */
    732          uint32_t __STREXB(uint8_t value, uint8_t *addr)
    733          {
    734             uint32_t result=0;
    735            
    736             __ASM volatile ("strexb %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );
    737             return(result);
    738          }
    739          
    740          /**
    741           * @brief  STR Exclusive (16 bit)
    742           *
    743           * @param  value  value to store
    744           * @param  *addr  address pointer
    745           * @return        successful / failed
    746           *
    747           * Exclusive STR command for 16 bit values
    748           */
    749          uint32_t __STREXH(uint16_t value, uint16_t *addr)
    750          {
    751             uint32_t result=0;
    752            
    753             __ASM volatile ("strexh %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );
    754             return(result);
    755          }
    756          
    757          /**
    758           * @brief  STR Exclusive (32 bit)
    759           *
    760           * @param  value  value to store
    761           * @param  *addr  address pointer
    762           * @return        successful / failed
    763           *
    764           * Exclusive STR command for 32 bit values
    765           */
    766          uint32_t __STREXW(uint32_t value, uint32_t *addr)
    767          {
    768             uint32_t result=0;
    769            
    770             __ASM volatile ("strex %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );
    771             return(result);
    772          }
    773          
    774          
    775          #elif (defined (__TASKING__)) /*------------------ TASKING Compiler ---------------------*/
    776          /* TASKING carm specific functions */
    777          
    778          /*
    779           * The CMSIS functions have been implemented as intrinsics in the compiler.
    780           * Please use "carm -?i" to get an up to date list of all instrinsics,
    781           * Including the CMSIS ones.
    782           */
    783          
    784          #endif

   Maximum stack usage in bytes:

     Function  .cstack
     --------  -------
     __LDREXB       0
     __LDREXH       0
     __LDREXW       0
     __RBIT         0
     __REV16        0
     __STREXB       0
     __STREXH       0
     __STREXW       0
     __get_MSP      0
     __get_PSP      0
     __set_MSP      0
     __set_PSP      0


   Section sizes:

     Function/Label Bytes
     -------------- -----
     __get_PSP         8
     __set_PSP         8
     __get_MSP         8
     __set_MSP         8
     __REV16           6
     __RBIT            8
     __LDREXB          8
     __LDREXH          8
     __LDREXW          8
     __STREXB          8
     __STREXH          8
     __STREXW          8

 
 94 bytes in section .text
 
 94 bytes of CODE memory

Errors: none
Warnings: none

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -