Sergei Gavrikov | 1 Dec 2006 11:47
Picon

Wanted more VAX MIPS for ARM7 based boards

Hi,

Does have anybody the results of a Dhrystone Benchmark 2.1 for recent
GNU toolchain (GCC-4 based) under eCos? I am sorry, I haven't that. I am
wondering about such results for ARM7 based targets under eCos. I have
got mine. That is for ARM7TDMI-S (Philips LPC2294) and GCC-3.2.1 (GNU
toolchain for ARM from eCosCentric), look at an attached text document,
please. I'll be pleasure to observe yours if this is not a big secret.

thanks,

--Sergei
DHRYSTONE BENCHMARK 2.1 FOR LPC2294 BUILT WITH GCC3


I was wondering about a benchmarking of GNU toolchain (GCC3 based) for
ARM7 CPU (especially for ARM7TDMI-S LPC2XXX from Philips). Dhrystone
Benchmark 2.1 and public eCos environment was selected to get an
answer.  I was wondering about a speed falling when I run a code from
other alternative places (an external static RAM or an external FLASH
memory). For my tests I used a development board from Olimex (Olimex
LPC-L2294-1M development board). Fast 10nS SRAM (1Mb) and 70nS FLASH
(4Mb) are placed on the board.


TEST CONDITIONS

OS       : eCos (CVS 2006/11/30)
Compiler : GCC 3.2.1 (PD build from ecoscentric)
(Continue reading)

Ivan Djelic | 1 Dec 2006 13:46
Picon

Re: Synchronization primitive for DSRs


On Thu, Nov 30, 2006 at 04:40:23PM +0100, Andrew Lunn wrote:
> On Thu, Nov 30, 2006 at 04:21:58PM +0100, Stefan Sommerfeld wrote:
> > 
> > It looks like the cyg_drv_dsr_lock() will lock all DSRs and so it will stop 
> > multitasking and any other DSRs to run. That's not what I'm searching for. 
> > Any other solution?
> 
> It should not stop multi-tasking. The scheduler can still run and do
> task switches. But all DSR are blocked. So, for example, round-robin
> will not happen, since that needs a timer tick, and so a DSR.  All
> your device driver IO stops etc. But plain thread/thread interactions
> should keep working.

Correct me if I am wrong, but unless you build a kernel-less configuration,
cyg_drv_dsr_lock() is just an alias for cyg_scheduler_lock().
Therefore it prevents thread scheduling as well as other DSR processing.

Ivan

--

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

Nick Garnett | 1 Dec 2006 14:52
Favicon

Re: Synchronization primitive for DSRs

Ivan Djelic <ivan.djelic <at> parrot.fr> writes:

> On Thu, Nov 30, 2006 at 04:40:23PM +0100, Andrew Lunn wrote:
> > On Thu, Nov 30, 2006 at 04:21:58PM +0100, Stefan Sommerfeld wrote:
> > > 
> > > It looks like the cyg_drv_dsr_lock() will lock all DSRs and so it will stop 
> > > multitasking and any other DSRs to run. That's not what I'm searching for. 
> > > Any other solution?
> > 
> > It should not stop multi-tasking. The scheduler can still run and do
> > task switches. But all DSR are blocked. So, for example, round-robin
> > will not happen, since that needs a timer tick, and so a DSR.  All
> > your device driver IO stops etc. But plain thread/thread interactions
> > should keep working.
> 
> Correct me if I am wrong, but unless you build a kernel-less configuration,
> cyg_drv_dsr_lock() is just an alias for cyg_scheduler_lock().
> Therefore it prevents thread scheduling as well as other DSR processing.

That is correct.

The usual approach for dealing with this sort of thing is to do it at
the interrupt level. DSRs are only scheduled to run by the ISR. So
masking the appropriate vector will stop ISRs and hence DSRs being
delivered.

If you still want the ISRs to run but not the DSRs, then is it a
simple matter of setting a flag that the ISR tests to decide whether
to post the DSR. If you still want the DSR to run eventually, the ISR
should also set a flag indicating that it has postponed DSR delivery,
(Continue reading)

Grant Edwards | 2 Dec 2006 18:15
Favicon

