STM32F7xx外设驱动8-cpu(寄存器)

//源文件

//使能CPU的L1-Cache
void Cache_Enable(void)
{
  SCB_EnableICache(); // 使能I-Cache
  SCB_EnableDCache(); // 使能D-Cache  
	SCB->CACR|=1<<2;    // 强制D-Cache透写,如不开启,实际使用中可能遇到各种问题	
}
//判断I_Cache是否打开
//返回值:0 关闭,1 打开
uint8_t Get_ICahceSta(void)
{
  uint8_t sta;
  sta=((SCB->CCR)>>17)&0X01;
  return sta;
}

//判断I_Dache是否打开
//返回值:0 关闭,1 打开
uint8_t Get_DCahceSta(void)
{
  uint8_t sta;
  sta=((SCB->CCR)>>16)&0X01;
  return sta;
}

//THUMB指令不支持汇编内联
//采用如下方法实现执行汇编指令WFI  
void WFI_SET(void)
{
	__ASM("WFI");		  
}
//关闭所有中断(但是不包括fault和NMI中断)
void INTX_DISABLE(void)
{
	__ASM("CPSID   I");
	__ASM("BX      LR");	  
}
//开启所有中断
void INTX_ENABLE(void)
{
	__ASM("CPSIE   I");
	__ASM("BX      LR");  
}
//设置栈顶地址
//addr:栈顶地址
void MSR_MSP(uint32_t addr) 
{
	__ASM("MSR MSP, r0"); 			//set Main Stack value
	__ASM("BX r14");
}

//头文件

/*****************************cpu**************************************/
void Cache_Enable(void);
uint8_t Get_ICahceSta(void);
uint8_t Get_DCahceSta(void);
void WFI_SET(void);
void INTX_DISABLE(void);
void INTX_ENABLE(void);
void MSR_MSP(uint32_t addr);
/**********************************************************************/

  

posted @ 2022-11-12 12:18  ai在西元前  阅读(77)  评论(0)    收藏  举报