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.

Cannot Debug F28M35H52C1 Concerto Control Card

Other Parts Discussed in Thread: CONTROLSUITE

Hi, I've just received my F28M35x ISO Control Card (Rev1.0) and I've been failing at loading an example design (ADC soc) from C2000 ControlSuite to the MCUs FLASH. I use CCS 6.0 (with TI 6.2.6 compiler) for the example. Here are what the console said:

Cortex_M3_0: GEL Output: Memory Map Initialization Complete
C28xx_0: GEL Output:
Memory Map Initialization Complete
C28xx_0: GEL Output:
RAM Initialization Complete
C28xx_0: Loader: One or more sections of your program falls into a memory region that is not writable. These regions will not actually be written to the target. Check your linker configuration and/or memory map.
C28xx_0: File Loader: Data verification failed at address 0x0013EB1E Please verify target memory and memory map.

What's going on? I'm sure that my ControlCard is properly powered (led 1 and led 4 are lit). I get power from the docking station. In addition, I also checked JTAG connectivity and everything is fine. I don't think the example is too big to fit the device.

  • Hi,

    I hope you've referred this workshop document:

    6560.7652.F28M35x_Workshop_2-0.pdf

    Regards,

    Gautam

  • Thanks, Gautam, the workshop helps me alot.

  • That's Great!

    Goodluck & Regards,

    Gautam

  • Hi, it's me again. I'm confused with GPIO configuration on F28M35x. According to technical user guides, if I want to configure GPIO via C28x, I have to configure the M3 first to enable C28x control over the GPIOs. How do I know which bit of the M3 GPIOCSEL register correspond to which bit on the C28 GPxCRTL register? Is there any method to directly write data on a C28x GPIO pin without going through the M3?

  • Is there any method to directly write data on a C28x GPIO pin without going through the M3?

    No, there's no direct method. This is what you'll have to follow:

    You've to use M3 to give C28 control of the GPIO pins? As master, M3 controls the clocking and major configuration of the GPIO pins.  The setup_m3 project in controlSUITE device_support under "Control" examples shows how this is done in code via driverlib function calls. For example:

    M3 must first:

    1. Enable the GPIO port (GPIO11 would be within GPIOB on the M3 side). This includes clocking the GPIO port.
    2. Configure the GPIO port for C28 to control (again, GPIO11 would be within GPIOB on the M3 side). 

    C28 should then remember to:

    1. Use EALLOW; (GPIO config registers are EALLOW-write protected).
    2. Configure GPIO11 as output.
    3. Use EDIS; (optional - to turn off the EALLOW-write protection)
    4. Use GPIO11..- i.e. toggle/set/clear/etc.

    Make sure that the above are done properly in code and then see if it works..

    Regards,

    Gautam

  • Thanks a lot, I followed m3_settup example and it worked. 

    Another concern is that my program now becomes too big to fit the 32KB RAM memory of C28x. If I am not wrong, I can still able to use the shared RAM between the master M3 and the C28x, and the problem is how to use this memory resource in my codes?

  • Hi Hac,

    If I am not wrong, I can still able to use the shared RAM between the master M3 and the C28x, and the problem is how to use this memory resource in my codes?

    Shared RAMs (S0-S7) are shared between master subsystem and control subsystem but by default master subsystem has ownership of these memories which means control subsystem CPU (C28x) can only read to these memories but can't write. Master subsystem code need to change the ownership of these memories to control subsystem by setting the bits in MSxMSEL register and then only C28x CPU can write to these memories.

    Please refer "Internal Memory" section of TRM to get more detail on this.

    Regards,

    Gautam

  • Got it, I referenced the M3 RAM Management example and successfully initialized the shared RAM. Is there any risk of data corruption when using shared RAM? Some of my arrays don't give correct results anymore.

  • Got it, I referenced the M3 RAM Management example and successfully initialized the shared RAM. Is there any risk of data corruption when using shared RAM? Some of my arrays don't give correct results anymore.

    Data corruption should not happen. Just check that arrays are not overflowing or out of memory range.

    Regards,

    Gautam