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.

C6713 Device Cycle Accurate Simulator

Other Parts Discussed in Thread: CCSTUDIO

Hi,
I'm a beginner on DSP.
I have started to study the book "Digital Signal Processing and Applications with the C6713 and C6416 DSK (by Rulph Chassaing, 2005)".
I am working with a C6713DSK, using CCS 3.1.
But when I try to run the first example (sine8_LED) in Rulph Chassaing's book on the C6713 Device Cycle Accurate Simulator, I get the following error messages:
 
Trouble running Target CPU:   Memory Map Error: READ access by CPU to address 0x1b7c100, which is RESERVED in Hardware.
Trouble running Target CPU:   Memory Map Error: WRITE access by Default to address 0x1b7c100, which is RESERVED in Hardware.

Please tell me what the wrong is here and how can be solved.
Please ,Please ,Please help me!
Thanks a lot

  • bachehkaraji said:
    Trouble running Target CPU:   Memory Map Error: READ access by CPU to address 0x1b7c100, which is RESERVED in Hardware.
    Trouble running Target CPU:   Memory Map Error: WRITE access by Default to address 0x1b7c100, which is RESERVED in Hardware.



    Generally this type of error means that the CCS sees this section of memory marked as either Read-Only or RESERVED (Don't read or write). CCS can be passed a virtual memory map which is a safety net for the user. If you look inside your DSK's GEL file you will see a number of instruction calls for GEL_MapAdd() with six arguments inside. Two of these arguments denote a starting address range and the length of that range. These are used to notify CCS what memory is valid (and by extension, everything not mentioned is invalid memory).


    Take a look inside your DSK6713.gel file (probably located in C:\CCStudio_v3.1\cc\gel) and find where the GEL_MapAdd() instructions are located. You should see something similar to the following:

    GEL_MapAdd(0x01b7c000, 0, 0x00000128, 1, 1); // PLL

    where 0x01b7c000 is the starting address and 0x00000128 is the length of 'valid' memory. Because 0x1b7c100 falls within this range, if your GEL file looks like this CCS should then allow accesses to this register.

  • Hi,

    Thanks for your immediate reply.
    How can I solved it ?

    Thanks,
    Best regards,



  • The GEL file may need to be updated so that the address of the PLLCSR register is included to the CCS Memory Map. I actually just noticed that the title of your post is "C6713 Device Cycle Accurate Simulator" but you mentioned using the DSK. Can you please clarify which you are using?

    If using the DSK, open the DSK6713.gel file found in C:\CCStudio_v3.1\cc\gel and locate the setup_memory_map() function. Inside this function you should see numerous calls to GEL_MapAdd(). One of these will look similar to the one I copied in my last post.

    Once you find the function call that starts with the address 0x01b7c000, find out the length of this range (which should be the third argument). If this length does not cover address 0x01b7c100, modify the range to something like 0x00000128 to ensure that all of the PLL registers are included.

    If you are using the Cycle Accurate Simulator, I think this might be a limitation of the simulator software as it is run entirely on software as opposed to hardware.

  •  

    Hi,

     

    I tried to run a program using the C6713 Device Cycle Accurate Simulator.

    Is there a way for do it?

    Where theres a will, theres a way!?!

     

    Thanks,

     

     

     

     

     

  • Well, you can modify the init6713sim.gel file in the same directory to add a GEL_MapAdd() from my earlier post. With the original GEL file CCS thinks that this memory range is invalid (because the simulator does not support the PLL). This would get rid of the errors regarding accessing that memory space, but because the PLL is not supported on the simulator writes to this address will not work. I've seen the project you mentioned before, but I do not remember enough about it to know whether or not this would cause the application to fail.

    I think a bigger question here is why work on the simulator if you have a DSK handy? The code from that book is designed specifically to work on the DSK hardware, not on a CPU simulator.

  • Hi,
    Thanks a lot for your immediate reply,

    I want to know how can i generate a sinusoid, plot that with CCS, display that in CCS (sine8_buf) without using DSK hardware.

    Now Can you please explain me where the code exactly do we use PLL?

    ///////////////////////////////////////////////////////////////////////
    //Sine8_LED.c  Sine generation with DIP switch control

    #include "dsk6713_aic23.h"                       //support file for codec,DSK
    Uint32 fs = DSK6713_AIC23_FREQ_8KHZ;    //set sampling rate
    short    loop = 0;                                    //table index
    short gain = 10;                                      //gain factor
    short sine_table[8]={0,707,1000,707,0,-707,-1000,-707};//sine values

    void main()
    {
     comm_poll();                                         //init DSK,codec,McBSP
     DSK6713_LED_init();                               //init LED from BSL
     DSK6713_DIP_init();                               //init DIP from BSL
     while(1)                                               //infinite loop
     {
      if(DSK6713_DIP_get(0)==0)                   //=0 if DIP switch #0 pressed
      {
        DSK6713_LED_on(0);                          //turn LED #0 ON
        output_sample(sine_table[loop]*gain);   //output for on-time sec
        if (loop < 7) ++loop;                           //check for end of table
        else loop = 0;                                    //reinit loop index
      }
      else DSK6713_LED_off(0);             //turn LED off if not pressed
     }                                               //end of while (1) infinite loop
    }                                                //end of main
    ///////////////////////////////////////////////////////////////////////

    Thanks

  • This example software was written specifically to function on the DSK board as opposed to the simulator. The comm_poll(), LED_init() and DIP_init() functions are all initialization routines to setup various parts of the DSK hardware. Notice that the while loop is checking for the value of the DIP switch, and then toggling the LED value.

    My guess would be that the comm_poll function is trying to configure the PLL, but you should be able to verify this with some simple debugging. Try stepping through the main() function until you see the warnings pop up.

    I strongly suggest that you use this example with the DSK board instead of simulator.