Hi all !
I am using GCC-4.1.1.1 in Debian environment for LPC2119 processor.
Can anybody please tell me what startup files do i need apart from
crt0.S ? Do I need RAM.ld and ROM.ld ???
Thanks
Startup files for LPC2119
Started by ●April 23, 2007
Reply by ●April 23, 20072007-04-23
--- In l..., "nik" wrote:
>
> Hi all !
> I am using GCC-4.1.1.1 in Debian environment for LPC2119 processor.
> Can anybody please tell me what startup files do i need apart from
> crt0.S ? Do I need RAM.ld and ROM.ld ???
> Thanks
>
You certainly need something like crt0.S although the name may change.
It's function is to define the interrupt vectors, initialize the
various stacks, copy from flash to RAM the initialized ram data and
clear the remaining ram for C. It may also enable the interrupt
system but the final function is to branch to 'main'.
You also need the appropriate header file to define the hardware
addresses of the various gadgets like the VIC, PINSELn, UARTn, etc.
Next, you need some kind of linker script to define for the linker the
layout of memory. It's important that this file (usually named
something like RAM.ld or ROM.ld) has an accurate description of blocks
of memory. The difference between the two files is where the code is
intended to operate. I don't usualy try to run out of RAM so I
generally only have something like lpc2148-FLASH.ld.
Finally, you need a makefile to tie the pieces together. Here you
will include crt0.S as one of the files to be built (assembled) along
with the other C files. Late in the process the linker will run with
the various object files and the .ld script to build the loadable image.
That's about it!
Richard
>
> Hi all !
> I am using GCC-4.1.1.1 in Debian environment for LPC2119 processor.
> Can anybody please tell me what startup files do i need apart from
> crt0.S ? Do I need RAM.ld and ROM.ld ???
> Thanks
>
You certainly need something like crt0.S although the name may change.
It's function is to define the interrupt vectors, initialize the
various stacks, copy from flash to RAM the initialized ram data and
clear the remaining ram for C. It may also enable the interrupt
system but the final function is to branch to 'main'.
You also need the appropriate header file to define the hardware
addresses of the various gadgets like the VIC, PINSELn, UARTn, etc.
Next, you need some kind of linker script to define for the linker the
layout of memory. It's important that this file (usually named
something like RAM.ld or ROM.ld) has an accurate description of blocks
of memory. The difference between the two files is where the code is
intended to operate. I don't usualy try to run out of RAM so I
generally only have something like lpc2148-FLASH.ld.
Finally, you need a makefile to tie the pieces together. Here you
will include crt0.S as one of the files to be built (assembled) along
with the other C files. Late in the process the linker will run with
the various object files and the .ld script to build the loadable image.
That's about it!
Richard
Reply by ●April 24, 20072007-04-24
--- In l..., "nik" wrote:
>
> Hi all !
> I am using GCC-4.1.1.1 in Debian environment for LPC2119 processor.
> Can anybody please tell me what startup files do i need apart from
> crt0.S ? Do I need RAM.ld and ROM.ld ???
> Thanks
>
The detail description from Mr. Richard is really nice to follow. If
you want to kick start with your program then you can might consider
looking for those files (as described by Mr. Richard) in the examples
provided alongwith the software.
Kind Regards
Vishal
>
> Hi all !
> I am using GCC-4.1.1.1 in Debian environment for LPC2119 processor.
> Can anybody please tell me what startup files do i need apart from
> crt0.S ? Do I need RAM.ld and ROM.ld ???
> Thanks
>
The detail description from Mr. Richard is really nice to follow. If
you want to kick start with your program then you can might consider
looking for those files (as described by Mr. Richard) in the examples
provided alongwith the software.
Kind Regards
Vishal
Reply by ●April 28, 20072007-04-28
--- In l..., "nik" wrote:
>>
>> Hi all !
>> I am using GCC-4.1.1.1 in Debian environment for LPC2119 processor.
>> Can anybody please tell me what startup files do i need apart from
>> crt0.S ? Do I need RAM.ld and ROM.ld ???
>> Thanks
>>You certainly need something like crt0.S although the name may change.
> It's function is to define the interrupt vectors, initialize the
>various stacks, copy from flash to RAM the initialized ram data and
>clear the remaining ram for C. It may also enable the interrupt
>system but the final function is to branch to 'main'.
>
>You also need the appropriate header file to define the hardware
>addresses of the various gadgets like the VIC, PINSELn, UARTn, etc.
>
>Next, you need some kind of linker script to define for the linker the
>layout of memory. It's important that this file (usually named
>something like RAM.ld or ROM.ld) has an accurate description of blocks
>of memory. The difference between the two files is where the code is
>intended to operate. I don't usualy try to run out of RAM so I
>generally only have something like lpc2148-FLASH.ld.
>
>Finally, you need a makefile to tie the pieces together. Here you
>will include crt0.S as one of the files to be built (assembled) along
>with the other C files. Late in the process the linker will run with
>the various object files and the .ld script to build the loadable image.
>
>That's about it!
>
>Richard
Thank you very much Richard.
After trying many things i came to the conclusion that I need only crt0.S,ROM.ld and RAM.ld. But the linker scripts I'm using are from the
LPC2129 examples from WinARM.Now,looking for one more favour from you.I'm gettin the error which I'm not able to figure out.
The error is :
'stack is not within region RAM'.
Please look into the matter.
I highly appretiate your concern.
Thanks again.
>>
>> Hi all !
>> I am using GCC-4.1.1.1 in Debian environment for LPC2119 processor.
>> Can anybody please tell me what startup files do i need apart from
>> crt0.S ? Do I need RAM.ld and ROM.ld ???
>> Thanks
>>You certainly need something like crt0.S although the name may change.
> It's function is to define the interrupt vectors, initialize the
>various stacks, copy from flash to RAM the initialized ram data and
>clear the remaining ram for C. It may also enable the interrupt
>system but the final function is to branch to 'main'.
>
>You also need the appropriate header file to define the hardware
>addresses of the various gadgets like the VIC, PINSELn, UARTn, etc.
>
>Next, you need some kind of linker script to define for the linker the
>layout of memory. It's important that this file (usually named
>something like RAM.ld or ROM.ld) has an accurate description of blocks
>of memory. The difference between the two files is where the code is
>intended to operate. I don't usualy try to run out of RAM so I
>generally only have something like lpc2148-FLASH.ld.
>
>Finally, you need a makefile to tie the pieces together. Here you
>will include crt0.S as one of the files to be built (assembled) along
>with the other C files. Late in the process the linker will run with
>the various object files and the .ld script to build the loadable image.
>
>That's about it!
>
>Richard
Thank you very much Richard.
After trying many things i came to the conclusion that I need only crt0.S,ROM.ld and RAM.ld. But the linker scripts I'm using are from the
LPC2129 examples from WinARM.Now,looking for one more favour from you.I'm gettin the error which I'm not able to figure out.
The error is :
'stack is not within region RAM'.
Please look into the matter.
I highly appretiate your concern.
Thanks again.