Commit bf1b2e1942746e359bafc3568aca9e8e7a7cdcce
authorMichel Pollet <buserror@gmail.com>
Wed, 17 Jan 2018 09:18:48 +0000 (09:18 +0000)
committerMichel Pollet <buserror@gmail.com>
Wed, 17 Jan 2018 09:18:48 +0000 (09:18 +0000)
Backported more bits, updated licences, etc.

Signed-off-by: Michel Pollet <buserror@gmail.com>
12 files changed:
shavr/src/hcmd_adc.c
shavr/src/hcmd_symbols.c
shavr/src/history.c
shavr/src/history.h
shavr/src/history_avr.c
shavr/src/history_avr.h
shavr/src/shavr.c
shavr/src/sim_args.c
shavr/src/sim_args.h
shavr/src/sim_prepare.c
shavr/src/uart_pty.c
shavr/src/uart_pty.h

index 4bdd3d73e847ead1f2e9621c9843bfee97b00cc3..97372d0d2123dafc8a707a9e77c5c8fde546716a 100644 (file)
@@ -1,8 +1,22 @@
-/*
- * hcmd_adc.c
- *
- *  Created on: 15 Oct 2015
- *      Author: michel
+/* vim: ts=4
+       hcmd_adc.c
+
+       Copyright 2017 Michel Pollet <buserror@gmail.com>
+
+       This file is part of simavr.
+
+       simavr is free software: you can redistribute it and/or modify
+       it under the terms of the GNU General Public License as published by
+       the Free Software Foundation, either version 3 of the License, or
+       (at your option) any later version.
+
+       simavr is distributed in the hope that it will be useful,
+       but WITHOUT ANY WARRANTY; without even the implied warranty of
+       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+       GNU General Public License for more details.
+
+       You should have received a copy of the GNU General Public License
+       along with simavr.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <stdlib.h>
index 0cf4c8fd68dd413ad0141cd4e8f3a425aac7ff9d..80e5c585f2bc1d9c7b1e7afcfdc3299f9bc8f7a9 100644 (file)
@@ -1,8 +1,22 @@
-/*
- * hcmd_symbols.c
- *
- *  Created on: 15 Oct 2015
- *      Author: michel
+/* vim: ts=4
+       hcmd_symbols.c
+
+       Copyright 2017 Michel Pollet <buserror@gmail.com>
+
+       This file is part of simavr.
+
+       simavr is free software: you can redistribute it and/or modify
+       it under the terms of the GNU General Public License as published by
+       the Free Software Foundation, either version 3 of the License, or
+       (at your option) any later version.
+
+       simavr is distributed in the hope that it will be useful,
+       but WITHOUT ANY WARRANTY; without even the implied warranty of
+       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+       GNU General Public License for more details.
+
+       You should have received a copy of the GNU General Public License
+       along with simavr.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <stdlib.h>
@@ -14,6 +28,8 @@
 
 #include "history_avr.h"
 
+extern elf_firmware_t *code;
+
 static const char *
 demangle(
                const char *symbol)
@@ -34,12 +50,12 @@ _locate_sym(
 {
        int size = 1;
        avr_symbol_t * sym = NULL;
-       for (int i = 0; i < code.symbolcount && !sym; i++) {
-               if (!strcmp(demangle(code.symbol[i]->symbol), name)) {
-                       sym = code.symbol[i];
-                       if (i < code.symbolcount-1) {
-                               if ((code.symbol[i+1]->addr >> 16) == (sym->addr >> 16)) {
-                                       size = code.symbol[i+1]->addr - sym->addr;
+       for (int i = 0; i < code->symbolcount && !sym; i++) {
+               if (!strcmp(demangle(code->symbol[i]->symbol), name)) {
+                       sym = code->symbol[i];
+                       if (i < code->symbolcount-1) {
+                               if ((code->symbol[i+1]->addr >> 16) == (sym->addr >> 16)) {
+                                       size = code->symbol[i+1]->addr - sym->addr;
                                //      printf("deduced size %d\r\n", size);
                                }
                        }
@@ -160,12 +176,12 @@ _cmd_dump(
 {
        int size = 1;
        avr_symbol_t * sym = NULL;
-       for (int i = 0; i < code.symbolcount; i++) {
-               sym = code.symbol[i];
+       for (int i = 0; i < code->symbolcount; i++) {
+               sym = code->symbol[i];
                size = 0;
-               if (i < code.symbolcount-1) {
-                       if ((code.symbol[i+1]->addr >> 16) == (sym->addr >> 16))
-                               size = code.symbol[i+1]->addr - sym->addr;
+               if (i < code->symbolcount-1) {
+                       if ((code->symbol[i+1]->addr >> 16) == (sym->addr >> 16))
+                               size = code->symbol[i+1]->addr - sym->addr;
                }
                if ((sym->addr >> 16) == 0x80 &&
                                        strncmp(sym->symbol, "__", 2) &&
index 812697a9edf377caa1c58881968ffaef4850f3af..4b11fe5cefdb6c9a8344aa1acade5c20d9e43baf 100644 (file)
@@ -1,8 +1,22 @@
-/*
- * history.c
- *
- *  Created on: 15 Oct 2015
- *      Author: michel
+/* vim: ts=4
+       history.c
+
+       Copyright 2017 Michel Pollet <buserror@gmail.com>
+
+       This file is part of simavr.
+
+       simavr is free software: you can redistribute it and/or modify
+       it under the terms of the GNU General Public License as published by
+       the Free Software Foundation, either version 3 of the License, or
+       (at your option) any later version.
+
+       simavr is distributed in the hope that it will be useful,
+       but WITHOUT ANY WARRANTY; without even the implied warranty of
+       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+       GNU General Public License for more details.
+
+       You should have received a copy of the GNU General Public License
+       along with simavr.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #include <stdlib.h>
index 2048c4c390494f3125f6c664247f80245430158c..bcb211dfa4809b9867b7bffcb889f0d472df3e24 100644 (file)
@@ -1,8 +1,22 @@
-/*
- * history.h
- *
- *  Created on: 15 Oct 2015
- *      Author: michel
+/* vim: ts=4
+       history.h
+
+       Copyright 2017 Michel Pollet <buserror@gmail.com>
+
+       This file is part of simavr.
+
+       simavr is free software: you can redistribute it and/or modify
+       it under the terms of the GNU General Public License as published by
+       the Free Software Foundation, either version 3 of the License, or
+       (at your option) any later version.
+
+       simavr is distributed in the hope that it will be useful,
+       but WITHOUT ANY WARRANTY; without even the implied warranty of
+       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+       GNU General Public License for more details.
+
+       You should have received a copy of the GNU General Public License
+       along with simavr.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef HISTORY_H_
index 6a670727fb01025fc583a32902e693917ad02b7c..b3aad918c3a015acde8870a5756119780603d0a3 100644 (file)
@@ -1,10 +1,23 @@
-/*
* hcmd_misc.c
- *
- *  Created on: 15 Oct 2015
- *      Author: michel
- */
+/* vim: ts=4
      history_avr.c
+
+       Copyright 2017 Michel Pollet <buserror@gmail.com>
+
+       This file is part of simavr.
 
+       simavr is free software: you can redistribute it and/or modify
+       it under the terms of the GNU General Public License as published by
+       the Free Software Foundation, either version 3 of the License, or
+       (at your option) any later version.
+
+       simavr is distributed in the hope that it will be useful,
+       but WITHOUT ANY WARRANTY; without even the implied warranty of
+       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+       GNU General Public License for more details.
+
+       You should have received a copy of the GNU General Public License
+       along with simavr.  If not, see <http://www.gnu.org/licenses/>.
+ */
 
 #include <stdlib.h>
 #include <stdio.h>
