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]
Other format: [Raw text]

Re: i2c bit-banging implementation


>>>>> " " ==   <clifford.joseph@clarinox.com> writes:

     > I am trying to implement an i2c transfer by bit-banging
     <snip>

     > It still returns the same error when I compile
     > The error is
     > parse error before ?.? token

     <snip>

     > Looking at the varios instances where the CYG_HAL_TABLE_ENTRY
     > has been used in the other files it has been implemented in
     > this way. Example:

     >  cyg_httpd_table_entry __name CYG_HAL_TABLE_ENTRY( httpd_table ) =
     >     { __pattern, __handler, __arg }

     > where __pattern, __handler, __arg are the arguments passed on to the httpd_table

     > Can somebody help me regarding this

     > Has anybody been successful in implementing a bit-banging using the i2c package

     > Any idea why there is an error ?

     > parse error before ?.? Token

Yes, there have been successful implementations of the bit-bang code.
In fact the first ever I2C driver used bit-banging.

There is no significant difference between the cyg_httpd_table_entry
macro and the I2C bus one. The latter uses a gcc extension called
Designated Initializers,
http://gcc.gnu.org/onlinedocs/gcc-3.2.3/gcc/Designated-Inits.html#Designated%20Inits
The aim is to allow the cyg_i2c_bus structure to be changed in future,
including adding new fields at the start or in the middle of the
structure, without invalidating existing instances of the
CYG_I2C_BUS() macro.

Unfortunately it is not possible to tell from the error message
exactly what the problem is. To confuse things further I suspect the
original email has been garbled somewhere along the way.

I suggest you try compiling the source code in two steps. First use
gcc -E to just run the preprocessor on the file. Then compile the
resulting file normally. This should give you a line number for the
parse error, and a matching source file without the potentially
confusing macros.

Bart

-- 
Bart Veer                       eCos Configuration Architect
http://www.ecoscentric.com/     The eCos and RedBoot experts


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


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