[En-Nut-Discussion] SAM9260-EK getting started

Alain M. alainm at pobox.com
Mon Jul 14 23:06:40 CEST 2008


There is no documentation about it (that I could find)

The trick is relatively simple:

- the ramfunc macro simply defines the function to be in a special code 
segment. It can be used for variables too.

- The linker runs based on a script. In that script you will find the 
specific instructions for that code segment.

- There could have been an assiciate code in crt.S,  but in this simple 
case it was not nescessary (could be for moving to 2nd block).

I found it all just reading gcc manuals from gnuarm. Plus, of couse, 
some experience with compiling and linking for embeddeds

Alain

steve escreveu:
> Alain,
> 
>   Thanks for the hint, however I can't find any comprehensible documentation
>   on this, can you please point me in the right direction.
> 
>   How does the compiler/linker know where the internal SRAM blocks are?
>   Does it automatically include the code to copy my code to the SRAMs.
> 
>   Thanks again.
> 
> Steve.
> 
> At 17:31 14/07/2008, you wrote:
>> search for "ramfunc", I found it in sam7 code. It inicializes a prefix
>> that sends a single function to ram. It can be further expanded to use
>> both internal ram blocks.
>>
>> Alain
>> PS: I send a message by mistake to the list, I was just checking info
>>from some comments (it was in portuguese)
>> steve escreveu:
>>> Hi,
>>>
>>>   Further to my problems getting the expected performance from the
>>>   9260 processor it seems the limiting factor is bus speed to the
>>>   external SDRAMs (notwithstanding the lack of clarity over whether
>>>   or not the caches are actually doing anything).  Given that the
>>>   max bus speed is 100MHz plus the necessary latencies in SDRAM
>>>   accesses this results in a best-case net performance NO BETTER
>>>   than a 48MHz ARM7!
>>>
>>>   It would therefore seem that the only hope of achieving any
>>>   improvement on this would be if best use could be made of the
>>>   8Kbytes internal fast ram.  Does anyone know of any mechanism
>>>   to persuade the compiler/linker to place critical bits of code
>>>   / data and perhaps the stack in internal SRAM?
>>>
>>>   Thanks a lot.
>>>
>>> Cheers,
>>> Steve.
>>>
>>>
>>> At 14:01 13/07/2008, you wrote:
>>>> steve wrote:
>>>>>   If I program the webradio application into dataflash on my 9260-EK,
>>>>>   (along with the Atmel bootloader) then it works.  Programming directly
>>>>>   into SDRAM @ 0x20000000 it fails.  Clearly there's something in that
>>>>>   bootloader that makes all the difference, does this make any sense?
>>>> Indeed, there may be a missing initialization in the SAM-BA ROM or the
>>>> Webradio, which is provided by the boot loader. Unfortunately I haven't
>>>> had the time to test all this here. At least I do have the same board
>>>> revision 1.0.
>>>>
>>>>>   I now have another problem - my LJG JPEG decompression application
>>>>>   runs slightly _SLOWER_ on the 9260-EK (CPU clk 90.3MHz) than on my old
>>>>>   SAM7X-EK (CPU clock at 48MHz).  I moved to ARM9 specifically to get
>>>>>   more speed, does anyone have any idea why?
>>>> I had a discussion with Atmel about similar experiences with the MP3
>>>> fixed point software decoder used in the webradio. They later changed
>>>> the SDRAM initialization (SAM-BA script and bootloader) and performance
>>>> increased. It was still slower than expected, but significantly faster
>>>> than the SAM7X. In case you are using an old SAM-BA Tool or boot loader...
>>>>
>>>> Harald



More information about the En-Nut-Discussion mailing list