Recently, I found that an issue with a task not being awakened after an I2C read call (see
http://www.utasker.com/forum/index.php?topic=2047.0). Since this issue was fixed since the build I started using for my project with uTasker, I thought it would be a good idea to use a later build that incorporated the changes I had found. Created the following steps to upgrade my project.
Steps to Update
1. Obtain the latest stable uTasker operating system.
2. Unzip to a directory uTasker_latestStableBuild
3. Create a MCUXpressoWorkspace directory
4. Follow the uTaser instructions for creating the MCUXpresso integration of the workspace and project, but copy then import the present .cproject, .project, and .settings directory of the previous uTasker project.
5. Copy all the .launch configurations and Revision History to the new project.
6. Use WinMerge to find the differences. Copy what is appropriate to recreate the project, the project directory located in the Applications directory.
7. Clean and build the project.
I did this upgrade with uTasker_1.4.12.2019.11.15_11.40.37
After going through the "Steps to Update", on first build found that file CO_driver.h line 382, in structure definition CO_CANmodule_t had and unknown definition called QUEUE_HANDLE for CAN_interface_ID. I found in the previous version of the file that I had, QUEUE_HANDLE was not used in CO_driver.h. To work around this issue, I included file "types.h" since QUEUE_HANDLE is defined in this file:
#include "types.h"
Although, I did set up and build the uTaskerV1.4 project in MCUXpresso without my application code and it compiled without a problem for the FRDM_KE15Z. I found that keeping the same Application files and importing the MCUXpresso project from the previous uTasker_1.4.12.2019.02.28 build did have one compiler problem.
After that change, the program would build, but when run, LPUART0 data was being ignored for our project. Found that file kinetis.h did not have PA_2_LPUART0_RX and PA_3_LPUART_TX defined for PORT_MUX_ALT6 which is used in our project:
#define PA_2_LPUART0_RX PORT_MUX_ALT6
#define PA_3_LPUART0_TX PORT_MUX_ALT6
Found that kinetis_uart_pins.h is missing configuration of the LPUART0 port for PORT_MUX_ALT6.
Added after _CONFIG_PERIPHERAL(A, 2, (PA_2_LPUART0_TX | UART_PULL_UPS)), added line:
#elif defined KINETIS_KE15
_CONFIG_PERIPHERAL(A, 3, (PA_3_LPUART0_TX | UART_PULL_UPS)); // LPUART0_TX on PA3 (alt. function 6)
Added after _CONFIG_PERIPHERAL(A, 1, (PA_1_LPUART0_RX | UART_PULL_UPS)), added line:
#elif defined KINETIS_KE15
_CONFIG_PERIPHERAL(A, 2, (PA_2_LPUART0_RX | UART_PULL_UPS)); // LPUART0_RX on PA2 (alt. function 6)
I had added these definitions (see attachment files) on the previous version of uTasker and WinMerge helped identify some corrections I made to those uTasker driver level files. The upgrade process was easy and went better than expected. My conclusion is that uTasker is designed in a very modular which simplifies the process of upgrading your application code.
Tom