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.

>> 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.

Try to enable CONFIG_DEBUG_ANALOG_INFO and see if it will give you some hints.

BR,

Alan

Reply via email to