* [ECOS] basic question @ 2009-07-30 11:46 Mandeep Sandhu 2009-07-30 14:15 ` Edgar Grimberg 0 siblings, 1 reply; 3+ messages in thread From: Mandeep Sandhu @ 2009-07-30 11:46 UTC (permalink / raw) To: ecos-discuss Hi All, A very basic question: What do people mean when they say running xyz app _without_ an operating system? Does it mean that basic ecos kernel support is not there, i.e no scheduler, HAL etc etc? What is an apps entry point then? Will it still call cyg_usre_start() and the likes? Thanks, -mandeep -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [ECOS] basic question 2009-07-30 11:46 [ECOS] basic question Mandeep Sandhu @ 2009-07-30 14:15 ` Edgar Grimberg 2009-07-31 4:24 ` Mandeep Sandhu 0 siblings, 1 reply; 3+ messages in thread From: Edgar Grimberg @ 2009-07-30 14:15 UTC (permalink / raw) To: Mandeep Sandhu; +Cc: ecos-discuss On Thu, Jul 30, 2009 at 1:46 PM, Mandeep Sandhu<mandeepsandhu.chd@gmail.com> wrote: > Hi All, > > A very basic question: > > What do people mean when they say running xyz app _without_ an operating > system? > > Does it mean that basic ecos kernel support is not there, i.e no > scheduler, HAL etc etc? > > What is an apps entry point then? Will it still call cyg_usre_start() > and the likes? The CPUs have defined a reset address (called reset vector and placed inside the exceptions vector), that is the entry point for the program counter when the power is ON, or when the CPU comes out of a hardware reset. The very first line of code is the embedded application "real" entry point. You will find eCos jumping from that place to _start. For example, for PowerPC: in packages/hal/powerpc/arch/current/src/vectors.S you can find thie code: # Reset vector macro .macro reset_vector name .p2align 8 .globl __exception_\name __exception_\name: #ifdef CYGSEM_HAL_POWERPC_RESET_USES_JUMP bl _start #else lwi r3,_start mtlr r3 blr #endif From that point on, eCos (or any other OS) will initialize the memory, peripherals and so on. By running without an OS, people often mean that you should write your own start-up routines and take care of (implement) the needed functions you will usually find in the OS. Of course, that means no cyg_user_start or anything like it. Unless you are really running out of memory (flash/ram to hold the application or ram to use it in the application) or out of CPU cycles (you want to optimize the "common" OS to death for you fancy application), I would not recommend investing the time to rewrite all that stuff. Regards, Edgar > Thanks, > -mandeep > > -- > Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos > and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss > > -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [ECOS] basic question 2009-07-30 14:15 ` Edgar Grimberg @ 2009-07-31 4:24 ` Mandeep Sandhu 0 siblings, 0 replies; 3+ messages in thread From: Mandeep Sandhu @ 2009-07-31 4:24 UTC (permalink / raw) To: Edgar Grimberg; +Cc: ecos-discuss On Thu, Jul 30, 2009 at 7:45 PM, Edgar Grimberg<edgar.grimberg@zylin.com> wrote: > On Thu, Jul 30, 2009 at 1:46 PM, Mandeep > Sandhu<mandeepsandhu.chd@gmail.com> wrote: >> Hi All, >> >> A very basic question: >> >> What do people mean when they say running xyz app _without_ an operating >> system? >> >> Does it mean that basic ecos kernel support is not there, i.e no >> scheduler, HAL etc etc? >> >> What is an apps entry point then? Will it still call cyg_usre_start() >> and the likes? > > The CPUs have defined a reset address (called reset vector and placed > inside the exceptions vector), that is the entry point for the program > counter when the power is ON, or when the CPU comes out of a hardware > reset. The very first line of code is the embedded application "real" > entry point. You will find eCos jumping from that place to _start. For > example, for PowerPC: > > in packages/hal/powerpc/arch/current/src/vectors.S > > you can find thie code: > > # Reset vector macro > .macro reset_vector name > .p2align 8 > .globl __exception_\name > __exception_\name: > #ifdef CYGSEM_HAL_POWERPC_RESET_USES_JUMP > bl _start > #else > lwi r3,_start > mtlr r3 > blr > #endif > > From that point on, eCos (or any other OS) will initialize the memory, > peripherals and so on. By running without an OS, people often mean > that you should write your own start-up routines and take care of > (implement) the needed functions you will usually find in the OS. Of > course, that means no cyg_user_start or anything like it. > Unless you are really running out of memory (flash/ram to hold the > application or ram to use it in the application) or out of CPU cycles > (you want to optimize the "common" OS to death for you fancy > application), I would not recommend investing the time to rewrite all > that stuff. Thanks for this detailed explanation Edgar. I too don't want to reinvent the wheel unless it's absolutely necessary. My app will mostly do network centric stuff, so that took me to the lwip mailing list! :) Thats where I saw a lot people using lwip "w/o OS"....and hence my question. Regards, -mandeep > > Regards, > Edgar > > > > >> Thanks, >> -mandeep >> >> -- >> Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos >> and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss >> >> > -- Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2009-07-31 4:24 UTC | newest] Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2009-07-30 11:46 [ECOS] basic question Mandeep Sandhu 2009-07-30 14:15 ` Edgar Grimberg 2009-07-31 4:24 ` Mandeep Sandhu
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).