Skip to content

Commit

Permalink
v2.11.1
Browse files Browse the repository at this point in the history
+ released: 2024-06-27

STM32 MCUs supported!

|        MCU         |        MCU         |        MCU         |        MCU         |        MCU         |
| :----------------: | :----------------: | :----------------: | :----------------: | :----------------: |
|    STM32C011D6     |    STM32C011F6     |    STM32L4P5ZG     |    STM32G431RB     |     STM32C011J6    |
|    STM32C011F4     |    STM32C011J4     |    STM32L4P5AE     |    STM32L4P5AG     |     STM32L4P5CE    |
|    STM32L4P5QE     |    STM32L4P5QG     |    STM32L4P5RE     |    STM32L4P5RG     |     STM32L4P5VE    |
|    STM32L4P5ZE     |    STM32G431C6     |    STM32G431C8     |    STM32G431CB     |     STM32G431K6    |
|    STM32G431KB     |    STM32G431M6     |    STM32G431M8     |    STM32G431MB     |     STM32G431R6    |
|    STM32G431V6     |    STM32G431V8     |    STM32G431VB     |    STM32G441CB     |     STM32G441KB    |
|    STM32G441RB     |    STM32G441VB     |    STM32G473CB     |    STM32G473CC     |     STM32G473CE    |
|    STM32G473MC     |    STM32G473ME     |    STM32G473PB     |    STM32G473PC     |     STM32G473PE    |
|    STM32G473QC     |    STM32G473QE     |    STM32G473RB     |    STM32G473RC     |     STM32G473RE    |
|    STM32G473VC     |    STM32G473VE     |    STM32G474CB     |    STM32G474CC     |     STM32G474CE    |
|    STM32G474MC     |    STM32G474ME     |    STM32G474PB     |    STM32G474PC     |     STM32G474PE    |
|    STM32G474QC     |    STM32G474QE     |    STM32G474RB     |    STM32G474RC     |     STM32G474RE    |
|    STM32G474VC     |    STM32G474VE     |    STM32G483CE     |    STM32G483ME     |     STM32G483PE    |
|    STM32G483RE     |    STM32G483VE     |    STM32G484CE     |    STM32G484ME     |     STM32G484PE    |
|    STM32G484RE     |    STM32G484VE     |    STM32G491CC     |    STM32G491CE     |     STM32G491KC    |
|    STM32G491MC     |    STM32G491ME     |    STM32G491RC     |    STM32G491RE     |     STM32G491VC    |
|    STM32G4A1CE     |    STM32G4A1KE     |    STM32G4A1ME     |    STM32G4A1RE     |     STM32G4A1VE    |
|    STM32L4Q5CG     |    STM32L4Q5QG     |    STM32L4Q5RG     |    STM32L4Q5VG     |     STM32L4Q5ZG    |
|    STM32C031C6     |    STM32C031F4     |    STM32C031F6     |    STM32C031G4     |     STM32C031G6    |
|    STM32C031K6     |    STM32G051C6     |    STM32G051C8     |    STM32G051F6     |     STM32G051F8    |
|    STM32G051G8     |    STM32G051K6     |    STM32G051K8     |    STM32G061C6     |     STM32G061C8    |
|    STM32G061F8     |    STM32G061G6     |    STM32G061G8     |    STM32G061K6     |     STM32G061K8    |
|    STM32G0B1CC     |    STM32G0B1CE     |    STM32G0B1KB     |    STM32G0B1KC     |     STM32G0B1KE    |
|    STM32G0B1MC     |    STM32G0B1ME     |    STM32G0B1NE     |    STM32G0B1RB     |     STM32G0B1RC    |
|    STM32G0B1VB     |    STM32G0B1VC     |    STM32G0B1VE     |    STM32G0C1CC     |     STM32G0C1CE    |
|    STM32G0C1KE     |    STM32G0C1MC     |    STM32G0C1ME     |    STM32G0C1NE     |     STM32G0C1RC    |
|    STM32G0C1VC     |    STM32G0C1VE     |    STM32L4P5CG     |    STM32L4P5VG     |     STM32G431K8    |
|    STM32G431R8     |    STM32G441MB     |    STM32G473MB     |    STM32G473QB     |     STM32G473VB    |
|    STM32G474MB     |    STM32G474QB     |    STM32G474VB     |    STM32G483QE     |     STM32G484QE    |
|    STM32G491KE     |    STM32G491VE     |    STM32L4Q5AG     |    STM32C031C4     |     STM32C031K4    |
|    STM32G051G6     |    STM32G061F6     |    STM32G0B1CB     |    STM32G0B1MB     |     STM32G0B1RE    |
|    STM32G0C1KC     |    STM32G0C1RE     |

