AnsweredAssumed Answered

CodeWarrior and .LCF file question

Question asked by Richard Sipura on Oct 30, 2009
Latest reply on Nov 20, 2009 by Richard Sipura

Using CodeWarrior 6.2 on a Coldfire V1 core. 

 

I am very new to CW ...

 

I am having  a problem using CodeWarrior to set up  memory segment that I require in the  .LCF file.

Using PE (Processor Expert), I did manage to set aside an area of RAM and call it "myram". However,  I cannot find the proper way to place my buffer into this area.  CodeWarrior always makes the data <userram> and places it in  “ .sbss “ section, thus it is initiated at start up / reset.  I spent many  hours reading but could not find the right procedure to get CodeWarrior to generate this section(below) in the .LCF file.  ( I even tried modifying startup.c,  but no luck)            

 

This is my work around, which I would like to avoid. 

 

Here is the what I have to do after each startup of CodeWarrior ,

-   I  first compile the program , CW has an error, ...unresloved reference

-   I then edit the “.lcf “ file and paste in “ the 'Myram' section below”. I place it before  .custom

-    Then  I compile again, all address are resolved,

-     This memory area is placed after the <useram> area and never gets initialized, ( Obviously it gets over-written if use new memory in the code. This is acceptable, Having an Origin using the PE would have been great but as mentioned above I could not find the proper syntax)   I initialize this area in the code.  This is for testing code. ( This information will be from another device on Rev 2 of the my PCB)

 

STEP 1

In one of the 'C'  modules ….

-          Here is the staemnt that I use place my Default_Parameters..

 

#pragma define_section data_type ".myram"  far_absolute RW

__declspec (data_type) unsigned char DEF_PARAM_buf[55];

#pragma DATA_SEG DEFAULT

 

Step 2

I then open up the LCF and place the following  into it

                >>>This is what I would like CodeWarrior to create for m <<<<

 

  .myram :

  {

    ___MYRAM_START = .;

    __START_MYRAM = .;

    *(.myram)

    . = ALIGN (0x4);

    *(COMMON)

    __END_MYRAM = .;

    ___MYRAM_END = .;

 

    . = ALIGN(0x4);

  } >> userram

 

 I have attached a jpg of the LCF placement position and the resulting MAP output.

 

Their must be a way to do this using CW. I only have to edit this at the start of each day/ or a CW Restart.

 

 Any help will be appreciated. 

 

Cheers 

 

LCFplacement.jpg

MAPresult.jpg

Message Edited by t.dowe on 2009-11-02 09:22 AM

Outcomes