mirror of
https://github.com/raspberrypi/pico-sdk.git
synced 2026-03-14 21:19:43 +01:00
92 lines
2.4 KiB
C
92 lines
2.4 KiB
C
/*
|
|
* Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
|
|
#ifndef KITCHEN_SINK_INCLUDE_HEADER
|
|
// provided for backwards compatibility for non CMake build systems - just includes enough to compile
|
|
#include "hardware/dma.h"
|
|
#include "pico/sync.h"
|
|
#include "pico/stdlib.h"
|
|
#if LIB_PICO_BINARY_INFO
|
|
#include "pico/binary_info.h"
|
|
#endif
|
|
#else
|
|
#include KITCHEN_SINK_INCLUDE_HEADER
|
|
#endif
|
|
|
|
#if LIB_PICO_MBEDTLS
|
|
#include "mbedtls/ssl.h"
|
|
#include "lwip/altcp_tcp.h"
|
|
#include "lwip/altcp_tls.h"
|
|
#endif
|
|
|
|
#if LIB_PICO_BINARY_INFO
|
|
bi_decl(bi_block_device(
|
|
BINARY_INFO_MAKE_TAG('K', 'S'),
|
|
"foo",
|
|
0x80000,
|
|
0x40000,
|
|
NULL,
|
|
BINARY_INFO_BLOCK_DEV_FLAG_READ | BINARY_INFO_BLOCK_DEV_FLAG_WRITE |
|
|
BINARY_INFO_BLOCK_DEV_FLAG_PT_UNKNOWN));
|
|
#endif
|
|
|
|
uint32_t *foo = (uint32_t *) 200;
|
|
|
|
uint32_t dma_to = 0;
|
|
uint32_t dma_from = 0xaaaa5555;
|
|
|
|
void __noinline spiggle(void) {
|
|
dma_channel_config c = dma_channel_get_default_config(1);
|
|
channel_config_set_bswap(&c, true);
|
|
channel_config_set_transfer_data_size(&c, DMA_SIZE_16);
|
|
channel_config_set_ring(&c, true, 13);
|
|
dma_channel_set_config(1, &c, false);
|
|
dma_channel_transfer_from_buffer_now(1, foo, 23);
|
|
}
|
|
|
|
__force_inline int something_inlined(int x) {
|
|
return x * 2;
|
|
}
|
|
|
|
auto_init_mutex(mutex);
|
|
auto_init_recursive_mutex(recursive_mutex);
|
|
|
|
float __attribute__((noinline)) foox(float x, float b) {
|
|
return x * b;
|
|
}
|
|
|
|
int main(void) {
|
|
spiggle();
|
|
|
|
stdio_init_all();
|
|
|
|
printf("HI %d\n", something_inlined((int)time_us_32()));
|
|
puts("Hello Everything!");
|
|
puts("Hello Everything2!");
|
|
|
|
printf("main at %p\n", (void *)main);
|
|
static uint x[2];
|
|
printf("x[0] = %p, x[1] = %p\n", x, x+1);
|
|
#ifdef __riscv
|
|
printf("RISC-V\n");
|
|
#else
|
|
printf("ARM\n");
|
|
#endif
|
|
#ifdef KITCHEN_SINK_ID
|
|
puts(KITCHEN_SINK_ID);
|
|
#endif
|
|
hard_assert(mutex_try_enter(&mutex, NULL));
|
|
hard_assert(!mutex_try_enter(&mutex, NULL));
|
|
hard_assert(recursive_mutex_try_enter(&recursive_mutex, NULL));
|
|
hard_assert(recursive_mutex_try_enter(&recursive_mutex, NULL));
|
|
printf("%f\n", foox(1.3f, 2.6f));
|
|
#ifndef __riscv
|
|
// this should compile as we are Cortex M0+
|
|
pico_default_asm ("SVC #3");
|
|
#endif
|
|
}
|