There have been cautions about moving MTB 1.1 projects over to MTB 2.0. It appears in many cases the structures of the API calls changed even when using PDL peripherals. Some of the API calls changed from PDL 2.1 to 3.0 to 3.10 to 3.40.
Therefore calls (variables and defines) made in MTB 1.1 are not always the same in MTB 2.0.
With cautious investigation, most times, the conversions can be made manually.
I found this out especially when converting PSoC Creator projects to MTB.
If you still have MTB 1.1 installed, I recommend investigating the Symbols referred to in the error list under MTB 2.0 and find where they are sourced. Find the equivalent in MTB 2.0 and hand-convert.
One potential way to hand-convert is to create an alias header file that makes Symbol reassignment. This may not work under all conditions but it might be a start.
Thanks for the answer. I am using the same PDL (3.10) version in both of MTB 1.1. and MTB 2.1.
When I investigate the Symbols referred to in the error list, I can see that the necessary files are already in the project in MTB 2.1.
For instance, an error says that it can not find ADC hardware symbol but the necessary device header file is already in the lib folder (psoc6hal). Another error says "fatal error: FreeRTOS.h: No such file or directory". This makes me think that there is something going wrong during the project build. Probably these libraries are not included into the build process.
PS: I am using default makefile without any change.
I don't know about the reference to:
For instance, an error says that it can not find ADC hardware symbol ...
since the MTB doesn't have a TopDesign that PSoC Creator has.
Another error says "fatal error: FreeRTOS.h: No such file or directory".
It appears from the directory list you supplied that the FreeRTOS files can been added to your BSP directory.
Now check the MakeFile.
Scroll down to the "COMPONENTS" line.
It should read:
The COMPONENTS line is to indicate to the build that you are using middleware components.
The EMWIN designates you are using emWin.
The OS indicates you are using an Operating System in this case the FreeRTOS.
The NTS indicates you are NOT using a Touch Screen. Change to TS if you are.
Modify the COMPONENTS line and try it. Hopefully this addresses the issue you are having.
Are you willing to upload your MTB project to the forum?
Myself or someone else might spot the issue if we had your build.
Note: This archive WILL BE large.
I tried importing the project into ModusToolbox 2.1 and I was unable to achieve that. I think there was an issue during the importing of the libraries. Also, I do not seem to find all the files in the archive shared like wave.h, sound.h and kxtj3_1057.h.
Can you please share the working ModusToolbox 1.1 project and also the detailed steps describing the procedure followed to port the MTB 1.1 project to MTB 2.1 so that it will help us in debugging the issue?
Thanks and Regards,
Rakshith M B
I was able to download the project and import the code in MTB 2.1.
I do get complaints about not finding header files such as "FreeRTOS.h" that DO exist in the project.
Attached is a log of the Console output of the build attempt on this project.
Also attached is a log of the Console output of the build on a working FreeRTOS project.
I'm no expert but it appears from the logs of the console output and the other items mentioned below that OkBa's issue might be how the build is set up.
On OkBa's MTB Quick Panel another option appears that doesn't appear on my working project: "Project Build Settings"
When I compare OkBa's project build properties to my working project properties I notice two more tabs on OkBa's.
Hopefully this might bring some clues.
The reason that I have more tabs in the C/C++ Build > Settings is that I have selected " Generate Makefiles auttomatically" box in the C/C++ build >Builder Settings. with this way I wanted to see which files are included in the build process. But I could not see any path there.
1 of 1 people found this helpful
The build flow and the directory structure in MTB 1.1 and MTB 2.1 is different and you cannot directly import a MTB 1.1 project into MTB 2.1. We are working on a KBA explaining how to port the project from MTB 1.1 to MTB 2.1. Stay tuned for that.
The MTB 1.1 uses the subdir.mk in each directory to track all the files which is not found in the MTB 2.1 project. These subdir.mk files are unable to find the lib files that are getting generated.
So can you please share the working ModusToolbox 1.1 project? I will try porting the project to ModusToolbox 2.1 and share the project with you.
Thanks and Regards,
Rakshith M B
I have attached the ModusToolbox 2.1 project for your reference.
1. I started with the BLE_Battery_Level_FreeRTOS CE in MTB 2.1
2. Included all the libraries that are needed using the Library Manager
3. Copied the same design.modus file present in the MTB 1.1 project and replaced the existing design.modus file in the directory <MTB2.1_project_directory>\libs\TARGET_CY8CPROTO-063-BLE\COMPONENT_BSP_DESIGN_MODUS
4. Clicked on the Device Configurator tool in the Quick Panel in MTB 2.1, fixed the errors which appear due to the version mismatch and saved the file.
5. I replaced the design.cybt file present in the project with the design.cybt file that was in the MTB 2.1 project that you shared in your previous comment.
6. I then built the project. Two macros were not defined so I copied the macros from the cycfg_ble.h of MTB1.1 project and defined it in ble_task.h as shown -
7. After this I was able to build the project successfully.
I have not confirmed the functionality of the project. But you can start with this project. Please confirm that the project works as expected. If you find any issue with any of the component or if you are stuck in using the project please create a new thread and we will be happy to help you. You can refer to this KBA for steps to import the archive into your MTB 2.1 workspace - Sharing My Eclipse Project
Adding to this, like I have told in my previous comment, we are working on a KBA explaining how to port the project from MTB 1.1 to MTB 2.1 in detail. Stay tuned for that.
Hope this helps,
Thanks and Regards,
Rakshith M B
BLE_Battery_Level_FreeRTOS.zip 97.2 MB
Can you also explain how did you move the source code from MTB1.1 to MTB 2.1 ?
Seems like the replaced design.cybt file in the MTB 2.1 is different than the one in MTB1.1.
Unfortunately, When I program my PSOC 6 device it us programmed successfully.
However, nothing happens in terms of functionality (BLE unit on the chip is not powered, no print out), while it was working in MTB 1.1