This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: diag serial port and debug serial port conflict?


"Charles F." <charles@202.96.178.16> writes:

> I am sure they are initialized to the same speed. Yesterday I tried to use
> non-optimization setting (delete the -O2 switch in general build settings)
> to compile ecos and it works! I guess there is something wrong with the
> optimized serial port intialization code. I have experience porting WinCE to
> 4373 board and once I met this kind of problem too. Am I right?


This raises one possibility:

The HAL_DUART_WRITE_CR() macro contains a delay loop that is used to
keep the Z8530 happy. It looks like with -O2 this loop maybe being
eliminated or optimized so it is too short. However, exactly the same
code appears in the initialization for the stubs, and GCC shouldn't
eliminate such loops. So it is not at all clear what the difference
here is. 

I have just compiled this code with -O2 and it seems to keep the delay
loop intact. Maybe your board has a faster CPU? The code is currently
set up for a 133MHz part. Try changing the value of ZDEL in
plf_z8530.h to something greater (and compiling with -O2) and see if
that makes a difference.

-- 
Nick Garnett, eCos Kernel Architect
Red Hat, Cambridge, UK

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]