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.

EMIF in FreeRTos

Other Parts Discussed in Thread: TMS570LS3137, HALCOGEN

Hi,

       Abhijith here working on TMS570LS3137 controller,  I am using EMIF in my project , and it was working fine till now with MPU initialization. now i want to use FreeRtos for the same project , for this i have made the required changes and when i call   _mpuInit_() funtion the controller hangs and will not come out this function . What might be the reason for ? how do i resolve this?.

I am using the address : 0x64000005 and 0x64000007 address to communicate with my external device.

 

  • Abhijith,

    Abhijith Raghavendra said:
    when i call   _mpuInit_() funtion the controller hangs and will not come out this function .


    If you have a debugger attached, you should be able to find out what the CPU is doing.   For example, has it taken an exception?

    Without knowing this I can't give you any guidance other than a 'guess'.


    My guess - if you are calling _mpuInit_() inside a task instead of  in main() then it may cause this sort of problem.
    You need privilege to modify the MPU registers.    By default tasks don't run with privilege.


    If you want to control the MPU settings on a per task basis FreeRTOS has the capability to do this by passing a structure w. MPU settings to the

    xTaskCreateRestricted() function.   But you would configure this *before* you start the OS, in main where you are configuring the OS by creating tasks.  HalCoGen will make it so that this code in main() runs in system mode (which has privilege).

  • Abhijith, did you ever solve the issue on this post?