ns430: setup for ubuntu 12.04 mspgcc version
authorDan White <dan@whiteaudio.com>
Fri, 12 Apr 2013 22:54:16 +0000 (17:54 -0500)
committerDan White <dan@whiteaudio.com>
Fri, 12 Apr 2013 22:54:16 +0000 (17:54 -0500)
mmap2x.sh [new file with mode: 0755]
msp4th/Makefile
msp4th/ldscript_ns430
msp4th/main.c
msp4th/ns430.h

diff --git a/mmap2x.sh b/mmap2x.sh
new file mode 100755 (executable)
index 0000000..ef884a4
--- /dev/null
+++ b/mmap2x.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+# Extract header definitions from the memory map
+# e.g. #FOO_NAME = 4002h
+# transform to assembler equ's
+egrep -o '#.*' $1 \
+    | cut -c 2- \
+    | tr -d =h \
+    | awk '{print "__" $1 " = 0x" $2 ";"}'
+
index 6a9be9099a817e3462eee103e1f91a6f45869d45..1ad3d460c1f39a7d6207c4c1127f547c92005810 100644 (file)
@@ -12,7 +12,8 @@ SHELL = /bin/bash
 
 TARGET     = main
 #MCU        = msp430f5529
-MCU        = msp2
+MCU        = msp1
+#MCU        = msp430x2013
 # List all the source files here
 # eg if you have a source file foo.c then list it here
 SOURCES = main.c ns430-uart.c msp4th.c
@@ -22,9 +23,11 @@ INCLUDES = -I.
 # Add or subtract whatever MSPGCC flags you want. There are plenty more
 #######################################################################################
 #CFLAGS   = -mmcu=$(MCU) -g -Os -Wall -Wunused $(INCLUDES)   
-CFLAGS   = -mmcu=$(MCU) -Werror -Wall -Wunused -mendup-at=main $(INCLUDES)
+#CFLAGS   = -mmcu=$(MCU) -Werror -Wall -Wunused -mendup-at=main $(INCLUDES)
+CFLAGS   = -mmcu=$(MCU) -g -Os -Werror -Wall -Wunused $(INCLUDES)
 #ASFLAGS  = -mmcu=$(MCU) -x assembler-with-cpp -Wa,-gstabs
-ASFLAGS  = -mmcu=$(MCU) -Wall -Wunused -mendup-at=main $(INCLUDES)
+#ASFLAGS  = -mmcu=$(MCU) -Wall -Wunused -mendup-at=main $(INCLUDES)
+ASFLAGS  = -mmcu=$(MCU) -g -Os -Wall -Wunused $(INCLUDES)
 LDFLAGS  = -mmcu=$(MCU) -Wl,-Map=$(TARGET).map -T ldscript_ns430
 ########################################################################################
 CC       = msp430-gcc
