dsPIC33CH Programming Process

The Programming Process

To program a dual-core dsPIC33CH Digital Signal Controller two projects must be set up, one for the Master CPU and one for the Slave CPU. These two projects are incorporated into one hex file by MPLAB® X IDE. The combined project file is programmed into the device's Flash memory. During start-up, the device will copy the Slave project's instructions from FLASH into PRAM for execution by the Slave CPU. If the projects are set up using MPLAB Code Configurator (MCC), then the start-up code is configured and inserted into the hex file without specific intervention by the application programmer… MCC takes care of everything!

This page is part of a tutorial which provides information on using MCC to customize Master and Slave cores to leverage the maximum potential of a dual-core device. To support independent code development for each core, MCC can be started on either the Master or Slave core's MPLAB X IDE project.

Hereafter, a Master and Slave core's MPLAB X IDE project will be referred to as the Master project and the Slave project, respectively.

There are four distinct steps which must be taken to program a dual-core device:

  1. Set up the Master core using MCC.
  2. Set up the Slave core using MCC.
  3. Export the Slave core related MCC settings from the Master project.
  4. Import the Slave core related MCC settings done in the Master project to the Slave project.

In a Master project, Slave core related fuses need to be configured. This information needs to be shared with the Slave project and is facilitated by exporting and importing configuration-related information using MCC. The sharing of information from the Master project to the Slave project facilitates MCC to display the settings in the Slave project, which you configure in the Master project. If this information is not shared, MCC will display the default setting values in the Slave project. These settings are not editable in the Slave project and are only shown to help you in independent code development. Any change required in these settings can only be done in the Master project. Any modification you make to the Slave core fuses in the Master project, the settings have to be shared with the Slave project, and MCC displays these settings in the Slave project in synchronous with the Master project.

For more information on dual-core devices visit the dsPIC33CH family page.
For more information on getting started with dual-core devices, refer to Application Note "AN2721".

 Learn More


Configuring the Master Project
Configuring the Slave Project


Step-by-Step Example

© 2024 Microchip Technology, Inc.
Notice: ARM and Cortex are the registered trademarks of ARM Limited in the EU and other countries.
Information contained on this site regarding device applications and the like is provided only for your convenience and may be superseded by updates. It is your responsibility to ensure that your application meets with your specifications. MICROCHIP MAKES NO REPRESENTATIONS OR WARRANTIES OF ANY KIND WHETHER EXPRESS OR IMPLIED, WRITTEN OR ORAL, STATUTORY OR OTHERWISE, RELATED TO THE INFORMATION, INCLUDING BUT NOT LIMITED TO ITS CONDITION, QUALITY, PERFORMANCE, MERCHANTABILITY OR FITNESS FOR PURPOSE. Microchip disclaims all liability arising from this information and its use. Use of Microchip devices in life support and/or safety applications is entirely at the buyer's risk, and the buyer agrees to defend, indemnify and hold harmless Microchip from any and all damages, claims, suits, or expenses resulting from such use. No licenses are conveyed, implicitly or otherwise, under any Microchip intellectual property rights.