[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