index a0f26e5473afeec516aeb5b97cc286f068725cfd..8480b889cb0e0d3b01d0b5c8ed1705fed0bf763d 100644 (file)
-/* Default linker script, for normal executables */\r
-OUTPUT_FORMAT("elf32-msp430","elf32-msp430","elf32-msp430")\r
-OUTPUT_ARCH(msp:20)\r
-MEMORY\r
-{\r
-  text   (rx)          : ORIGIN = 0x4000, LENGTH = 0x3FE0\r
-  data   (rwx)         : ORIGIN = 0x4000, LENGTH = 0x3FE0\r
-  vectors (rw)         : ORIGIN = 0xFFE0, LENGTH = 64\r
-  bootloader(rx)       : ORIGIN = 0x0800, LENGTH = 2048\r
-  infomem(rx)          : ORIGIN = 0x0000, LENGTH = 256\r
-  infomemnobits(rx)    : ORIGIN = 0x0100, LENGTH = 256\r
-}\r
-SECTIONS\r
-{\r
-  /* Read-only sections, merged into text segment.  */\r
-  .hash          : { *(.hash)             }\r
-  .dynsym        : { *(.dynsym)           }\r
-  .dynstr        : { *(.dynstr)           }\r
-  .gnu.version   : { *(.gnu.version)      }\r
-  .gnu.version_d   : { *(.gnu.version_d)  }\r
-  .gnu.version_r   : { *(.gnu.version_r)  }\r
-  .rel.init      : { *(.rel.init) }\r
-  .rela.init     : { *(.rela.init) }\r
-  .rel.text      :\r
-    {\r
-      *(.rel.text)\r
-      *(.rel.text.*)\r
-      *(.rel.gnu.linkonce.t*)\r
-    }\r
-  .rela.text     :\r
-    {\r
-      *(.rela.text)\r
-      *(.rela.text.*)\r
-      *(.rela.gnu.linkonce.t*)\r
-    }\r
-  .rel.fini      : { *(.rel.fini) }\r
-  .rela.fini     : { *(.rela.fini) }\r
-  .rel.rodata    :\r
-    {\r
-      *(.rel.rodata)\r
-      *(.rel.rodata.*)\r
-      *(.rel.gnu.linkonce.r*)\r
-    }\r
-  .rela.rodata   :\r
-    {\r
-      *(.rela.rodata)\r
-      *(.rela.rodata.*)\r
-      *(.rela.gnu.linkonce.r*)\r
-    }\r
-  .rel.data      :\r
-    {\r
-      *(.rel.data)\r
-      *(.rel.data.*)\r
-      *(.rel.gnu.linkonce.d*)\r
-    }\r
-  .rela.data     :\r
-    {\r
-      *(.rela.data)\r
-      *(.rela.data.*)\r
-      *(.rela.gnu.linkonce.d*)\r
-    }\r
-  .rel.ctors     : { *(.rel.ctors)        }\r
-  .rela.ctors    : { *(.rela.ctors)       }\r
-  .rel.dtors     : { *(.rel.dtors)        }\r
-  .rela.dtors    : { *(.rela.dtors)       }\r
-  .rel.got       : { *(.rel.got)          }\r
-  .rela.got      : { *(.rela.got)         }\r
-  .rel.bss       : { *(.rel.bss)          }\r
-  .rela.bss      : { *(.rela.bss)         }\r
-  .rel.plt       : { *(.rel.plt)          }\r
-  .rela.plt      : { *(.rela.plt)         }\r
-  /* Internal text space.  */\r
-  .text :\r
-  {\r
-    . = ALIGN(2);\r
-    *(.init)\r
-    *(.init0)  /* Start here after reset.  */\r
-    *(.init1)\r
-    *(.init2)  /* Copy data loop  */\r
-    *(.init3)\r
-    *(.init4)  /* Clear bss  */\r
-    *(.init5)\r
-    *(.init6)  /* C++ constructors.  */\r
-    *(.init7)\r
-    *(.init8)\r
-    *(.init9)  /* Call main().  */\r
-     __ctors_start = . ;\r
-     *(.ctors)\r
-     __ctors_end = . ;\r
-     __dtors_start = . ;\r
-     *(.dtors)\r
-     __dtors_end = . ;\r
-    . = ALIGN(2);\r
-    *(.text)\r
-    . = ALIGN(2);\r
-    *(.text.*)\r
-    . = ALIGN(2);\r
-    *(.fini9)  /*   */\r
-    *(.fini8)\r
-    *(.fini7)\r
-    *(.fini6)  /* C++ destructors.  */\r
-    *(.fini5)\r
-    *(.fini4)\r
-    *(.fini3)\r
-    *(.fini2)\r
-    *(.fini1)\r
-    *(.fini0)  /* Infinite loop after program termination.  */\r
-    *(.fini)\r
-    _etext = .;\r
-  }  > text\r
-  .data   : AT (ADDR (.text) + SIZEOF (.text))\r
-  {\r
-     PROVIDE (__data_start = .) ;\r
-    . = ALIGN(2);\r
-    *(.data)\r
-    . = ALIGN(2);\r
-    *(.gnu.linkonce.d*)\r
-    . = ALIGN(2);\r
-     _edata = . ;\r
-  }  > data\r
-   PROVIDE (__data_load_start = LOADADDR(.data) );\r
-   PROVIDE (__data_size = SIZEOF(.data) );\r
-  /* Bootloader.  */\r
-  .bootloader   :\r
-  {\r
-     PROVIDE (__boot_start = .) ;\r
-    *(.bootloader)\r
-    . = ALIGN(2);\r
-    *(.bootloader.*)\r
-  }  > bootloader\r
-  /* Information memory.  */\r
-  .infomem   :\r
-  {\r
-    *(.infomem)\r
-    . = ALIGN(2);\r
-    *(.infomem.*)\r
-  }  > infomem\r
-  /* Information memory (not loaded into MPU).  */\r
-  .infomemnobits   :\r
-  {\r
-    *(.infomemnobits)\r
-    . = ALIGN(2);\r
-    *(.infomemnobits.*)\r
-  }  > infomemnobits\r
-  .bss  SIZEOF(.data) + ADDR(.data) :\r
-  {\r
-     PROVIDE (__bss_start = .) ;\r
-    *(.bss)\r
-    *(COMMON)\r
-     PROVIDE (__bss_end = .) ;\r
-     _end = . ;\r
-  }  > data\r
-   PROVIDE (__bss_size = SIZEOF(.bss) );\r
-  .noinit  SIZEOF(.bss) + ADDR(.bss) :\r
-  {\r
-     PROVIDE (__noinit_start = .) ;\r
-    *(.noinit)\r
-    *(COMMON)\r
-     PROVIDE (__noinit_end = .) ;\r
-     _end = . ;\r
-  }  > data\r
-  .vectors  :\r
-  {\r
-     PROVIDE (__vectors_start = .) ;\r
-    *(.vectors*)\r
-     _vectors_end = . ;\r
-  }  > vectors\r
-\r
-  /* Stabs for profiling information*/\r
-  .profiler 0 : { *(.profiler) }\r
-  /* Stabs debugging sections.  */\r
-  .stab 0 : { *(.stab) }\r
-  .stabstr 0 : { *(.stabstr) }\r
-  .stab.excl 0 : { *(.stab.excl) }\r
-  .stab.exclstr 0 : { *(.stab.exclstr) }\r
-  .stab.index 0 : { *(.stab.index) }\r
-  .stab.indexstr 0 : { *(.stab.indexstr) }\r
-  .comment 0 : { *(.comment) }\r
-  /* DWARF debug sections.\r
-     Symbols in the DWARF debugging sections are relative to the beginning\r
-     of the section so we begin them at 0.  */\r
-  /* DWARF 1 */\r
-  .debug          0 : { *(.debug) }\r
-  .line           0 : { *(.line) }\r
-  /* GNU DWARF 1 extensions */\r
-  .debug_srcinfo  0 : { *(.debug_srcinfo) }\r
-  .debug_sfnames  0 : { *(.debug_sfnames) }\r
-  /* DWARF 1.1 and DWARF 2 */\r
-  .debug_aranges  0 : { *(.debug_aranges) }\r
-  .debug_pubnames 0 : { *(.debug_pubnames) }\r
-  /* DWARF 2 */\r
-  .debug_info     0 : { *(.debug_info) *(.gnu.linkonce.wi.*) }\r
-  .debug_abbrev   0 : { *(.debug_abbrev) }\r
-  .debug_line     0 : { *(.debug_line) }\r
-  .debug_frame    0 : { *(.debug_frame) }\r
-  .debug_str      0 : { *(.debug_str) }\r
-  .debug_loc      0 : { *(.debug_loc) }\r
-  .debug_macinfo  0 : { *(.debug_macinfo) }\r
-  PROVIDE (__stack = ORIGIN(data) + LENGTH(data) - 1) ;\r
-  PROVIDE (__data_start_rom = _etext) ;\r
-  PROVIDE (__data_end_rom   = _etext + SIZEOF (.data)) ;\r
-  PROVIDE (__noinit_start_rom = _etext + SIZEOF (.data)) ;\r
-  PROVIDE (__noinit_end_rom = _etext + SIZEOF (.data) + SIZEOF (.noinit)) ;\r
-  PROVIDE (__subdevice_has_heap = 0) ;\r
-}\r
+/* Default linker script, for normal executables */
+OUTPUT_FORMAT("elf32-msp430","elf32-msp430","elf32-msp430")
+OUTPUT_ARCH(msp)
+MEMORY
+{
+  text   (rx)          : ORIGIN = 0x4000, LENGTH = 0x3FE0
+  data   (rwx)         : ORIGIN = 0x4000, LENGTH = 0x3FE0
+  vectors (rw)         : ORIGIN = 0xFFE0, LENGTH = 64
+  bootloader(rx)       : ORIGIN = 0x0800, LENGTH = 2048
+  infomem(rx)          : ORIGIN = 0x0000, LENGTH = 256
+  infomemnobits(rx)    : ORIGIN = 0x0100, LENGTH = 256
+}
+SECTIONS
+{
+  /* Read-only sections, merged into text segment.  */
+  .hash          : { *(.hash)             }
+  .dynsym        : { *(.dynsym)           }
+  .dynstr        : { *(.dynstr)           }
+  .gnu.version   : { *(.gnu.version)      }
+  .gnu.version_d   : { *(.gnu.version_d)  }
+  .gnu.version_r   : { *(.gnu.version_r)  }
+  .rel.init      : { *(.rel.init) }
+  .rela.init     : { *(.rela.init) }
+  .rel.text      :
+    {
+      *(.rel.text)
+      *(.rel.text.*)
+      *(.rel.gnu.linkonce.t*)
+    }
+  .rela.text     :
+    {
+      *(.rela.text)
+      *(.rela.text.*)
+      *(.rela.gnu.linkonce.t*)
+    }
+  .rel.fini      : { *(.rel.fini) }
+  .rela.fini     : { *(.rela.fini) }
+  .rel.rodata    :
+    {
+      *(.rel.rodata)
+      *(.rel.rodata.*)
+      *(.rel.gnu.linkonce.r*)
+    }
+  .rela.rodata   :
+    {
+      *(.rela.rodata)
+      *(.rela.rodata.*)
+      *(.rela.gnu.linkonce.r*)
+    }
+  .rel.data      :
+    {
+      *(.rel.data)
+      *(.rel.data.*)
+      *(.rel.gnu.linkonce.d*)
+    }
+  .rela.data     :
+    {
+      *(.rela.data)
+      *(.rela.data.*)
+      *(.rela.gnu.linkonce.d*)
+    }
+  .rel.ctors     : { *(.rel.ctors)        }
+  .rela.ctors    : { *(.rela.ctors)       }
+  .rel.dtors     : { *(.rel.dtors)        }
+  .rela.dtors    : { *(.rela.dtors)       }
+  .rel.got       : { *(.rel.got)          }
+  .rela.got      : { *(.rela.got)         }
+  .rel.bss       : { *(.rel.bss)          }
+  .rela.bss      : { *(.rela.bss)         }
+  .rel.plt       : { *(.rel.plt)          }
+  .rela.plt      : { *(.rela.plt)         }
+  /* Internal text space.  */
+  .text :
+  {
+    . = ALIGN(2);
+    *(.init)
+    *(.init0)  /* Start here after reset.  */
+    *(.init1)
+    *(.init2)  /* Copy data loop  */
+    *(.init3)
+    *(.init4)  /* Clear bss  */
+    *(.init5)
+    *(.init6)  /* C++ constructors.  */
+    *(.init7)
+    *(.init8)
+    *(.init9)  /* Call main().  */
+     __ctors_start = . ;
+     *(.ctors)
+     __ctors_end = . ;
+     __dtors_start = . ;
+     *(.dtors)
+     __dtors_end = . ;
+    . = ALIGN(2);
+    *(.text)
+    . = ALIGN(2);
+    *(.text.*)
+    . = ALIGN(2);
+    *(.fini9)  /*   */
+    *(.fini8)
+    *(.fini7)
+    *(.fini6)  /* C++ destructors.  */
+    *(.fini5)
+    *(.fini4)
+    *(.fini3)
+    *(.fini2)
+    *(.fini1)
+    *(.fini0)  /* Infinite loop after program termination.  */
+    *(.fini)
+    _etext = .;
+  }  > text
+  .data   : AT (ADDR (.text) + SIZEOF (.text))
+  {
+     PROVIDE (__data_start = .) ;
+    . = ALIGN(2);
+    *(.data)
+    . = ALIGN(2);
+    *(.gnu.linkonce.d*)
+    . = ALIGN(2);
+     _edata = . ;
+  }  > data
+   PROVIDE (__data_load_start = LOADADDR(.data) );
+   PROVIDE (__data_size = SIZEOF(.data) );
+  /* Bootloader.  */
+  .bootloader   :
+  {
+     PROVIDE (__boot_start = .) ;
+    *(.bootloader)
+    . = ALIGN(2);
+    *(.bootloader.*)
+  }  > bootloader
+  /* Information memory.  */
+  .infomem   :
+  {
+    *(.infomem)
+    . = ALIGN(2);
+    *(.infomem.*)
+  }  > infomem
+  /* Information memory (not loaded into MPU).  */
+  .infomemnobits   :
+  {
+    *(.infomemnobits)
+    . = ALIGN(2);
+    *(.infomemnobits.*)
+  }  > infomemnobits
+  .bss  SIZEOF(.data) + ADDR(.data) :
+  {
+     PROVIDE (__bss_start = .) ;
+    *(.bss)
+    *(COMMON)
+     PROVIDE (__bss_end = .) ;
+     _end = . ;
+  }  > data
+   PROVIDE (__bss_size = SIZEOF(.bss) );
+  .noinit  SIZEOF(.bss) + ADDR(.bss) :
+  {
+     PROVIDE (__noinit_start = .) ;
+    *(.noinit)
+    *(COMMON)
+     PROVIDE (__noinit_end = .) ;
+     _end = . ;
+  }  > data
+  .vectors  :
+  {
+     PROVIDE (__vectors_start = .) ;
+    *(.vectors*)
+     _vectors_end = . ;
+  }  > vectors
+
+  /* Stabs for profiling information*/
+  .profiler 0 : { *(.profiler) }
+  /* Stabs debugging sections.  */
+  .stab 0 : { *(.stab) }
+  .stabstr 0 : { *(.stabstr) }
+  .stab.excl 0 : { *(.stab.excl) }
+  .stab.exclstr 0 : { *(.stab.exclstr) }
+  .stab.index 0 : { *(.stab.index) }
+  .stab.indexstr 0 : { *(.stab.indexstr) }
+  .comment 0 : { *(.comment) }
+  /* DWARF debug sections.
+     Symbols in the DWARF debugging sections are relative to the beginning
+     of the section so we begin them at 0.  */
+  /* DWARF 1 */
+  .debug          0 : { *(.debug) }
+  .line           0 : { *(.line) }
+  /* GNU DWARF 1 extensions */
+  .debug_srcinfo  0 : { *(.debug_srcinfo) }
+  .debug_sfnames  0 : { *(.debug_sfnames) }
+  /* DWARF 1.1 and DWARF 2 */
+  .debug_aranges  0 : { *(.debug_aranges) }
+  .debug_pubnames 0 : { *(.debug_pubnames) }
+  /* DWARF 2 */
+  .debug_info     0 : { *(.debug_info) *(.gnu.linkonce.wi.*) }
+  .debug_abbrev   0 : { *(.debug_abbrev) }
+  .debug_line     0 : { *(.debug_line) }
+  .debug_frame    0 : { *(.debug_frame) }
+  .debug_str      0 : { *(.debug_str) }
+  .debug_loc      0 : { *(.debug_loc) }
+  .debug_macinfo  0 : { *(.debug_macinfo) }
+  PROVIDE (__stack = ORIGIN(data) + LENGTH(data) - 1) ;
+  PROVIDE (__data_start_rom = _etext) ;
+  PROVIDE (__data_end_rom   = _etext + SIZEOF (.data)) ;
+  PROVIDE (__noinit_start_rom = _etext + SIZEOF (.data)) ;
+  PROVIDE (__noinit_end_rom = _etext + SIZEOF (.data) + SIZEOF (.noinit)) ;
+  PROVIDE (__subdevice_has_heap = 0) ;
+}
+__PC_AFTER_RESET = 0x3000;
+__CRCDI = 0x0000;
+__CRCDI_L = 0x0000;
+__CRCDI_H = 0x0001;
+__CRCDIRB = 0x0002;
+__CRCDIRB_L = 0x0002;
+__CRCDIRB_H = 0x0002;
+__CRCINIRES = 0x0004;
+__CRCINIRES_L = 0x0004;
+__CRCINIRES_H = 0x0005;
+__CRCRESR = 0x0006;
+__CRCRESR_L = 0x0006;
+__CRCRESR_H = 0x0007;
+__MPY = 0x0130;
+__MPYS = 0x0132;
+__MAC = 0x0134;
+__MACS = 0x0136;
+__OP2 = 0x0138;
+__RESLO = 0x013a;
+__RESHI = 0x013c;
+__SUMEXT = 0x013e;
+__AES_CR = 0x0400;
+__AES_SR = 0x0402;
+__AES_STATE = 0x0410;
+__AES_STATE_SIZE = 0x0010;
+__AES_KEY = 0x0700;
+__AES_KEY_SIZE = 0x0020;
+__AES_EXPKEY = 0x0720;
+__AES_EXPKEY_SIZE = 0x00e0;
+__PADSR = 0x1a00;
+__PBDSR = 0x1a02;
+__PAOEN = 0x1a04;
+__PBOEN = 0x1a06;
+__PAOUT = 0x1a08;
+__PBOUT = 0x1a0a;
+__PAPER = 0x1a0c;
+__PBPER = 0x1a0e;
+__PAIER = 0x1a10;
+__PBIER = 0x1a12;
+__PAIMR = 0x1a14;
+__PBIMR = 0x1a16;
+__PAPUE = 0x1a18;
+__PBPUE = 0x1a1a;
+__PBTSD = 0x1a1c;
+__PBPSR = 0x1a1e;
+__PAOCEN = 0x1a20;
+__PBOCEN = 0x1a22;
+__TMR0_CR = 0x1c00;
+__TMR0_SR = 0x1c02;
+__TMR0_CNT = 0x1c04;
+__TMR0_RA = 0x1c06;
+__TMR0_RB = 0x1c08;
+__TMR0_RC = 0x1c0a;
+__TMR0_CAP0 = 0x1c0c;
+__TMR0_CAP1 = 0x1c0e;
+__TMR1_CR = 0x1c10;
+__TMR1_SR = 0x1c12;
+__TMR1_CNT = 0x1c14;
+__TMR1_RA = 0x1c16;
+__TMR1_RB = 0x1c18;
+__TMR1_RC = 0x1c1a;
+__TMR1_CAP0 = 0x1c1c;
+__TMR1_CAP1 = 0x1c1e;
+__TMR2_CR = 0x1e00;
+__TMR2_SR = 0x1e02;
+__TMR2_CNT = 0x1e04;
+__TMR2_RA = 0x1e06;
+__TMR2_RB = 0x1e08;
+__TMR2_RC = 0x1e0a;
+__TMR2_CAP0 = 0x1e0c;
+__TMR2_CAP1 = 0x1e0e;
+__TMR3_CR = 0x1e10;
+__TMR3_SR = 0x1e12;
+__TMR3_CNT = 0x1e14;
+__TMR3_RA = 0x1e16;
+__TMR3_RB = 0x1e18;
+__TMR3_RC = 0x1e1a;
+__TMR3_CAP0 = 0x1e1c;
+__TMR3_CAP1 = 0x1e1e;
+__SPI0_CR = 0x2000;
+__SPI0_RDR = 0x2002;
+__SPI0_TDR = 0x2004;
+__SPI0_SR = 0x2006;
+__SPI1_CR = 0x2008;
+__SPI1_RDR = 0x200a;
+__SPI1_TDR = 0x200c;
+__SPI1_SR = 0x200e;
+__UART0_CR = 0x2200;
+__UART0_BCR = 0x2202;
+__UART0_SR = 0x2204;
+__UART0_RDR = 0x2206;
+__UART0_TDR = 0x2208;
+__UART1_CR = 0x2210;
+__UART1_BCR = 0x2212;
+__UART1_SR = 0x2214;
+__UART1_RDR = 0x2216;
+__UART1_TDR = 0x2218;
+__ADC_CR = 0x2400;
+__GPIN0 = 0x2402;
+__GPIN1 = 0x2404;
+__GPOUT0 = 0x2406;
+__GPOUT1 = 0x2408;
+__GPOUT2 = 0x240a;
+__GPOUT3 = 0x240c;
+__I2CM_CR = 0x2a00;
+__I2CM_TCFG = 0x2a02;
+__I2CM_SR = 0x2a04;
+__I2CM_WCR = 0x2a06;
+__I2CM_TDR_ST = 0x2a08;
+__I2CM_TDR = 0x2a0a;
+__I2CM_TDR_SP = 0x2a0c;
+__I2CM_RDR = 0x2a0e;
+__I2CS_CR = 0x2a10;
+__I2CS_SR = 0x2a12;
+__I2CS_TDR = 0x2a14;
+__I2CS_RDR = 0x2a16;
+__ROMStart = 0x3000;
+__ROMSize = 0x0800;
+__RAMStart = 0x4000;
+__RAMSize = 0xc000;
index c692a92c11473a212910665121c44058de71aa21..7a909573d2fea808d09a27bb70e2b51f183df46a 100644 (file)
@@ -12,7 +12,8 @@
 #define BAUDRATE 4800L
 
 
-NAKED(_reset_vector__){
+/*NAKED(_reset_vector__){*/
+void __attribute__ ((naked)) _reset_vector__(void) {
   __asm__ __volatile__("br #main"::);
 }
 
@@ -25,6 +26,15 @@ static void __inline__ delay(register unsigned int n){
       : [n] "+r"(n));
 }
 
+
+static void __inline__ dint(void) {
+  __asm__ __volatile__ ( "dint" :: );
+}
+
+static void __inline__ eint(void){
+  __asm__ __volatile__ ( "eint" :: );
+}
+
 int main(void){
 
     uint16_t tmp;
index 5ae006b652e52dde4134a1daf938654d3da035e8..6300546f49d3f59a95823c37498bb2c7154e9f48 100644 (file)
@@ -1,8 +1,6 @@
 #if !defined(NS430)
 #define NS430
 
-#include <signal.h>
-
 typedef unsigned char uint8_t;
 typedef signed char int8_t;
 typedef unsigned int uint16_t;