Supported modules:

+ ADC (Full module support)
+ SPI (Full module support)
+ UART (Full module support)
+ I2C (Full module support)
+ PWM (Full module support)
+ GPIO (Full module support)
+ OW (Full module support)
+ DMA (Full module support)
+ CAN (Full module support)

XC16 USB

+ Third party modules supported
  + TinyUSB (An open source cross-platform USB stack for embedded systems)

XC32 ETHERNET

+ Third party modules supported
  + CycloneTCP (An open source cross-platform USB stack for embedded systems)
  + Support added for XC32 compiler

Fixes

+ Added PD0 and PD1 pins connection for all GD32VF103 MCUs
+ Fixed pin configuration for pins with indexes below 8 in "hal_ll_one_wire.c" implementation for GD32VF103 MCUs
+ Set default CAN baudrate to 125K for all architectures that have CAN module supported
+ Modified error handling in ADC implementation for MKV58x MCUs to detect and notify when an unsupported resolution is attempted to be set
+ Modified low-level GPIO implementation for STM32 so now PORT G pins on STM32L4Rxx MCUs can be set as inputs or outputs
+ Resistive mikromedias naming fixed according to the product names
  + "Mikromedia 3 for STM32 Resistive" changed to "Mikromedia 3 for STM32F4 Resistive"
  + "Mikromedia 3 for STM32 Resistive FPI" changed to "Mikromedia 3 for STM32F4 Resistive FPI"
  + "Mikromedia 4 for STM32 Resistive" changed to "Mikromedia 4 for STM32F4 Resistive"
  + "Mikromedia 5 for STM32 Resistive" changed to "Mikromedia 5 for STM32F4 Resistive"
+ Fixed values for display configuration so now it is configured as an 800x480 display istead of 480x800
  + "Mikromedia 5 for Kinetis Resistive"
  + "Mikromedia 5 for Kinetis Resistive FPI"
+ Fixed regex for including an appropriate dip28 header files for the boards that have this socket

Improvements

+ Added helper function in ./tp.c(./api/tp/lib/src/tp/tp.c) for simplifying code operations on PIC architecture.
+ Added default CAN receive FIFO number and default filter bank number for all architectures that have CAN module supported
+ Added CAN_RX and CAN_TX pins for "EasyPIC v8", "EasyPIC v8 for dsPIC30" and "EasyPIC v8 for PIC24/dsPIC33" boards
+ Added mapping for LCD pins in board.h, lcd.h now uses these pins instead of TFT
+ Changed the approach to adding new BSP
  + BSP files are now included as separate cmake files per board
+ Implemented an option to add all header files that are used in LVGL project into the LVGL library
+ Structure typecast for GPIO changed to match other architectures

NEW HARDWARE

Support added for following hardware:

+ EasyAVR v8
+ Mikromedia 3 for Kinetis Resistive
+ Mikromedia 3 for STM32F2 Resistive
  • Loading branch information
