[bug #57299] util/setbaud.h incompatible with new AVR iom*.h headers

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

[bug #57299] util/setbaud.h incompatible with new AVR iom*.h headers

Kevin Cuzner-2
URL:
  <https://savannah.nongnu.org/bugs/?57299>

                 Summary: util/setbaud.h incompatible with new AVR iom*.h
headers
                 Project: AVR C Runtime Library
            Submitted by: mwette
            Submitted on: Mon 25 Nov 2019 10:10:21 AM PST
                Category: Header
                Severity: 3 - Normal
                Priority: 5 - Normal
              Item Group: Header files
                  Status: None
        Percent Complete: 0%
             Assigned to: None
        Originator Email:
             Open/Closed: Open
         Discussion Lock: Any
                 Release: 2.0.0
           Fixed Release: None

    _______________________________________________________

Details:

Newer headers povided in the device packs from microchip include a struct for
UARTS that defines a member "BAUD".   This conflicts with the use of command
line argument "-DBAUD-9600U".   Use of this command line argument to avr-gcc
results in compile error:

/opt/local/bin/avr-gcc -mmcu=atmega4809 -DF_CPU=3333333UL -Os -I.. -I../../
-B/opt/local/avr/packs/mega-1.3.300 -DBAUD=9600UL -c main.c -o main.o
In file included from /opt/local/avr/include/avr/io.h:578,
                 from main.c:3:
<command-line>: error: expected identifier or '(' before numeric constant

A solution is to not include util/setbaud.h and instead use command line
argument -DBAUDRATE=9600UL with the following usage:

USART0.BAUD = BAUDRATE;

There is a workable solution but the problem of running into the obscure error
message will persist.  Maybe replacing BAUD with some other convention will
help.




    _______________________________________________________

Reply to this item at:

  <https://savannah.nongnu.org/bugs/?57299>

_______________________________________________
  Message sent via Savannah
  https://savannah.nongnu.org/


Reply | Threaded
Open this post in threaded view
|

[bug #57299] util/setbaud.h incompatible with new AVR iom*.h headers

Kevin Cuzner-2
Follow-up Comment #1, bug #57299 (project avr-libc):

Well, it's really a poor idea from the to use such a common name like BAUD for
a subregister. I wonder how much code needs to be reworked now ...

Sure, we could work around that by calling it BAUDRATE, and make BAUD an alias
for it on controllers where it does not conflict.

    _______________________________________________________

Reply to this item at:

  <https://savannah.nongnu.org/bugs/?57299>

_______________________________________________
  Message sent via Savannah
  https://savannah.nongnu.org/


Reply | Threaded
Open this post in threaded view
|

[bug #57299] util/setbaud.h incompatible with new AVR iom*.h headers

Kevin Cuzner-2
Follow-up Comment #2, bug #57299 (project avr-libc):

My proposed workaround is not correct because one still needs to compute the
baud rate with respect to the F_CPU, so we still need a way to compute the
register value.

    _______________________________________________________

Reply to this item at:

  <https://savannah.nongnu.org/bugs/?57299>

_______________________________________________
  Message sent via Savannah
  https://savannah.nongnu.org/