开启contexA(imx6ull)的硬件浮点

174 阅读1分钟

学习了正点原子的imx6ull裸机中,对于开启6ull(contexA)系列的浮点计数,使浮点运算可以运算到硬件上,记录一下:

 void imx6ul_hardfpu_enable(void)
{
	uint32_t cpacr;
	uint32_t fpexc;

	/* 使能NEON和FPU */
	cpacr = __get_CPACR();
	cpacr = (cpacr & ~(CPACR_ASEDIS_Msk | CPACR_D32DIS_Msk))
		   |  (3UL << CPACR_cp10_Pos) | (3UL << CPACR_cp11_Pos);
	__set_CPACR(cpacr);
	fpexc = __get_FPEXC();
	fpexc |= 0x40000000UL;	
	__set_FPEXC(fpexc);
}

并且在编译过程中,在makefile加上

image.png