From 9f306e9407d0ddc6164b83813102badb67a9dc87 Mon Sep 17 00:00:00 2001 From: sys64738 Date: Mon, 28 Jun 2021 22:04:40 +0200 Subject: [PATCH] remove STM32F072 disco support for now. sorry. --- CMakeLists.txt | 7 +- README.md | 16 +- bsp/default/DAP_config.h | 158 ++++++---- bsp/default/cdc_uart.c | 17 ++ bsp/default/i2c_tinyusb.c | 36 +++ bsp/default/protocfg.h | 39 ++- bsp/default/spi_serprog.c | 25 ++ bsp/default/tempsensor.c | 11 + bsp/default/unique.c | 31 +- bsp/stm32f072disco/DAP_config.h | 499 ------------------------------- bsp/stm32f072disco/cdc_stdio.c | 7 - bsp/stm32f072disco/cdc_uart.c | 8 - bsp/stm32f072disco/i2c_tinyusb.c | 25 -- bsp/stm32f072disco/protocfg.h | 34 --- bsp/stm32f072disco/spi_serprog.c | 17 -- bsp/stm32f072disco/unique.c | 33 -- 16 files changed, 250 insertions(+), 713 deletions(-) create mode 100644 bsp/default/cdc_uart.c create mode 100644 bsp/default/i2c_tinyusb.c create mode 100644 bsp/default/spi_serprog.c create mode 100644 bsp/default/tempsensor.c delete mode 100644 bsp/stm32f072disco/DAP_config.h delete mode 100644 bsp/stm32f072disco/cdc_stdio.c delete mode 100644 bsp/stm32f072disco/cdc_uart.c delete mode 100644 bsp/stm32f072disco/i2c_tinyusb.c delete mode 100644 bsp/stm32f072disco/protocfg.h delete mode 100644 bsp/stm32f072disco/spi_serprog.c delete mode 100644 bsp/stm32f072disco/unique.c diff --git a/CMakeLists.txt b/CMakeLists.txt index cc7781c..40d0e7d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,3 @@ -option(USE_SYSTEMWIDE_PICOSDK "Use the systemwide Pico SDK instead of relying on the one from a deeply nested Git submodule (OFF by default)" OFF) -option(PICO_NO_FLASH "Disable writing the compiled program to flash, and only load it to RAM. Useful for testing, but not much else (OFF by default)." OFF) -option(PICO_COPY_TO_RAM "Run all code in RAM, while the program is also stored on flash. On bootup, everything will be copied to RAM (OFF by default)." OFF) option(USE_USBCDC_FOR_STDIO "Export an extra USB-CDC interface for stdio, instead of echoing it to a UART port (and requiring UART loopback for receiving stdio output on a host computer)." OFF) set(FAMILY "rp2040" CACHE STRING "Board/MCU family, decides which drivers to use. Set to RP2040 by default.") set(BOARD "raspberry_pi_pico" CACHE STRING "Board used, determines the pinout. Defaults to the Raspberry Pi Pico.") @@ -19,6 +16,10 @@ get_filename_component(TOP "${TOP}" REALPATH) if(FAMILY STREQUAL "rp2040") cmake_minimum_required(VERSION 3.12) + option(USE_SYSTEMWIDE_PICOSDK "Use the systemwide Pico SDK instead of relying on the one from a deeply nested Git submodule (OFF by default)" OFF) + option(PICO_NO_FLASH "Disable writing the compiled program to flash, and only load it to RAM. Useful for testing, but not much else (OFF by default)." OFF) + option(PICO_COPY_TO_RAM "Run all code in RAM, while the program is also stored on flash. On bootup, everything will be copied to RAM (OFF by default)." OFF) + if (USE_SYSTEMWIDE_PICOSDK) set(TOP "$ENV{PICO_SDK_PATH}/lib/tinyusb") get_filename_component(TOP "${TOP}" REALPATH) diff --git a/README.md b/README.md index 1692f80..e5bb9d8 100644 --- a/README.md +++ b/README.md @@ -41,10 +41,11 @@ and with the folders used in `./bsp` as well. A non-exhaustive list of possible BOARD/FAMILY combinations: -| `FAMILY` | `BOARD` | description | -|:------- |:-------- |:----------- | -| `rp2040`|`raspberry_pi_pico`|Raspberry Pi Pico | -| `stm32f072disco`|`stm32f072disco`| STM 32072B "Discovery" | +| `FAMILY` | `BOARD` | description | notes | +|:-------- |:------------------ |:----------------- |:------- | +| `rp2040` |`raspberry_pi_pico` | Raspberry Pi Pico | default | + +### Notes on compiling for the RP2040 Pico If you have the Pico SDK installed on your system, and the `PICO_SDK_PATH` environment variable is specified properly, you can omit the `--recursive` flag @@ -63,12 +64,11 @@ These microcontrollers support the following protocols: | MCU | SWD | JTAG | UART | SPI (flashrom) | I2C | Other stuff | |:------ |:---:|:----:|:----:|:-------------- |:--- |:--------------- | | RP2040 | X | X | X | X | X | Planned | -| STM32F072B Discovery | X | | | | | | The [original repository]() (Dapper -Mime) supported only SWD and UART, and worked for these two boards. This fork -focusses on adding more protocols, but the author of this fork only has a -Raspberry Pi Pico. +Mime) supported only SWD and UART, and worked for the RP2040 Pico and the +STM32F072 Discovery. This fork focusses on adding more protocols, but the +author of this fork only has a Raspberry Pi Pico. The pin mapping for the RP2040 is as follows: diff --git a/bsp/default/DAP_config.h b/bsp/default/DAP_config.h index 5dc5425..498427a 100644 --- a/bsp/default/DAP_config.h +++ b/bsp/default/DAP_config.h @@ -1,42 +1,38 @@ /* -This is *NOT* a valid CMSIS-DAP configuration; it is merely a fallback default to compile. -*/ + * The MIT License (MIT) + * + * Copyright (c) 2021 Peter Lawrence + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ /* - * Copyright (c) 2013-2017 ARM Limited. All rights reserved. - * - * SPDX-License-Identifier: Apache-2.0 - * - * Licensed 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 - * - * 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. - * - * ---------------------------------------------------------------------- - * - * $Date: 1. December 2017 - * $Revision: V2.0.0 - * - * Project: CMSIS-DAP Configuration - * Title: DAP_config.h CMSIS-DAP Configuration File (Template) - * - *---------------------------------------------------------------------------*/ +This DAP_config provides a CMSIS-DAP alternative to picoprobe and raspberrypi-swd.cfg +*/ #ifndef __DAP_CONFIG_H__ #define __DAP_CONFIG_H__ - //************************************************************************************************** -/** +/** \defgroup DAP_Config_Debug_gr CMSIS-DAP Debug Unit Information -\ingroup DAP_ConfigIO_gr +\ingroup DAP_ConfigIO_gr @{ Provides definitions about the hardware and configuration of the Debug Unit. @@ -49,14 +45,12 @@ This information includes: */ #include "cmsis_compiler.h" -#include "bsp/board.h" -#include "protos.h" #include "util.h" /// Processor Clock of the Cortex-M MCU used in the Debug Unit. /// This value is used to calculate the SWD/JTAG clock speed. -#define CPU_CLOCK 100000000U ///< Specifies the CPU Clock in Hz. +#define CPU_CLOCK 48000000U ///< Specifies the CPU Clock in Hz. /// Number of processor cycles for I/O Port write operations. /// This value is used to calculate the SWD/JTAG clock speed that is generated with I/O @@ -80,7 +74,7 @@ This information includes: /// Default communication mode on the Debug Access Port. /// Used for the command \ref DAP_Connect when Port Default mode is selected. -#define DAP_DEFAULT_PORT 1U ///< Default JTAG/SWJ Port Mode: 1 = SWD, 2 = JTAG. +#define DAP_DEFAULT_PORT 2U ///< Default JTAG/SWJ Port Mode: 1 = SWD, 2 = JTAG. /// Default communication speed on the Debug Access Port for SWD and JTAG mode. /// Used to initialize the default SWD/JTAG clock frequency. @@ -116,6 +110,27 @@ This information includes: /// SWO Streaming Trace. #define SWO_STREAM 0 ///< SWO Streaming Trace: 1 = available, 0 = not available. +/// Indicate that UART Communication Port is available. +/// This information is returned by the command \ref DAP_Info as part of Capabilities. +#define DAP_UART 0 ///< DAP UART: 1 = available, 0 = not available. + +/// USART Driver instance number for the UART Communication Port. +#define DAP_UART_DRIVER 1 ///< USART Driver instance number (Driver_USART#). + +/// UART Receive Buffer Size. +#define DAP_UART_RX_BUFFER_SIZE 64U ///< Uart Receive Buffer Size in bytes (must be 2^n). + +/// UART Transmit Buffer Size. +#define DAP_UART_TX_BUFFER_SIZE 64U ///< Uart Transmit Buffer Size in bytes (must be 2^n). + +/// Indicate that UART Communication via USB COM Port is available. +/// This information is returned by the command \ref DAP_Info as part of Capabilities. +#ifdef USE_USBCDC_FOR_STDIO +#define DAP_UART_USB_COM_PORT 1 ///< USB COM Port: 1 = available, 0 = not available. +#else +#define DAP_UART_USB_COM_PORT 0 +#endif + /// Clock frequency of the Test Domain Timer. Timer value is returned with \ref TIMESTAMP_GET. #define TIMESTAMP_CLOCK 0U ///< Timestamp clock in Hz (0 = timestamps not supported). @@ -125,17 +140,14 @@ This information includes: /// may be used by the debugger or IDE to configure device parameters. #define TARGET_DEVICE_FIXED 0 ///< Target Device: 1 = known, 0 = unknown; -#if TARGET_DEVICE_FIXED -#define TARGET_DEVICE_VENDOR "ARM" ///< String indicating the Silicon Vendor -#define TARGET_DEVICE_NAME "Cortex-M4" ///< String indicating the Target Device -#endif +#include "DAP.h" /** Get Vendor ID string. \param str Pointer to buffer to store the string. \return String length. */ __STATIC_INLINE uint8_t DAP_GetVendorString (char *str) { - const static char vnd[] = INFO_MANUFACTURER; + static const char vnd[] = INFO_MANUFACTURER; for (size_t i = 0; i < sizeof(vnd); ++i) str[i] = vnd[i]; return sizeof(vnd)-1; } @@ -145,7 +157,7 @@ __STATIC_INLINE uint8_t DAP_GetVendorString (char *str) { \return String length. */ __STATIC_INLINE uint8_t DAP_GetProductString (char *str) { - const static char prd[] = INFO_PRODUCT(INFO_BOARDNAME); + static const char prd[] = INFO_PRODUCT(INFO_BOARDNAME); for (size_t i = 0; i < sizeof(prd); ++i) str[i] = prd[i]; return sizeof(prd)-1; } @@ -155,9 +167,40 @@ __STATIC_INLINE uint8_t DAP_GetProductString (char *str) { \return String length. */ __STATIC_INLINE uint8_t DAP_GetSerNumString (char *str) { - return get_unique_id_u8(str); + return get_unique_id_u8((uint8_t*)str); } +/** Get Target Device Vendor string. +\param str Pointer to buffer to store the string (max 60 characters). +\return String length (including terminating NULL character) or 0 (no string). +*/ +__STATIC_INLINE uint8_t DAP_GetTargetDeviceVendorString (char *str) { (void)str; return 0; } + +/** Get Target Device Name string. +\param str Pointer to buffer to store the string (max 60 characters). +\return String length (including terminating NULL character) or 0 (no string). +*/ +__STATIC_INLINE uint8_t DAP_GetTargetDeviceNameString (char *str) { (void)str; return 0; } + +/** Get Target Board Vendor string. +\param str Pointer to buffer to store the string (max 60 characters). +\return String length (including terminating NULL character) or 0 (no string). +*/ +__STATIC_INLINE uint8_t DAP_GetTargetBoardVendorString (char *str) { (void)str; return 0; } + +/** Get Target Board Name string. +\param str Pointer to buffer to store the string (max 60 characters). +\return String length (including terminating NULL character) or 0 (no string). +*/ +__STATIC_INLINE uint8_t DAP_GetTargetBoardNameString (char *str) { (void)str; return 0; } + +/* TODO! */ +/** Get Product Firmware Version string. +\param str Pointer to buffer to store the string (max 60 characters). +\return String length (including terminating NULL character) or 0 (no string). +*/ +__STATIC_INLINE uint8_t DAP_GetProductFirmwareVersionString (char *str) { (void)str; return 0; } + ///@} @@ -205,16 +248,14 @@ Configures the DAP Hardware I/O pins for JTAG mode: - TDO to input mode. */ __STATIC_INLINE void PORT_JTAG_SETUP (void) { - ; } - + /** Setup SWD I/O pins: SWCLK, SWDIO, and nRESET. Configures the DAP Hardware I/O pins for Serial Wire Debug (SWD) mode: - SWCLK, SWDIO, nRESET to output mode and set to default high level. - TDI, nTRST to HighZ mode (pins are unused in SWD mode). */ __STATIC_INLINE void PORT_SWD_SETUP (void) { - ; } /** Disable JTAG/SWD I/O Pins. @@ -222,7 +263,6 @@ Disables the DAP Hardware I/O pins which configures: - TCK/SWCLK, TMS/SWDIO, TDI, TDO, nTRST, nRESET to High-Z mode. */ __STATIC_INLINE void PORT_OFF (void) { - ; } @@ -232,21 +272,19 @@ __STATIC_INLINE void PORT_OFF (void) { \return Current status of the SWCLK/TCK DAP hardware I/O pin. */ __STATIC_FORCEINLINE uint32_t PIN_SWCLK_TCK_IN (void) { - return (0U); + return 0; } /** SWCLK/TCK I/O pin: Set Output to High. Set the SWCLK/TCK DAP hardware I/O pin to high level. */ __STATIC_FORCEINLINE void PIN_SWCLK_TCK_SET (void) { - ; } /** SWCLK/TCK I/O pin: Set Output to Low. Set the SWCLK/TCK DAP hardware I/O pin to low level. */ __STATIC_FORCEINLINE void PIN_SWCLK_TCK_CLR (void) { - ; } @@ -256,28 +294,28 @@ __STATIC_FORCEINLINE void PIN_SWCLK_TCK_CLR (void) { \return Current status of the SWDIO/TMS DAP hardware I/O pin. */ __STATIC_FORCEINLINE uint32_t PIN_SWDIO_TMS_IN (void) { - return (0U); + return 0; } +/* PIN_SWDIO_TMS_SET and PIN_SWDIO_TMS_CLR are used by SWJ_Sequence */ + /** SWDIO/TMS I/O pin: Set Output to High. Set the SWDIO/TMS DAP hardware I/O pin to high level. */ __STATIC_FORCEINLINE void PIN_SWDIO_TMS_SET (void) { - ; } /** SWDIO/TMS I/O pin: Set Output to Low. Set the SWDIO/TMS DAP hardware I/O pin to low level. */ __STATIC_FORCEINLINE void PIN_SWDIO_TMS_CLR (void) { - ; } /** SWDIO I/O pin: Get Input (used in SWD mode only). \return Current status of the SWDIO DAP hardware I/O pin. */ __STATIC_FORCEINLINE uint32_t PIN_SWDIO_IN (void) { - return (board_millis() & 1); /* pacify GCC warning */ + return 0; } /** SWDIO I/O pin: Set Output (used in SWD mode only). @@ -292,7 +330,6 @@ Configure the SWDIO DAP hardware I/O pin to output mode. This function is called prior \ref PIN_SWDIO_OUT function calls. */ __STATIC_FORCEINLINE void PIN_SWDIO_OUT_ENABLE (void) { - ; } /** SWDIO I/O pin: Switch to Input mode (used in SWD mode only). @@ -300,7 +337,6 @@ Configure the SWDIO DAP hardware I/O pin to input mode. This function is called prior \ref PIN_SWDIO_IN function calls. */ __STATIC_FORCEINLINE void PIN_SWDIO_OUT_DISABLE (void) { - ; } @@ -310,7 +346,7 @@ __STATIC_FORCEINLINE void PIN_SWDIO_OUT_DISABLE (void) { \return Current status of the TDI DAP hardware I/O pin. */ __STATIC_FORCEINLINE uint32_t PIN_TDI_IN (void) { - return (0U); + return 0; } /** TDI I/O pin: Set Output. @@ -327,7 +363,7 @@ __STATIC_FORCEINLINE void PIN_TDI_OUT (uint32_t bit) { \return Current status of the TDO DAP hardware I/O pin. */ __STATIC_FORCEINLINE uint32_t PIN_TDO_IN (void) { - return (board_millis() & 1); /* pacify GCC warning */ + return 0; } @@ -337,7 +373,7 @@ __STATIC_FORCEINLINE uint32_t PIN_TDO_IN (void) { \return Current status of the nTRST DAP hardware I/O pin. */ __STATIC_FORCEINLINE uint32_t PIN_nTRST_IN (void) { - return (0U); + return 0; } /** nTRST I/O pin: Set Output. @@ -355,7 +391,7 @@ __STATIC_FORCEINLINE void PIN_nTRST_OUT (uint32_t bit) { \return Current status of the nRESET DAP hardware I/O pin. */ __STATIC_FORCEINLINE uint32_t PIN_nRESET_IN (void) { - return (0U); + return 0; } /** nRESET I/O pin: Set Output. @@ -405,7 +441,7 @@ __STATIC_INLINE void LED_RUNNING_OUT (uint32_t bit) { //************************************************************************************************** -/** +/** \defgroup DAP_Config_Timestamp_gr CMSIS-DAP Timestamp \ingroup DAP_ConfigIO_gr @{ @@ -431,7 +467,7 @@ __STATIC_INLINE uint32_t TIMESTAMP_GET (void) { //************************************************************************************************** -/** +/** \defgroup DAP_Config_Initialization_gr CMSIS-DAP Initialization \ingroup DAP_ConfigIO_gr @{ @@ -448,7 +484,6 @@ Status LEDs. In detail the operation of Hardware I/O and LED pins are enabled an - LED output pins are enabled and LEDs are turned off. */ __STATIC_INLINE void DAP_SETUP (void) { - ; } /** Reset Target Device with custom specific I/O pin or command sequence. @@ -464,5 +499,4 @@ __STATIC_INLINE uint8_t RESET_TARGET (void) { ///@} - #endif /* __DAP_CONFIG_H__ */ diff --git a/bsp/default/cdc_uart.c b/bsp/default/cdc_uart.c new file mode 100644 index 0000000..df626c5 --- /dev/null +++ b/bsp/default/cdc_uart.c @@ -0,0 +1,17 @@ + +#include "protos.h" + +void cdc_uart_init(void) { +} + +void cdc_uart_task(void) { +} + +void cdc_uart_set_hwflow(bool enable) { + (void)enable; +} + +/* TODO: properly dispatch to others? */ +/*void tud_cdc_line_coding_cb(uint8_t itf, cdc_line_coding_t const* line_coding) { +}*/ + diff --git a/bsp/default/i2c_tinyusb.c b/bsp/default/i2c_tinyusb.c new file mode 100644 index 0000000..db423dd --- /dev/null +++ b/bsp/default/i2c_tinyusb.c @@ -0,0 +1,36 @@ + +#include "i2ctinyusb.h" + +__attribute__((__const__)) +enum ki2c_funcs i2ctu_get_func(void) { return 0; } + +void i2ctu_init(void) { } + +uint32_t i2ctu_set_freq(uint32_t freq, uint32_t us) { + (void)freq; + (void)us; + + return 0; +} + +enum itu_status i2ctu_write(enum ki2c_flags flags, enum itu_command startstopflags, + uint16_t addr, const uint8_t* buf, size_t len) { + (void)flags; + (void)startstopflags; + (void)addr; + (void)buf; + (void)len; + + return ITU_STATUS_ADDR_NAK; +} +enum itu_status i2ctu_read(enum ki2c_flags flags, enum itu_command startstopflags, + uint16_t addr, uint8_t* buf, size_t len) { + (void)flags; + (void)startstopflags; + (void)addr; + (void)buf; + (void)len; + + return ITU_STATUS_ADDR_NAK; +} + diff --git a/bsp/default/protocfg.h b/bsp/default/protocfg.h index f3bff02..a529eb0 100644 --- a/bsp/default/protocfg.h +++ b/bsp/default/protocfg.h @@ -2,16 +2,45 @@ #ifndef PROTOCFG_H_ #define PROTOCFG_H_ -/*#define DBOARD_HAS_UART*/ +/*#define DBOARD_HAS_UART #define DBOARD_HAS_CMSISDAP -/*#define DBOARD_HAS_SERPROG*/ -/*#define DBOARD_HAS_TINYI2C*/ +#define DBOARD_HAS_SERPROG +#define DBOARD_HAS_I2C +#define DBOARD_HAS_TEMPSENSOR*/ + +enum { + /*HID_N_CMSISDAP = 0,*/ + + HID_N__NITF +}; +enum { + /*CDC_N_UART = 0, + CDC_N_SERPROG,*/ +#ifdef USE_USBCDC_FOR_STDIO + CDC_N_STDIO, +#endif + + CDC_N__NITF +}; +enum { + VND_N__NITF = 0 +}; -#define CFG_TUD_CDC 0 #define CFG_TUD_HID 0 +#ifdef USE_USBCDC_FOR_STDIO +#define CFG_TUD_CDC 1 +#else +#define CFG_TUD_CDC 0 +#endif #define CFG_TUD_VENDOR 0 -#define INFO_BOARDNAME "unknown" +/*#define USB_VID 0x2e8a*/ /* Raspberry Pi */ +#define USB_VID 0xcafe /* TinyUSB */ +/*#define USB_VID 0x1209*/ /* Generic */ +/*#define USB_VID 0x1d50*/ /* OpenMoko */ +#define USB_PID 0x1312 + +#define INFO_BOARDNAME "Unknown" #endif diff --git a/bsp/default/spi_serprog.c b/bsp/default/spi_serprog.c new file mode 100644 index 0000000..bf88d09 --- /dev/null +++ b/bsp/default/spi_serprog.c @@ -0,0 +1,25 @@ + +#include "protos.h" +#include "serprog.h" + +void sp_spi_init(void) { } + +uint32_t __not_in_flash_func(sp_spi_set_freq)(uint32_t freq_wanted) { + (void)freq_wanted; + return 0; +} + +void __not_in_flash_func(sp_spi_cs_deselect)(void) { } +void __not_in_flash_func(sp_spi_cs_select)(void) { } +void __not_in_flash_func(sp_spi_op_begin)(void) { } +void __not_in_flash_func(sp_spi_op_end)(void) { } + +void __not_in_flash_func(sp_spi_op_write)(uint32_t write_len, const uint8_t* write_data) { + (void)write_len; + (void)write_data; +} +void __not_in_flash_func(sp_spi_op_read)(uint32_t read_len, uint8_t* read_data) { + (void)read_len; + (void)read_data; +} + diff --git a/bsp/default/tempsensor.c b/bsp/default/tempsensor.c new file mode 100644 index 0000000..9ca3827 --- /dev/null +++ b/bsp/default/tempsensor.c @@ -0,0 +1,11 @@ + +#include "tempsensor.h" + +void tempsense_dev_init(void) { } + +// 8.4 +int16_t tempsense_dev_get_temp (void) { return 0 << 4; } +int16_t tempsense_dev_get_lower(void) { return trunc_8fix4(float2fix( 0)); } +int16_t tempsense_dev_get_upper(void) { return trunc_8fix4(float2fix( 0)); } +int16_t tempsense_dev_get_crit (void) { return trunc_8fix4(float2fix( 0)); } + diff --git a/bsp/default/unique.c b/bsp/default/unique.c index 1a093e4..8dbe637 100644 --- a/bsp/default/unique.c +++ b/bsp/default/unique.c @@ -1,27 +1,34 @@ #include -#include "tusb.h" #include "util.h" -/* in the absence of the board-specific directory providing a unique ID, we provide a canned one */ +static const char uniqueid[] = "00000000"; /* placeholder */ -__attribute__((__weak__)) uint8_t get_unique_id_u8(uint8_t *desc_str) { - static const char canned[] = "123456"; +uint8_t get_unique_id_u8(uint8_t *desc_str) { + uint8_t chr_count = 0; - for (size_t i=0; i>= 4; + } } - return i; + return chr_count; } -__attribute__((__weak__)) uint8_t get_unique_id_u16(uint16_t *desc_str) { - static const char canned[] = "123456"; +uint8_t get_unique_id_u16(uint16_t *desc_str) { + uint8_t chr_count = 0; - for (size_t i=0; i>= 4; + } } - return i; + return chr_count; } diff --git a/bsp/stm32f072disco/DAP_config.h b/bsp/stm32f072disco/DAP_config.h deleted file mode 100644 index 3393a4c..0000000 --- a/bsp/stm32f072disco/DAP_config.h +++ /dev/null @@ -1,499 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2021 Peter Lawrence - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -/* -As written, pins PC6, PC7, PC8 were chosen as SWCLK, SWDIO, and RESETn respectively. -These pins map to LEDs on the STM32F072DISCO, but can be customized as needed. -*/ - -#ifndef __DAP_CONFIG_H__ -#define __DAP_CONFIG_H__ - - -//************************************************************************************************** -/** -\defgroup DAP_Config_Debug_gr CMSIS-DAP Debug Unit Information -\ingroup DAP_ConfigIO_gr -@{ -Provides definitions about the hardware and configuration of the Debug Unit. - -This information includes: - - Definition of Cortex-M processor parameters used in CMSIS-DAP Debug Unit. - - Debug Unit Identification strings (Vendor, Product, Serial Number). - - Debug Unit communication packet size. - - Debug Access Port supported modes and settings (JTAG/SWD and SWO). - - Optional information about a connected Target Device (for Evaluation Boards). -*/ - -#include "cmsis_compiler.h" -#include "bsp/board.h" - -#include - -#include "protos.h" -#include "unique.h" - -/// Processor Clock of the Cortex-M MCU used in the Debug Unit. -/// This value is used to calculate the SWD/JTAG clock speed. -#define CPU_CLOCK 48000000U ///< Specifies the CPU Clock in Hz. - -/// Number of processor cycles for I/O Port write operations. -/// This value is used to calculate the SWD/JTAG clock speed that is generated with I/O -/// Port write operations in the Debug Unit by a Cortex-M MCU. Most Cortex-M processors -/// require 2 processor cycles for a I/O Port Write operation. If the Debug Unit uses -/// a Cortex-M0+ processor with high-speed peripheral I/O only 1 processor cycle might be -/// required. -#define IO_PORT_WRITE_CYCLES 2U ///< I/O Cycles: 2=default, 1=Cortex-M0+ fast I/0. - -/// Indicate that Serial Wire Debug (SWD) communication mode is available at the Debug Access Port. -/// This information is returned by the command \ref DAP_Info as part of Capabilities. -#define DAP_SWD 1 ///< SWD Mode: 1 = available, 0 = not available. - -/// Indicate that JTAG communication mode is available at the Debug Port. -/// This information is returned by the command \ref DAP_Info as part of Capabilities. -#define DAP_JTAG 0 ///< JTAG Mode: 1 = available, 0 = not available. - -/// Configure maximum number of JTAG devices on the scan chain connected to the Debug Access Port. -/// This setting impacts the RAM requirements of the Debug Unit. Valid range is 1 .. 255. -#define DAP_JTAG_DEV_CNT 8U ///< Maximum number of JTAG devices on scan chain. - -/// Default communication mode on the Debug Access Port. -/// Used for the command \ref DAP_Connect when Port Default mode is selected. -#define DAP_DEFAULT_PORT 1U ///< Default JTAG/SWJ Port Mode: 1 = SWD, 2 = JTAG. - -/// Default communication speed on the Debug Access Port for SWD and JTAG mode. -/// Used to initialize the default SWD/JTAG clock frequency. -/// The command \ref DAP_SWJ_Clock can be used to overwrite this default setting. -#define DAP_DEFAULT_SWJ_CLOCK 1000000U ///< Default SWD/JTAG clock frequency in Hz. - -/// Maximum Package Size for Command and Response data. -/// This configuration settings is used to optimize the communication performance with the -/// debugger and depends on the USB peripheral. Typical vales are 64 for Full-speed USB HID or WinUSB, -/// 1024 for High-speed USB HID and 512 for High-speed USB WinUSB. -#define DAP_PACKET_SIZE CFG_TUD_HID_EP_BUFSIZE ///< Specifies Packet Size in bytes. - -/// Maximum Package Buffers for Command and Response data. -/// This configuration settings is used to optimize the communication performance with the -/// debugger and depends on the USB peripheral. For devices with limited RAM or USB buffer the -/// setting can be reduced (valid range is 1 .. 255). -#define DAP_PACKET_COUNT 1U ///< Specifies number of packets buffered. - -/// Indicate that UART Serial Wire Output (SWO) trace is available. -/// This information is returned by the command \ref DAP_Info as part of Capabilities. -#define SWO_UART 0 ///< SWO UART: 1 = available, 0 = not available. - -/// Maximum SWO UART Baudrate. -#define SWO_UART_MAX_BAUDRATE 10000000U ///< SWO UART Maximum Baudrate in Hz. - -/// Indicate that Manchester Serial Wire Output (SWO) trace is available. -/// This information is returned by the command \ref DAP_Info as part of Capabilities. -#define SWO_MANCHESTER 0 ///< SWO Manchester: 1 = available, 0 = not available. - -/// SWO Trace Buffer Size. -#define SWO_BUFFER_SIZE 4096U ///< SWO Trace Buffer Size in bytes (must be 2^n). - -/// SWO Streaming Trace. -#define SWO_STREAM 0 ///< SWO Streaming Trace: 1 = available, 0 = not available. - -/// Clock frequency of the Test Domain Timer. Timer value is returned with \ref TIMESTAMP_GET. -#define TIMESTAMP_CLOCK 0U ///< Timestamp clock in Hz (0 = timestamps not supported). - -/// Debug Unit is connected to fixed Target Device. -/// The Debug Unit may be part of an evaluation board and always connected to a fixed -/// known device. In this case a Device Vendor and Device Name string is stored which -/// may be used by the debugger or IDE to configure device parameters. -#define TARGET_DEVICE_FIXED 0 ///< Target Device: 1 = known, 0 = unknown; - -#if TARGET_DEVICE_FIXED -#define TARGET_DEVICE_VENDOR "ARM" ///< String indicating the Silicon Vendor -#define TARGET_DEVICE_NAME "Cortex-M4" ///< String indicating the Target Device -#endif - -#include "DAP.h" - -/** Get Vendor ID string. -\param str Pointer to buffer to store the string. -\return String length. -*/ -__STATIC_INLINE uint8_t DAP_GetVendorString (char *str) { - const static char vnd[] = INFO_MANUFACTURER; - for (size_t i = 0; i < sizeof(vnd); ++i) str[i] = vnd[i]; - return sizeof(vnd)-1; -} - -/** Get Product ID string. -\param str Pointer to buffer to store the string. -\return String length. -*/ -__STATIC_INLINE uint8_t DAP_GetProductString (char *str) { - const static char prd[] = INFO_PRODUCT(INFO_BOARDNAME); - for (size_t i = 0; i < sizeof(prd); ++i) str[i] = prd[i]; - return sizeof(prd)-1; -} - -/** Get Serial Number string. -\param str Pointer to buffer to store the string. -\return String length. -*/ -__STATIC_INLINE uint8_t DAP_GetSerNumString (char *str) { - return get_unique_id_u8(str); -} - -///@} - -/* these macros are used by the API functions further below */ - -#define CLK_PIN 6 -#define DATA_PIN 7 -#define RESET_PIN 8 - -#define CLK_LOW { GPIOC->BSRR = (1UL << CLK_PIN) << 16; } -#define CLK_HIGH { GPIOC->BSRR = (1UL << CLK_PIN) << 0; } -#define CLK_ENABLE { GPIOC->MODER = ( (GPIOC->MODER & ~(0x3 << (CLK_PIN * 2))) | (0x1 << (CLK_PIN * 2)) ); } -#define CLK_HIZ { GPIOC->MODER = ( (GPIOC->MODER & ~(0x3 << (CLK_PIN * 2))) ); } - -#define DATA_LOW { GPIOC->BSRR = (1UL << DATA_PIN) << 16; } -#define DATA_HIGH { GPIOC->BSRR = (1UL << DATA_PIN) << 0; } -#define DATA_ENABLE { GPIOC->MODER = ( (GPIOC->MODER & ~(0x3 << (DATA_PIN * 2))) | (0x1 << (DATA_PIN * 2)) ); } -#define DATA_HIZ { GPIOC->MODER = ( (GPIOC->MODER & ~(0x3 << (DATA_PIN * 2))) ); } - -#define RESET_LOW { GPIOC->BSRR = (1UL << RESET_PIN) << 16; } -#define RESET_HIGH { GPIOC->BSRR = (1UL << RESET_PIN) << 0; } -#define RESET_ENABLE { GPIOC->MODER = ( (GPIOC->MODER & ~(0x3 << (RESET_PIN * 2))) | (0x1 << (RESET_PIN * 2)) ); } -#define RESET_HIZ { GPIOC->MODER = ( (GPIOC->MODER & ~(0x3 << (RESET_PIN * 2))) ); } - -#define SWDIO_INIT { __HAL_RCC_GPIOC_CLK_ENABLE(); } - -#define DATA_READ (GPIOC->IDR & (1UL << DATA_PIN)) -#define CLK_READ (GPIOC->IDR & (1UL << CLK_PIN)) -#define RESET_READ (GPIOC->IDR & (1UL << RESET_PIN)) - -//************************************************************************************************** -/** -\defgroup DAP_Config_PortIO_gr CMSIS-DAP Hardware I/O Pin Access -\ingroup DAP_ConfigIO_gr -@{ - -Standard I/O Pins of the CMSIS-DAP Hardware Debug Port support standard JTAG mode -and Serial Wire Debug (SWD) mode. In SWD mode only 2 pins are required to implement the debug -interface of a device. The following I/O Pins are provided: - -JTAG I/O Pin | SWD I/O Pin | CMSIS-DAP Hardware pin mode ----------------------------- | -------------------- | --------------------------------------------- -TCK: Test Clock | SWCLK: Clock | Output Push/Pull -TMS: Test Mode Select | SWDIO: Data I/O | Output Push/Pull; Input (for receiving data) -TDI: Test Data Input | | Output Push/Pull -TDO: Test Data Output | | Input -nTRST: Test Reset (optional) | | Output Open Drain with pull-up resistor -nRESET: Device Reset | nRESET: Device Reset | Output Open Drain with pull-up resistor - - -DAP Hardware I/O Pin Access Functions -------------------------------------- -The various I/O Pins are accessed by functions that implement the Read, Write, Set, or Clear to -these I/O Pins. - -For the SWDIO I/O Pin there are additional functions that are called in SWD I/O mode only. -This functions are provided to achieve faster I/O that is possible with some advanced GPIO -peripherals that can independently write/read a single I/O pin without affecting any other pins -of the same I/O port. The following SWDIO I/O Pin functions are provided: - - \ref PIN_SWDIO_OUT_ENABLE to enable the output mode from the DAP hardware. - - \ref PIN_SWDIO_OUT_DISABLE to enable the input mode to the DAP hardware. - - \ref PIN_SWDIO_IN to read from the SWDIO I/O pin with utmost possible speed. - - \ref PIN_SWDIO_OUT to write to the SWDIO I/O pin with utmost possible speed. -*/ - -// Configure DAP I/O pins ------------------------------ - -/** Setup JTAG I/O pins: TCK, TMS, TDI, TDO, nTRST, and nRESET. -Configures the DAP Hardware I/O pins for JTAG mode: - - TCK, TMS, TDI, nTRST, nRESET to output mode and set to high level. - - TDO to input mode. -*/ -__STATIC_INLINE void PORT_JTAG_SETUP (void) { - ; -} - -/** Setup SWD I/O pins: SWCLK, SWDIO, and nRESET. -Configures the DAP Hardware I/O pins for Serial Wire Debug (SWD) mode: - - SWCLK, SWDIO, nRESET to output mode and set to default high level. - - TDI, nTRST to HighZ mode (pins are unused in SWD mode). -*/ -__STATIC_INLINE void PORT_SWD_SETUP (void) { - CLK_ENABLE; - DATA_ENABLE; - SWDIO_INIT; - CLK_HIGH; DATA_HIGH; -} - -/** Disable JTAG/SWD I/O Pins. -Disables the DAP Hardware I/O pins which configures: - - TCK/SWCLK, TMS/SWDIO, TDI, TDO, nTRST, nRESET to High-Z mode. -*/ -__STATIC_INLINE void PORT_OFF (void) { - CLK_HIZ; - DATA_HIZ; - RESET_HIZ; -} - -// SWCLK/TCK I/O pin ------------------------------------- - -/** SWCLK/TCK I/O pin: Get Input. -\return Current status of the SWCLK/TCK DAP hardware I/O pin. -*/ -__STATIC_FORCEINLINE uint32_t PIN_SWCLK_TCK_IN (void) { - return (CLK_READ) ? 1 : 0; -} - -/** SWCLK/TCK I/O pin: Set Output to High. -Set the SWCLK/TCK DAP hardware I/O pin to high level. -*/ -__STATIC_FORCEINLINE void PIN_SWCLK_TCK_SET (void) { - CLK_HIGH; -} - -/** SWCLK/TCK I/O pin: Set Output to Low. -Set the SWCLK/TCK DAP hardware I/O pin to low level. -*/ -__STATIC_FORCEINLINE void PIN_SWCLK_TCK_CLR (void) { - CLK_LOW; -} - - -// SWDIO/TMS Pin I/O -------------------------------------- - -/** SWDIO/TMS I/O pin: Get Input. -\return Current status of the SWDIO/TMS DAP hardware I/O pin. -*/ -__STATIC_FORCEINLINE uint32_t PIN_SWDIO_TMS_IN (void) { - return (DATA_READ) ? 1 : 0; -} - -/** SWDIO/TMS I/O pin: Set Output to High. -Set the SWDIO/TMS DAP hardware I/O pin to high level. -*/ -__STATIC_FORCEINLINE void PIN_SWDIO_TMS_SET (void) { - DATA_HIGH; -} - -/** SWDIO/TMS I/O pin: Set Output to Low. -Set the SWDIO/TMS DAP hardware I/O pin to low level. -*/ -__STATIC_FORCEINLINE void PIN_SWDIO_TMS_CLR (void) { - DATA_LOW; -} - -/** SWDIO I/O pin: Get Input (used in SWD mode only). -\return Current status of the SWDIO DAP hardware I/O pin. -*/ -__STATIC_FORCEINLINE uint32_t PIN_SWDIO_IN (void) { - return (DATA_READ) ? 1 : 0; -} - -/** SWDIO I/O pin: Set Output (used in SWD mode only). -\param bit Output value for the SWDIO DAP hardware I/O pin. -*/ -__STATIC_FORCEINLINE void PIN_SWDIO_OUT (uint32_t bit) { - if (bit & 1) { DATA_HIGH; } else { DATA_LOW; } -} - -/** SWDIO I/O pin: Switch to Output mode (used in SWD mode only). -Configure the SWDIO DAP hardware I/O pin to output mode. This function is -called prior \ref PIN_SWDIO_OUT function calls. -*/ -__STATIC_FORCEINLINE void PIN_SWDIO_OUT_ENABLE (void) { - DATA_ENABLE; -} - -/** SWDIO I/O pin: Switch to Input mode (used in SWD mode only). -Configure the SWDIO DAP hardware I/O pin to input mode. This function is -called prior \ref PIN_SWDIO_IN function calls. -*/ -__STATIC_FORCEINLINE void PIN_SWDIO_OUT_DISABLE (void) { - DATA_HIZ; -} - - -// TDI Pin I/O --------------------------------------------- - -/** TDI I/O pin: Get Input. -\return Current status of the TDI DAP hardware I/O pin. -*/ -__STATIC_FORCEINLINE uint32_t PIN_TDI_IN (void) { - return (0U); -} - -/** TDI I/O pin: Set Output. -\param bit Output value for the TDI DAP hardware I/O pin. -*/ -__STATIC_FORCEINLINE void PIN_TDI_OUT (uint32_t bit) { - ; -} - - -// TDO Pin I/O --------------------------------------------- - -/** TDO I/O pin: Get Input. -\return Current status of the TDO DAP hardware I/O pin. -*/ -__STATIC_FORCEINLINE uint32_t PIN_TDO_IN (void) { - return (0U); -} - - -// nTRST Pin I/O ------------------------------------------- - -/** nTRST I/O pin: Get Input. -\return Current status of the nTRST DAP hardware I/O pin. -*/ -__STATIC_FORCEINLINE uint32_t PIN_nTRST_IN (void) { - return (0U); -} - -/** nTRST I/O pin: Set Output. -\param bit JTAG TRST Test Reset pin status: - - 0: issue a JTAG TRST Test Reset. - - 1: release JTAG TRST Test Reset. -*/ -__STATIC_FORCEINLINE void PIN_nTRST_OUT (uint32_t bit) { - (void)bit; -} - -// nRESET Pin I/O------------------------------------------ - -/** nRESET I/O pin: Get Input. -\return Current status of the nRESET DAP hardware I/O pin. -*/ -__STATIC_FORCEINLINE uint32_t PIN_nRESET_IN (void) { - return (RESET_READ) ? 1 : 0; -} - -/** nRESET I/O pin: Set Output. -\param bit target device hardware reset pin status: - - 0: issue a device hardware reset. - - 1: release device hardware reset. -*/ -__STATIC_FORCEINLINE void PIN_nRESET_OUT (uint32_t bit) { - if (bit & 1) { RESET_HIGH; } else { RESET_LOW; } -} - -///@} - - -//************************************************************************************************** -/** -\defgroup DAP_Config_LEDs_gr CMSIS-DAP Hardware Status LEDs -\ingroup DAP_ConfigIO_gr -@{ - -CMSIS-DAP Hardware may provide LEDs that indicate the status of the CMSIS-DAP Debug Unit. - -It is recommended to provide the following LEDs for status indication: - - Connect LED: is active when the DAP hardware is connected to a debugger. - - Running LED: is active when the debugger has put the target device into running state. -*/ - -/** Debug Unit: Set status of Connected LED. -\param bit status of the Connect LED. - - 1: Connect LED ON: debugger is connected to CMSIS-DAP Debug Unit. - - 0: Connect LED OFF: debugger is not connected to CMSIS-DAP Debug Unit. -*/ -__STATIC_INLINE void LED_CONNECTED_OUT (uint32_t bit) { - (void)bit; -} - -/** Debug Unit: Set status Target Running LED. -\param bit status of the Target Running LED. - - 1: Target Running LED ON: program execution in target started. - - 0: Target Running LED OFF: program execution in target stopped. -*/ -__STATIC_INLINE void LED_RUNNING_OUT (uint32_t bit) { - (void)bit; -} - -///@} - - -//************************************************************************************************** -/** -\defgroup DAP_Config_Timestamp_gr CMSIS-DAP Timestamp -\ingroup DAP_ConfigIO_gr -@{ -Access function for Test Domain Timer. - -The value of the Test Domain Timer in the Debug Unit is returned by the function \ref TIMESTAMP_GET. By -default, the DWT timer is used. The frequency of this timer is configured with \ref TIMESTAMP_CLOCK. - -*/ - -/** Get timestamp of Test Domain Timer. -\return Current timestamp value. -*/ -__STATIC_INLINE uint32_t TIMESTAMP_GET (void) { -#if TIMESTAMP_CLOCK > 0 - return (DWT->CYCCNT); -#else - return 0; -#endif -} - -///@} - - -//************************************************************************************************** -/** -\defgroup DAP_Config_Initialization_gr CMSIS-DAP Initialization -\ingroup DAP_ConfigIO_gr -@{ - -CMSIS-DAP Hardware I/O and LED Pins are initialized with the function \ref DAP_SETUP. -*/ - -/** Setup of the Debug Unit I/O pins and LEDs (called when Debug Unit is initialized). -This function performs the initialization of the CMSIS-DAP Hardware I/O Pins and the -Status LEDs. In detail the operation of Hardware I/O and LED pins are enabled and set: - - I/O clock system enabled. - - all I/O pins: input buffer enabled, output pins are set to HighZ mode. - - for nTRST, nRESET a weak pull-up (if available) is enabled. - - LED output pins are enabled and LEDs are turned off. -*/ -__STATIC_INLINE void DAP_SETUP (void) { - ; -} - -/** Reset Target Device with custom specific I/O pin or command sequence. -This function allows the optional implementation of a device specific reset sequence. -It is called when the command \ref DAP_ResetTarget and is for example required -when a device needs a time-critical unlock sequence that enables the debug port. -\return 0 = no device specific reset sequence is implemented.\n - 1 = a device specific reset sequence is implemented. -*/ -__STATIC_INLINE uint8_t RESET_TARGET (void) { - return (0U); // change to '1' when a device reset sequence is implemented -} - -///@} - - -#endif /* __DAP_CONFIG_H__ */ diff --git a/bsp/stm32f072disco/cdc_stdio.c b/bsp/stm32f072disco/cdc_stdio.c deleted file mode 100644 index 1247c2c..0000000 --- a/bsp/stm32f072disco/cdc_stdio.c +++ /dev/null @@ -1,7 +0,0 @@ - -#include "protos.h" - -bool stdio_usb_init(void) { - return true; -} - diff --git a/bsp/stm32f072disco/cdc_uart.c b/bsp/stm32f072disco/cdc_uart.c deleted file mode 100644 index 9e74676..0000000 --- a/bsp/stm32f072disco/cdc_uart.c +++ /dev/null @@ -1,8 +0,0 @@ - -#include "protos.h" - -void cdc_uart_init(void) { -} - -void cdc_uart_task(void) { -} diff --git a/bsp/stm32f072disco/i2c_tinyusb.c b/bsp/stm32f072disco/i2c_tinyusb.c deleted file mode 100644 index ec0f2cc..0000000 --- a/bsp/stm32f072disco/i2c_tinyusb.c +++ /dev/null @@ -1,25 +0,0 @@ - -#include "protocfg.h" -#include "i2ctinyusb.h" - -__attribute__((__const__)) -enum ki2c_funcs i2ctu_get_func(void) { - return 0; -} - -void i2ctu_init(void) { -} - -uint32_t i2ctu_set_freq(uint32_t freq) { - return 0; -} - -enum itu_status i2ctu_write(enum ki2c_flags flags, enum itu_command startstopflags, - uint16_t addr, const uint8_t* buf, size_t len) { - return ITU_STATUS_IDLE; -} -enum itu_status i2ctu_read(enum ki2c_flags flags, enum itu_command startstopflags, - uint16_t addr, uint8_t* buf, size_t len) { - return ITU_STATUS_IDLE; -} - diff --git a/bsp/stm32f072disco/protocfg.h b/bsp/stm32f072disco/protocfg.h deleted file mode 100644 index 7a135c4..0000000 --- a/bsp/stm32f072disco/protocfg.h +++ /dev/null @@ -1,34 +0,0 @@ - -#ifndef PROTOCFG_H_ -#define PROTOCFG_H_ - -/*#define DBOARD_HAS_UART*/ -#define DBOARD_HAS_CMSISDAP -/*#define DBOARD_HAS_SERPROG*/ -/*#define DBOARD_HAS_TINYI2C*/ - -enum { - HID_N_CMSISDAP = 0, - - HID_N__NITF -}; -enum { - CDC_N__NITF -}; -enum { - VND_N__NITF = 0 -}; - -#define CFG_TUD_HID 1 -#define CFG_TUD_CDC 0 -#define CFG_TUD_VENDOR 0 - -#define USB_VID 0xcafe /* TinyUSB */ -/*#define USB_VID 0x1209*/ /* Generic */ -/*#define USB_VID 0x1d50*/ /* OpenMoko */ -#define USB_PID 0x1312 - -#define INFO_BOARDNAME "STM32F072 Disco" - -#endif - diff --git a/bsp/stm32f072disco/spi_serprog.c b/bsp/stm32f072disco/spi_serprog.c deleted file mode 100644 index cf640e0..0000000 --- a/bsp/stm32f072disco/spi_serprog.c +++ /dev/null @@ -1,17 +0,0 @@ - -#include "serprog.h" - -void sp_spi_init(void) { -} -uint32_t sp_spi_set_freq(uint32_t freq_wanted) { - return 0; -} -void sp_spi_cs_deselect(void) { -} -void sp_spi_cs_select(void) { -} -void sp_spi_op_begin(void){} -void sp_spi_op_write(uint32_t write_len, uint8_t* write_data){} -void sp_spi_op_read(uint32_t read_len, const uint8_t* read_data){} -void sp_spi_op_end(void){} - diff --git a/bsp/stm32f072disco/unique.c b/bsp/stm32f072disco/unique.c deleted file mode 100644 index d23f9ae..0000000 --- a/bsp/stm32f072disco/unique.c +++ /dev/null @@ -1,33 +0,0 @@ -#include -#include "tusb.h" - -#include "util.h" - -uint8_t get_unique_id_u8(uint8_t *desc_str) { - const uint32_t *idpnt = (uint32_t*)(0x1FFFF7AC); /*DEVICE_ID1*/ - uint32_t tmp = 0; - uint8_t chr_count = 0; - - for (size_t digit = 0; digit < 24; digit++) { - if (0 == (digit & 7)) tmp = *idpnt++; - desc_str[chr_count++] = nyb2hex(tmp & 0xf); - tmp >>= 4; - } - - return chr_count; -} - -uint8_t get_unique_id_u16(uint16_t *desc_str) { - const uint32_t *idpnt = (uint32_t*)(0x1FFFF7AC); /*DEVICE_ID1*/ - uint32_t tmp = 0; - uint8_t chr_count = 0; - - for (size_t digit = 0; digit < 24; digit++) { - if (0 == (digit & 7)) tmp = *idpnt++; - desc_str[chr_count++] = nyb2hex(tmp & 0xf); - tmp >>= 4; - } - - return chr_count; -} -