Skip to content
This repository has been archived by the owner on Apr 27, 2023. It is now read-only.

Commit

Permalink
Updating program / build flow.
Browse files Browse the repository at this point in the history
- Program targets now depend on the relevent build target.
- Make EXE file name sourcing consistent across the flows.
- Bump acquisition framework.
- Initialise scass config in BSP uas_main function.

 On branch master
 Changes to be committed:
	modified:   Makefile
	modified:   Makefile.build
	modified:   Makefile.common
	new file:   Makefile.program
	modified:   external/fw-acquisition
	modified:   target/sakurax_mb3/program/program.mk
	modified:   target/sakurax_mb5/program/program.mk
	modified:   target/sakurax_mb8/program/program.mk
	modified:   target/sakurax_picorv32/program/program.mk
	modified:   target/scale_lpc1114fn28/program/program.mk
	modified:   target/scale_lpc1313fbd48/program/program.mk
	modified:   target/scale_lpc812m101/program/program.mk
	modified:   target/share/uas_main.c
  • Loading branch information
ben-marshall committed Nov 13, 2019
1 parent a6aeeb2 commit a931936
Show file tree
Hide file tree
Showing 13 changed files with 80 additions and 21 deletions.
6 changes: 1 addition & 5 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,6 @@
export USB_PORT ?= /dev/ttyUSB0
export USB_BAUD ?= 9600

export TTEST_NAME ?= default
export TTEST_NUM_TRACES ?= 10000
export TTEST_FLAGS ?=

# Make all variables available to submake shells.
export

Expand Down Expand Up @@ -47,7 +43,7 @@ BUILD_TARGETS += $(call map_tgt_build,${1},${2})
endef

define tgt_program
program_${1}_$(subst /,-,${2}) :
program_${1}_$(subst /,-,${2}) : $(call map_tgt_build,${1},${2})
$(MAKE) -f Makefile.program UAS_TARGET=${1} UAS_EXPERIMENT=${2} program
endef

Expand Down
6 changes: 3 additions & 3 deletions Makefile.build
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@

include $(UAS_ROOT)/Makefile.common

BINOUT = $(UAS_BUILD)/$(UAS_EXPERIMENT)/$(UAS_TARGET)/program.elf
OBJDUMP_OUT= $(UAS_BUILD)/$(UAS_EXPERIMENT)/$(UAS_TARGET)/program.objdump
HEX_OUT = $(UAS_BUILD)/$(UAS_EXPERIMENT)/$(UAS_TARGET)/program.hex
BINOUT = $(call map_experiment_elf)
OBJDUMP_OUT= $(call map_experiment_dis)
HEX_OUT = $(call map_experiment_hex)

CFLAGS ?=

Expand Down
29 changes: 28 additions & 1 deletion Makefile.common
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

UAS_EXPERIMENT ?= translation/nops
UAS_EXPERIMENT ?= example/add
UAS_TARGET ?= scale_lpc1114fn28
UAS_EXPERIMENT_SRC ?= $(UAS_ROOT)/experiments/$(UAS_EXPERIMENT)
UAS_EXPERIMENT_BUILD = $(UAS_BUILD)/$(UAS_EXPERIMENT)/$(UAS_TARGET)
Expand All @@ -10,3 +10,30 @@ USB_BAUD ?= 9600
TARGET_DIR = $(UAS_ROOT)/target/$(UAS_TARGET)

TARGET_BUILD_MAKEFILE= $(TARGET_DIR)/build/build.mk

#
# Given the global variables defining build directory, experiment name
# and target device, return a name for the experiment binary elf file.
define map_experiment_elf
$(UAS_BUILD)/$(UAS_EXPERIMENT)/$(UAS_TARGET)/program.elf
endef
#
# Given the global variables defining build directory, experiment name
# and target device, return a name for the experiment disassembly file.
define map_experiment_dis
$(UAS_BUILD)/$(UAS_EXPERIMENT)/$(UAS_TARGET)/program.dis
endef

#
# Given the global variables defining build directory, experiment name
# and target device, return a name for the experiment hex memory file.
define map_experiment_hex
$(UAS_BUILD)/$(UAS_EXPERIMENT)/$(UAS_TARGET)/program.hex
endef

#
# Given the current target device environment variable, return where
# the makefile defining its "program" target *should* be.
define map_target_program_makefile
$(UAS_ROOT)/target/$(UAS_TARGET)/program/program.mk
endef
8 changes: 8 additions & 0 deletions Makefile.program
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@

include $(UAS_ROOT)/Makefile.common

#
# include the makefile which *should* contain a target called "program",
# specific to the current target device.
include $(call map_target_program_makefile)

2 changes: 1 addition & 1 deletion external/fw-acquisition
8 changes: 6 additions & 2 deletions target/sakurax_mb3/program/program.mk
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@

#
# NOTE: This file expects to be "included" into $UAS_ROOT/Makefile.program
#

UPDATEMEM = $(VIVADO_ROOT)/bin/updatemem
VIVADO = $(VIVADO_ROOT)/bin/vivado
VIVADO_LOG = $(UAS_EXPERIMENT_BUILD)/vivado.log
Expand All @@ -7,11 +11,11 @@ MEMINFO = $(TARGET_DIR)/program/sakurax_mb3.mmi
IMPL_BITFILE = $(TARGET_DIR)/program/bitstream.bit
DOWNLOAD_BITFILE= $(UAS_EXPERIMENT_BUILD)/download.bit

