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.

CCS/MSP430FR5969: MEMORY PROTECTION UNIT

Part Number: MSP430FR5969

Tool/software: Code Composer Studio

Hello All,

               I am working on MSP430FR5969 controller, In that I have gone through the MPU concept. But now I got something related to that, MPU Configuration Dialog of CCS that is available for FRAM devices that have the MPU feature. It can be accessed by selecting the menu Project → Properties → General → MSP430 MPU (PFA ). Now I have doubts regarding this:

1) Memory Protection Unit is by default Enable in every Project, So why we need to configure it manually.

2) The above Dialog of CCS can modify manually, so by using that I changed the Memory Segment Boundaries and Access rights, But that manual change where it will impact in my project that I couldn't found.

Thanks & Regards,

Sandhya Yadav

  • Thanks for your comment! I will discuss with CCS expert and be back later
  • Hi,
    ok. Waiting for your reply.

    Thanks,
    Sandhya Yadav
  • Hello Sandhya,

    general background:

    the MPU GUI shown in your screenshot is basically would like to separate the memory into 3 sections with different access configuration.

    1st segment: you can read and write the data (usually you place buffer of data which contents could be updated during run-time)

    ----> if you declare a section with PERSISTENT in the CCS, it would be place automatically in this first region.

    2nd segment: only for the read (usually here the constants are placed)

    3rd segment: where you place the application code.

    1) Memory Protection Unit is by default Enable in every Project, So why we need to configure it manually.

    It is enabled, that means, the FRAM main memory is protected automatically. this is intended to avoid that we corrupt the content of the app code in the FRAM. The next menu chosen is that "Let compiler handle memory portioning ...". By choosing this, you don't have to worry about setting it manually. Segment boundaries will be automatically calculated by the compiler.

    When you activate the "Manually specify memory segment boundaries and access rights", the fields are filled with default value. The segment size has to be aligned with 400kB, that's why the 0x4800 and 0x4C00 are shown.

    2) Either you use the "Let compiler handle memory portioning .." or "Manually specify memory segment boundaries and access rights", the segment boundaries will be translated to be MPU register bit controls by the linker command file.

    Personally, I'll suggest to have the "Let compiler handle memory portioning .." for the start. Really good example is described by my colleague in her Apps Note http://www.ti.com/lit/an/slaa685/slaa685.pdf will help you to start understanding the MPU. She provided the CCS example as well, that you can just import.

  • Hi Fatmawati,
    Thanks for reply, I cleared my concept now.

    Thanks,
    Sandhya Yadav
  • Hi Sandhya,

    glad that helps :)

**Attention** This is a public forum