[l1] fix whitespace and missing license info
Earlier additions to the L1 support were not correctly using linux coding guidelines as specified in /HACKING. Some examples were also missing license information.
This commit is contained in:
@@ -1,5 +1,20 @@
|
||||
/*
|
||||
* Karl Palsson, 2012 <karlp@tweak.net.au
|
||||
* This file is part of the libopencm3 project.
|
||||
*
|
||||
* Copyright (C) 2012 Karl Palsson <karlp@tweak.net.au>
|
||||
*
|
||||
* This library is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include <errno.h>
|
||||
@@ -15,35 +30,38 @@
|
||||
|
||||
static struct state_t state;
|
||||
|
||||
void clock_setup(void) {
|
||||
/* Lots of things on all ports... */
|
||||
rcc_peripheral_enable_clock(&RCC_AHBENR, RCC_AHBENR_GPIOAEN);
|
||||
rcc_peripheral_enable_clock(&RCC_AHBENR, RCC_AHBENR_GPIOBEN);
|
||||
void clock_setup(void)
|
||||
{
|
||||
/* Lots of things on all ports... */
|
||||
rcc_peripheral_enable_clock(&RCC_AHBENR, RCC_AHBENR_GPIOAEN);
|
||||
rcc_peripheral_enable_clock(&RCC_AHBENR, RCC_AHBENR_GPIOBEN);
|
||||
|
||||
/* Enable clocks for USART2. */
|
||||
rcc_peripheral_enable_clock(&RCC_APB1ENR, RCC_APB1ENR_USART2EN);
|
||||
/* Enable clocks for USART2. */
|
||||
rcc_peripheral_enable_clock(&RCC_APB1ENR, RCC_APB1ENR_USART2EN);
|
||||
}
|
||||
|
||||
void gpio_setup(void) {
|
||||
gpio_mode_setup(LED_DISCO_GREEN_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, LED_DISCO_GREEN_PIN);
|
||||
void gpio_setup(void)
|
||||
{
|
||||
gpio_mode_setup(LED_DISCO_GREEN_PORT, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, LED_DISCO_GREEN_PIN);
|
||||
|
||||
/* Setup GPIO pins for USART2 transmit. */
|
||||
gpio_mode_setup(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO2);
|
||||
/* Setup GPIO pins for USART2 transmit. */
|
||||
gpio_mode_setup(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO2);
|
||||
|
||||
/* Setup USART2 TX pin as alternate function. */
|
||||
gpio_set_af(GPIOA, GPIO_AF7, GPIO2);
|
||||
/* Setup USART2 TX pin as alternate function. */
|
||||
gpio_set_af(GPIOA, GPIO_AF7, GPIO2);
|
||||
}
|
||||
|
||||
void usart_setup(void) {
|
||||
usart_set_baudrate(USART_CONSOLE, 115200);
|
||||
usart_set_databits(USART_CONSOLE, 8);
|
||||
usart_set_stopbits(USART_CONSOLE, USART_STOPBITS_1);
|
||||
usart_set_mode(USART_CONSOLE, USART_MODE_TX);
|
||||
usart_set_parity(USART_CONSOLE, USART_PARITY_NONE);
|
||||
usart_set_flow_control(USART_CONSOLE, USART_FLOWCONTROL_NONE);
|
||||
void usart_setup(void)
|
||||
{
|
||||
usart_set_baudrate(USART_CONSOLE, 115200);
|
||||
usart_set_databits(USART_CONSOLE, 8);
|
||||
usart_set_stopbits(USART_CONSOLE, USART_STOPBITS_1);
|
||||
usart_set_mode(USART_CONSOLE, USART_MODE_TX);
|
||||
usart_set_parity(USART_CONSOLE, USART_PARITY_NONE);
|
||||
usart_set_flow_control(USART_CONSOLE, USART_FLOWCONTROL_NONE);
|
||||
|
||||
/* Finally enable the USART. */
|
||||
usart_enable(USART_CONSOLE);
|
||||
/* Finally enable the USART. */
|
||||
usart_enable(USART_CONSOLE);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -53,65 +71,69 @@ void usart_setup(void) {
|
||||
* @param len
|
||||
* @return
|
||||
*/
|
||||
int _write(int file, char *ptr, int len) {
|
||||
int i;
|
||||
int _write(int file, char *ptr, int len)
|
||||
{
|
||||
int i;
|
||||
|
||||
if (file == STDOUT_FILENO || file == STDERR_FILENO) {
|
||||
for (i = 0; i < len; i++) {
|
||||
if (ptr[i] == '\n') {
|
||||
usart_send_blocking(USART_CONSOLE, '\r');
|
||||
}
|
||||
usart_send_blocking(USART_CONSOLE, ptr[i]);
|
||||
}
|
||||
return i;
|
||||
}
|
||||
errno = EIO;
|
||||
return -1;
|
||||
if (file == STDOUT_FILENO || file == STDERR_FILENO) {
|
||||
for (i = 0; i < len; i++) {
|
||||
if (ptr[i] == '\n') {
|
||||
usart_send_blocking(USART_CONSOLE, '\r');
|
||||
}
|
||||
usart_send_blocking(USART_CONSOLE, ptr[i]);
|
||||
}
|
||||
return i;
|
||||
}
|
||||
errno = EIO;
|
||||
return -1;
|
||||
}
|
||||
|
||||
void BUTTON_DISCO_USER_isr(void) {
|
||||
exti_reset_request(BUTTON_DISCO_USER_EXTI);
|
||||
if (state.falling) {
|
||||
state.falling = false;
|
||||
exti_set_trigger(BUTTON_DISCO_USER_EXTI, EXTI_TRIGGER_RISING);
|
||||
// ILOG("fell: %d\n", TIM_CNT(TIM7));
|
||||
puts("fell!\n");
|
||||
} else {
|
||||
puts("Rose!\n");
|
||||
// TIM_CNT(TIM7) = 0;
|
||||
state.falling = true;
|
||||
exti_set_trigger(BUTTON_DISCO_USER_EXTI, EXTI_TRIGGER_FALLING);
|
||||
}
|
||||
void BUTTON_DISCO_USER_isr(void)
|
||||
{
|
||||
exti_reset_request(BUTTON_DISCO_USER_EXTI);
|
||||
if (state.falling) {
|
||||
state.falling = false;
|
||||
exti_set_trigger(BUTTON_DISCO_USER_EXTI, EXTI_TRIGGER_RISING);
|
||||
// ILOG("fell: %d\n", TIM_CNT(TIM7));
|
||||
puts("fell!\n");
|
||||
} else {
|
||||
puts("Rose!\n");
|
||||
// TIM_CNT(TIM7) = 0;
|
||||
state.falling = true;
|
||||
exti_set_trigger(BUTTON_DISCO_USER_EXTI, EXTI_TRIGGER_FALLING);
|
||||
}
|
||||
}
|
||||
|
||||
void setup_buttons(void) {
|
||||
/* Enable EXTI0 interrupt. */
|
||||
nvic_enable_irq(BUTTON_DISCO_USER_NVIC);
|
||||
void setup_buttons(void)
|
||||
{
|
||||
/* Enable EXTI0 interrupt. */
|
||||
nvic_enable_irq(BUTTON_DISCO_USER_NVIC);
|
||||
|
||||
gpio_mode_setup(BUTTON_DISCO_USER_PORT, GPIO_MODE_INPUT, GPIO_PUPD_NONE, BUTTON_DISCO_USER_PIN);
|
||||
gpio_mode_setup(BUTTON_DISCO_USER_PORT, GPIO_MODE_INPUT, GPIO_PUPD_NONE, BUTTON_DISCO_USER_PIN);
|
||||
|
||||
/* Configure the EXTI subsystem. */
|
||||
exti_select_source(BUTTON_DISCO_USER_EXTI, BUTTON_DISCO_USER_PORT);
|
||||
state.falling = false;
|
||||
exti_set_trigger(BUTTON_DISCO_USER_EXTI, EXTI_TRIGGER_RISING);
|
||||
exti_enable_request(BUTTON_DISCO_USER_EXTI);
|
||||
/* Configure the EXTI subsystem. */
|
||||
exti_select_source(BUTTON_DISCO_USER_EXTI, BUTTON_DISCO_USER_PORT);
|
||||
state.falling = false;
|
||||
exti_set_trigger(BUTTON_DISCO_USER_EXTI, EXTI_TRIGGER_RISING);
|
||||
exti_enable_request(BUTTON_DISCO_USER_EXTI);
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
int i;
|
||||
int j = 0;
|
||||
clock_setup();
|
||||
gpio_setup();
|
||||
usart_setup();
|
||||
puts("hi guys!\n");
|
||||
setup_buttons();
|
||||
while (1) {
|
||||
puts("tick:");
|
||||
putchar('a' + (j++ % 26));
|
||||
gpio_toggle(GPIOB, GPIO7); /* LED on/off */
|
||||
for (i = 0; i < 100000; i++) /* Wait a bit. */
|
||||
__asm__("NOP");
|
||||
}
|
||||
int main(void)
|
||||
{
|
||||
int i;
|
||||
int j = 0;
|
||||
clock_setup();
|
||||
gpio_setup();
|
||||
usart_setup();
|
||||
puts("hi guys!\n");
|
||||
setup_buttons();
|
||||
while (1) {
|
||||
puts("tick:");
|
||||
putchar('a' + (j++ % 26));
|
||||
gpio_toggle(GPIOB, GPIO7); /* LED on/off */
|
||||
for (i = 0; i < 100000; i++) /* Wait a bit. */
|
||||
__asm__("NOP");
|
||||
}
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,20 @@
|
||||
/*
|
||||
* General configuration of the device
|
||||
* This file is part of the libopencm3 project.
|
||||
*
|
||||
* Karl Palsson <karlp@tweak.net.au> 2012
|
||||
* Copyright (C) 2012 Karl Palsson <karlp@tweak.net.au>
|
||||
*
|
||||
* This library is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU Lesser General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This library is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU Lesser General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU Lesser General Public License
|
||||
* along with this library. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#ifndef SYSCFG_H
|
||||
@@ -31,10 +44,9 @@ extern "C" {
|
||||
#define BUTTON_DISCO_USER_isr exti0_isr
|
||||
#define BUTTON_DISCO_USER_NVIC NVIC_EXTI0_IRQ
|
||||
|
||||
|
||||
struct state_t {
|
||||
bool falling;
|
||||
};
|
||||
struct state_t {
|
||||
bool falling;
|
||||
};
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
@@ -22,59 +22,63 @@
|
||||
#include <libopencm3/stm32/l1/gpio.h>
|
||||
#include <libopencm3/stm32/usart.h>
|
||||
|
||||
void clock_setup(void) {
|
||||
/* We are running on MSI after boot. */
|
||||
/* Enable GPIOD clock for LED & USARTs. */
|
||||
rcc_peripheral_enable_clock(&RCC_AHBENR, RCC_AHBENR_GPIOAEN);
|
||||
rcc_peripheral_enable_clock(&RCC_AHBENR, RCC_AHBENR_GPIOBEN);
|
||||
void clock_setup(void)
|
||||
{
|
||||
/* We are running on MSI after boot. */
|
||||
/* Enable GPIOD clock for LED & USARTs. */
|
||||
rcc_peripheral_enable_clock(&RCC_AHBENR, RCC_AHBENR_GPIOAEN);
|
||||
rcc_peripheral_enable_clock(&RCC_AHBENR, RCC_AHBENR_GPIOBEN);
|
||||
|
||||
/* Enable clocks for USART2. */
|
||||
rcc_peripheral_enable_clock(&RCC_APB1ENR, RCC_APB1ENR_USART2EN);
|
||||
/* Enable clocks for USART2. */
|
||||
rcc_peripheral_enable_clock(&RCC_APB1ENR, RCC_APB1ENR_USART2EN);
|
||||
}
|
||||
|
||||
void usart_setup(void) {
|
||||
/* Setup USART2 parameters. */
|
||||
usart_set_baudrate(USART2, 38400);
|
||||
usart_set_databits(USART2, 8);
|
||||
usart_set_stopbits(USART2, USART_STOPBITS_1);
|
||||
usart_set_mode(USART2, USART_MODE_TX);
|
||||
usart_set_parity(USART2, USART_PARITY_NONE);
|
||||
usart_set_flow_control(USART2, USART_FLOWCONTROL_NONE);
|
||||
void usart_setup(void)
|
||||
{
|
||||
/* Setup USART2 parameters. */
|
||||
usart_set_baudrate(USART2, 38400);
|
||||
usart_set_databits(USART2, 8);
|
||||
usart_set_stopbits(USART2, USART_STOPBITS_1);
|
||||
usart_set_mode(USART2, USART_MODE_TX);
|
||||
usart_set_parity(USART2, USART_PARITY_NONE);
|
||||
usart_set_flow_control(USART2, USART_FLOWCONTROL_NONE);
|
||||
|
||||
/* Finally enable the USART. */
|
||||
usart_enable(USART2);
|
||||
/* Finally enable the USART. */
|
||||
usart_enable(USART2);
|
||||
}
|
||||
|
||||
void gpio_setup(void) {
|
||||
/* Setup GPIO pin GPIO7 on GPIO port B for Green LED. */
|
||||
gpio_mode_setup(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO7);
|
||||
void gpio_setup(void)
|
||||
{
|
||||
/* Setup GPIO pin GPIO7 on GPIO port B for Green LED. */
|
||||
gpio_mode_setup(GPIOB, GPIO_MODE_OUTPUT, GPIO_PUPD_NONE, GPIO7);
|
||||
|
||||
/* Setup GPIO pins for USART2 transmit. */
|
||||
gpio_mode_setup(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO2);
|
||||
/* Setup GPIO pins for USART2 transmit. */
|
||||
gpio_mode_setup(GPIOA, GPIO_MODE_AF, GPIO_PUPD_NONE, GPIO2);
|
||||
|
||||
/* Setup USART2 TX pin as alternate function. */
|
||||
gpio_set_af(GPIOA, GPIO_AF7, GPIO2);
|
||||
/* Setup USART2 TX pin as alternate function. */
|
||||
gpio_set_af(GPIOA, GPIO_AF7, GPIO2);
|
||||
}
|
||||
|
||||
int main(void) {
|
||||
int i, j = 0, c = 0;
|
||||
int main(void)
|
||||
{
|
||||
int i, j = 0, c = 0;
|
||||
|
||||
clock_setup();
|
||||
gpio_setup();
|
||||
usart_setup();
|
||||
clock_setup();
|
||||
gpio_setup();
|
||||
usart_setup();
|
||||
|
||||
/* Blink the LED (PD12) on the board with every transmitted byte. */
|
||||
while (1) {
|
||||
gpio_toggle(GPIOB, GPIO7); /* LED on/off */
|
||||
usart_send_blocking(USART2, c + '0'); /* USART2: Send byte. */
|
||||
c = (c == 9) ? 0 : c + 1; /* Increment c. */
|
||||
if ((j++ % 80) == 0) { /* Newline after line full. */
|
||||
usart_send_blocking(USART2, '\r');
|
||||
usart_send_blocking(USART2, '\n');
|
||||
}
|
||||
for (i = 0; i < 100000; i++) /* Wait a bit. */
|
||||
__asm__("NOP");
|
||||
}
|
||||
/* Blink the LED (PD12) on the board with every transmitted byte. */
|
||||
while (1) {
|
||||
gpio_toggle(GPIOB, GPIO7); /* LED on/off */
|
||||
usart_send_blocking(USART2, c + '0'); /* USART2: Send byte. */
|
||||
c = (c == 9) ? 0 : c + 1; /* Increment c. */
|
||||
if ((j++ % 80) == 0) { /* Newline after line full. */
|
||||
usart_send_blocking(USART2, '\r');
|
||||
usart_send_blocking(USART2, '\n');
|
||||
}
|
||||
for (i = 0; i < 100000; i++) /* Wait a bit. */
|
||||
__asm__("NOP");
|
||||
}
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user