Skip to content

Commit

Permalink
v2.11.0
Browse files Browse the repository at this point in the history
+ released: 2024-04-02

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 and lib_drv_port were switched. Now, the inclusion is based on their individual definitions – ensuring that each is included as intended.
+ 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:
  + dsPIC33EP512MU810(./bsp/board/include/mcu_cards/easypic_fusion_v7_mcucard_with_dspic33ep512mu810/mcu_card.h)
  + PIC24EP512GU810(./bsp/board/include/mcu_cards/easypic_fusion_v7_mcucard_with_pic24ep512gu810/mcu_card.h)
  + dsPIC33FJ256GP710A(./bsp/board/include/mcu_cards/easypic_fusion_v7_mcucard_with_dspic33fj256gp710a/mcu_card.h)
  + PIC24FJ128GA310(./bsp/board/include/mcu_cards/easypic_fusion_v7_mcucard_with_pic24fj128ga310/mcu_card.h)
+ 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

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(./CMakeLists.txt)
    + ./platform/CMakeLists.txt(./platform/CMakeLists.txt)
    + ./platform/conversions/lib/CMakeLists.txt(./platform/conversions/lib/CMakeLists.txt)
      + Changed name to Generic.Conversions
+ 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(./targets/pic_16bit/mikroe/dspic/src/adc/implementation_1/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(./middleware/tsc2003/lib/include/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
  • Loading branch information
StrahinjaJacimovic committed Apr 2, 2024
1 parent a0ba439 commit 2efb5c0
Show file tree
Hide file tree
Showing 427 changed files with 13,365 additions and 3,072 deletions.
108 changes: 107 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

**VERSIONS:**

+ **[v2.11.0](#v2110)**
+ **[v2.10.2](#v2102)**
+ **[v2.10.1](#v2101)**
+ **[v2.10.0](#v2100)**
Expand All @@ -29,6 +30,109 @@
---
---

## `v2.11.0`

+ released: 2024-04-02

### `2.11.0` Changes

1. **[XC32 support](#font-colorredxc32font)**
2. **[XC16 support](#font-colorredxc16font)**
3. **[XC8 support](#font-colorredxc8font)**
4. **[Fixes](#2110-fixes)**
5. **[Improvements](#2110-improvements)**
6. **[NEW HARDWARE](#2110-new-hardware)**

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

+ 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)

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

+ 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)

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

+ 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)

#### `2.11.0` Fixes

+ Fixed `drv/lib/CMakeLists.txt` to include the appropriate subdirectories.
+ Previously, `lib_drv_i2c_master` and `lib_drv_port` were switched. Now, the inclusion is based on their individual definitions – ensuring that each is included as intended.
+ 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:
+ [dsPIC33EP512MU810](./bsp/board/include/mcu_cards/easypic_fusion_v7_mcucard_with_dspic33ep512mu810/mcu_card.h)
+ [PIC24EP512GU810](./bsp/board/include/mcu_cards/easypic_fusion_v7_mcucard_with_pic24ep512gu810/mcu_card.h)
+ [dsPIC33FJ256GP710A](./bsp/board/include/mcu_cards/easypic_fusion_v7_mcucard_with_dspic33fj256gp710a/mcu_card.h)
+ [PIC24FJ128GA310](./bsp/board/include/mcu_cards/easypic_fusion_v7_mcucard_with_pic24fj128ga310/mcu_card.h)
+ 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

#### `2.11.0` 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](./CMakeLists.txt)
+ [./platform/CMakeLists.txt](./platform/CMakeLists.txt)
+ [./platform/conversions/lib/CMakeLists.txt](./platform/conversions/lib/CMakeLists.txt)
+ Changed name to `Generic.Conversions`
+ `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](./targets/pic_16bit/mikroe/dspic/src/adc/implementation_1/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](./middleware/tsc2003/lib/include/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

#### `2.11.0` 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

---
**[BACK TO TOP OF 2.11.0](#v2110)**

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

---

## `v2.10.2`

+ released: 2024-02-19
Expand Down Expand Up @@ -95,6 +199,8 @@
+ Resolved the problem where certain pins were unreachable due to undefined macros in `ifdef`
+ Transmit FIFO initialization for CAN on PIC32 moved from `hal_ll_can_filter_init` to `hal_ll_can_module_init`
+ Since filters are not needed for transmitting this change makes using CAN easier and more intuitive
+ Fixed `mcu_card.h` for **MCU card 3 for PIC32**
+ `RIGHT_CN_PIN_043` and `RIGHT_CN_PIN_044` were defined as `NC` but they have actual pins routed

---
**[BACK TO TOP OF 2.10.1](#v2101)**
Expand Down Expand Up @@ -1063,7 +1169,7 @@

+ Fixed PIC32MZ adc low level implementation
+ Setting internal VREF after previously setting external didn't work as bits in appropriate register werent cleared properly
+ Fixed all low level implementations for ARM MCUs to accommodate the relase of GCC ARM toolchain
+ Fixed all low level implementations for ARM MCUs to accommodate the release of GCC ARM toolchain
+ Fixed `uart_configure_default` API
+ `stop_bits` previosuly set incorrectly
+ `ring_buf8_init` previously used `sizeof( ring_buf8_t )` as last parameter which would delete all data starting from `buf` address all the way to the `sizeof( ring_buf8_t )` which could produce problems if `buf` was shorter than `sizeof( ring_buf8_t )`
Expand Down
39 changes: 27 additions & 12 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,18 +1,31 @@
## ./CMakeLists.txt
cmake_minimum_required(VERSION 3.11)

if (NOT DEFINED IS_BARE_METAL)
set(IS_BARE_METAL false)
endif()

if (${IS_BARE_METAL})
set(PROJECT_NAME_CUSTOM "BareMetal")
else()
set(PROJECT_NAME_CUSTOM "MikroSDK")
endif()

if (${TOOLCHAIN_LANGUAGE} MATCHES "MikroC")
project(MikroSDK VERSION 2.10.2 LANGUAGES MikroC)
project(${PROJECT_NAME_CUSTOM} VERSION 2.11.0 LANGUAGES MikroC)
else()
project(MikroSDK VERSION 2.10.2 LANGUAGES C ASM)
add_compile_options("-fms-extensions")
project(${PROJECT_NAME_CUSTOM} VERSION 2.11.0 LANGUAGES C ASM)
if(NOT ${TOOLCHAIN_ID} STREQUAL "mchp_xc8")
add_compile_options("-fms-extensions")
endif()
endif()

# Link MikroC.Core for all toolchains
find_package(MikroC.Core)

set(CMAKE_STATIC_LIBRARY_PREFIX "")

list(APPEND CMAKE_MODULE_PATH "${MikroSDK_SOURCE_DIR}/cmake")
list(APPEND CMAKE_MODULE_PATH "${${PROJECT_NAME_CUSTOM}_SOURCE_DIR}/cmake")

# Build Tft modules by default if not specified differently
if (NOT DEFINED MSDK_BUILD_TFT_MODULES)
Expand All @@ -22,15 +35,17 @@ endif()
include(utils)
include(GNUInstallDirs)

add_subdirectory(api)
add_subdirectory(bsp)
add_subdirectory(components)
add_subdirectory(drv)
add_subdirectory(hal)
add_subdirectory(middleware)
add_subdirectory(platform)
add_subdirectory(targets)
add_subdirectory(thirdparty)
if (NOT ${IS_BARE_METAL})
add_subdirectory(api)
add_subdirectory(bsp)
add_subdirectory(components)
add_subdirectory(drv)
add_subdirectory(hal)
add_subdirectory(middleware)
add_subdirectory(targets)
add_subdirectory(thirdparty)
endif()

if(${MSDK_TEST_EXAMPLES} MATCHES "true")
add_subdirectory(tests)
Expand Down
Loading

0 comments on commit 2efb5c0

Please sign in to comment.