mirror of
https://github.com/mytechnotalent/Embedded-Hacking.git
synced 2026-04-07 20:02:12 +02:00
remove unused coprocessor driver from all CBM projects
No project uses floating-point, so coprocessor_enable() was dead code. Removes rp2350_coprocessor.c/.h and all references from reset handlers and Makefiles across all 15 CBM drivers (0x01-0x0f).
This commit is contained in:
@@ -1,33 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.h
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver header for RP2350.
|
||||
*
|
||||
* Enables coprocessor access via the CPACR register.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __RP2350_COPROCESSOR_H
|
||||
#define __RP2350_COPROCESSOR_H
|
||||
|
||||
#include "rp2350.h"
|
||||
|
||||
/**
|
||||
* @brief Enable coprocessor access via CPACR with DSB/ISB barriers.
|
||||
* @retval None
|
||||
*/
|
||||
void coprocessor_enable(void);
|
||||
|
||||
#endif /* __RP2350_COPROCESSOR_H */
|
||||
@@ -36,7 +36,6 @@ SRCS = $(SRC_DIR)/vector_table.c \
|
||||
$(SRC_DIR)/rp2350_stack.c \
|
||||
$(SRC_DIR)/rp2350_xosc.c \
|
||||
$(SRC_DIR)/rp2350_reset.c \
|
||||
$(SRC_DIR)/rp2350_coprocessor.c \
|
||||
$(SRC_DIR)/rp2350_uart.c \
|
||||
$(SRC_DIR)/main.c \
|
||||
$(SRC_DIR)/image_def.c
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.c
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver implementation for RP2350.
|
||||
*
|
||||
* Grants access to coprocessors 0 and 1 by setting the
|
||||
* corresponding bits in CPACR with DSB/ISB barriers.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
void coprocessor_enable(void)
|
||||
{
|
||||
uint32_t value;
|
||||
value = *CPACR;
|
||||
value |= (1U << CPACR_CP1_SHIFT);
|
||||
value |= (1U << CPACR_CP0_SHIFT);
|
||||
*CPACR = value;
|
||||
__asm__ volatile ("dsb");
|
||||
__asm__ volatile ("isb");
|
||||
}
|
||||
@@ -5,8 +5,8 @@
|
||||
* @brief Reset handler implementation for RP2350.
|
||||
*
|
||||
* Entry point after power-on or system reset. Initializes the
|
||||
* stack, XOSC, subsystem resets, UART, and coprocessor, then
|
||||
* branches to main().
|
||||
* stack, XOSC, subsystem resets, UART, then branches
|
||||
* to main().
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
@@ -26,7 +26,6 @@
|
||||
#include "rp2350_xosc.h"
|
||||
#include "rp2350_reset.h"
|
||||
#include "rp2350_uart.h"
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
extern int main(void);
|
||||
|
||||
@@ -39,7 +38,6 @@ void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||
"bl reset_init_subsystem\n\t"
|
||||
"bl uart_release_reset\n\t"
|
||||
"bl uart_init\n\t"
|
||||
"bl coprocessor_enable\n\t"
|
||||
"b main\n\t"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.h
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver header for RP2350.
|
||||
*
|
||||
* Enables coprocessor access via the CPACR register.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __RP2350_COPROCESSOR_H
|
||||
#define __RP2350_COPROCESSOR_H
|
||||
|
||||
#include "rp2350.h"
|
||||
|
||||
/**
|
||||
* @brief Enable coprocessor access via CPACR with DSB/ISB barriers.
|
||||
* @retval None
|
||||
*/
|
||||
void coprocessor_enable(void);
|
||||
|
||||
#endif /* __RP2350_COPROCESSOR_H */
|
||||
@@ -36,7 +36,6 @@ SRCS = $(SRC_DIR)/vector_table.c \
|
||||
$(SRC_DIR)/rp2350_stack.c \
|
||||
$(SRC_DIR)/rp2350_xosc.c \
|
||||
$(SRC_DIR)/rp2350_reset.c \
|
||||
$(SRC_DIR)/rp2350_coprocessor.c \
|
||||
$(SRC_DIR)/rp2350_uart.c \
|
||||
$(SRC_DIR)/rp2350_gpio.c \
|
||||
$(SRC_DIR)/rp2350_led.c \
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.c
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver implementation for RP2350.
|
||||
*
|
||||
* Grants access to coprocessors 0 and 1 by setting the
|
||||
* corresponding bits in CPACR with DSB/ISB barriers.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
void coprocessor_enable(void)
|
||||
{
|
||||
uint32_t value;
|
||||
value = *CPACR;
|
||||
value |= (1U << CPACR_CP1_SHIFT);
|
||||
value |= (1U << CPACR_CP0_SHIFT);
|
||||
*CPACR = value;
|
||||
__asm__ volatile ("dsb");
|
||||
__asm__ volatile ("isb");
|
||||
}
|
||||
@@ -5,8 +5,8 @@
|
||||
* @brief Reset handler implementation for RP2350.
|
||||
*
|
||||
* Entry point after power-on or system reset. Initializes the
|
||||
* stack, XOSC, subsystem resets, UART, coprocessor, then
|
||||
* branches to main().
|
||||
* stack, XOSC, subsystem resets, UART, then branches
|
||||
* to main().
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
@@ -26,7 +26,6 @@
|
||||
#include "rp2350_xosc.h"
|
||||
#include "rp2350_reset.h"
|
||||
#include "rp2350_uart.h"
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
extern int main(void);
|
||||
|
||||
@@ -39,7 +38,6 @@ void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||
"bl reset_init_subsystem\n\t"
|
||||
"bl uart_release_reset\n\t"
|
||||
"bl uart_init\n\t"
|
||||
"bl coprocessor_enable\n\t"
|
||||
"b main\n\t"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.h
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver header for RP2350.
|
||||
*
|
||||
* Enables coprocessor access via the CPACR register.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __RP2350_COPROCESSOR_H
|
||||
#define __RP2350_COPROCESSOR_H
|
||||
|
||||
#include "rp2350.h"
|
||||
|
||||
/**
|
||||
* @brief Enable coprocessor access via CPACR with DSB/ISB barriers.
|
||||
* @retval None
|
||||
*/
|
||||
void coprocessor_enable(void);
|
||||
|
||||
#endif /* __RP2350_COPROCESSOR_H */
|
||||
@@ -36,7 +36,6 @@ SRCS = $(SRC_DIR)/vector_table.c \
|
||||
$(SRC_DIR)/rp2350_stack.c \
|
||||
$(SRC_DIR)/rp2350_xosc.c \
|
||||
$(SRC_DIR)/rp2350_reset.c \
|
||||
$(SRC_DIR)/rp2350_coprocessor.c \
|
||||
$(SRC_DIR)/rp2350_uart.c \
|
||||
$(SRC_DIR)/rp2350_gpio.c \
|
||||
$(SRC_DIR)/rp2350_led.c \
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.c
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver implementation for RP2350.
|
||||
*
|
||||
* Grants access to coprocessors 0 and 1 by setting the
|
||||
* corresponding bits in CPACR with DSB/ISB barriers.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
void coprocessor_enable(void)
|
||||
{
|
||||
uint32_t value;
|
||||
value = *CPACR;
|
||||
value |= (1U << CPACR_CP1_SHIFT);
|
||||
value |= (1U << CPACR_CP0_SHIFT);
|
||||
*CPACR = value;
|
||||
__asm__ volatile ("dsb");
|
||||
__asm__ volatile ("isb");
|
||||
}
|
||||
@@ -5,8 +5,8 @@
|
||||
* @brief Reset handler implementation for RP2350.
|
||||
*
|
||||
* Entry point after power-on or system reset. Initializes the
|
||||
* stack, XOSC, subsystem resets, UART, coprocessor, then
|
||||
* branches to main().
|
||||
* stack, XOSC, subsystem resets, UART, then branches
|
||||
* to main().
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
@@ -26,7 +26,6 @@
|
||||
#include "rp2350_xosc.h"
|
||||
#include "rp2350_reset.h"
|
||||
#include "rp2350_uart.h"
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
extern int main(void);
|
||||
|
||||
@@ -39,7 +38,6 @@ void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||
"bl reset_init_subsystem\n\t"
|
||||
"bl uart_release_reset\n\t"
|
||||
"bl uart_init\n\t"
|
||||
"bl coprocessor_enable\n\t"
|
||||
"b main\n\t"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.h
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver header for RP2350.
|
||||
*
|
||||
* Enables coprocessor access via the CPACR register.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __RP2350_COPROCESSOR_H
|
||||
#define __RP2350_COPROCESSOR_H
|
||||
|
||||
#include "rp2350.h"
|
||||
|
||||
/**
|
||||
* @brief Enable coprocessor access via CPACR with DSB/ISB barriers.
|
||||
* @retval None
|
||||
*/
|
||||
void coprocessor_enable(void);
|
||||
|
||||
#endif /* __RP2350_COPROCESSOR_H */
|
||||
@@ -36,7 +36,6 @@ SRCS = $(SRC_DIR)/vector_table.c \
|
||||
$(SRC_DIR)/rp2350_stack.c \
|
||||
$(SRC_DIR)/rp2350_xosc.c \
|
||||
$(SRC_DIR)/rp2350_reset.c \
|
||||
$(SRC_DIR)/rp2350_coprocessor.c \
|
||||
$(SRC_DIR)/rp2350_uart.c \
|
||||
$(SRC_DIR)/rp2350_pwm.c \
|
||||
$(SRC_DIR)/rp2350_delay.c \
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.c
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver implementation for RP2350.
|
||||
*
|
||||
* Grants access to coprocessors 0 and 1 by setting the
|
||||
* corresponding bits in CPACR with DSB/ISB barriers.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
void coprocessor_enable(void)
|
||||
{
|
||||
uint32_t value;
|
||||
value = *CPACR;
|
||||
value |= (1U << CPACR_CP1_SHIFT);
|
||||
value |= (1U << CPACR_CP0_SHIFT);
|
||||
*CPACR = value;
|
||||
__asm__ volatile ("dsb");
|
||||
__asm__ volatile ("isb");
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
* @brief Reset handler implementation for RP2350.
|
||||
*
|
||||
* Entry point after power-on or system reset. Initializes the
|
||||
* stack, XOSC, subsystem resets, UART, PWM, coprocessor, then
|
||||
* stack, XOSC, subsystem resets, UART, PWM, then
|
||||
* branches to main().
|
||||
*
|
||||
******************************************************************************
|
||||
@@ -27,19 +27,17 @@
|
||||
#include "rp2350_reset.h"
|
||||
#include "rp2350_uart.h"
|
||||
#include "rp2350_pwm.h"
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
extern int main(void);
|
||||
|
||||
/**
|
||||
* @brief Initialize late peripherals (PWM and coprocessor).
|
||||
* @brief Initialize late peripherals (PWM release and init).
|
||||
* @retval None
|
||||
*/
|
||||
void _late_init(void)
|
||||
{
|
||||
pwm_release_reset();
|
||||
pwm_init();
|
||||
coprocessor_enable();
|
||||
}
|
||||
|
||||
void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.h
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver header for RP2350.
|
||||
*
|
||||
* Enables coprocessor access via the CPACR register.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __RP2350_COPROCESSOR_H
|
||||
#define __RP2350_COPROCESSOR_H
|
||||
|
||||
#include "rp2350.h"
|
||||
|
||||
/**
|
||||
* @brief Enable coprocessor access via CPACR with DSB/ISB barriers.
|
||||
* @retval None
|
||||
*/
|
||||
void coprocessor_enable(void);
|
||||
|
||||
#endif /* __RP2350_COPROCESSOR_H */
|
||||
@@ -36,7 +36,6 @@ SRCS = $(SRC_DIR)/vector_table.c \
|
||||
$(SRC_DIR)/rp2350_stack.c \
|
||||
$(SRC_DIR)/rp2350_xosc.c \
|
||||
$(SRC_DIR)/rp2350_reset.c \
|
||||
$(SRC_DIR)/rp2350_coprocessor.c \
|
||||
$(SRC_DIR)/rp2350_uart.c \
|
||||
$(SRC_DIR)/rp2350_servo.c \
|
||||
$(SRC_DIR)/rp2350_delay.c \
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.c
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver implementation for RP2350.
|
||||
*
|
||||
* Grants access to coprocessors 0 and 1 by setting the
|
||||
* corresponding bits in CPACR with DSB/ISB barriers.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
void coprocessor_enable(void)
|
||||
{
|
||||
uint32_t value;
|
||||
value = *CPACR;
|
||||
value |= (1U << CPACR_CP1_SHIFT);
|
||||
value |= (1U << CPACR_CP0_SHIFT);
|
||||
*CPACR = value;
|
||||
__asm__ volatile ("dsb");
|
||||
__asm__ volatile ("isb");
|
||||
}
|
||||
@@ -5,8 +5,8 @@
|
||||
* @brief Reset handler implementation for RP2350.
|
||||
*
|
||||
* Entry point after power-on or system reset. Initializes the
|
||||
* stack, XOSC, subsystem resets, UART, servo, coprocessor,
|
||||
* then branches to main().
|
||||
* stack, XOSC, subsystem resets, UART, servo, then
|
||||
* branches to main().
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
@@ -27,19 +27,17 @@
|
||||
#include "rp2350_reset.h"
|
||||
#include "rp2350_uart.h"
|
||||
#include "rp2350_servo.h"
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
extern int main(void);
|
||||
|
||||
/**
|
||||
* @brief Initialize late peripherals (servo and coprocessor).
|
||||
* @brief Initialize late peripherals (servo release and init).
|
||||
* @retval None
|
||||
*/
|
||||
void _late_init(void)
|
||||
{
|
||||
servo_release_reset();
|
||||
servo_init();
|
||||
coprocessor_enable();
|
||||
}
|
||||
|
||||
void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.h
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver header for RP2350.
|
||||
*
|
||||
* Enables coprocessor access via the CPACR register.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __RP2350_COPROCESSOR_H
|
||||
#define __RP2350_COPROCESSOR_H
|
||||
|
||||
#include "rp2350.h"
|
||||
|
||||
/**
|
||||
* @brief Enable coprocessor access via CPACR with DSB/ISB barriers.
|
||||
* @retval None
|
||||
*/
|
||||
void coprocessor_enable(void);
|
||||
|
||||
#endif /* __RP2350_COPROCESSOR_H */
|
||||
@@ -36,7 +36,6 @@ SRCS = $(SRC_DIR)/vector_table.c \
|
||||
$(SRC_DIR)/rp2350_stack.c \
|
||||
$(SRC_DIR)/rp2350_xosc.c \
|
||||
$(SRC_DIR)/rp2350_reset.c \
|
||||
$(SRC_DIR)/rp2350_coprocessor.c \
|
||||
$(SRC_DIR)/rp2350_uart.c \
|
||||
$(SRC_DIR)/rp2350_adc.c \
|
||||
$(SRC_DIR)/rp2350_delay.c \
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.c
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver implementation for RP2350.
|
||||
*
|
||||
* Grants access to coprocessors 0 and 1 by setting the
|
||||
* corresponding bits in CPACR with DSB/ISB barriers.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
void coprocessor_enable(void)
|
||||
{
|
||||
uint32_t value;
|
||||
value = *CPACR;
|
||||
value |= (1U << CPACR_CP1_SHIFT);
|
||||
value |= (1U << CPACR_CP0_SHIFT);
|
||||
*CPACR = value;
|
||||
__asm__ volatile ("dsb");
|
||||
__asm__ volatile ("isb");
|
||||
}
|
||||
@@ -5,8 +5,8 @@
|
||||
* @brief Reset handler implementation for RP2350.
|
||||
*
|
||||
* Entry point after power-on or system reset. Initializes the
|
||||
* stack, XOSC, subsystem resets, UART, ADC, coprocessor,
|
||||
* then branches to main().
|
||||
* stack, XOSC, subsystem resets, UART, ADC, then
|
||||
* branches to main().
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
@@ -27,7 +27,6 @@
|
||||
#include "rp2350_reset.h"
|
||||
#include "rp2350_uart.h"
|
||||
#include "rp2350_adc.h"
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
extern int main(void);
|
||||
|
||||
@@ -40,7 +39,6 @@ void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||
"bl reset_init_subsystem\n\t"
|
||||
"bl uart_release_reset\n\t"
|
||||
"bl uart_init\n\t"
|
||||
"bl coprocessor_enable\n\t"
|
||||
"b main\n\t"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.h
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver header for RP2350.
|
||||
*
|
||||
* Enables coprocessor access via the CPACR register.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __RP2350_COPROCESSOR_H
|
||||
#define __RP2350_COPROCESSOR_H
|
||||
|
||||
#include "rp2350.h"
|
||||
|
||||
/**
|
||||
* @brief Enable coprocessor access via CPACR with DSB/ISB barriers.
|
||||
* @retval None
|
||||
*/
|
||||
void coprocessor_enable(void);
|
||||
|
||||
#endif /* __RP2350_COPROCESSOR_H */
|
||||
@@ -36,7 +36,6 @@ SRCS = $(SRC_DIR)/vector_table.c \
|
||||
$(SRC_DIR)/rp2350_stack.c \
|
||||
$(SRC_DIR)/rp2350_xosc.c \
|
||||
$(SRC_DIR)/rp2350_reset.c \
|
||||
$(SRC_DIR)/rp2350_coprocessor.c \
|
||||
$(SRC_DIR)/rp2350_uart.c \
|
||||
$(SRC_DIR)/rp2350_i2c.c \
|
||||
$(SRC_DIR)/rp2350_delay.c \
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.c
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver implementation for RP2350.
|
||||
*
|
||||
* Grants access to coprocessors 0 and 1 by setting the
|
||||
* corresponding bits in CPACR with DSB/ISB barriers.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
void coprocessor_enable(void)
|
||||
{
|
||||
uint32_t value;
|
||||
value = *CPACR;
|
||||
value |= (1U << CPACR_CP1_SHIFT);
|
||||
value |= (1U << CPACR_CP0_SHIFT);
|
||||
*CPACR = value;
|
||||
__asm__ volatile ("dsb");
|
||||
__asm__ volatile ("isb");
|
||||
}
|
||||
@@ -5,8 +5,8 @@
|
||||
* @brief Reset handler implementation for RP2350.
|
||||
*
|
||||
* Entry point after power-on or system reset. Initializes the
|
||||
* stack, XOSC, subsystem resets, UART, coprocessor, then
|
||||
* branches to main().
|
||||
* stack, XOSC, subsystem resets, UART, then branches
|
||||
* to main().
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
@@ -26,7 +26,6 @@
|
||||
#include "rp2350_xosc.h"
|
||||
#include "rp2350_reset.h"
|
||||
#include "rp2350_uart.h"
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
extern int main(void);
|
||||
|
||||
@@ -39,7 +38,6 @@ void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||
"bl reset_init_subsystem\n\t"
|
||||
"bl uart_release_reset\n\t"
|
||||
"bl uart_init\n\t"
|
||||
"bl coprocessor_enable\n\t"
|
||||
"b main\n\t"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.h
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver header for RP2350.
|
||||
*
|
||||
* Enables coprocessor access via the CPACR register.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __RP2350_COPROCESSOR_H
|
||||
#define __RP2350_COPROCESSOR_H
|
||||
|
||||
#include "rp2350.h"
|
||||
|
||||
/**
|
||||
* @brief Enable coprocessor access via CPACR with DSB/ISB barriers.
|
||||
* @retval None
|
||||
*/
|
||||
void coprocessor_enable(void);
|
||||
|
||||
#endif /* __RP2350_COPROCESSOR_H */
|
||||
@@ -36,7 +36,6 @@ SRCS = $(SRC_DIR)/vector_table.c \
|
||||
$(SRC_DIR)/rp2350_stack.c \
|
||||
$(SRC_DIR)/rp2350_xosc.c \
|
||||
$(SRC_DIR)/rp2350_reset.c \
|
||||
$(SRC_DIR)/rp2350_coprocessor.c \
|
||||
$(SRC_DIR)/rp2350_uart.c \
|
||||
$(SRC_DIR)/rp2350_i2c.c \
|
||||
$(SRC_DIR)/rp2350_lcd1602.c \
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.c
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver implementation for RP2350.
|
||||
*
|
||||
* Grants access to coprocessors 0 and 1 by setting the
|
||||
* corresponding bits in CPACR with DSB/ISB barriers.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
void coprocessor_enable(void)
|
||||
{
|
||||
uint32_t value;
|
||||
value = *CPACR;
|
||||
value |= (1U << CPACR_CP1_SHIFT);
|
||||
value |= (1U << CPACR_CP0_SHIFT);
|
||||
*CPACR = value;
|
||||
__asm__ volatile ("dsb");
|
||||
__asm__ volatile ("isb");
|
||||
}
|
||||
@@ -5,8 +5,8 @@
|
||||
* @brief Reset handler implementation for RP2350.
|
||||
*
|
||||
* Entry point after power-on or system reset. Initializes the
|
||||
* stack, XOSC, subsystem resets, UART, coprocessor, then
|
||||
* branches to main().
|
||||
* stack, XOSC, subsystem resets, UART, then branches
|
||||
* to main().
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
@@ -26,7 +26,6 @@
|
||||
#include "rp2350_xosc.h"
|
||||
#include "rp2350_reset.h"
|
||||
#include "rp2350_uart.h"
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
extern int main(void);
|
||||
|
||||
@@ -39,7 +38,6 @@ void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||
"bl reset_init_subsystem\n\t"
|
||||
"bl uart_release_reset\n\t"
|
||||
"bl uart_init\n\t"
|
||||
"bl coprocessor_enable\n\t"
|
||||
"b main\n\t"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.h
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver header for RP2350.
|
||||
*
|
||||
* Enables coprocessor access via the CPACR register.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __RP2350_COPROCESSOR_H
|
||||
#define __RP2350_COPROCESSOR_H
|
||||
|
||||
#include "rp2350.h"
|
||||
|
||||
/**
|
||||
* @brief Enable coprocessor access via CPACR with DSB/ISB barriers.
|
||||
* @retval None
|
||||
*/
|
||||
void coprocessor_enable(void);
|
||||
|
||||
#endif /* __RP2350_COPROCESSOR_H */
|
||||
@@ -36,7 +36,6 @@ SRCS = $(SRC_DIR)/vector_table.c \
|
||||
$(SRC_DIR)/rp2350_stack.c \
|
||||
$(SRC_DIR)/rp2350_xosc.c \
|
||||
$(SRC_DIR)/rp2350_reset.c \
|
||||
$(SRC_DIR)/rp2350_coprocessor.c \
|
||||
$(SRC_DIR)/rp2350_uart.c \
|
||||
$(SRC_DIR)/rp2350_dht11.c \
|
||||
$(SRC_DIR)/rp2350_delay.c \
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.c
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver implementation for RP2350.
|
||||
*
|
||||
* Grants access to coprocessors 0 and 1 by setting the
|
||||
* corresponding bits in CPACR with DSB/ISB barriers.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
void coprocessor_enable(void)
|
||||
{
|
||||
uint32_t value;
|
||||
value = *CPACR;
|
||||
value |= (1U << CPACR_CP1_SHIFT);
|
||||
value |= (1U << CPACR_CP0_SHIFT);
|
||||
*CPACR = value;
|
||||
__asm__ volatile ("dsb");
|
||||
__asm__ volatile ("isb");
|
||||
}
|
||||
@@ -5,8 +5,8 @@
|
||||
* @brief Reset handler implementation for RP2350.
|
||||
*
|
||||
* Entry point after power-on or system reset. Initializes the
|
||||
* stack, XOSC, subsystem resets, UART, coprocessor, then
|
||||
* branches to main().
|
||||
* stack, XOSC, subsystem resets, UART, then branches
|
||||
* to main().
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
@@ -26,7 +26,6 @@
|
||||
#include "rp2350_xosc.h"
|
||||
#include "rp2350_reset.h"
|
||||
#include "rp2350_uart.h"
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
extern int main(void);
|
||||
|
||||
@@ -39,7 +38,6 @@ void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||
"bl reset_init_subsystem\n\t"
|
||||
"bl uart_release_reset\n\t"
|
||||
"bl uart_init\n\t"
|
||||
"bl coprocessor_enable\n\t"
|
||||
"b main\n\t"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.h
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver header for RP2350.
|
||||
*
|
||||
* Enables coprocessor access via the CPACR register.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __RP2350_COPROCESSOR_H
|
||||
#define __RP2350_COPROCESSOR_H
|
||||
|
||||
#include "rp2350.h"
|
||||
|
||||
/**
|
||||
* @brief Enable coprocessor access via CPACR with DSB/ISB barriers.
|
||||
* @retval None
|
||||
*/
|
||||
void coprocessor_enable(void);
|
||||
|
||||
#endif /* __RP2350_COPROCESSOR_H */
|
||||
@@ -36,7 +36,6 @@ SRCS = $(SRC_DIR)/vector_table.c \
|
||||
$(SRC_DIR)/rp2350_stack.c \
|
||||
$(SRC_DIR)/rp2350_xosc.c \
|
||||
$(SRC_DIR)/rp2350_reset.c \
|
||||
$(SRC_DIR)/rp2350_coprocessor.c \
|
||||
$(SRC_DIR)/rp2350_uart.c \
|
||||
$(SRC_DIR)/rp2350_ir.c \
|
||||
$(SRC_DIR)/main.c \
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.c
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver implementation for RP2350.
|
||||
*
|
||||
* Grants access to coprocessors 0 and 1 by setting the
|
||||
* corresponding bits in CPACR with DSB/ISB barriers.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
void coprocessor_enable(void)
|
||||
{
|
||||
uint32_t value;
|
||||
value = *CPACR;
|
||||
value |= (1U << CPACR_CP1_SHIFT);
|
||||
value |= (1U << CPACR_CP0_SHIFT);
|
||||
*CPACR = value;
|
||||
__asm__ volatile ("dsb");
|
||||
__asm__ volatile ("isb");
|
||||
}
|
||||
@@ -5,8 +5,8 @@
|
||||
* @brief Reset handler implementation for RP2350.
|
||||
*
|
||||
* Entry point after power-on or system reset. Initializes the
|
||||
* stack, XOSC, subsystem resets, UART, coprocessor, then
|
||||
* branches to main().
|
||||
* stack, XOSC, subsystem resets, UART, then branches
|
||||
* to main().
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
@@ -26,7 +26,6 @@
|
||||
#include "rp2350_xosc.h"
|
||||
#include "rp2350_reset.h"
|
||||
#include "rp2350_uart.h"
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
extern int main(void);
|
||||
|
||||
@@ -39,7 +38,6 @@ void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||
"bl reset_init_subsystem\n\t"
|
||||
"bl uart_release_reset\n\t"
|
||||
"bl uart_init\n\t"
|
||||
"bl coprocessor_enable\n\t"
|
||||
"b main\n\t"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.h
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver header for RP2350.
|
||||
*
|
||||
* Enables coprocessor access via the CPACR register.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __RP2350_COPROCESSOR_H
|
||||
#define __RP2350_COPROCESSOR_H
|
||||
|
||||
#include "rp2350.h"
|
||||
|
||||
/**
|
||||
* @brief Enable coprocessor access via CPACR with DSB/ISB barriers.
|
||||
* @retval None
|
||||
*/
|
||||
void coprocessor_enable(void);
|
||||
|
||||
#endif /* __RP2350_COPROCESSOR_H */
|
||||
@@ -36,7 +36,6 @@ SRCS = $(SRC_DIR)/vector_table.c \
|
||||
$(SRC_DIR)/rp2350_stack.c \
|
||||
$(SRC_DIR)/rp2350_xosc.c \
|
||||
$(SRC_DIR)/rp2350_reset.c \
|
||||
$(SRC_DIR)/rp2350_coprocessor.c \
|
||||
$(SRC_DIR)/rp2350_uart.c \
|
||||
$(SRC_DIR)/rp2350_spi.c \
|
||||
$(SRC_DIR)/rp2350_delay.c \
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.c
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver implementation for RP2350.
|
||||
*
|
||||
* Grants access to coprocessors 0 and 1 by setting the
|
||||
* corresponding bits in CPACR with DSB/ISB barriers.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
void coprocessor_enable(void)
|
||||
{
|
||||
uint32_t value;
|
||||
value = *CPACR;
|
||||
value |= (1U << CPACR_CP1_SHIFT);
|
||||
value |= (1U << CPACR_CP0_SHIFT);
|
||||
*CPACR = value;
|
||||
__asm__ volatile ("dsb");
|
||||
__asm__ volatile ("isb");
|
||||
}
|
||||
@@ -5,7 +5,7 @@
|
||||
* @brief Reset handler implementation for RP2350.
|
||||
*
|
||||
* Entry point after power-on or system reset. Initializes the
|
||||
* stack, XOSC, subsystem resets, UART, coprocessor, then
|
||||
* stack, XOSC, subsystem resets, SPI, UART, then
|
||||
* branches to main().
|
||||
*
|
||||
******************************************************************************
|
||||
@@ -27,20 +27,9 @@
|
||||
#include "rp2350_reset.h"
|
||||
#include "rp2350_spi.h"
|
||||
#include "rp2350_uart.h"
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
extern int main(void);
|
||||
|
||||
/**
|
||||
* @brief Initialize late peripherals (SPI reset and coprocessor).
|
||||
* @retval None
|
||||
*/
|
||||
void _late_init(void)
|
||||
{
|
||||
spi_release_reset();
|
||||
coprocessor_enable();
|
||||
}
|
||||
|
||||
void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||
{
|
||||
__asm__ volatile (
|
||||
@@ -48,9 +37,9 @@ void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||
"bl xosc_init\n\t"
|
||||
"bl xosc_enable_peri_clk\n\t"
|
||||
"bl reset_init_subsystem\n\t"
|
||||
"bl spi_release_reset\n\t"
|
||||
"bl uart_release_reset\n\t"
|
||||
"bl uart_init\n\t"
|
||||
"bl _late_init\n\t"
|
||||
"b main\n\t"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.h
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver header for RP2350.
|
||||
*
|
||||
* Enables coprocessor access via the CPACR register.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __RP2350_COPROCESSOR_H
|
||||
#define __RP2350_COPROCESSOR_H
|
||||
|
||||
#include "rp2350.h"
|
||||
|
||||
/**
|
||||
* @brief Enable coprocessor access via CPACR with DSB/ISB barriers.
|
||||
* @retval None
|
||||
*/
|
||||
void coprocessor_enable(void);
|
||||
|
||||
#endif /* __RP2350_COPROCESSOR_H */
|
||||
@@ -36,7 +36,6 @@ SRCS = $(SRC_DIR)/vector_table.c \
|
||||
$(SRC_DIR)/rp2350_stack.c \
|
||||
$(SRC_DIR)/rp2350_xosc.c \
|
||||
$(SRC_DIR)/rp2350_reset.c \
|
||||
$(SRC_DIR)/rp2350_coprocessor.c \
|
||||
$(SRC_DIR)/rp2350_uart.c \
|
||||
$(SRC_DIR)/rp2350_multicore.c \
|
||||
$(SRC_DIR)/rp2350_delay.c \
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.c
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver implementation for RP2350.
|
||||
*
|
||||
* Grants access to coprocessors 0 and 1 by setting the
|
||||
* corresponding bits in CPACR with DSB/ISB barriers.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
void coprocessor_enable(void)
|
||||
{
|
||||
uint32_t value;
|
||||
value = *CPACR;
|
||||
value |= (1U << CPACR_CP1_SHIFT);
|
||||
value |= (1U << CPACR_CP0_SHIFT);
|
||||
*CPACR = value;
|
||||
__asm__ volatile ("dsb");
|
||||
__asm__ volatile ("isb");
|
||||
}
|
||||
@@ -5,8 +5,8 @@
|
||||
* @brief Reset handler implementation for RP2350.
|
||||
*
|
||||
* Entry point after power-on or system reset. Initializes the
|
||||
* stack, XOSC, subsystem resets, UART, coprocessor, then
|
||||
* branches to main().
|
||||
* stack, XOSC, subsystem resets, UART, then branches
|
||||
* to main().
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
@@ -26,7 +26,6 @@
|
||||
#include "rp2350_xosc.h"
|
||||
#include "rp2350_reset.h"
|
||||
#include "rp2350_uart.h"
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
extern int main(void);
|
||||
|
||||
@@ -39,7 +38,6 @@ void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||
"bl reset_init_subsystem\n\t"
|
||||
"bl uart_release_reset\n\t"
|
||||
"bl uart_init\n\t"
|
||||
"bl coprocessor_enable\n\t"
|
||||
"b main\n\t"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.h
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver header for RP2350.
|
||||
*
|
||||
* Enables coprocessor access via the CPACR register.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __RP2350_COPROCESSOR_H
|
||||
#define __RP2350_COPROCESSOR_H
|
||||
|
||||
#include "rp2350.h"
|
||||
|
||||
/**
|
||||
* @brief Enable coprocessor access via CPACR with DSB/ISB barriers.
|
||||
* @retval None
|
||||
*/
|
||||
void coprocessor_enable(void);
|
||||
|
||||
#endif /* __RP2350_COPROCESSOR_H */
|
||||
@@ -36,7 +36,6 @@ SRCS = $(SRC_DIR)/vector_table.c \
|
||||
$(SRC_DIR)/rp2350_stack.c \
|
||||
$(SRC_DIR)/rp2350_xosc.c \
|
||||
$(SRC_DIR)/rp2350_reset.c \
|
||||
$(SRC_DIR)/rp2350_coprocessor.c \
|
||||
$(SRC_DIR)/rp2350_uart.c \
|
||||
$(SRC_DIR)/rp2350_delay.c \
|
||||
$(SRC_DIR)/rp2350_timer.c \
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.c
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver implementation for RP2350.
|
||||
*
|
||||
* Grants access to coprocessors 0 and 1 by setting the
|
||||
* corresponding bits in CPACR with DSB/ISB barriers.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
void coprocessor_enable(void)
|
||||
{
|
||||
uint32_t value;
|
||||
value = *CPACR;
|
||||
value |= (1U << CPACR_CP1_SHIFT);
|
||||
value |= (1U << CPACR_CP0_SHIFT);
|
||||
*CPACR = value;
|
||||
__asm__ volatile ("dsb");
|
||||
__asm__ volatile ("isb");
|
||||
}
|
||||
@@ -5,8 +5,8 @@
|
||||
* @brief Reset handler implementation for RP2350.
|
||||
*
|
||||
* Entry point after power-on or system reset. Initializes the
|
||||
* stack, XOSC, subsystem resets, UART, TIMER0 tick generator,
|
||||
* coprocessor, then branches to main().
|
||||
* stack, XOSC, subsystem resets, UART, TIMER0 tick
|
||||
* generator, then branches to main().
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
@@ -27,19 +27,17 @@
|
||||
#include "rp2350_reset.h"
|
||||
#include "rp2350_uart.h"
|
||||
#include "rp2350_timer.h"
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
extern int main(void);
|
||||
|
||||
/**
|
||||
* @brief Initialize late peripherals (timer tick and coprocessor).
|
||||
* @brief Initialize late peripherals (timer release and tick init).
|
||||
* @retval None
|
||||
*/
|
||||
void _late_init(void)
|
||||
{
|
||||
timer_release_reset();
|
||||
timer_tick_init();
|
||||
coprocessor_enable();
|
||||
}
|
||||
|
||||
void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.h
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver header for RP2350.
|
||||
*
|
||||
* Enables coprocessor access via the CPACR register.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __RP2350_COPROCESSOR_H
|
||||
#define __RP2350_COPROCESSOR_H
|
||||
|
||||
#include "rp2350.h"
|
||||
|
||||
/**
|
||||
* @brief Enable coprocessor access via CPACR with DSB/ISB barriers.
|
||||
* @retval None
|
||||
*/
|
||||
void coprocessor_enable(void);
|
||||
|
||||
#endif /* __RP2350_COPROCESSOR_H */
|
||||
@@ -36,7 +36,6 @@ SRCS = $(SRC_DIR)/vector_table.c \
|
||||
$(SRC_DIR)/rp2350_stack.c \
|
||||
$(SRC_DIR)/rp2350_xosc.c \
|
||||
$(SRC_DIR)/rp2350_reset.c \
|
||||
$(SRC_DIR)/rp2350_coprocessor.c \
|
||||
$(SRC_DIR)/rp2350_uart.c \
|
||||
$(SRC_DIR)/rp2350_delay.c \
|
||||
$(SRC_DIR)/rp2350_watchdog.c \
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.c
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver implementation for RP2350.
|
||||
*
|
||||
* Grants access to coprocessors 0 and 1 by setting the
|
||||
* corresponding bits in CPACR with DSB/ISB barriers.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
void coprocessor_enable(void)
|
||||
{
|
||||
uint32_t value;
|
||||
value = *CPACR;
|
||||
value |= (1U << CPACR_CP1_SHIFT);
|
||||
value |= (1U << CPACR_CP0_SHIFT);
|
||||
*CPACR = value;
|
||||
__asm__ volatile ("dsb");
|
||||
__asm__ volatile ("isb");
|
||||
}
|
||||
@@ -5,8 +5,8 @@
|
||||
* @brief Reset handler implementation for RP2350.
|
||||
*
|
||||
* Entry point after power-on or system reset. Initializes the
|
||||
* stack, XOSC, subsystem resets, UART, watchdog tick generator,
|
||||
* coprocessor, then branches to main().
|
||||
* stack, XOSC, subsystem resets, UART, watchdog tick
|
||||
* generator, then branches to main().
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
@@ -27,20 +27,9 @@
|
||||
#include "rp2350_reset.h"
|
||||
#include "rp2350_uart.h"
|
||||
#include "rp2350_watchdog.h"
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
extern int main(void);
|
||||
|
||||
/**
|
||||
* @brief Initialize late peripherals (watchdog tick and coprocessor).
|
||||
* @retval None
|
||||
*/
|
||||
void _late_init(void)
|
||||
{
|
||||
watchdog_tick_init();
|
||||
coprocessor_enable();
|
||||
}
|
||||
|
||||
void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||
{
|
||||
__asm__ volatile (
|
||||
@@ -50,7 +39,7 @@ void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||
"bl reset_init_subsystem\n\t"
|
||||
"bl uart_release_reset\n\t"
|
||||
"bl uart_init\n\t"
|
||||
"bl _late_init\n\t"
|
||||
"bl watchdog_tick_init\n\t"
|
||||
"b main\n\t"
|
||||
);
|
||||
}
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.h
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver header for RP2350.
|
||||
*
|
||||
* Enables coprocessor access via the CPACR register.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#ifndef __RP2350_COPROCESSOR_H
|
||||
#define __RP2350_COPROCESSOR_H
|
||||
|
||||
#include "rp2350.h"
|
||||
|
||||
/**
|
||||
* @brief Enable coprocessor access via CPACR with DSB/ISB barriers.
|
||||
* @retval None
|
||||
*/
|
||||
void coprocessor_enable(void);
|
||||
|
||||
#endif /* __RP2350_COPROCESSOR_H */
|
||||
@@ -36,7 +36,6 @@ SRCS = $(SRC_DIR)/vector_table.c \
|
||||
$(SRC_DIR)/rp2350_stack.c \
|
||||
$(SRC_DIR)/rp2350_xosc.c \
|
||||
$(SRC_DIR)/rp2350_reset.c \
|
||||
$(SRC_DIR)/rp2350_coprocessor.c \
|
||||
$(SRC_DIR)/rp2350_uart.c \
|
||||
$(SRC_DIR)/rp2350_flash.c \
|
||||
$(SRC_DIR)/main.c \
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file rp2350_coprocessor.c
|
||||
* @author Kevin Thomas
|
||||
* @brief Coprocessor access control driver implementation for RP2350.
|
||||
*
|
||||
* Grants access to coprocessors 0 and 1 by setting the
|
||||
* corresponding bits in CPACR with DSB/ISB barriers.
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
*
|
||||
* Copyright (c) 2026 Kevin Thomas.
|
||||
* All rights reserved.
|
||||
*
|
||||
* This software is licensed under terms that can be found in the LICENSE file
|
||||
* in the root directory of this software component.
|
||||
* If no LICENSE file comes with this software, it is provided AS-IS.
|
||||
*
|
||||
******************************************************************************
|
||||
*/
|
||||
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
void coprocessor_enable(void)
|
||||
{
|
||||
uint32_t value;
|
||||
value = *CPACR;
|
||||
value |= (1U << CPACR_CP1_SHIFT);
|
||||
value |= (1U << CPACR_CP0_SHIFT);
|
||||
*CPACR = value;
|
||||
__asm__ volatile ("dsb");
|
||||
__asm__ volatile ("isb");
|
||||
}
|
||||
@@ -6,8 +6,7 @@
|
||||
*
|
||||
* Entry point after power-on or system reset. Copies the
|
||||
* .data section from flash to RAM, initializes the stack,
|
||||
* XOSC, subsystem resets, UART, coprocessor, then branches
|
||||
* to main().
|
||||
* XOSC, subsystem resets, UART, then branches to main().
|
||||
*
|
||||
******************************************************************************
|
||||
* @attention
|
||||
@@ -27,7 +26,6 @@
|
||||
#include "rp2350_xosc.h"
|
||||
#include "rp2350_reset.h"
|
||||
#include "rp2350_uart.h"
|
||||
#include "rp2350_coprocessor.h"
|
||||
|
||||
extern int main(void);
|
||||
|
||||
@@ -77,7 +75,6 @@ void __attribute__((naked, noreturn)) Reset_Handler(void)
|
||||
"bl reset_init_subsystem\n\t"
|
||||
"bl uart_release_reset\n\t"
|
||||
"bl uart_init\n\t"
|
||||
"bl coprocessor_enable\n\t"
|
||||
"b main\n\t"
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user