From 7b746f74e74c8898613b154516d22f9c24e0cf74 Mon Sep 17 00:00:00 2001 From: Haryslee Date: Mon, 7 Feb 2022 21:15:52 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20EPU=E5=88=9D=E5=A7=8B=E5=8C=96=E7=A7=BB?= =?UTF-8?q?=E8=87=B3main=E5=87=BD=E6=95=B0=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Haryslee Change-Id: I7bcef2c8f663b5f3474eec7ffbb627dc197c2a1d --- arm_mps3_an547/liteos_m/board/main.c | 27 ++++++++++++++++++++++--- arm_mps3_an547/liteos_m/board/startup.s | 10 --------- arm_mps3_an547/liteos_m/config.gni | 1 + 3 files changed, 25 insertions(+), 13 deletions(-) diff --git a/arm_mps3_an547/liteos_m/board/main.c b/arm_mps3_an547/liteos_m/board/main.c index 3cf2390..98bc403 100755 --- a/arm_mps3_an547/liteos_m/board/main.c +++ b/arm_mps3_an547/liteos_m/board/main.c @@ -34,15 +34,36 @@ unsigned int LosAppInit(VOID); unsigned int LosShellInit(void); +// Enable EPU +static void EPUInit(void) +{ +#if ((__FPU_PRESENT == 1U) && (__FPU_USED == 1U)) + __asm volatile + ( + " .equ CPACR, 0xE000ED88 \n" + " \n" + " ldr r0, =CPACR \n" + " ldr r1, [r0] \n" + " orr r1, r1, #(0xf << 20) \n" + " str r1, [r0] \n" + " dsb \n" + " isb \n" + " \n" + " .align 4 \n" + ); +#endif +} + LITE_OS_SEC_TEXT_INIT int main(void) { unsigned int ret; + EPUInit(); UartInit(); ret = LOS_KernelInit(); if (ret != LOS_OK) { - printf("Liteos kernel init failed! ERROR: %d\n", ret); + printf("Liteos kernel init failed! ERROR: %u\n", ret); goto EXIT; } @@ -51,13 +72,13 @@ LITE_OS_SEC_TEXT_INIT int main(void) #if (LOSCFG_USE_SHELL == 1) ret = LosShellInit(); if (ret != LOS_OK) { - printf("LosAppInit failed! ERROR: %d\n", ret); + printf("LosAppInit failed! ERROR: %u\n", ret); } #endif ret = LosAppInit(); if (ret != LOS_OK) { - printf("LosAppInit failed! ERROR: %d\n", ret); + printf("LosAppInit failed! ERROR: %u\n", ret); } LOS_Start(); diff --git a/arm_mps3_an547/liteos_m/board/startup.s b/arm_mps3_an547/liteos_m/board/startup.s index d71866f..ba5faee 100755 --- a/arm_mps3_an547/liteos_m/board/startup.s +++ b/arm_mps3_an547/liteos_m/board/startup.s @@ -33,8 +33,6 @@ .fpu vfpv3-d16-fp16 .thumb -.equ CPACR, 0xE000ED88 - .extern HalExcNMI; .extern HalExcHardFault; .extern HalExcMemFault; @@ -59,14 +57,6 @@ bss_loop: subs r3, r1, r0 bne bss_loop - // Enable EPU - ldr r0, =CPACR - ldr r1, [r0] - orr r1, r1, #(0xf << 20) - str r1, [r0] - dsb - isb - ldr sp, =__irq_stack_top b main .size Reset_Handler, .-Reset_Handler diff --git a/arm_mps3_an547/liteos_m/config.gni b/arm_mps3_an547/liteos_m/config.gni index cdc2192..f1ecc63 100755 --- a/arm_mps3_an547/liteos_m/config.gni +++ b/arm_mps3_an547/liteos_m/config.gni @@ -52,6 +52,7 @@ board_cflags = [ "-ffunction-sections", "-fno-builtin", "-fno-strict-aliasing", + "-mno-unaligned-access", "-fsigned-char", "-std=c99", "-Os", -- Gitee