This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

F29H859TU-Q1: start CPU1 and CPU2 in one project

Part Number: F29H859TU-Q1

Hi all,

I saw we have many multi-core examples in the SDK. But they have one project for CPU1 and  one project for CPU2. Can we combine these two project to one project.

Because customer have completely the whole function in CPU1's project. Now they  want to split into cpu1 and cpu2. Is there aby easy way?

 

Regards,

Jenney

  • Jenney, 

    Is the customer asking to combine a project containing CPU1 and CPU2 into a single project folder within CCS? This is not possible as each core requires its own .out file to be loaded into the CPU

    Or is the customer asking how they can split the project between CPU1 and CPU2? 

    Kind regards,
    AJ Favela 

  • Hi AJ

    No. Currently, the customer has a complete single-core (CPU1) project, but they want to move this project's functionality to CPU2/CPU3. Except transferring this to a multicore example project, how can they modify the existing project so that the generated .out file can be loaded onto CPU2/CPU3? The customer does not need to run anything on CPU1; it just need to boot and release CPU2/CPU3.

    Regards,

    Jenney

  • Hi Jenny,

    A multi-core project will always be necessary when using CPU2/3. The recommend and most reliable way to do this is to import an existing dual-core example from our SDK (such as empty_project_multi) as a template and implement the customer project to the CPU2 or CPU3 project files. 

    As you mentioned a CPU1 project is still needed to boot and release CPU2/CPU3 out of reset but it is also needed to give ownership of peripherals to CPU2/3. If you are using syscfg this is added to your board.c file once you have added a peripheral to the CPU2/3 section of the .syscfg file, just be sure to call board_init() within your CPU1 code. If you are not using syscfg, then you will need to manually call SysCtl_selectCPUForPeripheral(); and SysCtl_selectFrameForPeripheral(); within the CPU1 code to assign ownership before any configurations can happen. Configurations themselves need to happen within the assigned CPU that now has ownership or if using syscfg, can happen within that CPU's portion of the file. 

    Kind regards,
    AJ Favela 

  • Hi AJ,

    Thanks, i got