mirror of
https://github.com/mytechnotalent/Embedded-Hacking.git
synced 2026-05-22 15:39:39 +02:00
d072ec5946
- Restructure flat files into Inc/ (headers) and Src/ (sources) - Replace constants.h with rp2350.h register layer (datasheet-verified) - Add full Doxygen docstrings on all files, functions, and structs - Replace build.bat/clean.bat with cross-platform Makefile - Fix GPIO_IN offset (0x004), XOSC COUNT offset (0x10), SRAM size (520K) - Rename blink_* API to led_* (name after peripheral, not feature) - Build outputs to build/ directory - Cross-platform .vscode configs (Windows/macOS/Linux)
39 lines
1.0 KiB
C
39 lines
1.0 KiB
C
/**
|
|
******************************************************************************
|
|
* @file rp2350_stack.c
|
|
* @author Kevin Thomas
|
|
* @brief Stack pointer initialization for RP2350.
|
|
*
|
|
* Sets MSP, PSP, MSPLIM, and PSPLIM using inline assembly.
|
|
*
|
|
******************************************************************************
|
|
* @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_stack.h"
|
|
|
|
void stack_init(void)
|
|
{
|
|
__asm__ volatile (
|
|
"ldr r0, =%0\n\t"
|
|
"msr PSP, r0\n\t"
|
|
"ldr r0, =%1\n\t"
|
|
"msr MSPLIM, r0\n\t"
|
|
"msr PSPLIM, r0\n\t"
|
|
"ldr r0, =%0\n\t"
|
|
"msr MSP, r0\n\t"
|
|
:
|
|
: "i" (STACK_TOP), "i" (STACK_LIMIT)
|
|
: "r0"
|
|
);
|
|
}
|