Recent discussions
Hello,
We are developing a product that contains the CY8C6347 part using ModusToolbox v2.3.1 and we are running into issues when trying to create a boot loader that uses the "secure image" functionality as outlined in AN221111.
To start with we made a simple "bootloader" application that runs on the CM0+ core and launches our main application that runs on the CM4 core. For this the "Dual CPU IPC Pipes" (https://github.com/Infineon/mtb-example-psoc6-dual-cpu-ipc-pipes) example was used.
That version of our "bootloader" is operating correctly, however when we start to pull in the "secure image" functionality that are described in AN221111 (and in the examples from the PSoC Creator PDL distribution) we are encountering an error when building the CM4 application. The behavior that we are seeing is that after the CM0 project is compiled the build process appears to stall/hang for a minute or two. While this is happening the windows task manager shows perl process that is consuming a fair amount of CPU as well as 3+ GB of RAM. That process appears to succeed, but then when gcc tries to compile the `.c` file that the perl script generates it errors out due to running out of memory.
I'm guessing that what is going on is that since the "secure image" process requires use of the `TOC2` instances that reside in SFLASH which is at address 0x16007C00 is causing the .bin and .c files to be very large and that is what is causing the perl script to take so long to complete and what causes the compile to error out. The .bin file is 98,336KB and the .c file is 329,231KB. That size for the .bin file seems to correspond with the offset of the SFLASH TOC2 instances within the flash area.
Has this issue been encountered before? Are there any solutions/workarounds?
Show LessDears,
when debugging project running on CY8CPROTO-062-4343W kit using KitPro3 after few minutes it stop debugging:
Error: kitprog3: get_power command failed
Warn : keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (1015 ms). Workaround: increase "set remotetimeout" in GDB
Error: kitprog3: get_power command failed
Warn : keep_alive() was not invoked in the 1000 ms timelimit. GDB alive packet not sent! (1012 ms). Workaround: increase "set remotetimeout" in GDB
Error: CMSIS-DAP command CMD_DISCONNECT failed.
Error: CMSIS-DAP command CMD_CONNECT failed.
Warn : keep_alive() was not invokedError: Error connecting DP: cannot read IDR in the 1000 ms timelimit. GDB alive packet not sent! (3027 ms). Workaround: increase "set remotetimeout" in GDB
Error: CMSIS-DAP command CMD_DISCONNECT failed.
Error: CMSIS-DAP command CMD_CONNECT failed.
When I disconnect and launch debug again, it will only report
Error: CMSIS-DAP command CMD_INFO failed.
If I close ModusToolbox and try to run Cypress Programmer (standalone) it only write:
Info : [CyBridge] Start API initialization
Info : [CyBridge] Hardware initialization complete 1784 ms
Error: [CyBridge] Error = Timeout sending bulk packet
And I must disconnect USB cable to kit (to reset Kitprog3) and start again.
I have only idea that it could be due higher room temperature. I did not do any change in code... only doing debug session set breakpoints and watch variables. Prior to this it works normally for at least 2 days.
Could be something else wrong ?
Best Regards
Radim
Show LessPSoC Creator can
1. Add communication components like UART or other function features
2. Assign IO pins
2. Generator application
Does Modustoolbox take similar approach or something else?
Show Less
Hello,
When I use modus,through the function uxTaskGetStackHighWaterMark(),I could confirm the task stack.
But,I don't know how to comfirm the maximum usage of system stack .
Question 1 : Is there any way to do it?
※When I use Keil, an htm file will be generated after the project is compiled, and I can find the maximum usage of the stack through this file.
Question 2: Is there a similar file after compiling?
Show LessHi,
As title. Does CE222221 PSoC 6 MCU Voice Recorder sample code support in Modustoolbox??
I found below thread. It seems only on PSoC creater??
Austin
Show Less我现在的项目使用双核工程,M0核处理逻辑和外设,M4核只用于TFT屏刷图,,形成M0为主,M4核为从的模式。但是将cybsp_init()放在M4核运行正常,将cybsp_init()放在M0核就运行异常,请问将cybsp_init()放在M0核运行 要做哪些修改?
ref: https://community.infineon.com/t5/AIROC-Bluetooth/MTB-PSoc6-BLE-OTA-Bootloader/m-p/330105#M1173
The example from the discussion posting above implements DFU for BLE with a non-upgradable stack. Has anyone successfully implemented the upgradable stack example for MTB?
Thanks!
Josh
Show LessUsing PDL v2.40, and Modus Device Configurator to configure the SAR ADC< there is a bug in the SAR-5.0.cypersonality. (I did a brief check and this issue is also present in previous PDL and SAR personality file versions as well).
According to the PSOC6 TRM, the SAR can be clocked by 1.7 MHz to 18 MHz without an external bypass capacitor. From the TRM:
36.2.1.6 SAR ADC Clock
Note: The maximum SAR ADC clock frequency may be limited to less than 18 MHz by the PSoC 61 datasheet/PSoC 62 datasheet specification for sample rate maximum.
SAR ADC clock frequency must be between 1.8 MHz and 18 MHz, which comes from the peripheral clock (CLK_PERI) in thesystem resources subsystem (SRSS). See the Clocking System chapter on page 237 to know how to configure the peripheral clock.
The PDL 'sar-5.0.cypersonality' file has data validators to check the minimim clock frequency (works) and the maximum (does not work). The device configurator incorrectly shows the valid frequency range as min1.7 MHz and max 1.8 MHz.
Checking the sar-5.0.cypersonality file, the issue is with this line (75):
<ParamString id="clkFreqMaxMHz" name="clkFreqMax" group="Connections" default="`${(vref_byp_cap || (vref_select eq CY_SAR_VREF_SEL_VDDA) || (vref_select eq CY_SAR_VREF_SEL_EXT)) ? ((2000000 == maxSampleRate) ? 36 : 18) : 1.8}`" visible="false" editable="false" desc="Maximum supported ADC clock frequency" />
where the max frequency has a typo : 1.8 MHz instead of 18 MHZ. This issues prevents setting a clock in the valid range, unless the ".bypassed" configuration is selected . It shouldn't have to be bypassed to be clocked in this range.
Looks like an easy fix to address in PDL release.
Show LessI am trying to use the example mtb-example-psoc6-mcuboot-basic on CY8CKIT-062_BLE, but I cannot get it to compile following the instructions on github (https://github.com/Infineon/mtb-example-psoc6-mcuboot-basic). I am using MTB 2.4.0.
I created a new ModusToolbox Application and selected my board (CY8CKIT-062-BLE) then selected "MCUboot-Based Basic Bootloader". After attempting to build; however, I was greeted by 328 errors like the ones below which aren't making sense to be because the macro is clearly defined above in the file.
The discussion post (https://community.infineon.com/t5/PSoC-6-SDK/Example-project-build-errors-mtb-example-psoc6-mcuboot-basic/m-p/266495) seems to discuss a similar issue with the older version of this MCUboot example that was caused by MCUboot v1.8.1, but the current version of the MCUboot example I am using (release-4.0.0) was released 5 days ago, and claims it solves this issue.
Any help would be greatly appreciated. I have been developing in PSOC Creator, and I am trying to decide if it is worth converting the project to MTB asap, but if I can't even get a basic OTA working soon, I will have to forget it.
Show Less
如附件 是modus2.4操作QSPI的工程,gImage_2_2[20]这个数组没有烧录到外部flash中,读取的数据是外部flash原来的数据。 同样的代码modus2.2就操作正常,请大神帮我看下是什么问题,已经折腾我三天了。这个代码以前也是赛普拉斯AE帮我搞的,现在为了方便开发,需要移植到modus2.4上面。
Show Less