CYGNUM_KERNEL_SCHED_TIMESLICE_TICKS undefined

I'm trying to build a fairly vanilla "net" template on a nios2
target, and I get the following:

: In function int sched_rr_get_interval(pid_t, timespec*)': /[...]/packages/compat/posix/current/src/sched.cxx:230:
error: CYGNUM_KERNEL_SCHED_TIMESLICE_TICKS' undeclared (first use this function) /[...]/packages/compat/posix/current/src/sched.cxx:230:
error: (Each undeclared identifier is reported only once for each function it appears in.)

I don't have timeslicing enabled, and apparently some of the
POSIX stuff depends on timeslicing.

I've tried removing the CYGPKG_POSIX_CLOCKS package which
appears to be what causes CYGNUM_KERNEL_SCHED_TIMESLICE_TICKS
to be referenced, but when I attempt to do that, ecosconfig segfaults:

+ ecosconfig new dm2 net
+ TMP=/nios/work/ecos-build
+ ecosconfig remove CYGPKG_POSIX_CLOCKS
./newtree.sh: line 12: 32151 Segmentation fault      TMP=$PWD ecosconfig remove CYGPKG_POSIX_CLOCKS

I suppose I should try updating ecosconfig, but it seems like
the CDL for the POSIX stuff is broken.

-- 
Grant Edwards                   grante             Yow!  ... Just enough
                                  at               time to do my LIBERACE
                               visi.com            impression...

--

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss
(Continue reading)

Grant Edwards | 2 Dec 2006 18:26
Favicon

Re: CYGNUM_KERNEL_SCHED_TIMESLICE_TICKS undefined

On 2006-12-02, Grant Edwards <grante <at> visi.com> wrote:

> I've tried removing the CYGPKG_POSIX_CLOCKS package which
> appears to be what causes CYGNUM_KERNEL_SCHED_TIMESLICE_TICKS
> to be referenced, but when I attempt to do that, ecosconfig segfaults:
>
> + ecosconfig new dm2 net
> + TMP=/nios/work/ecos-build
> + ecosconfig remove CYGPKG_POSIX_CLOCKS
> ./newtree.sh: line 12: 32151 Segmentation fault      TMP=$PWD ecosconfig remove CYGPKG_POSIX_CLOCKS
>
> I suppose I should try updating ecosconfig, but it seems like
> the CDL for the POSIX stuff is broken.

Can somebody loan me a hint on where the sources to ecosconfig
are?  I found the sources for configtool in the CVS repository,
but I can't find ecosconfig.  I've searched the documentation
and the web site, but all I can find are descriptions of
unpacking binary tool distributions for various host platforms.

-- 
Grant Edwards                   grante             Yow!  Now I understand the
                                  at               meaning of "THE MOD SQUAD"!
                               visi.com            

--

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

(Continue reading)

Grant Edwards | 2 Dec 2006 18:55
Favicon

How to prevent flash tests from being built?

I'm trying to build network test programs, but "make tests"
keeps failing while trying to build flash tests.

make -r -C io/flash/current tests
make[1]: Entering directory /nios/work/ecos-build/io/flash/current'
make[1]: *** No rule to make target tests/flash1.d', needed by tests.stamp'.  Stop.
make[1]: Leaving directory /nios/work/ecos-build/io/flash/current'
make: *** [tests] Error 2

How do I prevent flash tests from being build by "make tests"?

-- 
Grant Edwards                   grante             Yow!  While I'm in
                                  at               LEVITTOWN I thought I'd
                               visi.com            like to see the NUCLEAR
                                                   FAMILY!!

--

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

Grant Edwards | 2 Dec 2006 19:10
Favicon

Re: How to prevent flash tests from being built?

On 2006-12-02, Grant Edwards <grante <at> visi.com> wrote:
> I'm trying to build network test programs, but "make tests"
> keeps failing while trying to build flash tests.
>
> make -r -C io/flash/current tests
> make[1]: Entering directory /nios/work/ecos-build/io/flash/current'
> make[1]: *** No rule to make target tests/flash1.d', needed by tests.stamp'.  Stop.
> make[1]: Leaving directory /nios/work/ecos-build/io/flash/current'
> make: *** [tests] Error 2
>
> How do I prevent flash tests from being build by "make tests"?

