Verified Commit 92aec5b8 authored by Rahix's avatar Rahix
Browse files

build(bootloader): Integrate into meson


Signed-off-by: Rahix's avatarRahix <rahix@rahix.de>
parent 54c13a79
name = 'bootloader'
executable(
name + '.elf',
'main.c',
'mscmem.c',
'bootloader-usb.c',
'crc16-ccitt.c',
dependencies: [
libcard10,
max32665_startup_boot,
libff13,
maxusb,
],
link_whole: [max32665_startup_boot_lib, board_card10_lib],
link_args: [
'-Wl,-Map=' + meson.current_build_dir() + '/' + name + '.map',
],
)
......@@ -31,3 +31,31 @@ libcard10 = declare_dependency(
link_with: lib,
dependencies: deps,
)
##########################################################
includes = include_directories(
'./',
)
sources = files(
'mx25lba.c',
)
deps = [
board_card10,
periphdriver,
]
lib = static_library(
'mx25lba',
sources,
include_directories: includes,
dependencies: deps,
)
mx25lba = declare_dependency(
include_directories: includes,
link_with: lib,
dependencies: deps,
)
/*******************************************************************************
* Copyright (C) 2017 Maxim Integrated Products, Inc., All Rights Reserved.
*
* 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 MAXIM INTEGRATED 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.
*
* Except as contained in this notice, the name of Maxim Integrated
* Products, Inc. shall not be used except as stated in the Maxim Integrated
* Products, Inc. Branding Policy.
*
* The mere transfer of this software does not imply any licenses
* of trade secrets, proprietary technology, copyrights, patents,
* trademarks, maskwork rights, or any other form of intellectual
* property whatsoever. Maxim Integrated Products, Inc. retains all
* ownership rights.
*
* Description: Communications Device Class ACM (Serial Port) over USB
* $Id: descriptors.h 31172 2017-10-05 19:05:57Z zach.metzinger $
*
*******************************************************************************
*/
/**
* @file mscmem.h
* @brief Memory routines used by the USB Mass Storage Class example.
* See the msc_mem_t structure in msc.h for function details.
*/
#ifndef __MSC_MEM_H__
#define __MSC_MEM_H__
#include <stdint.h>
int mscmem_init(void);
int mscmem_start(void);
int mscmem_stop(void);
uint32_t mscmem_size(void);
int mscmem_read(uint32_t lba, uint8_t* buffer);
int mscmem_write(uint32_t lba, uint8_t* buffer);
int mscmem_ready(void);
#endif /* __MSC_MEM_H__ */
includes = include_directories(
'./Source/',
)
sources = files(
'./Source/diskio.c',
'./Source/ff.c',
'./Source/ffsystem.c',
'./Source/ffunicode.c',
)
lib = static_library(
'ff13',
sources,
include_directories: includes,
dependencies: [periphdriver, mx25lba],
)
libff13 = declare_dependency(
include_directories: includes,
link_with: lib,
dependencies: [periphdriver, mx25lba],
)
......@@ -7,3 +7,4 @@ subdir('./vendor/Maxim/MAX77650/')
subdir('./gfx/')
subdir('./card10/')
subdir('./ff13/')
......@@ -66,3 +66,17 @@ max32665_startup_core1 = declare_dependency(
'--entry', 'Reset_Handler',
],
)
#############################################################
# For the bootloader
#############################################################
# We can just reuse the same lib here
max32665_startup_boot_lib = max32665_startup_lib
max32665_startup_boot = declare_dependency(
link_args: [
'-T', meson.current_source_dir() + 'Source/GCC/max32665_boot.ld',
'--entry', 'Reset_Handler',
],
)
includes = include_directories(
'include/core/musbhsfc',
'include/core',
'include/devclass',
'include/enumerate',
'include/util',
'include/dbg_log',
)
sources = files(
'src/core/musbhsfc/usb.c',
'src/core/usb_event.c',
'src/dbg_log/dbg_log.c',
'src/devclass/cdc_acm.c',
'src/devclass/hid_kbd.c',
'src/devclass/hid_raw.c',
'src/devclass/msc.c',
'src/enumerate/enumerate.c',
'src/util/fifo.c',
)
lib = static_library(
'maxusb',
sources,
include_directories: includes,
dependencies: periphdriver,
)
maxusb = declare_dependency(
include_directories: includes,
link_with: lib,
dependencies: periphdriver,
)
......@@ -4,3 +4,5 @@ subdir('./Libraries/CMSIS/Device/Maxim/MAX32665/')
subdir('./Libraries/Boards/card10/')
subdir('./Libraries/FreeRTOS/')
subdir('./Libraries/MAXUSB/')
......@@ -30,4 +30,5 @@ add_global_link_arguments(
python3 = import('python').find_installation('python3')
subdir('lib/')
subdir('bootloader/')
subdir('hw-tests/')
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment