From patchwork Fri Sep 1 23:28:21 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Josef Filzmaier X-Patchwork-Id: 9935383 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id C560C60216 for ; Fri, 1 Sep 2017 23:29:21 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B8E7028479 for ; Fri, 1 Sep 2017 23:29:21 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id ADDE628531; Fri, 1 Sep 2017 23:29:21 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=2.0 tests=BAYES_00,FREEMAIL_FROM, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 38A732853E for ; Fri, 1 Sep 2017 23:29:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752596AbdIAX2g (ORCPT ); Fri, 1 Sep 2017 19:28:36 -0400 Received: from mout.gmx.net ([212.227.15.15]:59972 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752563AbdIAX2e (ORCPT ); Fri, 1 Sep 2017 19:28:34 -0400 Received: from hella-laptop.8.8.4.4 ([188.22.49.244]) by mail.gmx.com (mrgmx001 [212.227.17.190]) with ESMTPSA (Nemesis) id 0LoVvG-1dHLlz1YXS-00gXnm; Sat, 02 Sep 2017 01:28:33 +0200 From: Josef Filzmaier To: linux-wpan@vger.kernel.org Cc: Josef Filzmaier Subject: [PATCH bluetooth-next 1/2] atusb/fw: Introduce DEBUG flag Date: Sat, 2 Sep 2017 01:28:21 +0200 Message-Id: <20170901232822.31901-2-j.filzmaier@gmx.at> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20170901232822.31901-1-j.filzmaier@gmx.at> References: <20170901232822.31901-1-j.filzmaier@gmx.at> X-Provags-ID: V03:K0:SHQQeKEVZexxk9kHG5Wg+6+gu8CK0iFRwKWRzOA/HvMVHO1lxeE L3/MSybr6QaOCLY/knrHzBYhtD9Fjy9sTt7py3kNHp2YlrT/UipFgYzwl+IzbwdBCbt29tu fhszZIMGuEc1tSvCt5mjAa8U1VYxBatyx/hwSw7rkntVRsL+GsfXU6doebmi6zV6pUX58tX zf1givpxVvf4CCVv0QETA== X-UI-Out-Filterresults: notjunk:1; V01:K0:WG91cGRL4KU=:Wi3h9+7rgkxy0fYQ1ArGMI mCS20dawAP729i/xuvCJ1ceieQ6+cPiRMUsKuJyqNsJOq5tBkBBHAsSiEJq4pjZy8Szw+53ly 7oOyhbptXghljiegLhLlbypyhvirSBB+9ySPMZzE9fXYMU89LD5PnE0DCgY5wYrC9LjFjLlid myY6T8TbQmzZNQdKo27CjJv4V7ZMg8GiZpvXV7UyY23RO1813IY7jOgPLRIKNJUUzNbESwNCt SIqA3hnw9cvoU85YxVPbu0fuc3G8SJwj+/57sV6ExaW+pDCFaRuvcI6+angXKWDttJv77IPEL 9M4GEOOVut3HMmwDJ3j61PPBhMr9gcNMHo1WRTFTYrwuKbz62B3MXOFThaRTLRb6ET7mCWKH1 JbJ3qHU1Ay+ehn/y1tcm2qsOMZUGNksAidPp/0RYumd5B9OM8qKuZS7z8eQuQ08zDB5UP83/8 vvRHJ3wb0Jfr3oXmd8UEdA22WZi2HrQsYE82fRYpuzHn//U+K/2SX1ShZeyuCuIMxr+MrCyEE MoGiVSH6UsgBJYkMYRgqA1BptbAIKVEJ3ynsLcxHv6ASX8eZd1FEF7jzgKduUHuBWs/bY+Ytx 8QQ/fvEe/JHc8XPkPRb0t33NXdc0/kVMwqFcZccoLloOw226hxgbr1N23HiEIErJe2MCvKc0a Pbmf1xQl5PleutQDu6UEbytlQ96EPzTkzTfpauJNjTWWeyJU3FHsW+vADpBrW0qjaOsUanXkv djQ1avgZ9xIXYr9cPqny45c9GcmFv/i8++aiY+nHywFBLOcU9+DJYmJebLePhfwlKYtXubVCL 5r+/l7X4xxRkx76k0boPy9VDf+SCw== Sender: linux-wpan-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-wpan@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This flag can be used to enable debugging over uart. Currently only available for boards with the at90usb1287 chip. Signed-off-by: Josef Filzmaier --- atusb/fw/Makefile | 10 ++++++++- atusb/fw/atusb.c | 11 ++++++++++ atusb/fw/ep0.c | 7 ++++++ atusb/fw/uart.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ atusb/fw/uart.h | 25 ++++++++++++++++++++++ 5 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 atusb/fw/uart.c create mode 100644 atusb/fw/uart.h diff --git a/atusb/fw/Makefile b/atusb/fw/Makefile index c1c68d7..4cc749c 100644 --- a/atusb/fw/Makefile +++ b/atusb/fw/Makefile @@ -1,5 +1,5 @@ # -# Makefile - Makefile of the ATUSB firmware +# Makefile - Makefile of the ATUSB firmware # # Written 2010-2011, 2013 by Werner Almesberger # Copyright 2010-2011, 2013 by Werner Almesberger @@ -13,11 +13,16 @@ SHELL = /bin/bash NAME = atusb +DEBUG = false CFLAGS = -g -mmcu=$(CHIP) -DBOOT_ADDR=$(BOOT_ADDR) \ -Wall -Wextra -Wshadow -Werror -Wno-unused-parameter \ -Wmissing-prototypes -Wmissing-declarations -Wstrict-prototypes +ifeq ($(DEBUG),true) +CFLAGS += -DDEBUG +endif + ifeq ($(NAME),rzusb) CHIP=at90usb1287 CFLAGS += -DRZUSB -DAT86RF230 @@ -46,6 +51,9 @@ OBJS = atusb.o board.o board_app.o sernum.o spi.o descr.o ep0.o \ BOOT_OBJS = boot.o board.o sernum.o spi.o flash.o dfu.o \ dfu_common.o usb.o boot-atu2.o +ifeq ($(DEBUG),true) +OBJS += uart.o +endif ifeq ($(NAME),rzusb) OBJS += board_rzusb.o diff --git a/atusb/fw/atusb.c b/atusb/fw/atusb.c index 1f65d53..28faf40 100644 --- a/atusb/fw/atusb.c +++ b/atusb/fw/atusb.c @@ -24,6 +24,10 @@ #include "spi.h" #include "atusb/ep0.h" +#ifdef DEBUG +#include "uart.h" +#endif + int main(void) { @@ -35,6 +39,13 @@ int main(void) /* now we should be at 8 MHz */ +#ifdef DEBUG + uart_init(); + static FILE atben_stdout = FDEV_SETUP_STREAM(uart_write_char, NULL, + _FDEV_SETUP_WRITE); + stdout = &atben_stdout; +#endif + usb_init(); ep0_init(); #ifdef ATUSB diff --git a/atusb/fw/ep0.c b/atusb/fw/ep0.c index 2b92f6d..674f9de 100644 --- a/atusb/fw/ep0.c +++ b/atusb/fw/ep0.c @@ -45,8 +45,15 @@ #define HW_TYPE HW_TYPE_RZUSB #endif +#ifdef DEBUG +#include "uart.h" +#include +#define debug(FORMAT,args...) printf(FORMAT,##args) +#define error(FORMAT,args...) printf(FORMAT,##args) +#else #define debug(...) #define error(...) +#endif static const uint8_t id[] = { EP0ATUSB_MAJOR, EP0ATUSB_MINOR, HW_TYPE }; diff --git a/atusb/fw/uart.c b/atusb/fw/uart.c new file mode 100644 index 0000000..44bec27 --- /dev/null +++ b/atusb/fw/uart.c @@ -0,0 +1,64 @@ +/* + * fw/uart.h - Functions needed for debugging over uart + * + * Code adapted from http://www.roboternetz.de/wissen/index.php/UART_mit_avr-gcc + * and http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial + * + * Published under the Creative Commons Share-Alike licence + * https://creativecommons.org/licenses/by-sa/2.0/de/ + * + * S. Salewski 2007 + * + * Adapted by + * Josef Filzmaier 2017 + */ + +#include +#include "uart.h" + +#define USART_BAUD 38400UL +#define F_CPU 8000000UL + +#define Wait_USART_Ready() while (!(UCSR1A & (1< + +void uart_init(void); +int uart_write_char(char c, FILE* stream); +void uart_new_line(void); + +#endif /* UART_H_ */