mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-23 00:05:33 +03:00
Adding RP2350 SDK and target framework (#13988)
* Adding RP2350 SDK and target framework * Spacing * Removing board definitions
This commit is contained in:
parent
462cb05930
commit
2dd6f95aad
576 changed files with 435012 additions and 0 deletions
38
lib/main/pico-sdk/common/pico_base_headers/include/pico.h
Normal file
38
lib/main/pico-sdk/common/pico_base_headers/include/pico.h
Normal file
|
@ -0,0 +1,38 @@
|
|||
/*
|
||||
* Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef _PICO_H
|
||||
#define _PICO_H
|
||||
|
||||
/** \file pico.h
|
||||
* \defgroup pico_base pico_base
|
||||
*
|
||||
* \brief Core types and macros for the Raspberry Pi Pico SDK.
|
||||
*
|
||||
* This header is intended to be included by all source code
|
||||
* as it includes configuration headers and overrides in the correct order
|
||||
*
|
||||
* This header may be included by assembly code
|
||||
*/
|
||||
|
||||
// We may be included by assembly which can't include <cdefs.h>
|
||||
#define __PICO_STRING(x) #x
|
||||
#define __PICO_XSTRING(x) __PICO_STRING(x)
|
||||
#define __PICO_CONCAT1(x, y) x ## y
|
||||
|
||||
#include "pico/types.h"
|
||||
#include "pico/version.h"
|
||||
|
||||
// PICO_CONFIG: PICO_CONFIG_HEADER, Unquoted path to header include in place of the default pico/config.h which may be desirable for build systems which can't easily generate the config_autogen header, group=pico_base
|
||||
#ifdef PICO_CONFIG_HEADER
|
||||
#include __PICO_XSTRING(PICO_CONFIG_HEADER)
|
||||
#else
|
||||
#include "pico/config.h"
|
||||
#endif
|
||||
#include "pico/platform.h"
|
||||
#include "pico/error.h"
|
||||
|
||||
#endif
|
|
@ -0,0 +1,52 @@
|
|||
/*
|
||||
* Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef _PICO_ASSERT_H
|
||||
#define _PICO_ASSERT_H
|
||||
|
||||
#include <stdbool.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
#include <cassert>
|
||||
|
||||
extern "C" {
|
||||
#else
|
||||
#include <assert.h>
|
||||
#endif
|
||||
|
||||
// PICO_CONFIG: PARAM_ASSERTIONS_ENABLE_ALL, Global assert enable, type=bool, default=0, group=pico_base
|
||||
// PICO_CONFIG: PARAM_ASSERTIONS_DISABLE_ALL, Global assert disable, type=bool, default=0, group=pico_base
|
||||
|
||||
#ifndef PARAM_ASSERTIONS_ENABLE_ALL
|
||||
#define PARAM_ASSERTIONS_ENABLE_ALL 0
|
||||
#endif
|
||||
|
||||
#ifndef PARAM_ASSERTIONS_DISABLE_ALL
|
||||
#define PARAM_ASSERTIONS_DISABLE_ALL 0
|
||||
#endif
|
||||
|
||||
#define PARAM_ASSERTIONS_ENABLED(x) ((PARAM_ASSERTIONS_ENABLED_ ## x || PARAM_ASSERTIONS_ENABLE_ALL) && !PARAM_ASSERTIONS_DISABLE_ALL)
|
||||
|
||||
#define invalid_params_if(x, test) ({if (PARAM_ASSERTIONS_ENABLED(x)) assert(!(test));})
|
||||
#define valid_params_if(x, test) ({if (PARAM_ASSERTIONS_ENABLED(x)) assert(test);})
|
||||
#define hard_assert_if(x, test) ({if (PARAM_ASSERTIONS_ENABLED(x)) hard_assert(!(test));})
|
||||
#define invalid_params_if_and_return(x, test, rc) ({/*if (PARAM_ASSERTIONS_ENABLED(x)) assert(!(test)); */ if (test) return rc; })
|
||||
|
||||
#ifdef NDEBUG
|
||||
extern void hard_assertion_failure(void);
|
||||
static inline void hard_assert(bool condition, ...) {
|
||||
if (!condition)
|
||||
hard_assertion_failure();
|
||||
}
|
||||
#else
|
||||
#define hard_assert assert
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
* Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef _PICO_CONFIG_H
|
||||
#define _PICO_CONFIG_H
|
||||
|
||||
// -----------------------------------------------------
|
||||
// NOTE: THIS HEADER IS ALSO INCLUDED BY ASSEMBLY CODE SO
|
||||
// SHOULD ONLY CONSIST OF PREPROCESSOR DIRECTIVES
|
||||
// OR USE #ifndef __ASSEMBLER__ guards
|
||||
// -------------
|
||||
|
||||
// PICO_CONFIG_HEADER_FILES and then PICO_SDK_<PLATFORM>_CONFIG_INCLUDE_FILES
|
||||
// entries are dumped in order at build time into this generated header
|
||||
|
||||
#include "pico/config_autogen.h"
|
||||
|
||||
// PICO_CONFIG: PICO_CONFIG_RTOS_ADAPTER_HEADER, Unquoted path to header include in the default pico/config.h for RTOS integration defines that must be included in all sources, group=pico_base
|
||||
#ifdef PICO_CONFIG_RTOS_ADAPTER_HEADER
|
||||
#include __PICO_XSTRING(PICO_CONFIG_RTOS_ADAPTER_HEADER)
|
||||
#endif
|
||||
|
||||
#endif
|
|
@ -0,0 +1,50 @@
|
|||
/*
|
||||
* Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef _PICO_ERROR_H
|
||||
#define _PICO_ERROR_H
|
||||
|
||||
#ifndef __ASSEMBLER__
|
||||
|
||||
/*!
|
||||
* \brief Common return codes from pico_sdk methods that return a status
|
||||
*
|
||||
* All `PICO_ERROR_` values are negative so they can be returned from functions that also
|
||||
* want to return a zero or positive value on success.
|
||||
*
|
||||
* Note these error codes may be returned via bootrom functions too.
|
||||
*
|
||||
* \ingroup pico_base
|
||||
*/
|
||||
enum pico_error_codes {
|
||||
PICO_OK = 0, ///< No error; the operation succeeded
|
||||
PICO_ERROR_NONE = 0, ///< No error; the operation succeeded
|
||||
PICO_ERROR_GENERIC = -1, ///< An unspecified error occurred
|
||||
PICO_ERROR_TIMEOUT = -2, ///< The function failed due to timeout
|
||||
PICO_ERROR_NO_DATA = -3, ///< Attempt for example to read from an empty buffer/FIFO
|
||||
PICO_ERROR_NOT_PERMITTED = -4, ///< Permission violation e.g. write to read-only flash partition, or security violation
|
||||
PICO_ERROR_INVALID_ARG = -5, ///< Argument is outside of range of supported values`
|
||||
PICO_ERROR_IO = -6, ///< An I/O error occurred
|
||||
PICO_ERROR_BADAUTH = -7, ///< The authorization failed due to bad credentials
|
||||
PICO_ERROR_CONNECT_FAILED = -8, ///< The connection failed
|
||||
PICO_ERROR_INSUFFICIENT_RESOURCES = -9, ///< Dynamic allocation of resources failed
|
||||
PICO_ERROR_INVALID_ADDRESS = -10, ///< Address argument was out-of-bounds or was determined to be an address that the caller may not access
|
||||
PICO_ERROR_BAD_ALIGNMENT = -11, ///< Address was mis-aligned (usually not on word boundary)
|
||||
PICO_ERROR_INVALID_STATE = -12, ///< Something happened or failed to happen in the past, and consequently we (currently) can't service the request
|
||||
PICO_ERROR_BUFFER_TOO_SMALL = -13, ///< A user-allocated buffer was too small to hold the result or working state of this function
|
||||
PICO_ERROR_PRECONDITION_NOT_MET = -14, ///< The call failed because another function must be called first
|
||||
PICO_ERROR_MODIFIED_DATA = -15, ///< Cached data was determined to be inconsistent with the actual version of the data
|
||||
PICO_ERROR_INVALID_DATA = -16, ///< A data structure failed to validate
|
||||
PICO_ERROR_NOT_FOUND = -17, ///< Attempted to access something that does not exist; or, a search failed
|
||||
PICO_ERROR_UNSUPPORTED_MODIFICATION = -18, ///< Write is impossible based on previous writes; e.g. attempted to clear an OTP bit
|
||||
PICO_ERROR_LOCK_REQUIRED = -19, ///< A required lock is not owned
|
||||
PICO_ERROR_VERSION_MISMATCH = -20, ///< A version mismatch occurred (e.g. trying to run PIO version 1 code on RP2040)
|
||||
PICO_ERROR_RESOURCE_IN_USE = -21 ///< The call could not proceed because requires resourcesw were unavailable
|
||||
};
|
||||
|
||||
#endif // !__ASSEMBLER__
|
||||
|
||||
#endif
|
121
lib/main/pico-sdk/common/pico_base_headers/include/pico/types.h
Normal file
121
lib/main/pico-sdk/common/pico_base_headers/include/pico/types.h
Normal file
|
@ -0,0 +1,121 @@
|
|||
/*
|
||||
* Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef _PICO_TYPES_H
|
||||
#define _PICO_TYPES_H
|
||||
|
||||
#ifndef __ASSEMBLER__
|
||||
|
||||
#include "pico/assert.h"
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <stddef.h>
|
||||
|
||||
typedef unsigned int uint;
|
||||
|
||||
// PICO_CONFIG: PICO_OPAQUE_ABSOLUTE_TIME_T, Enable opaque type for absolute_time_t to help catch inadvertent confusing uint64_t delays with absolute times, default=0, advanced=true, group=pico_base
|
||||
#ifndef PICO_OPAQUE_ABSOLUTE_TIME_T
|
||||
#define PICO_OPAQUE_ABSOLUTE_TIME_T 0
|
||||
#endif
|
||||
|
||||
/*! \typedef absolute_time_t
|
||||
\brief An opaque 64 bit timestamp in microseconds
|
||||
|
||||
The type is used instead of a raw uint64_t to prevent accidentally passing relative times or times in the wrong
|
||||
time units where an absolute time is required.
|
||||
|
||||
note: As of SDK 2.0.0 this type defaults to being a uin64_t (i.e. no protection); it is enabled
|
||||
by setting PICO_OPAQUE_ABSOLUTE_TIME_T to 1
|
||||
|
||||
\see to_us_since_boot()
|
||||
\see update_us_since_boot()
|
||||
\ingroup timestamp
|
||||
*/
|
||||
#if PICO_OPAQUE_ABSOLUTE_TIME_T
|
||||
typedef struct {
|
||||
uint64_t _private_us_since_boot;
|
||||
} absolute_time_t;
|
||||
#else
|
||||
typedef uint64_t absolute_time_t;
|
||||
#endif
|
||||
|
||||
/*! fn to_us_since_boot
|
||||
* \brief convert an absolute_time_t into a number of microseconds since boot.
|
||||
* \param t the absolute time to convert
|
||||
* \return a number of microseconds since boot, equivalent to t
|
||||
* \ingroup timestamp
|
||||
*/
|
||||
static inline uint64_t to_us_since_boot(absolute_time_t t) {
|
||||
#ifdef PICO_DEBUG_ABSOLUTE_TIME_T
|
||||
return t._private_us_since_boot;
|
||||
#else
|
||||
return t;
|
||||
#endif
|
||||
}
|
||||
|
||||
/*! fn update_us_since_boot
|
||||
* \brief update an absolute_time_t value to represent a given number of microseconds since boot
|
||||
* \param t the absolute time value to update
|
||||
* \param us_since_boot the number of microseconds since boot to represent. Note this should be representable
|
||||
* as a signed 64 bit integer
|
||||
* \ingroup timestamp
|
||||
*/
|
||||
static inline void update_us_since_boot(absolute_time_t *t, uint64_t us_since_boot) {
|
||||
#ifdef PICO_DEBUG_ABSOLUTE_TIME_T
|
||||
assert(us_since_boot <= INT64_MAX);
|
||||
t->_private_us_since_boot = us_since_boot;
|
||||
#else
|
||||
*t = us_since_boot;
|
||||
#endif
|
||||
}
|
||||
|
||||
/*! fn from_us_since_boot
|
||||
* \brief convert a number of microseconds since boot to an absolute_time_t
|
||||
* \param us_since_boot number of microseconds since boot
|
||||
* \return an absolute time equivalent to us_since_boot
|
||||
* \ingroup timestamp
|
||||
*/
|
||||
static inline absolute_time_t from_us_since_boot(uint64_t us_since_boot) {
|
||||
absolute_time_t t;
|
||||
update_us_since_boot(&t, us_since_boot);
|
||||
return t;
|
||||
}
|
||||
|
||||
#ifdef NDEBUG
|
||||
#define ABSOLUTE_TIME_INITIALIZED_VAR(name, value) name = value
|
||||
#else
|
||||
#define ABSOLUTE_TIME_INITIALIZED_VAR(name, value) name = {value}
|
||||
#endif
|
||||
|
||||
// PICO_CONFIG: PICO_INCLUDE_RTC_DATETIME, Whether to include the datetime_t type used with the RP2040 RTC hardware, default=1 on RP2040, group=util_datetime
|
||||
#ifndef PICO_INCLUDE_RTC_DATETIME
|
||||
#define PICO_INCLUDE_RTC_DATETIME PICO_RP2040
|
||||
#endif
|
||||
|
||||
#if PICO_INCLUDE_RTC_DATETIME
|
||||
/** \struct datetime_t
|
||||
* \ingroup util_datetime
|
||||
* \brief Structure containing date and time information
|
||||
*
|
||||
* When setting an RTC alarm, set a field to -1 tells
|
||||
* the RTC to not match on this field
|
||||
*/
|
||||
typedef struct {
|
||||
int16_t year; ///< 0..4095
|
||||
int8_t month; ///< 1..12, 1 is January
|
||||
int8_t day; ///< 1..28,29,30,31 depending on month
|
||||
int8_t dotw; ///< 0..6, 0 is Sunday
|
||||
int8_t hour; ///< 0..23
|
||||
int8_t min; ///< 0..59
|
||||
int8_t sec; ///< 0..59
|
||||
} datetime_t;
|
||||
#endif
|
||||
|
||||
#define bool_to_bit(x) ((uint)!!(x))
|
||||
|
||||
#endif
|
||||
#endif
|
|
@ -0,0 +1,19 @@
|
|||
/*
|
||||
* Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
// ---------------------------------------
|
||||
// THIS FILE IS AUTOGENERATED; DO NOT EDIT
|
||||
// ---------------------------------------
|
||||
|
||||
#ifndef _PICO_VERSION_H
|
||||
#define _PICO_VERSION_H
|
||||
|
||||
#define PICO_SDK_VERSION_MAJOR ${PICO_SDK_VERSION_MAJOR}
|
||||
#define PICO_SDK_VERSION_MINOR ${PICO_SDK_VERSION_MINOR}
|
||||
#define PICO_SDK_VERSION_REVISION ${PICO_SDK_VERSION_REVISION}
|
||||
#define PICO_SDK_VERSION_STRING "${PICO_SDK_VERSION_STRING}"
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue