Skip to content

Commit

Permalink
Refactor platform logic within print.h
Browse files Browse the repository at this point in the history
  • Loading branch information
zvecr committed Feb 12, 2021
1 parent dbfd339 commit 6175003
Show file tree
Hide file tree
Showing 15 changed files with 163 additions and 257 deletions.
11 changes: 2 additions & 9 deletions tmk_core/common.mk
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
PRINTF_PATH = $(LIB_PATH)/printf

COMMON_DIR = common
PLATFORM_COMMON_DIR = $(COMMON_DIR)/$(PLATFORM_KEY)

Expand All @@ -10,7 +8,6 @@ TMK_COMMON_SRC += $(COMMON_DIR)/host.c \
$(COMMON_DIR)/action_macro.c \
$(COMMON_DIR)/action_layer.c \
$(COMMON_DIR)/action_util.c \
$(COMMON_DIR)/print.c \
$(COMMON_DIR)/debug.c \
$(COMMON_DIR)/sendchar_null.c \
$(COMMON_DIR)/eeconfig.c \
Expand All @@ -20,15 +17,11 @@ TMK_COMMON_SRC += $(COMMON_DIR)/host.c \
$(COMMON_DIR)/sync_timer.c \
$(PLATFORM_COMMON_DIR)/bootloader.c \

# Use platform provided print - fall back to lib/printf
ifneq ("$(wildcard $(TMK_PATH)/$(PLATFORM_COMMON_DIR)/printf.mk)","")
include $(TMK_PATH)/$(PLATFORM_COMMON_DIR)/printf.mk
else
TMK_COMMON_SRC += $(PRINTF_PATH)/printf.c
TMK_COMMON_DEFS += -DPRINTF_DISABLE_SUPPORT_FLOAT
TMK_COMMON_DEFS += -DPRINTF_DISABLE_SUPPORT_EXPONENTIAL
TMK_COMMON_DEFS += -DPRINTF_DISABLE_SUPPORT_LONG_LONG
TMK_COMMON_DEFS += -DPRINTF_DISABLE_SUPPORT_PTRDIFF_T
VPATH += $(PRINTF_PATH)
include $(TMK_PATH)/$(COMMON_DIR)/lib_printf.mk
endif

# Option modules
Expand Down
33 changes: 10 additions & 23 deletions tmk_core/common/print.c → tmk_core/common/arm_atsam/_print.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* Copyright 2012,2013 Jun Wako <wakojun@gmail.com> */
/* Copyright 2012 Jun Wako <wakojun@gmail.com> */
/* Very basic print functions, intended to be used with usb_debug_only.c
* http://www.pjrc.com/teensy/
* Copyright (c) 2008 PJRC.COM, LLC
Expand All @@ -21,27 +21,14 @@
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#pragma once

#include <stdint.h>
#include "print.h"
#include "arm_atsam/printf.h"

#ifndef NO_PRINT

# if defined(__AVR__)

# define sendchar(c) xputc(c)

void print_set_sendchar(int8_t (*sendchar_func)(uint8_t)) { xdev_out(sendchar_func); }

# elif defined(PROTOCOL_CHIBIOS) /* __AVR__ */

// don't need anything extra

# elif defined(__arm__) /* __AVR__ */

// TODO
// void print_set_sendchar(int8_t (*sendchar_func)(uint8_t)) { }

# endif /* __AVR__ */

#endif
// Create user & normal print defines
#define xprintf(fmt, ...) __xprintf(fmt, ##__VA_ARGS__)
#define print(s) xprintf(s)
#define println(s) xprintf(s "\r\n")
#define uprint(s) print(s)
#define uprintln(s) println(s)
#define uprintf(fmt, ...) xprintf(fmt, ##__VA_ARGS__)
6 changes: 5 additions & 1 deletion tmk_core/common/arm_atsam/printf.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,13 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/

#include "printf.h"
#include "sendchar.h"

#ifdef CONSOLE_ENABLE

# include "samd51j18a.h"
# include "arm_atsam_protocol.h"
# include "printf.h"
# include <string.h>
# include <stdarg.h>

Expand Down Expand Up @@ -66,3 +68,5 @@ void console_printf(char *fmt, ...) {
}

#endif // CONSOLE_ENABLE

void print_set_sendchar(SendcharFunc send) {}
33 changes: 33 additions & 0 deletions tmk_core/common/avr/_print.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
/* Copyright 2012 Jun Wako <wakojun@gmail.com> */
/* Very basic print functions, intended to be used with usb_debug_only.c
* http://www.pjrc.com/teensy/
* Copyright (c) 2008 PJRC.COM, LLC
*
* 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.
*/
#pragma once

#include "avr/xprintf.h"

// Create user & normal print defines
#define print(s) xputs(PSTR(s))
#define println(s) xputs(PSTR(s "\r\n"))
#define uprint(s) print(s)
#define uprintln(s) println(s)
#define uprintf(fmt, ...) xprintf(fmt, ##__VA_ARGS__)
4 changes: 4 additions & 0 deletions tmk_core/common/avr/printf.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#include "xprintf.h"
#include "sendchar.h"

void print_set_sendchar(SendcharFunc func) { xdev_out(func); }
8 changes: 1 addition & 7 deletions tmk_core/common/debug.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,4 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
#include "debug.h"

debug_config_t debug_config = {
.enable = false,
.matrix = false,
.keyboard = false,
.mouse = false,
.reserved = 0
};
debug_config_t debug_config = {.enable = false, .matrix = false, .keyboard = false, .mouse = false, .reserved = 0};
1 change: 1 addition & 0 deletions tmk_core/common/keyboard.c
Original file line number Diff line number Diff line change
Expand Up @@ -229,6 +229,7 @@ void keyboard_setup(void) {
#ifndef NO_JTAG_DISABLE
disable_jtag();
#endif
print_set_sendchar(sendchar);
matrix_setup();
keyboard_pre_init_kb();
}
Expand Down
9 changes: 9 additions & 0 deletions tmk_core/common/lib_printf.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
PRINTF_PATH = $(LIB_PATH)/printf

TMK_COMMON_SRC += $(PRINTF_PATH)/printf.c
TMK_COMMON_SRC += $(COMMON_DIR)/printf.c
TMK_COMMON_DEFS += -DPRINTF_DISABLE_SUPPORT_FLOAT
TMK_COMMON_DEFS += -DPRINTF_DISABLE_SUPPORT_EXPONENTIAL
TMK_COMMON_DEFS += -DPRINTF_DISABLE_SUPPORT_LONG_LONG
TMK_COMMON_DEFS += -DPRINTF_DISABLE_SUPPORT_PTRDIFF_T
VPATH += $(PRINTF_PATH)

0 comments on commit 6175003

Please sign in to comment.