This patch adds a process that is started automatically to request DHCP
configuration. It also moves the IP configuration ahead of autostart processes
in case some autostart process depends on the IP configuration.
This patch replaces the pinmux APIs that require users to look up an arbitrary
function number for the desired function of each pin. The replacement API
functions have intuitive names and permit users to pass board-level IO port
numbers. The API functions internally convert those to CPU-level port numbers
when necessary. Furthermore, when configuring a pin to be a digital input or
output, those API functions also perform the corresponding configuration
operation on the CPU-level GPIO port. The revised APIs halt when users attempt
to configure a currently-unsupported GPIO, specifically those in the GPIO_SUS
port range and those implemented on the expander chip EXP2. This also means
that such ports are left unconfigured during initialization, whereas the
pinmuxing for them was setup by the old implementation.
This patch refactors the pinmux configuration code for Intel Galileo to simplify
it. This patch also corrects an off-by-one error in how the pin number is
checked in galileo_pinmux_set_pin.
This patch adds a general protection exception handler that prints a
message indicating the faulting instruction and the error code. This is
useful when debugging general protection exceptions.
lpm_enter() must not enter PM1+ if the UART is transmitting. Otherwise,
the UART clock gets disabled, and its TX is broken.
The commit b8b54a033c had already
partially fixed this issue, but it could still occur while transmitting
stop bits because, contrary to UART_FR.BUSY, UART_FR.TXFE takes only the
data bits into account, not the stop bits.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
Enable the 32.768-kHz crystal on all the CC2538 platforms where it is
present in order to get a better time accuracy.
Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>