[En-Nut-Discussion] Bitbanging Drivers: Configuration in library or user code
Uwe Bonnes
bon at elektron.ikp.physik.tu-darmstadt.de
Fri Sep 28 17:05:32 CEST 2012
>>>>> "Harald" == Harald Kipp <harald.kipp at egnite.de> writes:
Harald> Hi Uwe, On 28.09.2012 15:39, Uwe Bonnes wrote:
Harald> Your latest changes to gpio_avr try to combine both, having the
Harald> clean code of the runtime API without too much processor
Harald> overhead.
>> Should I go ahead and change the nut/dev code still using porttrans
>> to the use of the GPIO api? I tried for nut/dev/sbi_mmc.c | 92
>> ++++++++++++++++++----------------------------------- 1 files
>> changed, 31 insertions(+), 61 deletions(-) and got smaller code.
Harald> You mean you got smaller code for the AVR when replacing the
Harald> macro MMC_MOSI_LO() with GpioPinSetLow()? That's interesting,
Harald> because the porttrans macros are intended to provide the best
Harald> code density for all platforms and runtime libraries.
I only taked about source code density, not binary code density. The source
code reduction comes from the fact that the port clock initialization is
done by GpioPinConfigSet(). I could take a look at binary code size, as it
didn't compile for AVR...
Harald> Not sure, whether spending more effort into sbi_mmc.c makes
Harald> sense.
The effort was done for a proof of concept.
Harald> Today's recommended MMC drivers are based on the bus
Harald> model, where the driver is split into the SPI MMC driver and the
Harald> SPI bus controller driver. See
Harald> http://www.ethernut.de/en/documents/ntn-6_spi.html
Either we have drivers in a usable state or they are useless....
And it is hard so understand the plethora if driver flavours...
Harald> As far as I can see, we already have spibus0gpio.c based on the
Harald> GPIO API.
Harald> On the other hand, the SPI bus model may be overkill for
Harald> applications, which want to use SPI to read from MMC only. They
Harald> will probably prefer the old sbi_mmc.c and benefit from your
Harald> change.
>> However I don't know about the status of the GPIO api on Platforms
>> beside AVR and STM32. And I have no hardware to test..
Harald> I'm using porttrans.h macros and GpioXXX() functions with AVR
Harald> and AT91SAM7/9 and I'm able to test almost any platform except
Harald> STM and AT91SAM3/4.
Harald> I haven't done anything with 1wire so far, sorry.
>> I don't want you to test the code. But I want some feedback about
>> how the interface is designed.
Harald> Still better, if someone, who is more familiar with 1wire, will
Harald> comment on that one.
I don't want comment of the driver API. I want comment on the way the
information about Pin/Port is passed to the creation of the interface.
And while Onewire is very common with house automation projects, NUTOS seems
to have to such users.
Bye
--
Uwe Bonnes bon at elektron.ikp.physik.tu-darmstadt.de
Institut fuer Kernphysik Schlossgartenstrasse 9 64289 Darmstadt
--------- Tel. 06151 162516 -------- Fax. 06151 164321 ----------
More information about the En-Nut-Discussion
mailing list