URL
https://opencores.org/ocsvn/neorv32/neorv32/trunk
[/] [neorv32/] [trunk/] [sw/] [lib/] [source/] [neorv32_uart.c] - Diff between revs 65 and 66
Go to most recent revision |
Show entire file |
Details |
Blame |
View Log
Rev 65 |
Rev 66 |
Line 254... |
Line 254... |
uint32_t clock = NEORV32_SYSINFO.CLK;
|
uint32_t clock = NEORV32_SYSINFO.CLK;
|
uint16_t i = 0; // BAUD rate divisor
|
uint16_t i = 0; // BAUD rate divisor
|
uint8_t p = 0; // initial prsc = CLK/2
|
uint8_t p = 0; // initial prsc = CLK/2
|
|
|
// raw clock prescaler
|
// raw clock prescaler
|
#ifdef __riscv_div
|
#ifndef make_bootloader
|
// use div instructions
|
|
i = (uint16_t)(clock / (2*baudrate));
|
i = (uint16_t)(clock / (2*baudrate));
|
#else
|
#else
|
// division via repeated subtraction
|
// division via repeated subtraction (minimal size, only for bootloader)
|
while (clock >= 2*baudrate) {
|
while (clock >= 2*baudrate) {
|
clock -= 2*baudrate;
|
clock -= 2*baudrate;
|
i++;
|
i++;
|
}
|
}
|
#endif
|
#endif
|
Line 624... |
Line 623... |
uint32_t clock = NEORV32_SYSINFO.CLK;
|
uint32_t clock = NEORV32_SYSINFO.CLK;
|
uint16_t i = 0; // BAUD rate divisor
|
uint16_t i = 0; // BAUD rate divisor
|
uint8_t p = 0; // initial prsc = CLK/2
|
uint8_t p = 0; // initial prsc = CLK/2
|
|
|
// raw clock prescaler
|
// raw clock prescaler
|
#ifdef __riscv_div
|
#ifdef make_bootloader
|
// use div instructions
|
// use div instructions
|
i = (uint16_t)(clock / (2*baudrate));
|
i = (uint16_t)(clock / (2*baudrate));
|
#else
|
#else
|
// division via repeated subtraction
|
// division via repeated subtraction (minimal size, only for bootloader)
|
while (clock >= 2*baudrate) {
|
while (clock >= 2*baudrate) {
|
clock -= 2*baudrate;
|
clock -= 2*baudrate;
|
i++;
|
i++;
|
}
|
}
|
#endif
|
#endif
|
© copyright 1999-2025
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.