I don't think it is wrong.

See: arch/arm/src/stm32/stm32_adc.h

Now look inside boards/arm/stm32/ and you will find many board that
includes this file same way.

BR,

Alan

On 10/29/20, Bernd Walter <ti...@cicely7.cicely.de> wrote:
> On Thu, Oct 29, 2020 at 05:42:58PM -0300, Alan Carvalho de Assis wrote:
>> Hello,
>>
>> On 10/29/20, Bernd Walter <ti...@cicely7.cicely.de> wrote:
>> > On Thu, Oct 29, 2020 at 08:51:13AM -0300, Alan Carvalho de Assis wrote:
>> >> Hi Bernd,
>> >>
>> >> It was "working" few mont ago. I put working covered by quotes because
>> >> the ADC convertion wasn't linear. I think the calibration process was
>> >> failing.
>> >
>> > arch/arm/src/samd2l2/sam_adc.h was previously named
>> > arch/arm/src/samd2l2/adc.h
>> > With the rename the protector define was updated to be identic to the
>> > one
>> > in arch/arm/src/samd2l2/sam_adc.h
>> > https://github.com/apache/incubator-nuttx/commit/6bff1f4df4ae3e4fc21d7d98afdbfdcc855a6ed2
>> >
>> > No idea what the convention for the fix would be, beside not using the
>> > same
>> > protector name.
>> >
>>
>> Well, the sam_adc.h appears correct and the #ifdef protection appears
>> correct too.
>
> It is correct by itself, but not in the bigger context:
> arch/arm/include/samd2l2/sam_adc.c:
> ...
> #include <arch/chip/sam_adc.h>
> ...
> #include "sam_adc.h"
>
> Both included files have the same filename and use the same #define to
> protect.
> The first gets included and the content of the second is then missing.
>
>>
>> >> I tested it on Arduino Zero board (SAMD21).
>> >
>> > Ok - I do have an Arduino Zero board to test on.
>> > The second problem is puzzling me.
>> > For my board code I copied boards/arm/samd2l2/arduino-m0/src/sam_adc.c
>> > It calls adc_register with "/dev/adc0", which calls register_driver),
>> > in which inode_reserve() then fails with EEXIST.
>> > This is common code for all platforms, which fails.
>> >
>>
>> The EEXIST error means that the file already exist and then probably
>> the ADC was registers twice. Maybe sam_adc_setup() was called twice or
>> it is called once but adc_register("/dev/adc0") is called from other
>> place.
>
> Thanks you for the hints.
> Chaning the path didn't work, but did no further tests today.
>
>> Try to enable CONFIG_DEBUG_ANALOG_INFO and see if it will give you some
>> hints.
>>
>> BR,
>>
>> Alan
>
> --
> B.Walter <be...@bwct.de> http://www.bwct.de
> Modbus/TCP Ethernet I/O Baugruppen, ARM basierte FreeBSD Rechner uvm.
>

Reply via email to