unstable
Penguin 3 years ago
commit 3a775f71dc

4
Cargo.lock generated

@ -181,6 +181,10 @@ dependencies = [
[[package]]
name = "igloo_agent"
version = "0.1.0"
dependencies = [
"igloo_base",
"igloo_core",
]
[[package]]
name = "igloo_base"

@ -7,3 +7,5 @@ edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
igloo_base = {path = "../igloo_base"}
igloo_core = {path = "../igloo_core"}

@ -0,0 +1,64 @@
use std::io::{BufRead, BufReader};
use std::process::{Command, Stdio};
use std::sync::mpsc::{channel, Sender};
use std::thread;
use igloo_base::*;
use igloo_core::igloo_target;
fn openocd_thread(sender: Sender<String>, child: std::process::Child)
{
let mut f = BufReader::new(child.stdout.unwrap());
loop
{
let mut buf = String::new();
match f.read_line(&mut buf)
{
Ok(_) =>
{
if !buf.is_empty()
{
sender.send(buf).unwrap();
}
}
Err(e) => println!("error: {:?}", e),
}
}
}
fn gdb_thread(sender: &Sender<String>, child: std::process::Child)
{
let mut f = BufReader::new(child.stdout.unwrap());
loop
{
let mut buf = String::new();
match f.read_line(&mut buf)
{
Ok(_) =>
{
if !buf.is_empty()
{
sender.send(buf).unwrap();
}
}
Err(e) => println!("error: {:?}", e),
}
}
}
fn start_openocd_listener(sender: Sender<String>, board_cfg_file: &str)
{
let child = Command::new("openocd")
.args(["-f", board_cfg_file])
.stdout(Stdio::piped())
.spawn()
.expect("Failed to start openocd process");
println!("Started openocd process: {}", child.id());
thread::spawn(move || openocd_thread(sender, child));
}
fn ia_push(target: &igloo_target::IglooTarget) -> Result<String, igloo_base::IglooErrType>
{
Ok(String::from("working"))
}

@ -1,4 +0,0 @@
fn main() {
println!("Hello, world!");
}

@ -6,7 +6,7 @@ extern crate config;
mod igloo_action;
mod igloo_project;
mod igloo_target;
pub mod igloo_target;
use igloo_base::*;
use igloo_base::IglooInstType::*;

@ -1,203 +0,0 @@
# ePenguin Generated Variables
PROJECT_NAME=testaz
TARGET_NAME=samd21j18a
TOOLCHAIN=${ESF_DIR}/toolchains/arm-none-eabi-toolchain/bin/arm-none-eabi
CC=${TOOLCHAIN}-gcc
CXX=${TOOLCHAIN}-g++
OBJCOPY=${TOOLCHAIN}-objcopy
OBJDUMP=${TOOLCHAIN}-objdump
GDB=${TOOLCHAIN}-gdb-py
SIZE=${TOOLCHAIN}-size
AS=${TOOLCHAIN}-as
MCPU=cortex-m0plus
MCU=__SAMD21J18A__
LD_PATH=../../../ESF/ld
LD_SCRIPT=$(LD_PATH)/samd21j18a_flash.ld
CFLAGS= \
-D$(MCU) \
-mcpu=$(MCPU) \
-x c \
-DDEBUG \
-Os \
-g3 \
-Wall \
-c \
-std=gnu99 \
$(DIR_INCLUDES) \
-MD -MP \
-MF$(QUOTE)$(@:%.o=%.d)$(QUOTE) \
-MT$(QUOTE)$(@:%.o=%.d)$(QUOTE) \
-MT$(QUOTE)$(@:%.o=%.o)$(QUOTE)
ELF_FLAGS= \
-Wl,--start-group -l m \
-Wl,--end-group -mthumb \
-Wl,-Map=$(QUOTE)$(PROJECT_NAME).map$(QUOTE) \
--specs=nano.specs \
-Wl,--gc-sections \
-T$(QUOTE)$(LD_SCRIPT)$(QUOTE) \
-L$(QUOTE)$(LD_PATH)$(QUOTE)
HEX_FLAGS= \
-R .eeprom \
-R .fuse \
-R .lock \
-R .signature
EEP_FLAGS= \
-j .eeprom --set-section-flags=.eeprom=alloc,load \
--change-section-lma \
.eeprom=0 \
--no-change-warnings
ifdef SystemRoot
SHELL = cmd.exe
MK_DIR = mkdir
else
ifeq ($(shell uname), Linux)
MK_DIR = mkdir -p
endif
ifeq ($(shell uname | cut -d _ -f 1), CYGWIN)
MK_DIR = mkdir -p
endif
ifeq ($(shell uname | cut -d _ -f 1), MINGW32)
MK_DIR = mkdir -p
endif
ifeq ($(shell uname | cut -d _ -f 1), MINGW64)
MK_DIR = mkdir -p
endif
ifeq ($(shell uname | cut -d _ -f 1), DARWIN)
MK_DIR = mkdir -p
endif
endif
SUB_DIRS+= \
src \
ESF/mcu/src
OBJS+= \
ESF/mcu/src/startup_samd21j18a.o \
ESF/mcu/src/system_samd21j18a.o \
src/main.o
OBJS_AS_ARGS+= \
$(QUOTE)ESF/mcu/src/startup_samd21j18a.o$(QUOTE) \
$(QUOTE)ESF/mcu/src/system_samd21j18a.o$(QUOTE) \
$(QUOTE)src/main.o$(QUOTE)
DIR_INCLUDES+= \
-I$(QUOTE)../../../ESF/common/inc$(QUOTE) \
-I$(QUOTE)../../../ESF/common/inc/cmsis$(QUOTE) \
-I$(QUOTE)../../../ESF/mcu/inc$(QUOTE) \
-I$(QUOTE)../../../inc$(QUOTE)
DEPS:=$(OBJS:%.o=%.d)
DEPS_AS_ARGS:=$(OBJS_AS_ARGS:%.o=%.d)
vpath %.c ../../../
vpath %.s ../../../
vpath %.S ../../../
.PHONY: debug clean
all:\
$(SUB_DIRS)\
$(PROJECT_NAME).elf\
$(PROJECT_NAME).bin\
$(PROJECT_NAME).hex\
$(PROJECT_NAME).eep\
$(PROJECT_NAME).lss
$(QUOTE)$(SIZE)$(QUOTE) $(QUOTE)$(PROJECT_NAME).elf$(QUOTE)
$(PROJECT_NAME).elf:\
$(OBJS)
$(QUOTE)$(CC)$(QUOTE) -o $@ $(OBJS_AS_ARGS) $(ELF_FLAGS)
$(PROJECT_NAME).bin:\
$(PROJECT_NAME).elf
$(QUOTE)$(OBJCOPY)$(QUOTE) -O binary $(QUOTE)$<$(QUOTE) $(QUOTE)$@$(QUOTE)
$(PROJECT_NAME).hex:\
$(PROJECT_NAME).elf
$(QUOTE)$(OBJCOPY)$(QUOTE) -O ihex $(HEX_FLAGS) $(QUOTE)$<$(QUOTE) $(QUOTE)$@$(QUOTE)
$(PROJECT_NAME).eep:\
$(PROJECT_NAME).elf
$(QUOTE)$(OBJCOPY)$(QUOTE) $(EEP_FLAGS) -O binary $(QUOTE)$<$(QUOTE) $(QUOTE)$@$(QUOTE) || exit 0
$(PROJECT_NAME).lss:\
$(PROJECT_NAME).elf
$(QUOTE)$(OBJDUMP)$(QUOTE) -h -S $(QUOTE)$<$(QUOTE) > $(QUOTE)$@$(QUOTE)
# Compiler targets
%.o: %.c
@echo Building file: $<
@echo ARM/GNU C Compiler
$(QUOTE)$(CC)$(QUOTE) $(CFLAGS) -o $(QUOTE)$@$(QUOTE) $(QUOTE)$<$(QUOTE)
@echo Finished building: $<
%.o: %.s
@echo Building file: $<
@echo ARM/GNU Assembler
$(QUOTE)$(AS)$(QUOTE) $(CFLAGS) -o $(QUOTE)$@$(QUOTE) $(QUOTE)$<$(QUOTE)
@echo Finished building: $<
%.o: %.S
@echo Building file: $<
@echo ARM/GNU Preprocessing Assembler
$(QUOTE)$(CC)$(QUOTE) $(CFLAGS) -o $(QUOTE)$@$(QUOTE) $(QUOTE)$<$(QUOTE)
@echo Finished building: $<
$(SUB_DIRS):
$(MK_DIR) $(QUOTE)$@$(QUOTE)
ifneq ($(MAKECMDGOALS),clean)
ifneq ($(strip $(DEPS)),)
-include $(DEPS)
endif
endif
clean:
@rm -f $(PROJECT_NAME).a
@rm -f $(PROJECT_NAME).lss
@rm -f $(PROJECT_NAME).srec
@rm -f $(PROJECT_NAME).map
@rm -f $(PROJECT_NAME).eep
@rm -f $(OBJS_AS_ARGS)
@rm -f $(DEPS_AS_ARGS)
@rm -f $(PROJECT_NAME).bin
@rm -f $(PROJECT_NAME).elf
@rm -f $(PROJECT_NAME).hex
debug:\
all
@$(GDB) $(PROJECT_NAME).elf -x $(QUOTE)scripts/debug.gdb$(QUOTE)
push:\
all
@echo $(QUOTE)$(QUOTE)
@echo $(QUOTE)Uploading $(PROJECT_NAME).elf...$(QUOTE)
@$(GDB) $(PROJECT_NAME).elf -x $(QUOTE)scripts/push.gdb$(QUOTE) >/dev/null
@echo $(QUOTE)$(QUOTE)$(PROJECT_NAME).elf $(QUOTE) uploaded!$(QUOTE)
@$(QUOTE)$(SIZE)$(QUOTE) $(QUOTE)$(PROJECT_NAME).elf$(QUOTE)
QUOTE:="

@ -1 +0,0 @@
/home/penguin/Documents/projects/ePenguin-Software-Framework/scripts/debug.gdb

@ -1 +0,0 @@
/home/penguin/Documents/projects/ePenguin-Software-Framework/scripts/push.gdb

@ -1,12 +0,0 @@
#
# ePenguin Generated OpenOCD Config Script
#
# Transport Select
source [find interface/jlink.cfg]
transport select swd
# Chip Information
set CHIPNAME samd21j18a
source [find target/at91samdXX.cfg]

@ -1 +0,0 @@
/home/penguin/Documents/projects/ePenguin-Software-Framework/arch/arm/SAMD21/SAMD21A/manifest/

@ -1 +0,0 @@
/home/penguin/Documents/projects/ePenguin-Software-Framework/arch/arm/common

@ -1 +0,0 @@
/home/penguin/Documents/projects/ePenguin-Software-Framework/arch/arm/SAMD21/SAMD21A/ld/

@ -1 +0,0 @@
/home/penguin/Documents/projects/ePenguin-Software-Framework/arch/arm/SAMD21/SAMD21A/mcu/

@ -1,3 +0,0 @@
#ifdef __SAMD21J18A__
#include "sam.h"
#endif

@ -1,7 +0,0 @@
#include "igloo.h"
int main()
{
return 0;
}
Loading…
Cancel
Save