This is an automated email from the ASF dual-hosted git repository. jerzy pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/mynewt-core.git
commit 5e45350445aadb85fe681259c86d1f555871aa04 Author: Jerzy Kasenberg <[email protected]> AuthorDate: Fri Oct 4 12:30:53 2024 +0200 hw/mcu/MK8xF: Use autogenerated linker script This switches to autogenerated linker scripts for CortexM. Signed-off-by: Jerzy Kasenberg <[email protected]> --- .rat-excludes | 1 - hw/bsp/frdm-k82f/bsp.yml | 5 +- hw/bsp/frdm-k82f/frdm-k82_debug.cmd | 22 --- hw/bsp/frdm-k82f/frdm-k82_download.cmd | 22 --- hw/bsp/frdm-k82f/pkg.yml | 1 + hw/bsp/frdm-k82f/src/hal_bsp.c | 34 +--- hw/bsp/frdm-k82f/syscfg.yml | 5 +- .../kinetis/MK8xF/MK82F/src/system_MK82F25615.c | 212 --------------------- hw/mcu/nxp/kinetis/MK8xF/include/mcu/mcu_vectors.h | 24 +++ .../MK8xF/include/mcu/vectors/mk82f25615_vectors.h | 143 ++++++++++++++ hw/mcu/nxp/kinetis/src/hal_system_init.c | 28 +++ hw/mcu/nxp/mcux-sdk/pkg.yml | 1 + 12 files changed, 202 insertions(+), 296 deletions(-) diff --git a/.rat-excludes b/.rat-excludes index 6c490eda3..ffe4164e4 100644 --- a/.rat-excludes +++ b/.rat-excludes @@ -171,7 +171,6 @@ startup_MK64F12.S MK82FN256xxx15_flash.ld boot-MK82FN256xxx15_flash.ld startup_MK82F25615.S -system_MK82F25615.c fsl_ftfx_controller.c # LWIP - BSD License. diff --git a/hw/bsp/frdm-k82f/bsp.yml b/hw/bsp/frdm-k82f/bsp.yml index 24bf0a5e6..3bcc59fc2 100644 --- a/hw/bsp/frdm-k82f/bsp.yml +++ b/hw/bsp/frdm-k82f/bsp.yml @@ -22,12 +22,9 @@ bsp.url: https://www.nxp.com/design/design-center/development-boards-and-designs bsp.maker: "NXP" bsp.arch: cortex_m4 bsp.compiler: compiler/arm-none-eabi-m4 -bsp.linkerscript: "hw/bsp/frdm-k82f/MK82FN256xxx15_flash.ld" -bsp.linkerscript.BOOT_LOADER.OVERWRITE: "hw/bsp/frdm-k82f/boot-MK82FN256xxx15_flash.ld" +bsp.linkerscript: autogenerated bsp.downloadscript: "hw/bsp/frdm-k82f/frdm-k82_download.sh" bsp.debugscript: "hw/bsp/frdm-k82f/frdm-k82_debug.sh" -bsp.downloadscript.WINDOWS.OVERWRITE: "hw/bsp/frdm-k82f/frdm-k82_download.cmd" -bsp.debugscript.WINDOWS.OVERWRITE: "hw/bsp/frdm-k82f/frdm-k82_debug.cmd" bsp.flash_map: areas: diff --git a/hw/bsp/frdm-k82f/frdm-k82_debug.cmd b/hw/bsp/frdm-k82f/frdm-k82_debug.cmd deleted file mode 100755 index 96f0b2605..000000000 --- a/hw/bsp/frdm-k82f/frdm-k82_debug.cmd +++ /dev/null @@ -1,22 +0,0 @@ -@rem -@rem Licensed to the Apache Software Foundation (ASF) under one -@rem or more contributor license agreements. See the NOTICE file -@rem distributed with this work for additional information -@rem regarding copyright ownership. The ASF licenses this file -@rem to you under the Apache License, Version 2.0 (the -@rem "License"); you may not use this file except in compliance -@rem with the License. You may obtain a copy of the License at -@rem -@rem http://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, -@rem software distributed under the License is distributed on an -@rem "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@rem KIND, either express or implied. See the License for the -@rem specific language governing permissions and limitations -@rem under the License. -@rem - -@rem Execute a shell with a script of the same name and .sh extension - -@bash "%~dp0%~n0.sh" diff --git a/hw/bsp/frdm-k82f/frdm-k82_download.cmd b/hw/bsp/frdm-k82f/frdm-k82_download.cmd deleted file mode 100755 index 96f0b2605..000000000 --- a/hw/bsp/frdm-k82f/frdm-k82_download.cmd +++ /dev/null @@ -1,22 +0,0 @@ -@rem -@rem Licensed to the Apache Software Foundation (ASF) under one -@rem or more contributor license agreements. See the NOTICE file -@rem distributed with this work for additional information -@rem regarding copyright ownership. The ASF licenses this file -@rem to you under the Apache License, Version 2.0 (the -@rem "License"); you may not use this file except in compliance -@rem with the License. You may obtain a copy of the License at -@rem -@rem http://www.apache.org/licenses/LICENSE-2.0 -@rem -@rem Unless required by applicable law or agreed to in writing, -@rem software distributed under the License is distributed on an -@rem "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -@rem KIND, either express or implied. See the License for the -@rem specific language governing permissions and limitations -@rem under the License. -@rem - -@rem Execute a shell with a script of the same name and .sh extension - -@bash "%~dp0%~n0.sh" diff --git a/hw/bsp/frdm-k82f/pkg.yml b/hw/bsp/frdm-k82f/pkg.yml index 8f3b7974b..fbf96dc0a 100644 --- a/hw/bsp/frdm-k82f/pkg.yml +++ b/hw/bsp/frdm-k82f/pkg.yml @@ -44,6 +44,7 @@ pkg.cflags.HARDFLOAT: pkg.deps: - "@apache-mynewt-core/hw/mcu/nxp/kinetis/MK8xF/MK82F" - "@apache-mynewt-core/libc" + - "@apache-mynewt-core/boot/startup" pkg.deps.UART_0: - "@apache-mynewt-core/hw/drivers/uart/uart_hal" diff --git a/hw/bsp/frdm-k82f/src/hal_bsp.c b/hw/bsp/frdm-k82f/src/hal_bsp.c index 973d5ba24..618d66020 100644 --- a/hw/bsp/frdm-k82f/src/hal_bsp.c +++ b/hw/bsp/frdm-k82f/src/hal_bsp.c @@ -23,6 +23,7 @@ #include <sys/types.h> #include <stdio.h> #include "os/mynewt.h" +#include "mynewt_cm.h" #include "bsp/bsp.h" #include "hal/hal_bsp.h" #include "hal/hal_flash_int.h" @@ -191,38 +192,6 @@ hal_bsp_power_state(int state) return (0); } -/*! - * @brief Function to override ARMGCC default function _sbrk - * - * _sbrk is called by malloc. ARMGCC default _sbrk compares "SP" register and - * heap end, if heap end is larger than "SP", then _sbrk returns error and - * memory allocation failed. This function changes to compare __HeapLimit with - * heap end. - */ -void * -_sbrk(int incr) -{ - extern char end __asm("end"); - extern char heap_limit __asm("__HeapLimit"); - static char *heap_end; - char *prev_heap_end; - - if (heap_end == NULL) - heap_end = &end; - - prev_heap_end = heap_end; - - if (heap_end + incr > &heap_limit) - { - errno = ENOMEM; - return (void *)-1; - } - - heap_end += incr; - - return (void *)prev_heap_end; -} - /** * Returns the configured priority for the given interrupt. If no priority * configured, return the priority passed in @@ -352,4 +321,5 @@ hal_bsp_init(void) void hal_bsp_deinit(void) { + Cortex_DisableAll(); } diff --git a/hw/bsp/frdm-k82f/syscfg.yml b/hw/bsp/frdm-k82f/syscfg.yml index 3cb11043d..4292a94a0 100644 --- a/hw/bsp/frdm-k82f/syscfg.yml +++ b/hw/bsp/frdm-k82f/syscfg.yml @@ -23,6 +23,8 @@ syscfg.defs: value: 1 syscfg.vals: + MCU_RAM_SIZE: 0x40000 + MCU_RAM_START: 0x20000000 # Enabled by default, connected to CMSIS-DAP Interface UART_4: 1 UART_4_PORT: PORTC @@ -93,6 +95,3 @@ syscfg.vals: CRYPTO_HW_AES_CTR: 1 BOOTUTIL_SWAP_USING_MOVE: 1 - - # BSP uses private version of _sbrk - HAL_SBRK: 0 diff --git a/hw/mcu/nxp/kinetis/MK8xF/MK82F/src/system_MK82F25615.c b/hw/mcu/nxp/kinetis/MK8xF/MK82F/src/system_MK82F25615.c deleted file mode 100644 index 82ac6e8d6..000000000 --- a/hw/mcu/nxp/kinetis/MK8xF/MK82F/src/system_MK82F25615.c +++ /dev/null @@ -1,212 +0,0 @@ -/* -** ################################################################### -** Processors: MK82FN256CAx15 -** MK82FN256VDC15 -** MK82FN256VLL15 -** MK82FN256VLQ15 -** -** Compilers: Freescale C/C++ for Embedded ARM -** GNU C Compiler -** IAR ANSI C/C++ Compiler for ARM -** Keil ARM C/C++ Compiler -** MCUXpresso Compiler -** -** Reference manual: K82P121M150SF5RM, Rev. 0, May 2015 -** Version: rev. 1.2, 2015-07-29 -** Build: b181105 -** -** Abstract: -** Provides a system configuration function and a global variable that -** contains the system frequency. It configures the device and initializes -** the oscillator (PLL) that is part of the microcontroller device. -** -** Copyright 2016 Freescale Semiconductor, Inc. -** Copyright 2016-2018 NXP -** All rights reserved. -** -** SPDX-License-Identifier: BSD-3-Clause -** -** http: www.nxp.com -** mail: [email protected] -** -** Revisions: -** - rev. 1.0 (2015-04-09) -** Initial version -** - rev. 1.1 (2015-05-28) -** Update according to the reference manual Rev. 0. -** - rev. 1.2 (2015-07-29) -** Correction of backward compatibility. -** -** ################################################################### -*/ - -/*! - * @file MK82F25615 - * @version 1.2 - * @date 2015-07-29 - * @brief Device specific configuration file for MK82F25615 (implementation file) - * - * Provides a system configuration function and a global variable that contains - * the system frequency. It configures the device and initializes the oscillator - * (PLL) that is part of the microcontroller device. - */ - -#include <stdint.h> -#include "fsl_device_registers.h" -#include "mcu/cmsis_nvic.h" - - -/* ---------------------------------------------------------------------------- - -- Core clock - ---------------------------------------------------------------------------- */ - -uint32_t SystemCoreClock = DEFAULT_SYSTEM_CLOCK; - -/* ---------------------------------------------------------------------------- - -- SystemInit() - ---------------------------------------------------------------------------- */ - -void SystemInit (void) { -#if ((__FPU_PRESENT == 1) && (__FPU_USED == 1)) - SCB->CPACR |= ((3UL << 10*2) | (3UL << 11*2)); /* set CP10, CP11 Full Access */ -#endif /* ((__FPU_PRESENT == 1) && (__FPU_USED == 1)) */ - -#if (DISABLE_WDOG) - /* WDOG->UNLOCK: WDOGUNLOCK=0xC520 */ - WDOG->UNLOCK = WDOG_UNLOCK_WDOGUNLOCK(0xC520); /* Key 1 */ - /* WDOG->UNLOCK: WDOGUNLOCK=0xD928 */ - WDOG->UNLOCK = WDOG_UNLOCK_WDOGUNLOCK(0xD928); /* Key 2 */ - /* WDOG->STCTRLH: ?=0,DISTESTWDOG=0,BYTESEL=0,TESTSEL=0,TESTWDOG=0,?=0,?=1,WAITEN=1,STOPEN=1,DBGEN=0,ALLOWUPDATE=1,WINEN=0,IRQRSTEN=0,CLKSRC=1,WDOGEN=0 */ - WDOG->STCTRLH = WDOG_STCTRLH_BYTESEL(0x00) | - WDOG_STCTRLH_WAITEN_MASK | - WDOG_STCTRLH_STOPEN_MASK | - WDOG_STCTRLH_ALLOWUPDATE_MASK | - WDOG_STCTRLH_CLKSRC_MASK | - 0x0100U; -#endif /* (DISABLE_WDOG) */ - NVIC_Relocate(); - SystemInitHook(); -} - -/* ---------------------------------------------------------------------------- - -- SystemCoreClockUpdate() - ---------------------------------------------------------------------------- */ - -void SystemCoreClockUpdate (void) { - - uint32_t MCGOUTClock; /* Variable to store output clock frequency of the MCG module */ - uint16_t Divider; - uint8_t tmpC7 = 0; - - if ((MCG->C1 & MCG_C1_CLKS_MASK) == 0x00U) { - /* Output of FLL or PLL is selected */ - if ((MCG->C6 & MCG_C6_PLLS_MASK) == 0x00U) { - /* FLL is selected */ - if ((MCG->C1 & MCG_C1_IREFS_MASK) == 0x00U) { - /* External reference clock is selected */ - switch (MCG->C7 & MCG_C7_OSCSEL_MASK) { - case 0x00U: - MCGOUTClock = CPU_XTAL_CLK_HZ; /* System oscillator drives MCG clock */ - break; - case 0x01U: - MCGOUTClock = CPU_XTAL32k_CLK_HZ; /* RTC 32 kHz oscillator drives MCG clock */ - break; - case 0x02U: - default: - MCGOUTClock = CPU_INT_IRC_CLK_HZ; /* IRC 48MHz oscillator drives MCG clock */ - break; - } - tmpC7 = MCG->C7; - if (((MCG->C2 & MCG_C2_RANGE_MASK) != 0x00U) && ((tmpC7 & MCG_C7_OSCSEL_MASK) != 0x01U)) { - switch (MCG->C1 & MCG_C1_FRDIV_MASK) { - case 0x38U: - Divider = 1536U; - break; - case 0x30U: - Divider = 1280U; - break; - default: - Divider = (uint16_t)(32LU << ((MCG->C1 & MCG_C1_FRDIV_MASK) >> MCG_C1_FRDIV_SHIFT)); - break; - } - } else {/* ((MCG->C2 & MCG_C2_RANGE_MASK) != 0x00U) */ - Divider = (uint16_t)(1LU << ((MCG->C1 & MCG_C1_FRDIV_MASK) >> MCG_C1_FRDIV_SHIFT)); - } - MCGOUTClock = (MCGOUTClock / Divider); /* Calculate the divided FLL reference clock */ - } else { /* (!((MCG->C1 & MCG_C1_IREFS_MASK) == 0x00U)) */ - MCGOUTClock = CPU_INT_SLOW_CLK_HZ; /* The slow internal reference clock is selected */ - } /* (!((MCG->C1 & MCG_C1_IREFS_MASK) == 0x00U)) */ - /* Select correct multiplier to calculate the MCG output clock */ - switch (MCG->C4 & (MCG_C4_DMX32_MASK | MCG_C4_DRST_DRS_MASK)) { - case 0x00U: - MCGOUTClock *= 640U; - break; - case 0x20U: - MCGOUTClock *= 1280U; - break; - case 0x40U: - MCGOUTClock *= 1920U; - break; - case 0x60U: - MCGOUTClock *= 2560U; - break; - case 0x80U: - MCGOUTClock *= 732U; - break; - case 0xA0U: - MCGOUTClock *= 1464U; - break; - case 0xC0U: - MCGOUTClock *= 2197U; - break; - case 0xE0U: - MCGOUTClock *= 2929U; - break; - default: - MCGOUTClock *= 640U; - break; - } - } else { /* (!((MCG->C6 & MCG_C6_PLLS_MASK) == 0x00U)) */ - /* PLL is selected */ - Divider = (((uint16_t)MCG->C5 & MCG_C5_PRDIV_MASK) + 0x01U); - MCGOUTClock = (uint32_t)(CPU_XTAL_CLK_HZ / Divider); /* Calculate the PLL reference clock */ - Divider = (((uint16_t)MCG->C6 & MCG_C6_VDIV_MASK) + 16U); - MCGOUTClock *= Divider; /* Calculate the VCO output clock */ - MCGOUTClock /= 2U; /* Calculate the MCG output clock */ - } /* (!((MCG->C6 & MCG_C6_PLLS_MASK) == 0x00U)) */ - } else if ((MCG->C1 & MCG_C1_CLKS_MASK) == 0x40U) { - /* Internal reference clock is selected */ - if ((MCG->C2 & MCG_C2_IRCS_MASK) == 0x00U) { - MCGOUTClock = CPU_INT_SLOW_CLK_HZ; /* Slow internal reference clock selected */ - } else { /* (!((MCG->C2 & MCG_C2_IRCS_MASK) == 0x00U)) */ - Divider = (uint16_t)(0x01LU << ((MCG->SC & MCG_SC_FCRDIV_MASK) >> MCG_SC_FCRDIV_SHIFT)); - MCGOUTClock = (uint32_t) (CPU_INT_FAST_CLK_HZ / Divider); /* Fast internal reference clock selected */ - } /* (!((MCG->C2 & MCG_C2_IRCS_MASK) == 0x00U)) */ - } else if ((MCG->C1 & MCG_C1_CLKS_MASK) == 0x80U) { - /* External reference clock is selected */ - switch (MCG->C7 & MCG_C7_OSCSEL_MASK) { - case 0x00U: - MCGOUTClock = CPU_XTAL_CLK_HZ; /* System oscillator drives MCG clock */ - break; - case 0x01U: - MCGOUTClock = CPU_XTAL32k_CLK_HZ; /* RTC 32 kHz oscillator drives MCG clock */ - break; - case 0x02U: - default: - MCGOUTClock = CPU_INT_IRC_CLK_HZ; /* IRC 48MHz oscillator drives MCG clock */ - break; - } - } else { /* (!((MCG->C1 & MCG_C1_CLKS_MASK) == 0x80U)) */ - /* Reserved value */ - return; - } /* (!((MCG->C1 & MCG_C1_CLKS_MASK) == 0x80U)) */ - SystemCoreClock = (MCGOUTClock / (0x01U + ((SIM->CLKDIV1 & SIM_CLKDIV1_OUTDIV1_MASK) >> SIM_CLKDIV1_OUTDIV1_SHIFT))); -} - -/* ---------------------------------------------------------------------------- - -- SystemInitHook() - ---------------------------------------------------------------------------- */ - -__attribute__ ((weak)) void SystemInitHook (void) { - /* Void implementation of the weak function. */ -} diff --git a/hw/mcu/nxp/kinetis/MK8xF/include/mcu/mcu_vectors.h b/hw/mcu/nxp/kinetis/MK8xF/include/mcu/mcu_vectors.h new file mode 100644 index 000000000..34020b928 --- /dev/null +++ b/hw/mcu/nxp/kinetis/MK8xF/include/mcu/mcu_vectors.h @@ -0,0 +1,24 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#ifdef CPU_MK82FN256VLL15 +#include "vectors/mk82f25615_vectors.h" +#else +#error "Unknown device" +#endif diff --git a/hw/mcu/nxp/kinetis/MK8xF/include/mcu/vectors/mk82f25615_vectors.h b/hw/mcu/nxp/kinetis/MK8xF/include/mcu/vectors/mk82f25615_vectors.h new file mode 100644 index 000000000..d0a455c71 --- /dev/null +++ b/hw/mcu/nxp/kinetis/MK8xF/include/mcu/vectors/mk82f25615_vectors.h @@ -0,0 +1,143 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +INT_VECTOR_STACK_TOP(__StackTop) +INT_VECTOR_RESET_HANDLER(Reset_Handler) +INT_VECTOR_NMI_HANDLER(NMI_Handler) +INT_VECTOR_HARDFAULT_HANDLER(HardFault_Handler) +INT_VECTOR_MEMMANAGE_HANDLER(MemManage_Handler) +INT_VECTOR_BUSFAULT_HANDLER(BusFault_Handler) +INT_VECTOR_USAGEFAULT_HANDLER(UsageFault_Handler) +INT_VECTOR_UNUSED(0) +INT_VECTOR_UNUSED(0) +INT_VECTOR_UNUSED(0) +INT_VECTOR_UNUSED(0) +INT_VECTOR_SVC_HANDLER(SVC_Handler) +INT_VECTOR_DEBUGMON_HANDLER(DebugMon_Handler) +INT_VECTOR_UNUSED(0) +INT_VECTOR_PENDSV_HANDLER(PendSV_Handler) +INT_VECTOR_SYSTICK_HANDLER(SysTick_Handler) + +INT_VECTOR(DMA0_DMA16_IRQHandler) +INT_VECTOR(DMA1_DMA17_IRQHandler) +INT_VECTOR(DMA3_DMA19_IRQHandler) +INT_VECTOR(DMA2_DMA18_IRQHandler) +INT_VECTOR(DMA4_DMA20_IRQHandler) +INT_VECTOR(DMA5_DMA21_IRQHandler) +INT_VECTOR(DMA6_DMA22_IRQHandler) +INT_VECTOR(DMA7_DMA23_IRQHandler) +INT_VECTOR(DMA8_DMA24_IRQHandler) +INT_VECTOR(DMA9_DMA25_IRQHandler) +INT_VECTOR(DMA10_DMA26_IRQHandler) +INT_VECTOR(DMA11_DMA27_IRQHandler) +INT_VECTOR(DMA12_DMA28_IRQHandler) +INT_VECTOR(DMA13_DMA29_IRQHandler) +INT_VECTOR(DMA14_DMA30_IRQHandler) +INT_VECTOR(DMA15_DMA31_IRQHandler) +INT_VECTOR(DMA_Error_IRQHandler) +INT_VECTOR(MCM_IRQHandler) +INT_VECTOR(FTFA_IRQHandler) +INT_VECTOR(Read_Collision_IRQHandler) +INT_VECTOR(LVD_LVW_IRQHandler) +INT_VECTOR(LLWU_IRQHandler) +INT_VECTOR(WDOG_EWM_IRQHandler) +INT_VECTOR(TRNG0_IRQHandler) +INT_VECTOR(I2C0_IRQHandler) +INT_VECTOR(I2C1_IRQHandler) +INT_VECTOR(SPI0_IRQHandler) +INT_VECTOR(SPI1_IRQHandler) +INT_VECTOR(I2S0_Tx_IRQHandler) +INT_VECTOR(I2S0_Rx_IRQHandler) +INT_VECTOR(LPUART0_IRQHandler) +INT_VECTOR(LPUART1_IRQHandler) +INT_VECTOR(LPUART2_IRQHandler) +INT_VECTOR(LPUART3_IRQHandler) +INT_VECTOR(LPUART4_IRQHandler) +INT_VECTOR(Reserved51_IRQHandler) +INT_VECTOR(Reserved52_IRQHandler) +INT_VECTOR(EMVSIM0_IRQHandler) +INT_VECTOR(EMVSIM1_IRQHandler) +INT_VECTOR(ADC0_IRQHandler) +INT_VECTOR(CMP0_IRQHandler) +INT_VECTOR(CMP1_IRQHandler) +INT_VECTOR(FTM0_IRQHandler) +INT_VECTOR(FTM1_IRQHandler) +INT_VECTOR(FTM2_IRQHandler) +INT_VECTOR(CMT_IRQHandler) +INT_VECTOR(RTC_IRQHandler) +INT_VECTOR(RTC_Seconds_IRQHandler) +INT_VECTOR(PIT0CH0_IRQHandler) +INT_VECTOR(PIT0CH1_IRQHandler) +INT_VECTOR(PIT0CH2_IRQHandler) +INT_VECTOR(PIT0CH3_IRQHandler) +INT_VECTOR(PDB0_IRQHandler) +INT_VECTOR(USB0_IRQHandler) +INT_VECTOR(USBDCD_IRQHandler) +INT_VECTOR(Reserved71_IRQHandler) +INT_VECTOR(DAC0_IRQHandler) +INT_VECTOR(MCG_IRQHandler) +INT_VECTOR(LPTMR0_LPTMR1_IRQHandler) +INT_VECTOR(PORTA_IRQHandler) +INT_VECTOR(PORTB_IRQHandler) +INT_VECTOR(PORTC_IRQHandler) +INT_VECTOR(PORTD_IRQHandler) +INT_VECTOR(PORTE_IRQHandler) +INT_VECTOR(SWI_IRQHandler) +INT_VECTOR(SPI2_IRQHandler) +INT_VECTOR(Reserved82_IRQHandler) +INT_VECTOR(Reserved83_IRQHandler) +INT_VECTOR(Reserved84_IRQHandler) +INT_VECTOR(Reserved85_IRQHandler) +INT_VECTOR(FLEXIO0_IRQHandler) +INT_VECTOR(FTM3_IRQHandler) +INT_VECTOR(Reserved88_IRQHandler) +INT_VECTOR(Reserved89_IRQHandler) +INT_VECTOR(I2C2_IRQHandler) +INT_VECTOR(Reserved91_IRQHandler) +INT_VECTOR(Reserved92_IRQHandler) +INT_VECTOR(Reserved93_IRQHandler) +INT_VECTOR(Reserved94_IRQHandler) +INT_VECTOR(Reserved95_IRQHandler) +INT_VECTOR(Reserved96_IRQHandler) +INT_VECTOR(SDHC_IRQHandler) +INT_VECTOR(Reserved98_IRQHandler) +INT_VECTOR(Reserved99_IRQHandler) +INT_VECTOR(Reserved100_IRQHandler) +INT_VECTOR(Reserved101_IRQHandler) +INT_VECTOR(Reserved102_IRQHandler) +INT_VECTOR(TSI0_IRQHandler) +INT_VECTOR(TPM1_IRQHandler) +INT_VECTOR(TPM2_IRQHandler) +INT_VECTOR(Reserved106_IRQHandler) +INT_VECTOR(I2C3_IRQHandler) +INT_VECTOR(Reserved108_IRQHandler) +INT_VECTOR(Reserved109_IRQHandler) +INT_VECTOR(Reserved110_IRQHandler) +INT_VECTOR(Reserved111_IRQHandler) +INT_VECTOR(Reserved112_IRQHandler) +INT_VECTOR(Reserved113_IRQHandler) +INT_VECTOR(Reserved114_IRQHandler) +INT_VECTOR(Reserved115_IRQHandler) +INT_VECTOR(QuadSPI0_IRQHandler) +INT_VECTOR(Reserved117_IRQHandler) +INT_VECTOR(Reserved118_IRQHandler) +INT_VECTOR(Reserved119_IRQHandler) +INT_VECTOR(LTC0_IRQHandler) +INT_VECTOR(Reserved121_IRQHandler) +INT_VECTOR(Reserved122_IRQHandler) diff --git a/hw/mcu/nxp/kinetis/src/hal_system_init.c b/hw/mcu/nxp/kinetis/src/hal_system_init.c new file mode 100644 index 000000000..2d6348b83 --- /dev/null +++ b/hw/mcu/nxp/kinetis/src/hal_system_init.c @@ -0,0 +1,28 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +#include "os/mynewt.h" +#include <mynewt_cm.h> + +void +hal_system_init(void) +{ + /* Relocate the vector table */ + NVIC_Relocate(); +} diff --git a/hw/mcu/nxp/mcux-sdk/pkg.yml b/hw/mcu/nxp/mcux-sdk/pkg.yml index f4ba93120..953abeede 100644 --- a/hw/mcu/nxp/mcux-sdk/pkg.yml +++ b/hw/mcu/nxp/mcux-sdk/pkg.yml @@ -80,6 +80,7 @@ pkg.include_dirs.MCU_MK82F25615: - "@nxp-mcux-sdk/devices/MK82F25615/drivers" pkg.src_dirs.MCU_MK82F25615: - "@nxp-mcux-sdk/devices/MK82F25615/drivers" + - "@nxp-mcux-sdk/devices/MK82F25615" pkg.ign_files.MCU_MK82F25615: # Modified mynewt version exists - "drivers/flash/fsl_ftfx_controller.c"
