[stm32] initial stab at getting uart printfs working
This commit is contained in:
@@ -28,16 +28,51 @@
|
|||||||
#include <platform/debug.h>
|
#include <platform/debug.h>
|
||||||
#include <arch/ops.h>
|
#include <arch/ops.h>
|
||||||
#include <dev/uart.h>
|
#include <dev/uart.h>
|
||||||
//#include <target/debugconfig.h>
|
#include <target/debugconfig.h>
|
||||||
|
#include <stm32f10x_rcc.h>
|
||||||
|
#include <stm32f10x_usart.h>
|
||||||
|
|
||||||
|
void stm32_debug_init(void)
|
||||||
|
{
|
||||||
|
// XXX move this into usart driver
|
||||||
|
if (DEBUG_UART == USART1) {
|
||||||
|
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
|
||||||
|
} else if (DEBUG_UART == USART2) {
|
||||||
|
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2, ENABLE);
|
||||||
|
} else if (DEBUG_UART == USART3) {
|
||||||
|
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART3, ENABLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
USART_InitTypeDef init;
|
||||||
|
|
||||||
|
init.USART_BaudRate = 115200;
|
||||||
|
init.USART_WordLength = USART_WordLength_8b;
|
||||||
|
init.USART_StopBits = USART_StopBits_1;
|
||||||
|
init.USART_Parity = USART_Parity_No;
|
||||||
|
init.USART_Mode = USART_Mode_Tx;
|
||||||
|
init.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
|
||||||
|
|
||||||
|
USART_Init(DEBUG_UART, &init);
|
||||||
|
|
||||||
|
USART_ITConfig(DEBUG_UART, USART_IT_RXNE, DISABLE);
|
||||||
|
USART_Cmd(DEBUG_UART, ENABLE);
|
||||||
|
}
|
||||||
|
|
||||||
void _dputc(char c)
|
void _dputc(char c)
|
||||||
{
|
{
|
||||||
PANIC_UNIMPLEMENTED;
|
if (c == '\n') {
|
||||||
|
_dputc('\r');
|
||||||
|
}
|
||||||
|
while (USART_GetFlagStatus(DEBUG_UART, USART_FLAG_TXE) == 0)
|
||||||
|
;
|
||||||
|
USART_SendData(DEBUG_UART, c);
|
||||||
|
while (USART_GetFlagStatus(DEBUG_UART, USART_FLAG_TC) == 0)
|
||||||
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
int dgetc(char *c, bool wait)
|
int dgetc(char *c, bool wait)
|
||||||
{
|
{
|
||||||
PANIC_UNIMPLEMENTED;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void debug_dump_regs(void)
|
void debug_dump_regs(void)
|
||||||
|
|||||||
7
platform/stm32f1xx/include/platform/stm32.h
Normal file
7
platform/stm32f1xx/include/platform/stm32.h
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
#ifndef __PLATFORM_STM32_H
|
||||||
|
#define __PLATFORM_STM32_H
|
||||||
|
|
||||||
|
void stm32_debug_init(void);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
30
target/stm32-p107/include/target/debugconfig.h
Normal file
30
target/stm32-p107/include/target/debugconfig.h
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2012 Travis Geiselbrecht
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
* a copy of this software and associated documentation files
|
||||||
|
* (the "Software"), to deal in the Software without restriction,
|
||||||
|
* including without limitation the rights to use, copy, modify, merge,
|
||||||
|
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||||
|
* and to permit persons to whom the Software is furnished to do so,
|
||||||
|
* subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be
|
||||||
|
* included in all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
|
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
|
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
#ifndef __TARGET_DEBUGCONFIG_H
|
||||||
|
#define __TARGET_DEBUGCONFIG_H
|
||||||
|
|
||||||
|
#include <stm32f10x_usart.h>
|
||||||
|
|
||||||
|
#define DEBUG_UART USART3
|
||||||
|
|
||||||
|
#endif
|
||||||
59
target/stm32-p107/init.c
Normal file
59
target/stm32-p107/init.c
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2012 Travis Geiselbrecht
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining
|
||||||
|
* a copy of this software and associated documentation files
|
||||||
|
* (the "Software"), to deal in the Software without restriction,
|
||||||
|
* including without limitation the rights to use, copy, modify, merge,
|
||||||
|
* publish, distribute, sublicense, and/or sell copies of the Software,
|
||||||
|
* and to permit persons to whom the Software is furnished to do so,
|
||||||
|
* subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be
|
||||||
|
* included in all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||||
|
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||||
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||||
|
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
||||||
|
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
|
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||||
|
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
#include <err.h>
|
||||||
|
#include <debug.h>
|
||||||
|
#include <target.h>
|
||||||
|
#include <compiler.h>
|
||||||
|
#include <stm32f10x_usart.h>
|
||||||
|
#include <stm32f10x_rcc.h>
|
||||||
|
#include <stm32f10x_gpio.h>
|
||||||
|
#include <stm32f10x_flash.h>
|
||||||
|
#include <stm32f10x_dbgmcu.h>
|
||||||
|
#include <platform/stm32.h>
|
||||||
|
|
||||||
|
void target_early_init(void)
|
||||||
|
{
|
||||||
|
/* configure the usart3 pins */
|
||||||
|
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
|
||||||
|
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);
|
||||||
|
|
||||||
|
GPIO_PinRemapConfig(GPIO_FullRemap_USART3, ENABLE);
|
||||||
|
|
||||||
|
GPIO_InitTypeDef init;
|
||||||
|
init.GPIO_Pin = GPIO_Pin_8;
|
||||||
|
init.GPIO_Speed = GPIO_Speed_50MHz;
|
||||||
|
init.GPIO_Mode = GPIO_Mode_AF_PP;
|
||||||
|
GPIO_Init(GPIOD, &init);
|
||||||
|
|
||||||
|
init.GPIO_Pin = GPIO_Pin_9;
|
||||||
|
init.GPIO_Speed = GPIO_Speed_50MHz;
|
||||||
|
init.GPIO_Mode = GPIO_Mode_IN_FLOATING;
|
||||||
|
GPIO_Init(GPIOD, &init);
|
||||||
|
|
||||||
|
stm32_debug_init();
|
||||||
|
}
|
||||||
|
|
||||||
|
void target_init(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
@@ -6,5 +6,6 @@ PLATFORM := stm32f1xx
|
|||||||
|
|
||||||
INCLUDES += -I$(LOCAL_DIR)/include
|
INCLUDES += -I$(LOCAL_DIR)/include
|
||||||
|
|
||||||
OBJS +=
|
OBJS += \
|
||||||
|
$(LOCAL_DIR)/init.o
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user