editing io/flash/current/makefile and setting "TESTS" to the
empty string works, but there must be a proper way...

-- 
Grant Edwards                   grante             Yow!  I am having a
                                  at               pleasant time!!
                               visi.com            

--

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss

Andy Jackson | 2 Dec 2006 20:04

Re: Re: CYGNUM_KERNEL_SCHED_TIMESLICE_TICKS undefined

Its in ecos\host\tools\configtool\standalone\common I believe.

----- Original Message ----- 
From: "Grant Edwards" <grante <at> visi.com>
To: <ecos-discuss <at> sources.redhat.com>
Sent: Saturday, December 02, 2006 5:26 PM
Subject: [ECOS] Re: CYGNUM_KERNEL_SCHED_TIMESLICE_TICKS undefined

> On 2006-12-02, Grant Edwards <grante <at> visi.com> wrote:
>
>> I've tried removing the CYGPKG_POSIX_CLOCKS package which
>> appears to be what causes CYGNUM_KERNEL_SCHED_TIMESLICE_TICKS
>> to be referenced, but when I attempt to do that, ecosconfig segfaults:
>>
>> + ecosconfig new dm2 net
>> + TMP=/nios/work/ecos-build
>> + ecosconfig remove CYGPKG_POSIX_CLOCKS
>> ./newtree.sh: line 12: 32151 Segmentation fault      TMP=$PWD ecosconfig 
>> remove CYGPKG_POSIX_CLOCKS
>>
>> I suppose I should try updating ecosconfig, but it seems like
>> the CDL for the POSIX stuff is broken.
>
> Can somebody loan me a hint on where the sources to ecosconfig
> are?  I found the sources for configtool in the CVS repository,
> but I can't find ecosconfig.  I've searched the documentation
> and the web site, but all I can find are descriptions of
> unpacking binary tool distributions for various host platforms.
>
> -- 
(Continue reading)

Sergei Gavrikov | 2 Dec 2006 21:58
Picon

Re: Re: CYGNUM_KERNEL_SCHED_TIMESLICE_TICKS undefined


On Sat, 2 Dec 2006, Grant Edwards wrote:

> On 2006-12-02, Grant Edwards <grante <at> visi.com> wrote:
>
>> I've tried removing the CYGPKG_POSIX_CLOCKS package which
>> appears to be what causes CYGNUM_KERNEL_SCHED_TIMESLICE_TICKS
>> to be referenced, but when I attempt to do that, ecosconfig segfaults:
>>
>> + ecosconfig new dm2 net
>> + TMP=/nios/work/ecos-build
>> + ecosconfig remove CYGPKG_POSIX_CLOCKS
>> ./newtree.sh: line 12: 32151 Segmentation fault      TMP=$PWD ecosconfig remove CYGPKG_POSIX_CLOCKS
>>
>> I suppose I should try updating ecosconfig, but it seems like
>> the CDL for the POSIX stuff is broken.
>
> Can somebody loan me a hint on where the sources to ecosconfig
> are?  I found the sources for configtool in the CVS repository,
> but I can't find ecosconfig.  I've searched the documentation
> and the web site, but all I can find are descriptions of
> unpacking binary tool distributions for various host platforms.

To get the latest PD eCos sources

 	pserver=:pserver:anoncvs: <at> ecos.sourceware.org:/cvs/ecos
 	mkdir -p ~/cvs
 	cd ~/cvs

eCos host things
(Continue reading)

Grant Edwards | 2 Dec 2006 22:57
Favicon

Re: CYGNUM_KERNEL_SCHED_TIMESLICE_TICKS undefined

On 2006-12-02, Andy Jackson <andy <at> xylanta.com> wrote:

> Its in ecos\host\tools\configtool\standalone\common I believe.

Sure enough.  Would be nice to have a "find" command in cvsweb...

-- 
Grant Edwards                   grante             Yow!  I'm in DISGUISE as a
                                  at               BAGGAGE CHECKER....I can
                               visi.com            watch the house, if it's
                                                   ORANGE...

--

-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Gmane