index 0ed153c0c9882e8d96cc7abfc266145b7e5bc4d3..f49986b72fd258ff0c39b388e94e63d81957d35a 100644 (file)
@@ -1,8 +1,22 @@
-/*
- * history_avr.h
- *
- *  Created on: 18 Oct 2015
- *      Author: michel
+/* vim: ts=4
+       history_avr.h
+
+       Copyright 2018 Michel Pollet <buserror@gmail.com>
+
+       This file is part of simavr.
+
+       simavr is free software: you can redistribute it and/or modify
+       it under the terms of the GNU General Public License as published by
+       the Free Software Foundation, either version 3 of the License, or
+       (at your option) any later version.
+
+       simavr is distributed in the hope that it will be useful,
+       but WITHOUT ANY WARRANTY; without even the implied warranty of
+       MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+       GNU General Public License for more details.
+
+       You should have received a copy of the GNU General Public License
+       along with simavr.  If not, see <http://www.gnu.org/licenses/>.
  */
 
 #ifndef _HISTORY_AVR_H_
 #include "history.h"
 #include "history_cmd.h"
 
-extern elf_firmware_t code;
-
 extern avr_t * avr;
-
 extern int history_redisplay;
 
 void history_avr_init();
index 5d75790f21b8efdef55a727b4dd6b63c6d6ec7c1..ac29e9a509a930d750bd4862335818d67fb3315f 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/* vim: ts=4
        shavr.c
 
        Copyright 2017 Michel Pollet <buserror@gmail.com>
 #include "sim_vcd_file.h"
 
 #include "sim_args.h"
+#include "history_avr.h"
 
 uart_pty_t uart_pty;
 avr_t * avr = NULL;
 avr_vcd_t vcd_file;
-elf_firmware_t code;// = {0};
+elf_firmware_t *code = NULL;
 
 avr_t *
 sim_prepare(
-       sim_args_t * a );
+       sim_args_t * a ); // TODO: Move to a header
 
 
 typedef struct avr_flash_desc_t {
@@ -101,6 +102,16 @@ avr_special_deinit(
        uart_pty_stop(&uart_pty);
 }
 
+static void *
+avr_run_thread(
+               void * ignore)
+{
+       while (1) {
+               avr_run(avr);
+       }
+       return NULL;
+}
+
 int
 main(
                int argc,
@@ -119,23 +130,28 @@ main(
                exit(1);
        }
        if (args.flash_file[0]) {
-               strncpy(flash_data.avr_flash_path, args.flash_file, sizeof(flash_data.avr_flash_path));
+               strncpy(flash_data.avr_flash_path,
+                       args.flash_file,
+                       sizeof(flash_data.avr_flash_path));
                flash_data.avr_flash_fd = 0;
                // register our own functions
                avr->custom.init = avr_special_init;
                avr->custom.deinit = avr_special_deinit;
                avr->custom.data = &flash_data;
        }
-       avr_init(avr);
 
        uart_pty_init(avr, &uart_pty);
        uart_pty_connect(&uart_pty, '0');
 
+       code = &args.f;
+
+       history_avr_init();
+
+//     pthread_t run;
+       //pthread_create(&run, NULL, avr_run_thread, NULL);
+
        printf("Running...\n");
        while (1) {
-               int state = avr_run(avr);
-               if ( state == cpu_Done || state == cpu_Crashed)
-                       break;
+               history_avr_idle();
        }
-
 }
index 4fda3eff30bd3de0dc573f19434aeac7b8ed46bd..4fe31dd6f519aad3aaa9e7283d6a799437932410 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/* vim: ts=4
        sim_args.c
 
        Copyright 2017 Michel Pollet <buserror@gmail.com>
index 5365af5309be4e5dc09c1b6f8f3e43f509e1ef8a..0c68bb0e69928f68faed06460afc812f673af704 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/* vim: ts=4
        sim_args.h
 
        Copyright 2017 Michel Pollet <buserror@gmail.com>
index 80c6c75e9e8a57b3a8a809db2d2f6f061809e0a0..650d46b21faffe3b1d6065d578a90d4829ae9e1e 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/* vim: ts=4
        sim_prepare.c
 
        Copyright 2017 Michel Pollet <buserror@gmail.com>
index 4f4edd0826453a37ae8af1feb01f3575d3c17e3a..e376a3470241cfa140ce90e32732f78be39c0b7c 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/* vim: ts=4
        uart_pty.c
 
        Copyright 2008, 2009 Michel Pollet <buserror@gmail.com>
index c6e0603aada6791457c567ae8e3e0676c062b4b7..a5f9684ff023a0dc4879d5785b0914fa656270bb 100644 (file)
@@ -1,4 +1,4 @@
-/*
+/* vim: ts=4
        uart_pty.h
 
        Copyright 2012 Michel Pollet <buserror@gmail.com>