mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-03 21:49:32 +00:00
This gives a test case for the USART driver on an STM32L. Eventually this will be a good place to test that even in a downclocked configuration the STM32L USART driver can handle 115200 without dropping characters. This also gives a convenient build test for the STM32L version of the USART driver. Signed-off-by: Anton Staaf <robotboy@chromium.org> BRANCH=None BUG=None TEST=make buildall -j Cross connect a Discovery and a Discovery-stm32f072 Change-Id: Ifb8dfc1179e8a0be84390d36e0bc3ff15f4f4685 Reviewed-on: https://chromium-review.googlesource.com/288979 Tested-by: Anton Staaf <robotboy@chromium.org> Reviewed-by: Randall Spangler <rspangler@chromium.org> Commit-Queue: Anton Staaf <robotboy@chromium.org> Trybot-Ready: Anton Staaf <robotboy@chromium.org>
67 lines
1.6 KiB
C
67 lines
1.6 KiB
C
/* Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
|
|
* Use of this source code is governed by a BSD-style license that can be
|
|
* found in the LICENSE file.
|
|
*/
|
|
/* STM32L-discovery board configuration */
|
|
|
|
#include "common.h"
|
|
#include "gpio.h"
|
|
#include "hooks.h"
|
|
#include "queue_policies.h"
|
|
#include "registers.h"
|
|
#include "task.h"
|
|
#include "usart-stm32f0.h"
|
|
#include "usart_tx_dma.h"
|
|
#include "util.h"
|
|
|
|
void button_event(enum gpio_signal signal);
|
|
|
|
#include "gpio_list.h"
|
|
|
|
void button_event(enum gpio_signal signal)
|
|
{
|
|
static int count;
|
|
|
|
gpio_set_level(GPIO_LED_GREEN, ++count & 0x02);
|
|
}
|
|
|
|
void usb_gpio_tick(void)
|
|
{
|
|
static int count;
|
|
|
|
gpio_set_level(GPIO_LED_BLUE, ++count & 0x01);
|
|
}
|
|
DECLARE_HOOK(HOOK_TICK, usb_gpio_tick, HOOK_PRIO_DEFAULT);
|
|
|
|
/******************************************************************************
|
|
* Setup USART2 as a loopback device, it just echo's back anything sent to it.
|
|
*/
|
|
static struct usart_config const loopback_usart;
|
|
|
|
static struct queue const loopback_queue =
|
|
QUEUE_DIRECT(64, uint8_t,
|
|
loopback_usart.producer,
|
|
loopback_usart.consumer);
|
|
|
|
static struct usart_tx_dma const loopback_tx_dma =
|
|
USART_TX_DMA(STM32_DMAC_CH7, 16);
|
|
|
|
static struct usart_config const loopback_usart =
|
|
USART_CONFIG(usart2_hw,
|
|
usart_rx_interrupt,
|
|
loopback_tx_dma.usart_tx,
|
|
115200,
|
|
loopback_queue,
|
|
loopback_queue);
|
|
|
|
/******************************************************************************
|
|
* Initialize board.
|
|
*/
|
|
static void board_init(void)
|
|
{
|
|
gpio_enable_interrupt(GPIO_USER_BUTTON);
|
|
|
|
usart_init(&loopback_usart);
|
|
}
|
|
DECLARE_HOOK(HOOK_INIT, board_init, HOOK_PRIO_DEFAULT);
|