$(DOWNLOAD_BITFILE) : $(IMPL_BITFILE) $(BINOUT)
$(DOWNLOAD_BITFILE) : $(IMPL_BITFILE) $(call map_experiment_elf)
$(UPDATEMEM) -force \
-meminfo $(MEMINFO) \
-bit $(IMPL_BITFILE) \
-data $(BINOUT) \
-data $(call map_experiment_elf) \
-proc system_top_i/CPU_MB3 \
-out $(DOWNLOAD_BITFILE)
@rm updatemem.jou updatemem.log
Expand Down
8 changes: 6 additions & 2 deletions target/sakurax_mb5/program/program.mk
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@

#
# NOTE: This file expects to be "included" into $UAS_ROOT/Makefile.program
#

UPDATEMEM = $(VIVADO_ROOT)/bin/updatemem
VIVADO = $(VIVADO_ROOT)/bin/vivado
VIVADO_LOG = $(UAS_EXPERIMENT_BUILD)/vivado.log
Expand All @@ -7,11 +11,11 @@ MEMINFO = $(TARGET_DIR)/program/sakurax_mb5.mmi
IMPL_BITFILE = $(TARGET_DIR)/program/bitstream.bit
DOWNLOAD_BITFILE= $(UAS_EXPERIMENT_BUILD)/download.bit

$(DOWNLOAD_BITFILE) : $(IMPL_BITFILE) $(BINOUT)
$(DOWNLOAD_BITFILE) : $(IMPL_BITFILE) $(call map_experiment_elf)
$(UPDATEMEM) -force \
-meminfo $(MEMINFO) \
-bit $(IMPL_BITFILE) \
-data $(BINOUT) \
-data $(call map_experiment_elf) \
-proc system_top_i/CPU_MB5 \
-out $(DOWNLOAD_BITFILE)
@rm updatemem.jou updatemem.log
Expand Down
8 changes: 6 additions & 2 deletions target/sakurax_mb8/program/program.mk
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@

#
# NOTE: This file expects to be "included" into $UAS_ROOT/Makefile.program
#

UPDATEMEM = $(VIVADO_ROOT)/bin/updatemem
VIVADO = $(VIVADO_ROOT)/bin/vivado
VIVADO_LOG = $(UAS_EXPERIMENT_BUILD)/vivado.log
Expand All @@ -7,11 +11,11 @@ MEMINFO = $(TARGET_DIR)/program/sakurax_mb8.mmi
IMPL_BITFILE = $(TARGET_DIR)/program/bitstream.bit
DOWNLOAD_BITFILE= $(UAS_EXPERIMENT_BUILD)/download.bit

$(DOWNLOAD_BITFILE) : $(IMPL_BITFILE) $(BINOUT)
$(DOWNLOAD_BITFILE) : $(IMPL_BITFILE) $(call map_experiment_elf)
$(UPDATEMEM) -force \
-meminfo $(MEMINFO) \
-bit $(IMPL_BITFILE) \
-data $(BINOUT) \
-data $(call map_experiment_elf) \
-proc system_top_i/CPU_MB8 \
-out $(DOWNLOAD_BITFILE)
@rm updatemem.jou updatemem.log
Expand Down
8 changes: 6 additions & 2 deletions target/sakurax_picorv32/program/program.mk
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@

#
# NOTE: This file expects to be "included" into $UAS_ROOT/Makefile.program
#

UPDATEMEM = $(VIVADO_ROOT)/bin/updatemem
VIVADO = $(VIVADO_ROOT)/bin/vivado
VIVADO_LOG = $(UAS_EXPERIMENT_BUILD)/vivado.log
Expand All @@ -17,11 +21,11 @@ $(MMI_FILE) : $(IMPL_BITFILE)

regnerate_mmi_file: $(MMI_FILE)

$(DOWNLOAD_BITFILE) : $(IMPL_BITFILE) $(BINOUT)
$(DOWNLOAD_BITFILE) : $(IMPL_BITFILE) $(call map_experiment_elf)
$(UPDATEMEM) -force \
-meminfo $(MMI_FILE) \
-bit $(IMPL_BITFILE) \
-data $(BINOUT) \
-data $(call map_experiment_elf) \
-proc dummy \
-out $(DOWNLOAD_BITFILE)
@rm updatemem.jou updatemem.log
Expand Down
2 changes: 1 addition & 1 deletion target/scale_lpc1114fn28/program/program.mk
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

program: $(HEX_OUT)
program: $(call map_experiment_hex)
lpc21isp -wipe -hex $< $(USB_PORT) $(USB_BAUD) 12000

2 changes: 1 addition & 1 deletion target/scale_lpc1313fbd48/program/program.mk
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

program: $(HEX_OUT)
program: $(call map_experiment_hex)
lpc21isp -wipe -hex $< $(USB_PORT) $(USB_BAUD) 12000

2 changes: 1 addition & 1 deletion target/scale_lpc812m101/program/program.mk
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@

program: $(HEX_OUT)
program: $(call map_experiment_hex)
lpc21isp -wipe -hex $< $(USB_PORT) $(USB_BAUD) 12000

12 changes: 12 additions & 0 deletions target/share/uas_main.c
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@

#include <stdlib.h>

#include "scass/scass_target.h"

#include "uas_bsp.h"
Expand All @@ -16,6 +18,16 @@ int main(int argc, char ** argv) {
// The main configuration object for target/host communication
scass_target_cfg scass_cfg;

scass_cfg.scass_experiment_pre_run = NULL;
scass_cfg.scass_experiment_post_run = NULL;

scass_cfg.experiment_cycles = 0;
scass_cfg.experiment_instrret = 0;

scass_cfg.randomness = NULL;
scass_cfg.randomness_len = 0;
scass_cfg.num_variables = 0;

scass_cfg.scass_io_rd_char = uas_bsp_uart_rd_char;
scass_cfg.scass_io_wr_char = uas_bsp_uart_wr_char;

Expand Down

0 comments on commit a931936

Please sign in to comment.