AVR C Runtime Library - Bugs: bug #57299, util/setbaud.h incompatible with...
You are not allowed to post comments on this tracker with your current authentication level.
bug #57299: util/setbaud.h incompatible with new AVR iom*.h headers
Submitter: | Matt Wette <mwette> | ||
Submitted: | Mon 25 Nov 2019 06:10:21 PM UTC | ||
Category: | Header | Severity: | 3 - Normal |
Priority: | 5 - Normal | Item Group: | Header files |
Status: | None | Percent Complete: | 0% |
Assigned to: | None | Open/Closed: | Open |
Release: | 2.0.0 | Fixed Release: | None |
Mon 25 Nov 2019 09:03:48 PM UTC, comment #2: |
Matt Wette <mwette> |
Mon 25 Nov 2019 07:06:30 PM UTC, comment #1: 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. |
Joerg Wunsch <joerg_wunsch>![]() |
Mon 25 Nov 2019 06:10:21 PM UTC, original submission:
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
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. |
Matt Wette <mwette> |
No files currently attached
Depends on the following items: None found
Items that depend on this one: None found
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.