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.

TMS320F28388D: Dual code & sysconfig

Part Number: TMS320F28388D
Other Parts Discussed in Thread: SYSCONFIG, C2000WARE

Hi,

I am a bit lost with sysconfig and dual C28x core configuration.

I started my design with 2 sysconfig files, one for each core / project, thinking I should put the configuration of each peripheral in the file corresponding to the core that will be using it (which was my understanding based on the examples I looked at).

Then I had a whole lot of issues when I wanted some bit of code to change core, trying to move peripheral configuration from one core to the other was not easy (and I ended up giving up).

Then I tried to test the configuration of peripherals configured by CPU2, and they just weren't configured at all. Very problematic !

And then I saw another example that led me to understand (am I right ?) that peripherals are accessible by both cores using the names given in either file. Which led me to think that it would be much, much easier to configure pretty much all peripherals in only one sysconfig file, and only the very core-specific in both (interrupts, memory, etc.). But my issue is then that I wouldn't know how to tell a peripheral that triggers an interrupt which core gets the interrupt.

In the end, I didn't find any example that would lead me in the right direction regarding the configuration, and I am a bit lost ...

Any help on how to proceed would be highly appreciated.

Thanks in advance,

Best regards,

Adrien

  • Hi Adrian,

    Please have a look at the sysconfig dual core examples present in the C2000Ware SDK in the C2000Ware_5_01_00_00\driverlib\f2838x\examples\c28x_dual folder.

    You should be able to find the syscfg dual core examples for LED, DMA, MEMCFG which should help you to understand the dual core configuration.

    If you have a look at the .syscfg file in the example, we add the context macro to specify which CPU it is configured ( eg. --context "CPU1" will be configured for CPU1)

    Even there is an empty project example where you could have your dual core configuration and validate.

    Please have a look at the multicore sysconfig development tutorial for more information - Simplifying C2000 Multi-Core Development | Video | TI.com

    Thanks

    Aswin

  • Hi Aswin,

    Thanks for your help. The main missing bit was peripheral ownership in the Sysctl module. I will check that.

    In meantime, assuming it solves my issue, I still have questions : 

    • Would you recommend putting all the peripheral configuration in a single sysconfig file (CPU1) and then managine ownership, or are there reasons not to do that and spread the configuration over 2 files ? Having it all in 1 file would make it easier to "swap core" some bits of code and some peripheral management, especially in early development when things are not yet completely settled (especially since copying configuration of a peripheral from one core to the other doesn't work).
    • If it is possible to have it all in 1 file, can you confirm that an ADC or PWM (for instance) configured to be owned by CPU2 but configured in CPU1 sysconfig will trigger CPU2 interrupts and CPU2 CLA tasks ?

    Thanks in advance for your help,

    Best regards,

    Adrien

  • Hi Adrian,

    I would recommend to use two different sysconfig file for CPU1 and CPU2 separately. Since you need two separate syscfg file to configure multiple CPU configurations.

    If it is possible to have it all in 1 file, can you confirm that an ADC or PWM (for instance) configured to be owned by CPU2 but configured in CPU1 sysconfig will trigger CPU2 interrupts and CPU2 CLA

    You will not be able to configure the CPU configuration in CPU1 syscfg file. Please use separate files for the configuraiton.

    It is not only related to the names given to the instances, it should be related to the context of the CPUs which it is configured.

    Thanks

    Aswin