Forums

Defining Heap Segment in external ram in IAR M32c Renesas

Started by srikanthn November 5, 2007
For my application purpose i used an external 128k Sram to M30845fjgp
renesas m32c controller.

I modified the linker file by defining the heap sizes in external
addresses, but i was unable to have the heap segment.

when iam placing data in ex-ram it was getting read, but the heap is not
going to allocate even though the map file is locating the heap ranges.

can u help me to get out of this.


>For my application purpose i used an external 128k Sram to M30845fjgp >renesas m32c controller. > >I modified the linker file by defining the heap sizes in external >addresses, but i was unable to have the heap segment. > >when iam placing data in ex-ram it was getting read, but the heap is not >going to allocate even though the map file is locating the heap ranges. > >can u help me to get out of this. > > >
On Nov 5, 6:05 pm, "srikanthn" <pras...@elicoltd.com> wrote:
> For my application purpose i used an external 128k Sram to M30845fjgp > renesas m32c controller. > > I modified the linker file by defining the heap sizes in external > addresses, but i was unable to have the heap segment. > > when iam placing data in ex-ram it was getting read, but the heap is not > going to allocate even though the map file is locating the heap ranges. > > can u help me to get out of this.
Due to some problem, My reply has not got posted. I am posting it onceagain. Check the following : 1) Memory Overlap in the Linker Script / Linker Command File. 2) Proper invokation of Heap Memory Allocation w.r.t linker script. See, if you are allocating within the defined range. 3) Even though you have allocated the Heap memory correctly by directing it to refer to the external memory, Did you check if the external memory is operational / enabled at the time of allocation ? 4) Proper chip-selects for the external SRAM memory. 5) Do a basic sanity check of your external SRAM to find if it is working properly. a) Data bus wiring check ( test the bus one bit at a time. The data bus passes the test if each data bit can be set to 0 and 1, independently of the other data bits.) that is , Walking 1's test. b) Address Bus check - Perform read/write similar to data bus check - can try with "power-of-two" addresses read/write to check every bit Write to one of the addresses and check if there is any overwriting in other address . Karthik Balaguru
On Nov 6, 2:12 pm, karthikbalaguru <karthikbalagur...@gmail.com>
wrote:
> On Nov 5, 6:05 pm, "srikanthn" <pras...@elicoltd.com> wrote: > > > For my application purpose i used an external 128k Sram to M30845fjgp > > renesas m32c controller. > > > I modified the linker file by defining the heap sizes in external > > addresses, but i was unable to have the heap segment. > > > when iam placing data in ex-ram it was getting read, but the heap is not > > going to allocate even though the map file is locating the heap ranges. > > > can u help me to get out of this. > > Due to some problem, My reply has not got posted. > I am posting it onceagain. > > Check the following : > 1) Memory Overlap in the Linker Script / Linker Command File. > 2) Proper invokation of Heap Memory Allocation w.r.t linker script. > See, if you are allocating within the defined range. > 3) Even though you have allocated the Heap memory correctly by > directing it to refer to the external memory, Did you check if the > external memory is operational / enabled at the time of > allocation ? > 4) Proper chip-selects for the external SRAM memory. > 5) Do a basic sanity check of your external SRAM to find if it is > working > properly. > a) Data bus wiring check ( test the bus one bit at a time. The data > bus passes the test if each data bit can be set to 0 and 1, > independently of the other data bits.) > that is , Walking 1's test. > b) Address Bus check - Perform read/write similar to data bus check > - can try with "power-of-two" addresses read/write to check every bit > Write to one of the addresses and check if there is any > overwriting in other address . >
Also , Take care of the influence(Re-Mapping/Address Shifting) due to MMU (If you use MMU). Karthik Balaguru
On Nov 5, 6:05 pm, "srikanthn" <pras...@elicoltd.com> wrote:
> For my application purpose i used an external 128k Sram to M30845fjgp > renesas m32c controller. > > I modified the linker file by defining the heap sizes in external > addresses, but i was unable to have the heap segment. > > when iam placing data in ex-ram it was getting read, but the heap is not > going to allocate even though the map file is locating the heap ranges. > > can u help me to get out of this.
Check the following : 1) Memory Overlap in the Linker Script / Linker Command File. 2) Proper invokation of Heap Memory Allocation w.r.t linker script. See, if you are allocating within the defined range. 3) Even though you have allocated the Heap memory correctly by directing it to refer to the external memory, Did you check if the external memory is operational / enabled at the time of allocation ? 4) Proper chip-selects for the external SRAM memory. 5) Do a basic sanity check of your external SRAM to find if it is working properly. a) Data bus wiring check ( test the bus one bit at a time. The data bus passes the test if each data bit can be set to 0 and 1, independently of the other data bits.) that is , Walking 1's test. b) Address Bus check - Perform read/write similar to data bus check - can try with "power-of-two" addresses read/write to check every bit Write to one of the addresses and check if there is any overwriting in other address . Karthik Balaguru
On Nov 7, 8:10 am, karthikbalaguru <karthikbalagur...@gmail.com>
wrote:
> On Nov 5, 6:05 pm, "srikanthn" <pras...@elicoltd.com> wrote: > > > For my application purpose i used an external 128k Sram to M30845fjgp > > renesas m32c controller. > > > I modified the linker file by defining the heap sizes in external > > addresses, but i was unable to have the heap segment. > > > when iam placing data in ex-ram it was getting read, but the heap is not > > going to allocate even though the map file is locating the heap ranges. > > > can u help me to get out of this. > > Check the following : > 1) Memory Overlap in the Linker Script / Linker Command File. > 2) Proper invokation of Heap Memory Allocation w.r.t linker script. > See, if you are allocating within the defined range. > 3) Even though you have allocated the Heap memory correctly by > directing it to refer to the external memory, Did you check if the > external memory is operational / enabled at the time of > allocation ? > 4) Proper chip-selects for the external SRAM memory. > 5) Do a basic sanity check of your external SRAM to find if it is > working > properly. > a) Data bus wiring check ( test the bus one bit at a time. The data > bus passes the test if each data bit can be set to 0 and 1, > independently of the other data bits.) > that is , Walking 1's test. > b) Address Bus check - Perform read/write similar to data bus check > - can try with "power-of-two" addresses read/write to check every bit > Write to one of the addresses and check if there is any > overwriting in other address . >
Appologies. I wonder why this message appears very late. Refer my earlier post in this same thread in which i have mentioned as below - " Due to some problem, My reply has not got posted. I am posting it onceagain. " Strange, but how did the above message(re-post) got posted and this message(original message) arrives after that ? Actually this message(Original message) was posted before that message(re-post) !!! :(:(. Strange :(:(:( !!!! Karthik Balaguru
First of all thanking for ur valueable reply, i tried ur suggestions but
still no change in the problem.

>> 1) There are no Memory Overlap in the Linker Script / Linker Command
File.
>> 2)Allocation is done within the defined range only i.e 10000-2FFFF. >> 3)Yes the external memory is operational for data, but i cant get u
what u said at the time of allocating,how can we check this.
>> 4) no chip-selects iam using for the external SRAM memory, iam using
mode 0, with seperate bus. Regards srikanthn
On Nov 12, 12:33 pm, "srikanthn" <pras...@elicoltd.com> wrote:
> First of all thanking for ur valueable reply, i tried ur suggestions but > still no change in the problem. > > >> 1) There are no Memory Overlap in the Linker Script / Linker Command > File.
Ok.
> >> 2)Allocation is done within the defined range only i.e 10000-2FFFF.
Ok.
> >> 3)Yes the external memory is operational for data,
Ok. Is the Memory Read and Write operation possible in the allocation region.
> but i cant get u > > what u said at the time of allocating,how can we check this
If you are using your own allocation routine. Then, modify it to read and print the data from the region or write some data into the region and read-back with delay before allocation. .>> 4) no chip-selects iam using for the external SRAM memory, iam using
> > mode 0, with seperate bus. >
Ok. Thats fine. Did you try those, Walking 1s , Basic Sanity checks, Address Bus , Data Bus checks w.r.t SRAM ? Karthik Balaguru
On Nov 12, 12:33 pm, "srikanthn" <pras...@elicoltd.com> wrote:
> First of all thanking for ur valueable reply, i tried ur suggestions but > still no change in the problem. > > >> 1) There are no Memory Overlap in the Linker Script / Linker Command > File. > >> 2)Allocation is done within the defined range only i.e 10000-2FFFF. > >> 3)Yes the external memory is operational for data, but i cant get u > > what u said at the time of allocating,how can we check this.>> 4) no chip-selects iam using for the external SRAM memory, iam using > > mode 0, with seperate bus. >
Do you use MMU ? Kawrthik Balaguru