diff options
author | Nao Pross <naopross@thearcway.org> | 2017-08-07 19:27:05 +0200 |
---|---|---|
committer | Nao Pross <naopross@thearcway.org> | 2017-08-07 19:27:05 +0200 |
commit | d0801b36b47d8f3da610597160fde92059fd7e62 (patch) | |
tree | f9f0e348145c3548433e60adbf459e784b909f96 /sw/linux/src | |
parent | filesystem structure intro and docs (diff) | |
download | z80uPC-d0801b36b47d8f3da610597160fde92059fd7e62.tar.gz z80uPC-d0801b36b47d8f3da610597160fde92059fd7e62.zip |
implementation for avr programmer
the programmer will receive the binary in blocks of defined size
by a program under sw/programmer/linux (moved from sw/linux).
Diffstat (limited to 'sw/linux/src')
-rw-r--r-- | sw/linux/src/main.c | 13 | ||||
-rw-r--r-- | sw/linux/src/makefile.am | 7 | ||||
-rw-r--r-- | sw/linux/src/serial.c | 42 | ||||
-rw-r--r-- | sw/linux/src/serial.h | 17 | ||||
-rw-r--r-- | sw/linux/src/ui.c | 90 | ||||
-rw-r--r-- | sw/linux/src/ui.h | 17 | ||||
-rwxr-xr-x | sw/linux/src/z80prog | bin | 34688 -> 0 bytes | |||
-rw-r--r-- | sw/linux/src/z80prog.ui | 222 |
8 files changed, 0 insertions, 408 deletions
diff --git a/sw/linux/src/main.c b/sw/linux/src/main.c deleted file mode 100644 index 769992a..0000000 --- a/sw/linux/src/main.c +++ /dev/null @@ -1,13 +0,0 @@ -#include "config.h" -#include "ui.h" - -#include <stdio.h> -#include <stdlib.h> -#include <stdbool.h> - -int main(int argc, char *argv[]) -{ - ui_init(&argc, &argv); - return 0; -} - diff --git a/sw/linux/src/makefile.am b/sw/linux/src/makefile.am deleted file mode 100644 index 492c3ec..0000000 --- a/sw/linux/src/makefile.am +++ /dev/null @@ -1,7 +0,0 @@ -bin_PROGRAMS = z80prog -z80prog_SOURCES = main.c ui.c serial.c - -z80prog_CFLAGS = -Wall -Werror -g $(gtk3_CFLAGS) -z80prog_LDADD = $(gtk3_LIBS) - -CLEANFILES = *~ diff --git a/sw/linux/src/serial.c b/sw/linux/src/serial.c deleted file mode 100644 index 564676b..0000000 --- a/sw/linux/src/serial.c +++ /dev/null @@ -1,42 +0,0 @@ -#include "serial.h" - -int serial_connect(const char *devpath, long baudrate) -{ - int fd; - struct termios tty; - // struct termios tty_old; - - // open device - if ((fd = open(devpath, O_RDWR | O_NOCTTY)) < 0) { - return -1; - } - - // set parameters - if (tcgetattr(fd, &tty) != 0) { - return -1; - } - - // TODO: update UI or add support for custom baudrate - // cfsetospeed(&tty, - // cfsetispeed(&tty, - - tty.c_cflag &= ~PARENB; // no parity - tty.c_cflag &= ~CSTOPB; // no stop bit - tty.c_cflag |= CS8; // 8 bit data - tty.c_cflag &= ~CRTSCTS; // no flow control - - tty.c_lflag = 0; // no signaling chars, no echo, no canonical processing - tty.c_oflag = 0; // no remapping, no delays - tty.c_cc[VMIN] = 0; // no block read - tty.c_cc[VTIME] = .5; // .5 seconds read timeout - - tty.c_cflag |= CREAD | CLOCAL; // turn on read and ignore ctrl lines - tty.c_iflag &= ~(IXON | IXOFF | IXANY); // turn off s/w flow ctrl - tty.c_lflag &= ~(ICANON | ECHO | ECHOE | ISIG); // make raw - tty.c_oflag &= ~OPOST; // make raw - - tcflush(fd , TCIFLUSH); - // if (tcsetaddr( - - return fd; -} diff --git a/sw/linux/src/serial.h b/sw/linux/src/serial.h deleted file mode 100644 index 6123e42..0000000 --- a/sw/linux/src/serial.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef __Z80PROG_SERIAL_H__ -#define __Z80PROG_SERIAL_H__ - -#include <stdio.h> -#include <stdlib.h> -#include <stdint.h> -#include <unistd.h> -#include <fcntl.h> -#include <termios.h> - -int serial_connect(const char *devpath, long baudrate); -void serial_close(int fd); - -void serial_program(const char *rompath); -void serial_read_rom(const char *rom); - -#endif diff --git a/sw/linux/src/ui.c b/sw/linux/src/ui.c deleted file mode 100644 index b33aa04..0000000 --- a/sw/linux/src/ui.c +++ /dev/null @@ -1,90 +0,0 @@ -#include "ui.h" - -static bool ui_connected, ui_fileset; -static GtkTextBuffer *ui_logbuf; -static GtkBuilder *ui_builder; - -void ui_init(int *argc, char **argv[]) -{ - GtkWindow *window; - GtkTextView *logview; - GtkFileChooserButton *filechoosebtn; - GtkButton *connectbtn, *flashbtn; - - /* set ui global variables */ - ui_connected = ui_fileset = false; - - /* start gtk */ - gtk_init(argc, argv); - - /* load glade gtk ui */ - ui_builder = gtk_builder_new(); - gtk_builder_add_from_file(ui_builder, "gbprog.ui", NULL); - - /* connect logger buffer (extern variable) */ - ui_logbuf = gtk_text_buffer_new(NULL); - logview = GTK_TEXT_VIEW(gtk_builder_get_object(ui_builder, "logview")); - - gtk_text_view_set_buffer(logview, ui_logbuf); - - /* connect objects to function calls */ - // window - window = GTK_WINDOW(gtk_builder_get_object(ui_builder, "window")); - g_signal_connect(window, "destroy", G_CALLBACK(gtk_main_quit), NULL); - - // connectbtn - connectbtn = GTK_BUTTON(gtk_builder_get_object(ui_builder, "flashbtn")); - g_signal_connect(connectbtn, "clicked", - G_CALLBACK(ui_connect_clicked), NULL); - - // flashbtn - flashbtn = GTK_BUTTON(gtk_builder_get_object(ui_builder, "flashbtn")); - g_signal_connect(flashbtn, "clicked", G_CALLBACK(ui_flash_clicked), NULL); - - // file chooser - filechoosebtn = GTK_FILE_CHOOSER_BUTTON( - gtk_builder_get_object(ui_builder, "filechoosebtn")); - g_signal_connect(filechoosebtn, "file-set", G_CALLBACK(ui_file_set), NULL); - - /* start gtk window */ - gtk_main(); -} - -void ui_log(const char *msg, char type) -{ - GtkTextIter end; - gchar typech[4] = "[ ] "; - - switch (type) { - case 'm': typech[1] = '@'; break; // message - case 'w': typech[1] = '#'; break; // warning - case 'e': typech[1] = '!'; break; // error - } - - gtk_text_buffer_get_end_iter(ui_logbuf, &end); - gtk_text_buffer_insert(ui_logbuf, &end, typech, 4); - gtk_text_buffer_get_end_iter(ui_logbuf, &end); - gtk_text_buffer_insert(ui_logbuf, &end, (const gchar *) msg, strlen(msg)); -} - -void ui_file_set(GtkFileChooserButton *btn, gpointer user_data) -{ - GtkEntry *filepath = - GTK_ENTRY(gtk_builder_get_object(ui_builder, "filepath")); - - gtk_entry_set_text(filepath, - gtk_file_chooser_get_filename(GTK_FILE_CHOOSER(btn))); - - ui_log("File set\n", 'm'); - ui_fileset = true; -} - -void ui_connect_clicked(void) -{ - -} - -void ui_flash_clicked(void) -{ - -} diff --git a/sw/linux/src/ui.h b/sw/linux/src/ui.h deleted file mode 100644 index 44314d6..0000000 --- a/sw/linux/src/ui.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef __Z80PROG_UI_H__ -#define __Z80PROG_UI_H_ - -#include <stdbool.h> -#include <string.h> - -#include <gtk/gtk.h> - -void ui_init(int *argc, char **argv[]); -void ui_log(const char *msg, char type); - -void ui_file_set(GtkFileChooserButton *btn, gpointer user_data); - -void ui_connect_clicked(void); -void ui_flash_clicked(void); - -#endif diff --git a/sw/linux/src/z80prog b/sw/linux/src/z80prog Binary files differdeleted file mode 100755 index 878683b..0000000 --- a/sw/linux/src/z80prog +++ /dev/null diff --git a/sw/linux/src/z80prog.ui b/sw/linux/src/z80prog.ui deleted file mode 100644 index 3735efa..0000000 --- a/sw/linux/src/z80prog.ui +++ /dev/null @@ -1,222 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.20.0 --> -<interface> - <requires lib="gtk+" version="3.12"/> - <object class="GtkAdjustment" id="baudrateadjust"> - <property name="upper">1000000</property> - <property name="value">9600</property> - <property name="step_increment">1</property> - <property name="page_increment">10</property> - </object> - <object class="GtkFileFilter" id="gbbinfilter"> - <patterns> - <pattern>*.bin</pattern> - <pattern>*.gb</pattern> - <pattern>*.gba</pattern> - <pattern>*.gbc</pattern> - <pattern>*.hex</pattern> - </patterns> - </object> - <object class="GtkWindow" id="window"> - <property name="width_request">450</property> - <property name="height_request">250</property> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="title" translatable="yes">Z80 ROM Programmer</property> - <property name="default_width">450</property> - <property name="default_height">200</property> - <child> - <object class="GtkBox" id="mainbox"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="margin_left">10</property> - <property name="margin_right">10</property> - <property name="margin_top">10</property> - <property name="margin_bottom">10</property> - <property name="orientation">vertical</property> - <property name="spacing">10</property> - <child> - <object class="GtkBox" id="devbox"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="spacing">10</property> - <child> - <object class="GtkEntry" id="devpath"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="placeholder_text" translatable="yes">Enter path</property> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkSpinButton" id="devbaudrate"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="width_chars">0</property> - <property name="max_width_chars">7</property> - <property name="overwrite_mode">True</property> - <property name="placeholder_text" translatable="yes">9600</property> - <property name="input_purpose">number</property> - <property name="adjustment">baudrateadjust</property> - <property name="climb_rate">10</property> - <property name="snap_to_ticks">True</property> - <property name="numeric">True</property> - <property name="update_policy">if-valid</property> - <property name="value">9600</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkButton" id="connectbtn"> - <property name="label">gtk-connect</property> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - <property name="use_stock">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">2</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkBox" id="filebox"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="spacing">10</property> - <child> - <object class="GtkEntry" id="filepath"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="placeholder_text" translatable="yes">Binary Path</property> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkFileChooserButton" id="filechoosebtn"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="filter">gbbinfilter</property> - <property name="title" translatable="yes"/> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - <child> - <object class="GtkBox" id="flashbox"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="orientation">vertical</property> - <property name="spacing">10</property> - <child> - <object class="GtkProgressBar" id="flashbar"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="show_text">True</property> - <property name="ellipsize">start</property> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">0</property> - </packing> - </child> - <child> - <object class="GtkButton" id="flashbtn"> - <property name="label" translatable="yes">Flash</property> - <property name="visible">True</property> - <property name="sensitive">False</property> - <property name="can_focus">True</property> - <property name="receives_default">True</property> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">1</property> - </packing> - </child> - </object> - <packing> - <property name="expand">False</property> - <property name="fill">True</property> - <property name="position">2</property> - </packing> - </child> - <child> - <object class="GtkScrolledWindow" id="logscrolled"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="shadow_type">in</property> - <child> - <object class="GtkViewport" id="logviewport"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <child> - <object class="GtkExpander" id="logexpander"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="expanded">True</property> - <property name="label_fill">True</property> - <property name="resize_toplevel">True</property> - <child> - <object class="GtkTextView" id="logview"> - <property name="visible">True</property> - <property name="can_focus">True</property> - <property name="hexpand">True</property> - <property name="vexpand">True</property> - <property name="editable">False</property> - <property name="monospace">True</property> - </object> - </child> - <child type="label"> - <object class="GtkLabel" id="loglabel"> - <property name="visible">True</property> - <property name="can_focus">False</property> - <property name="label" translatable="yes">Logs</property> - </object> - </child> - </object> - </child> - </object> - </child> - </object> - <packing> - <property name="expand">True</property> - <property name="fill">True</property> - <property name="position">4</property> - </packing> - </child> - </object> - </child> - </object> -</interface> |