- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi there,
Is there a way to confirm that PDL 3.0.4 is being used instead of an older version? Whenever right clicking a component (i.e. Bluetooth) and opening the PDL Documentation, we encounter this description which specifies the PDL 3.0.1 is being used.
Best,
Steve
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If you go to Tools -> Options , under Project Management you will see the PDL v3 (PSoC 6 devices) location. You can then browse for the PDL location of your choice. Also if you do this, make sure, at Project->Build Settings.. under "Peripheral Driver Library" select Default option. You can also choose custom and then browse the location of PDL.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
If you go to Tools -> Options , under Project Management you will see the PDL v3 (PSoC 6 devices) location. You can then browse for the PDL location of your choice. Also if you do this, make sure, at Project->Build Settings.. under "Peripheral Driver Library" select Default option. You can also choose custom and then browse the location of PDL.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Steve,
After following shams_2888731 suggestion, please check "Help > Documentation >Peripheral Driver Library" and you should see the version of PDL linked to the project as shown below -
Regards,
Meenakshi Sundaram R
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi msur,
We've been able to confirm that we're using the updated PDL with the image you attached.
But we've run into an error on project build:
C:\Users\Steve\Desktop\PSoC\Design0594.cydsn\CortexM0p\ARM_GCC_541\Debug\Design0594.elf: Merge error: Section 0x14000000 at C:\Users\Steve\Desktop\PSoC\Design0594.cydsn\CortexM0p\ARM_GCC_541\Debug\Design0594.elf overlaps section 0x14000000 from C:\Users\Steve\Desktop\PSoC\Design0594.cydsn\CortexM4\ARM_GCC_541\Debug\Design0594_signed.elf,
but it contains different data
The command 'C:\Program Files (x86)\Cypress\PDL\3.0.4\tools\win\elf\cymcuelftool.exe' failed with exit code '1'.
We have also tried cleaning and rebuilding the project but run into the same error. It seems that the old and new PDL files are overlapping. What do you recommend to be the safest way to fix the error without corrupting other files?
Best,
Steve
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Meenakshi,
After some trial and error we noticed that the merge error occurs when including both Bluetooth and EEPROM into the same project. The error doesn't occur when including either component in isolation. Is there some overlap occurring in Flash for Bluetooth and EEPROM?
Best,
Steve
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Steve,
Are you using the EEPROM component in one core and the BLE host in another core? If yes, then that might result in overlapping data. The reason is the code for M0+ and M4 are compiled separately and any code placed in the section ".cy_em_eeprom" will try to get placed from the start in each core - resulting in overlap if both core place some stuff in the ".cy_em_eeprom" section.
Now to overcome this, you will need to split the EEPROM between the cores - whatever proportion you want. Based on the compiler you are using, change the linker script (*.ld files for GCC) "em_eeprom" ORIGIN and LENGTH values and make sure they dont overlap for the cores i.e. edit the file for both the cores.
An example -
In cy8c6xx7_cm0plus.ld:
em_eeprom (rx) ORIGIN = 0x14000000, LENGTH = 0x4000 /* 16 KB */
In cy8c6xx7_cm4.ld:
em_eeprom (rx) ORIGIN = 0x14004000, LENGTH = 0x4000 /* 16 KB */
Let me know if this helps.
Regards,
Meenakshi Sundaram R
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Meenakshi,
Thank you for the prompt reply, but we are only using one core - both the host and controller are on M0+ core.
Best,
Steve
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Can you post the project? Is your Emulated EEPROM component used in M4? If yes, then that is the problem and making the change which I suggested should fix the issue.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Looks like our EEPROM component is getting compiled for both cores and placing the eeprom data for both cores. I will investigate a bit more on the behavior.
For now, you can change the cy8c6xx7_cm4_dual.ld:
em_eeprom (rx) ORIGIN = 0x14007E00, LENGTH = 0x200 /* 512 B */
It worked for me. Let me know if it helps your code or not.
Regards,
Meenakshi Sundaram R
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Meenakshi,
That did the job. Thank you!
Looking forward to hear back on the strange behavior.
Best,
Steve