Hi,

in the Intel 28fxxx flash driver there is a timeout used, and this timeout is 
specified as a simple loop which is executed 5000000 times.
Now we have a fast processor and a slow flash, so for us this timeout isn't big 
enough. We could simply increase the count, but this still depends on flash and 
processor speed.

Ideally we'd like to use HAL_CLOCK_READ() to measure the time, but this isn't 
possible since hal_clock_read() is located in the section .text which is in the 
flash, but flash_program_buf() is located in the section .data which is located 
in RAM. When calling hal_clock_read() the linker complains and more importantly 
it won't work since the flash is busy while it is being programmed.

So we see the following options:
-just increase the loop counter (ugly)
-use some ifdefs and access the timer registers directly (slightly less ugly)
-remove the timeout completely and just wait until it has finished (still ugly)
-make hal_clock_read() inline -> changes behaviour everywhere (also not too 
nice)

So, how do you deal with this problem or do you have a better suggestion ?

Bye
Alex

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

Reply via email to