StrahinjaJacimovic committed Jun 27, 2024
1 parent e75ec1c commit 4f6a37a
Show file tree
Hide file tree
Showing 109 changed files with 1,318 additions and 2,079 deletions.
4 changes: 3 additions & 1 deletion .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,9 @@ jobs:
- name: Run Keyword Replacement Script
## Replace keyword 'code' with '_code' (Microchip MCUs)
run: python -u scripts/package.py "code" "_code" "thirdparty/ethernet/cyclonetcp"
run: |
python -u scripts/package.py "code" "_code" "thirdparty/ethernet/cyclonetcp" "cp1252"
python -u scripts/package.py "code" "_code" "thirdparty/lvgl" "UTF-8"
- name: Run Package Script
run: python -u scripts/package.py ${{ secrets.GITHUB_TOKEN }} ${{ github.repository }}
120 changes: 120 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

**VERSIONS:**

+ **[v2.11.1](#v2111)**
+ **[v2.11.0](#v2110)**
+ **[v2.10.2](#v2102)**
+ **[v2.10.1](#v2101)**
Expand All @@ -30,6 +31,125 @@
---
---

## `v2.11.1`

+ released: 2024-06-27

### `2.11.1` Changes

1. **[STM32 low level hal support](#font-colorredstm32font)**
2. **[dsPIC XC16 USB support](#font-colorredxc16-usbfont)**
3. **[PIC32 XC32 ETHERNET support](#font-colorredxc32-ethernetfont)**
4. **[Fixes](#2111-fixes)**
5. **[Improvements](#2111-improvements)**
6. **[NEW HARDWARE](#2111-new-hardware)**

#### <font color=red>STM32</font>

**STM32 MCUs supported!**

| MCU | MCU | MCU | MCU | MCU |
| :----------------: | :----------------: | :----------------: | :----------------: | :----------------: |
| STM32C011D6 | STM32C011F6 | STM32L4P5ZG | STM32G431RB | STM32C011J6 |
| STM32C011F4 | STM32C011J4 | STM32L4P5AE | STM32L4P5AG | STM32L4P5CE |
| STM32L4P5QE | STM32L4P5QG | STM32L4P5RE | STM32L4P5RG | STM32L4P5VE |
| STM32L4P5ZE | STM32G431C6 | STM32G431C8 | STM32G431CB | STM32G431K6 |
| STM32G431KB | STM32G431M6 | STM32G431M8 | STM32G431MB | STM32G431R6 |
| STM32G431V6 | STM32G431V8 | STM32G431VB | STM32G441CB | STM32G441KB |
| STM32G441RB | STM32G441VB | STM32G473CB | STM32G473CC | STM32G473CE |
| STM32G473MC | STM32G473ME | STM32G473PB | STM32G473PC | STM32G473PE |
| STM32G473QC | STM32G473QE | STM32G473RB | STM32G473RC | STM32G473RE |
| STM32G473VC | STM32G473VE | STM32G474CB | STM32G474CC | STM32G474CE |
| STM32G474MC | STM32G474ME | STM32G474PB | STM32G474PC | STM32G474PE |
| STM32G474QC | STM32G474QE | STM32G474RB | STM32G474RC | STM32G474RE |
| STM32G474VC | STM32G474VE | STM32G483CE | STM32G483ME | STM32G483PE |
| STM32G483RE | STM32G483VE | STM32G484CE | STM32G484ME | STM32G484PE |
| STM32G484RE | STM32G484VE | STM32G491CC | STM32G491CE | STM32G491KC |
| STM32G491MC | STM32G491ME | STM32G491RC | STM32G491RE | STM32G491VC |
| STM32G4A1CE | STM32G4A1KE | STM32G4A1ME | STM32G4A1RE | STM32G4A1VE |
| STM32L4Q5CG | STM32L4Q5QG | STM32L4Q5RG | STM32L4Q5VG | STM32L4Q5ZG |
| STM32C031C6 | STM32C031F4 | STM32C031F6 | STM32C031G4 | STM32C031G6 |
| STM32C031K6 | STM32G051C6 | STM32G051C8 | STM32G051F6 | STM32G051F8 |
| STM32G051G8 | STM32G051K6 | STM32G051K8 | STM32G061C6 | STM32G061C8 |
| STM32G061F8 | STM32G061G6 | STM32G061G8 | STM32G061K6 | STM32G061K8 |
| STM32G0B1CC | STM32G0B1CE | STM32G0B1KB | STM32G0B1KC | STM32G0B1KE |
| STM32G0B1MC | STM32G0B1ME | STM32G0B1NE | STM32G0B1RB | STM32G0B1RC |
| STM32G0B1VB | STM32G0B1VC | STM32G0B1VE | STM32G0C1CC | STM32G0C1CE |
| STM32G0C1KE | STM32G0C1MC | STM32G0C1ME | STM32G0C1NE | STM32G0C1RC |
| STM32G0C1VC | STM32G0C1VE | STM32L4P5CG | STM32L4P5VG | STM32G431K8 |
| STM32G431R8 | STM32G441MB | STM32G473MB | STM32G473QB | STM32G473VB |
| STM32G474MB | STM32G474QB | STM32G474VB | STM32G483QE | STM32G484QE |
| STM32G491KE | STM32G491VE | STM32L4Q5AG | STM32C031C4 | STM32C031K4 |
| STM32G051G6 | STM32G061F6 | STM32G0B1CB | STM32G0B1MB | STM32G0B1RE |
| STM32G0C1KC | STM32G0C1RE |

**Supported modules:**

+ ADC (Full module support)
+ SPI (Full module support)
+ UART (Full module support)
+ I2C (Full module support)
+ PWM (Full module support)
+ GPIO (Full module support)
+ OW (Full module support)
+ DMA (Full module support)
+ CAN (Full module support)

#### <font color=red>XC16 USB</font>

+ Third party modules supported
+ TinyUSB (An open source cross-platform USB stack for embedded systems)

#### <font color=red>XC32 ETHERNET</font>

+ Third party modules supported
+ CycloneTCP (An open source cross-platform USB stack for embedded systems)
+ Support added for XC32 compiler

#### `2.11.1` Fixes

+ Added PD0 and PD1 pins connection for all GD32VF103 MCUs
+ Fixed pin configuration for pins with indexes below 8 in `hal_ll_one_wire.c` implementation for GD32VF103 MCUs
+ Set default CAN baudrate to 125K for all architectures that have CAN module supported
+ Modified error handling in ADC implementation for MKV58x MCUs to detect and notify when an unsupported resolution is attempted to be set
+ Modified low-level GPIO implementation for STM32 so now PORT G pins on STM32L4Rxx MCUs can be set as inputs or outputs
+ Resistive mikromedias naming fixed according to the product names
+ `Mikromedia 3 for STM32 Resistive` changed to `Mikromedia 3 for STM32F4 Resistive`
+ `Mikromedia 3 for STM32 Resistive FPI` changed to `Mikromedia 3 for STM32F4 Resistive FPI`
+ `Mikromedia 4 for STM32 Resistive` changed to `Mikromedia 4 for STM32F4 Resistive`
+ `Mikromedia 5 for STM32 Resistive` changed to `Mikromedia 5 for STM32F4 Resistive`
+ Fixed values for display configuration so now it is configured as an 800x480 display istead of 480x800
+ `Mikromedia 5 for Kinetis Resistive`
+ `Mikromedia 5 for Kinetis Resistive FPI`
+ Fixed regex for including an appropriate dip28 header files for the boards that have this socket

#### `2.11.1` Improvements

+ Added helper function in [./tp.c](./api/tp/lib/src/tp/tp.c) for simplifying code operations on PIC architecture.
+ Added default CAN receive FIFO number and default filter bank number for all architectures that have CAN module supported
+ Added CAN_RX and CAN_TX pins for `EasyPIC v8`, `EasyPIC v8 for dsPIC30` and `EasyPIC v8 for PIC24/dsPIC33` boards
+ Added mapping for LCD pins in board.h, lcd.h now uses these pins instead of TFT
+ Changed the approach to adding new BSP
+ BSP files are now included as separate cmake files per board
+ Implemented an option to add all header files that are used in LVGL project into the LVGL library
+ Structure typecast for GPIO changed to match other architectures

#### `2.11.1` NEW HARDWARE

Support added for following hardware:

+ [EasyAVR v8](https://www.mikroe.com/easyavr-v8)
+ [Mikromedia 3 for Kinetis Resistive](https://www.mikroe.com/mikromedia-3-for-kinetis-resistive)
+ [Mikromedia 3 for STM32F2 Resistive](https://www.mikroe.com/mikromedia-3-for-stm32f2-resistive)

---
**[BACK TO TOP OF 2.11.1](#v2111)**

---
**[BACK TO TOP](#changelog)**

---

## `v2.11.0`

+ released: 2024-04-02
Expand Down
21 changes: 19 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ else()
endif()

if (${TOOLCHAIN_LANGUAGE} MATCHES "MikroC")
project(${PROJECT_NAME_CUSTOM} VERSION 2.11.0 LANGUAGES MikroC)
project(${PROJECT_NAME_CUSTOM} VERSION 2.11.1 LANGUAGES MikroC)
else()
project(${PROJECT_NAME_CUSTOM} VERSION 2.11.0 LANGUAGES C ASM)
project(${PROJECT_NAME_CUSTOM} VERSION 2.11.1 LANGUAGES C ASM)
if(NOT ${TOOLCHAIN_ID} STREQUAL "mchp_xc8")
add_compile_options("-fms-extensions")
endif()
Expand All @@ -33,6 +33,7 @@ if (NOT DEFINED MSDK_BUILD_TFT_MODULES)
endif()

include(utils)
include(mikroeUtils)
include(GNUInstallDirs)

add_subdirectory(platform)
Expand All @@ -50,3 +51,19 @@ endif()
if(${MSDK_TEST_EXAMPLES} MATCHES "true")
add_subdirectory(tests)
endif()

## Deploy build is used for testing compiler specific issues.
if($ENV{IS_DOCKER_CONTAINER} MATCHES "true")
add_subdirectory(deploy)
endif()

if(COMPILER_REVISION)
if(${COMPILER_REVISION} VERSION_GREATER_EQUAL "1.0")
if(${TOOLCHAIN_LANGUAGE} STREQUAL "GNU")
if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.meproject)
fetch_linker_name(${CMAKE_CURRENT_SOURCE_DIR}/.meproject linkerName)
add_ld_all_targets(. ${CMAKE_CURRENT_SOURCE_DIR} ${linkerName})
endif()
endif()
endif()
endif()
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# mikroSDK 2.0

[![SDK Version](https://img.shields.io/badge/mikroSDK%20version-2.11.0-gold)](https://github.com/MikroElektronika/mikrosdk_v2/tree/mikroSDK-2.11.0)
[![SDK Version](https://img.shields.io/badge/mikroSDK%20version-2.11.1-gold)](https://github.com/MikroElektronika/mikrosdk_v2/tree/mikroSDK-2.11.1)

---
## About
Expand Down
3 changes: 3 additions & 0 deletions REQUIREMENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@

**SDK requirements by version:**

* **v2.11.1**
* [`FLASH1`]
* [`RAM1`]
* **v2.11.0**
* [`FLASH1`]
* [`RAM1`]
Expand Down
6 changes: 2 additions & 4 deletions api/log/lib/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -29,15 +29,13 @@ else()
list(APPEND TARGET_DEFINES_LIST __mantis_value__=23)
endif()

list(APPEND TARGET_DEFINES_LIST ${TOOLCHAIN_ID})
target_compile_definitions(lib_log
PUBLIC
${TARGET_DEFINES_LIST}

)
get_target_property(compile_defs lib_log COMPILE_DEFINITIONS)

set(compiler_path "")
mikrosdk_set_compiler_path(compiler_path)

mikrosdk_install(MikroSDK.Log)
install_headers(${CMAKE_INSTALL_PREFIX}/include/api/log/${module_log_path} MikroSDK.Log include/${module_log_path}/log.h ${compiler_path}/include/cstdio.h)
install_headers(${CMAKE_INSTALL_PREFIX}/include/api/log/${module_log_path} MikroSDK.Log include/${module_log_path}/log.h)
8 changes: 8 additions & 0 deletions api/log/lib/include/std_out/log.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,14 @@ typedef struct
*/
#define LOG_MAP_MIKROBUS(cfg, mikrobus) cfg.level = LOG_LEVEL_DEBUG;

/*!
* \brief TRACE function used in CycloneTCP library.
* \details Shall be defined only for toolchains that have this library.
*/
#if defined(gcc_arm_none_eabi) || defined(mchp_xc32)
#define TRACE_PRINTF(...) osSuspendAllTasks(), log_printf(&console, __VA_ARGS__), osResumeAllTasks()
#endif

/**
* @brief Initializes LOG module.
*
Expand Down
8 changes: 8 additions & 0 deletions api/log/lib/include/uart/log.h
Original file line number Diff line number Diff line change
Expand Up @@ -117,6 +117,14 @@ typedef struct
cfg.baud = 115200; \
cfg.level = LOG_LEVEL_DEBUG;

/*!
* \brief TRACE function used in CycloneTCP library.
* \details Shall be defined only for toolchains that have this library.
*/
#if defined(gcc_arm_none_eabi) || defined(mchp_xc32)
#define TRACE_PRINTF(...) osSuspendAllTasks(), log_printf(&console, __VA_ARGS__), osResumeAllTasks()
#endif

/**
* @brief Initializes LOG module.
*
Expand Down
21 changes: 13 additions & 8 deletions api/tp/lib/src/tp/tp.c
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,15 @@
#include "tp.h"
#include <stddef.h>

/**
* @details A helper function for the PIC architecture that is simplifying code operations.
*/
#ifdef __MIKROC_AI_FOR_PIC__
#define get_rotated_coord(__x,__y,__z) __x= __y; __x= __x - __z;
#else
#define get_rotated_coord(__x,__y,__z) __x=__y - __z;
#endif

/**
* @brief Touch Panel Private Macros.
* @details Specified macros for internal usage.
Expand Down Expand Up @@ -522,22 +531,18 @@ tp_get_rotated_coord( tp_t * ctx, tp_touch_item_t * to, tp_touch_item_t * from,
case TP_ROTATE_90 :
{
to->point[ index ].coord_x = from->point[ index ].coord_y;
to->point[ index ].coord_y = ctx->coord_x_max -
from->point[ index ].coord_x;
get_rotated_coord( to->point[ index ].coord_y, ctx->coord_x_max, from->point[ index ].coord_x );
break;
}
case TP_ROTATE_180 :
{
to->point[ index ].coord_x = ctx->coord_x_max -
from->point[ index ].coord_x;
to->point[ index ].coord_y = ctx->coord_y_max -
from->point[ index ].coord_y;
get_rotated_coord( to->point[ index ].coord_x, ctx->coord_x_max, from->point[ index ].coord_x );
get_rotated_coord( to->point[ index ].coord_y, ctx->coord_y_max, from->point[ index ].coord_y );
break;
}
default :
{
to->point[ index ].coord_x = ctx->coord_y_max -
from->point[ index ].coord_y;
get_rotated_coord( to->point[ index ].coord_x, ctx->coord_y_max, from->point[ index ].coord_y );
to->point[ index ].coord_y = from->point[ index ].coord_x;
break;
}
Expand Down
Loading

0 comments on commit 4f6a37a

Please sign in to comment.