Kyle, When you give a prototype of a procedure, but not the procedure itself, it gives the message below but this is not handled like an error. I guess this is a bug. Do you agree?
Seb, For now two files seem the best... Joep 2009/1/6, Sebastien Lelong <[email protected]>: > When merging the two i2c libs and declaring callbacks' prototype in ISR lib, > it just works nice. My worry was about when users don't define callabacks > (with a body), what happens ? Here's the result from compiler: > > 348 tokens, 61493 chars; 1638 lines; 5 files > !!!LABEL i2c_hw_slave_on_error NOT FOUND!!! > !!!LABEL i2c_hw_slave_on_master_hangsup NOT FOUND!!! > !!!LABEL i2c_hw_slave_on_master_stillreads NOT FOUND!!! > !!!LABEL i2c_hw_slave_on_master_reads NOT FOUND!!! > !!!LABEL i2c_hw_slave_on_master_writes NOT FOUND!!! > !!!LABEL i2c_hw_slave_on_master_talks NOT FOUND!!! > generating PIC code pass 1 > generating PIC code pass 2 > writing result > Code area: 137 of 4096 used > Data area: 8 of 352 used > Software stack available: 96 bytes > Hardware stack depth 4 of 8 > > > Interesting "!!!LABEL ..." :) > > My worry now is compiler does not produce an error, and exit status is 0 > (success). I still think it's better to have our libs split, and be sure > (because compiler checked it) callbacks are properly defined. > > Don't you think ? > > > Seb > > 2009/1/6 Sebastien Lelong <[email protected]> > > Ah, OK, I see: define callbacks' prototypes in ISR lib, and in client > code: include ISR lib, then "implement" callbacks ? > > That would be nice, but I wonder how wrong it would be if no callbacks are > implemented. Does the compiler say something ? I'll try. > > > > > > Thanks > > > > > > > > Seb > > > > > > 2009/1/6 Joep Suijs <[email protected]> > > > > > > > > couldn't you do it the other way around: define the callback > > > procedures in the lib code? > > > > > > > > > > > > > > > 2009/1/6, Sebastien Lelong <[email protected]>: > > > > > > > > but you'd need to define them on the client code, right ? before > > > > defining callbacks ? not an option... > > > > > > > > seb > > > > > > > > 2009/1/6, Joep Suijs <[email protected]>: > > > > > > > > > > That's why you have prototypes (tnx Kyle!) > > > > > > > > > > Joep > > > > > > > > > > 2009/1/6, Sebastien Lelong <[email protected]>: > > > > >> > > > > >> Hi, > > > > >> > > > > >> > > > > > >> > > > > > >> > > 1. I've written two libs: i2c_hw_slave.jal and > i2c_hw_slave_isr.jal. > > > > >> Only > > > > >> > > i2c_hw_slave_isr.jal (the ISR) is required by client code. I > could > > > > >> > > have > > > > >> merge > > > > >> > > them, but I thought it might be useful to keep the > init/read/write > > > > >> functions > > > > >> > > apart from ISR, for other purpose (like implementing a i2c > slave, but > > > > >> not > > > > >> > > using states). What's your point ? > > > > >> > I think this is a bit confusing for users, an other file with > similar > > > > >> > code - what should they choose... > > > > >> > I think it is better to have one file that contains the required > code. > > > > >> [...] > > > > >> > > > > >> Well, I was wrong ! Two libraries are needed because: > > > > >> > > > > >> - before including the ISR, callbacks must be defined > > > > >> - some callbacks need to i2c_hw_slave_read or i2c_hw_slave_write > > > > >> > > > > >> If those procedures are defined in a unique lib, which also > contains the > > > > >> ISR, there is a circular dependency: you can't include one unique > ISR lib > > > > >> to > > > > >> get those func to define your callbacks, because you callbacks must > be > > > > >> defined before including one unique ISR lib. > > > > >> > > > > >> So I must kept them the way they are: > > > > >> > > > > >> - i2c_hw_slave: common i2c slave procedures > > > > >> - i2c_hw_slave_isr.jal: ISR related stuff > > > > >> > > > > >> This also separate things which are ISR related from things which > aren't > > > > >> (yeah, I like when things are in the correct place :)) > > > > >> > > > > >> > > > > >> Cheers, > > > > >> Seb > > > > >> -- > > > > >> Sébastien Lelong > > > > >> > > > > >> http://www.sirloon.net > > > > >> http://sirbot.org > > > > >> > > > > >> > > > > > >> > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > Sébastien Lelong > > > > http://www.sirloon.net > > > > http://sirbot.org > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > -- > > > > > > > > Sébastien Lelong > > http://www.sirloon.net > > http://sirbot.org > > > > > > -- > Sébastien Lelong > http://www.sirloon.net > http://sirbot.org > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "jallib" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/jallib?hl=en -~----------~----~----~----~------~----~------~--~---
