Releases: MikroElektronika/mikrosdk_v2
mikroSDK v2.12.2 released
v2.12.2
- released: 2024-12-11
Changes
Improvements
mikroSDK
mikroSDK has been reworked to fit in all SDK supported PIC MCUs for XC8 toolchain.
In the XC8 compiler, there are some known considerations and potential issues when working with pointers and data widths greater than 8 bits, especially when working on 8-bit microcontrollers like the PIC series.
This is why the approach had to be modified. The modified approach bypasses this limitation by
splitting complex pieces of code into more simple steps.
The simpler steps result in XC8 toolchain generating appropriate assembly
instructions and therefore in working pieces of code.
New features
mikroSDK
Added following macro patterns:
GPIO_Pxy
- Replaces
Pxy
- Replaces
GPIO_PIN_x
- Replaces
PIN_xy
- Replaces
GPIO_PORT_x
- Replaces
PORT_xy
- Replaces
All use of the old macros has been changed by new ones. This affects all board and mcu packages as well.
Note that old macros shall be left in the SDK for a couple of upcoming versions, giving users time to make adequate changes to any code they might have.
CORE
All mcu.h
header file for XC8 supported MCUs have the following change applied:
- Changed all occurrences of
Pxy
to_Pxy
- Where
x
i a letter from A to Z andy
is a number from 0 to 9
- Where
Note that these changes shall be reverted once the old pin definitions are removed from the SDK.
mikroSDK v2.12.1 released
v2.12.1
- released: 2024-12-03
Changes
Improvements
mikroSDK
mikroSDK LVGL now has the option to build either LIGHT
or HEAVY
LVGL configurations.
HEAVY
configuration shall have all features of LIGHT
configuration, with the addition of below listed features.
Additional options added for HEAVY
configuration:
CANVAS
TABLE
ANIMIMG
CALENDAR
CHART
IMGBTN
LIST
MENU
METER
MSGBOX
SPAN
TABVIEW
TILEVIEW
WIN
FLEX
GRID
Note that this feature is chosen by NECTO based on MCU memory (RAM/FLASH).
i.e. if MCU has at least 128K RAM and 512K FLASH, heavy configuration will be built.
Fixes
mikroSDK
- Fixed a stray space character before closing a comment
- This caused build issues for FS if
FF_USE_LFN
was defined
- This caused build issues for FS if
mikroSDK v2.12.0 released
v2.12.0
- released: 2024-11-08
Changes
Improvements
mikroSDK
mikroSDK now has the option to skip DRV
to HAL
layer jumps completely.
Note that this feature is enabled by default in NECTO.
Fixes
- Fixed PIC XC8 SPI module so the code can be generated
- Previous code was too complex for XC8 compiler, so it has been simplified
- Fixed all timer module number definitions for all STM32L1x MCUs
- Previously, timer/pwm was not working correctly as these values were incorrect
mikroSDK v2.11.5 released
v2.11.5
- released: 2024-11-01
Changes
Improvements
mikroSDK
New STM32L4 MCUs supported!
MCU | MCU | MCU |
---|---|---|
STM32L412C8 | STM32L412CB | STM32L422CB |
STM32L412K8 | STM32L412KB | STM32L422KB |
STM32L412R8 | STM32L412RB | STM32L422RB |
STM32L412T8 | STM32L412TB | STM32L422TB |
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)
-
RTC (Full module support)
-
DMA (Full module support)
-
Third party modules supported
- TinyUSB (An open source cross-platform USB stack for embedded system)
- FatFs (Generic FAT Filesystem Module)
Files added:
./mcu_name/mcu_definitions.h
-https://github.com/MikroElektronika/mikrosdk_v2/blob/master/targets/arm/mikroe/common/include/mcu_definitions/STM32/mcu_name/mcu_definitions.h
./mcu_name/can_definitions.h
-https://github.com/MikroElektronika/mikrosdk_v2/blob/master/targets/arm/mikroe/common/include/mcu_definitions/STM32/mcu_name/can_definitions.h
./mcu_name/dma_definitions.h
-https://github.com/MikroElektronika/mikrosdk_v2/blob/master/targets/arm/mikroe/common/include/mcu_definitions/STM32/mcu_name/dma_definitions.h
- Added for all new MCUs in mikroSDK where mcu_name is actual chip full name with package, i.e.
STM32L412C8Tx
etc.
- Added for all new MCUs in mikroSDK where mcu_name is actual chip full name with package, i.e.
./mcu_name/mcu_reg_addresses.h.h
-https://github.com/MikroElektronika/mikrosdk_v2/blob/master/targets/arm/mikroe/common/include/mcu_reg_addresses/STM32/mcu_name/mcu_reg_addresses.h
- Added for all new MCUs in mikroSDK where mcu_name is actual chip full name, i.e.
STM32L412C8
etc.
- Added for all new MCUs in mikroSDK where mcu_name is actual chip full name, i.e.
CORE
- Added USB Clock schemes for the newly supported STM32L4 MCUs:
- STM32L412C8
- STM32L412K8
- STM32L412R8
- STM32L412T8
- STM32L412CB
- STM32L412KB
- STM32L412RB
- STM32L412TB
- STM32L422CB
- STM32L422KB
- STM32L422RB
- STM32L422TB
mikroSDK v2.11.4 released
v2.11.4
- released: 2024-10-18
Changes
Improvements
mikroSDK
- Updated logger library error handling
log_init
now returns an error (-1
) if any of the configuration API calls used in it failed
CORE
- Removed
READONLY
option from linker scripts for following MCUs (CLANG)STM32H7S3A8
STM32H7S3I8
STM32H7S3L8
STM32H7S3R8
STM32H7S3V8
STM32H7S3Z8
STM32H7S7A8
STM32H7S7I8
STM32H7S7L8
STM32H7S7Z8
STM32U083CC
STM32U083HC
STM32U083KC
STM32U083MC
STM32U083RC
- Updated project templates to report better errors
- Case when openning designer project without a setup with TFT
- Now reports error in the output
- Case when openning designer project without a setup with TFT
Fixes
mikroSDK
- Fixed following MCU cards to have correct TFT pinout definitions
CORE
- Removed
CAN
schema file (clock configuration) forPIC32MZ1024EFE144
- Added by mistake initially
mikroSDK v2.11.3 released
v2.11.3
- released: 2024-10-03
Changes
Fixes
- Fixed touch panel implementation and TSC2003 library to recognize touch on TSC2003 RESISTIVE Displays while using LVGL projects
- Fixed TP_ROTATION value to be "180" for all 4" CAPACITIVE Mikromedia Boards with PIC32MZ so touch position can be detected correctly
Improvements
- Updated CMakeLists.txt to include MCU Cards headers differently
- Headers are now included with new path with
MCU_NAME
- Headers are now included with new path with
- Clock schemas added for PIC32 mikromedia boards
mikroSDK v2.11.2 released
v2.11.2
- released: 2024-08-23
Changes
NEW HARDWARE
Support added for following hardware:
mikroSDK v2.11.1 released
v2.11.1
- released: 2024-06-27
Changes
- STM32 low level hal support
- dsPIC XC16 USB support
- PIC32 XC32 ETHERNET support
- Fixes
- Improvements
- NEW HARDWARE
STM32
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 toMikromedia 3 for STM32F4 Resistive
Mikromedia 3 for STM32 Resistive FPI
changed toMikromedia 3 for STM32F4 Resistive FPI
Mikromedia 4 for STM32 Resistive
changed toMikromedia 4 for STM32F4 Resistive
Mikromedia 5 for STM32 Resistive
changed toMikromedia 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 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
andEasyPIC 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:
mikroSDK v2.11.0 released
v2.11.0
- released: 2024-04-02
Changes
XC32
- As of mikroSDK version
2.11.0
,XC32 v4.35
is officially supported. - All
187
PIC32 MCUs can now be used with the XC32 toolchain along with full mikroSDK functionality. - Linker scripts are included upon selecting adequate setup for your project so it can be easily edited on the fly.
- All standard modules supported (GPIO, ADC, I2C, PWM, SPI, UART, OneWire, RTC, CAN, DMA and LCD)
- Third party modules supported
- TinyUSB (An open source cross-platform USB stack for embedded system)
- LVGL (Light and Versatile Embedded Graphics Library)
- FatFs (Generic FAT Filesystem Module)
XC16
- As of mikroSDK version
2.11.0
,XC16 v2.10
is officially supported. - All
531
dsPIC/PIC24 MCUs can now be used with the XC16 toolchain along with full mikroSDK functionality. - Linker scripts are included upon selecting adequate setup for your project so it can be easily edited on the fly.
- All standard modules supported (GPIO, ADC, I2C, PWM, SPI, UART, OneWire, CAN and LCD)
- Third party modules supported
- FatFs (Generic FAT Filesystem Module)
XC8
- As of mikroSDK version
2.11.0
,XC8 v2.46
is officially supported. - Due to the complexity of mikroSDK, only
PIC18xxQ43
family of MCUs is supported. - All standard modules supported (GPIO, ADC, I2C, PWM, SPI, UART, OneWire, CAN, DMA and LCD)
- Third party modules supported
- FatFs (Generic FAT Filesystem Module)
Fixes
- Fixed
drv/lib/CMakeLists.txt
to include the appropriate subdirectories.- Previously,
lib_drv_i2c_master
andlib_drv_port
were switched. Now, the inclusion is based on their individual definitions – ensuring that each is included as intended.
- Previously,
- Fixed all low level implementations for PIC32 MCUs to accommodate the release of XC32 toolchain.
- Fixed issue with gl_text not drawing correct characters on XC compilers.
- Fixed issue with tp not detecting TP_EVENT_PRESS_UP on tft7 boards.
- Fixed wrong LCD_TFT_8BIT_CH0 port name for:
- Fixed wrong HAL_LL_I2C_MAX_SPEED_VALUE for I2CxBRG register for dsPIC devices.
- Fixed custom board inclusion into project
- Custom board is not generated in mikroSDK BSP anymore, but in
MIKROE
app data
- Custom board is not generated in mikroSDK BSP anymore, but in
Improvements
- Added doxy style help generation files for mikroSDK
- Additionally, a layout file has been added as well
- Changed directory so it can be built as bare metal
- Changed following files:
- ./CMakeLists.txt
- ./platform/CMakeLists.txt
- ./platform/conversions/lib/CMakeLists.txt
- Changed name to
Generic.Conversions
- Changed name to
- Changed following files:
delays.h
explicitly included in all files which use any delay API- Changed order of variables in ili9341.c for MikroC AI for dsPIC due to issue with W2 register.
- Changed ./hal_ll_adc.c, added setting of pin analog functionality in hal_ll_adc_read function because of special case in tp_mikroe.c where we constantly change pin configuration.
- Changed ./tsc2003.h, I2C slave address for touch controller is now defined in database.
- Updated all tests to build with XC compilers
- Additinally, added preinit routine to every test as well
NEW HARDWARE
- Mikromedia 3 for PIC Resistive
- Mikromedia 3 for PIC Resistive FPI
- Mikromedia 3 for STM32 Resistive
- Mikromedia 3 for STM32 Resistive FPI
- Mikromedia 4 for kinetis Resistive
- Mikromedia 4 for kinetis Resistive FPI
- Mikromedia 4 for STM32 Resistive
- Mikromedia 4 for STM32f2 Resistive FPI
- Mikromedia 4 for STM32f4 Resistive FPI
- Mikromedia 4 for STM32f7 Resistive
- Mikromedia 5 for kinetis Resistive
- Mikromedia 5 for kinetis Resistive FPI
- Mikromedia 5 for STM32 Resistive
- Mikromedia 5 for STM32f4 Resistive FPI
- Mikromedia 5 for STM32f7 Resistive
- Mikromedia 5 for STM32f7 Resistive FPI
- Mikromedia 7 Resistive
- Mikromedia 7 Resistive FPI
mikroSDK v2.10.2 released
v2.10.2
- released: 2024-02-19
2.10.2
Changes
2.10.2
Fixes
- Fixed an issue on TIVA, where the DMA transfer would not be realized, if the source data buffer was stored in flash memory
- Configured flash memory to allow the DMA access to the whole flash memory space
- Added guards for tim_regs_map array in dsPIC low-level PWM implementation
2.10.2
Improvements
- Removed option to choose receive buffer and filter config for FIFO1 in low level implementation for PIC18 CAN implementation
- Receive buffers are not selectable due to HW restrictions. Filter and mask configuration for FIFO1 is going to be handled once CAN over interrupts is supported
- Removed NC definition for not connected pins from MCU card headers for 61 MCU cards
- Now user will have compile time error if he tries using pin that is not routed to mikroBUS
- Added NC macro as HAL_PIN_NC to 20 PIM MCU card headers that didn't have it
- Removed display support for MCU CARD 2 FOR KINETIS with MK20 MCUs as it doesn't have TFT pins
2.10.2
NEW HARDWARE
- STM32 Nucleo-64 development board with STM32F401RE MCU
- STM32 Nucleo-64 development board with STM32F030R8 MCU
- STM32 Nucleo-64 development board with STM32L073RZ MCU
- STM32 Nucleo-64 development board with STM32L476RG MCU
- STM32 Nucleo-64 development board with STM32F070RB MCU
- STM32 Nucleo-64 development board with STM32F091RC MCU
- STM32 Nucleo-64 development board with STM32L433RC-P MCU
- Click Shield for Nucleo-64
- STM32 Nucleo-144 development board with STM32L496ZG MCU
- STM32 Nucleo-144 development board with STM32L4R5ZI MCU
- STM32 Nucleo-144 development board with STM32F412ZG MCU