cancel
Showing results for 
Search instead for 
Did you mean: 

Using CubeMX to create CMSIS_V2 project for SW4STM32 for both cores of Nucleo-H755

TOlli
Senior

Hi,

Like indicated, I'm using CubeMX (5.6.0) to create dual CMSIS_V2 project for nucleo-H755.

The code is generated for the selected IDE with no issues (I assume), but what is unclear to me is how much work is left for me to do?

I have selected TIM6 for CM7 and TIM7 for CM4 as their timebase. I have tried running the code, but it just hangs.

I debugged CM7 and it ends in a TIM6 interrupt and is stuck in there (there is no while(1) loop there though).

Is there a proper guide on what are the missing the steps between a working project and the skeleton that comes from CubeMX? ( youtube series on FreeRTOS does not seem to touch this topic:

https://www.youtube.com/watch?v=hbRcjzmv0wY&list=PLnMKNibPkDnFeFV4eBfDQ9e5IrGL_dx1Q

I know there are examples in the FW package, the problem is, I don't think they are generated with CubeMX, even though the project itself is done for a nucleo board. They seem to be hand-written.

It would be better to generate even the examples using CubeMX, to give the idea on what is actually different, because then one can use tools easily to compare the output.

Best regards,

2 REPLIES 2
TOlli
Senior

I think I have part of the solution done.

I added TIM6->SR = 0x0; and TIM7->SR = 0x0; into the corresponding timer interrupt to clear the flag. At least now, I can make it to to the task in CM7 (I'm debuggin only one core at the moment).

But I'm unable to blink the LED1 even though it has been initialized in main.c before the kernel starts. I'm using the BSP_LED_INIT(LED1) and BSP_LED_Toggle(LED1); operations from the nucleo-library.

The BSP_LED_Toggle(LED1); call is in the default task, before the osDelay(1000); (this should give a me 1s delay between toggles so I can actually see the blinking).

Anything I'm missing here? Everything else is pretty much how it was setup by CubeMX.

Best regards

And continuing from this. I tried to move the blinking to the CM4 core. I can now blink the LED.

Maybe I need to read through the reference manual again, seems to me that I'm missing something.

I guess the GPIO is assigned to one specific core, if I'm not mistaken? Or what is the reason, that the code fails on CM7, but works on CM4?