eol-style native
authoroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Tue, 28 Apr 2009 06:28:39 +0000 (06:28 +0000)
committeroharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Tue, 28 Apr 2009 06:28:39 +0000 (06:28 +0000)
git-svn-id: svn://svn.berlios.de/openocd/trunk@1549 b42882b7-edfa-0310-969c-e2dbd0fdcd60

src/jtag/dummy.c
src/server/httpd/Stylizer.java
src/target/target/mega128.cfg
testing/examples/SAM7X256Test/prj/eclipse_ram.gdb
testing/examples/SAM7X256Test/prj/eclipse_rom.gdb
testing/examples/SAM7X256Test/prj/sam7x256_jtagkey.cfg
testing/examples/SAM7X256Test/prj/sam7x256_ram.ld
testing/examples/SAM7X256Test/prj/sam7x256_reset.script
testing/examples/SAM7X256Test/prj/sam7x256_rom.ld
testing/examples/STM32-103/readme.txt

index 49161a6..158a8d5 100644 (file)
-/***************************************************************************\r
- *   Copyright (C) 2008 by Øyvind Harboe                                   *\r
- *   oyvind.harboe@zylin.com                                               *\r
- *                                                                         *\r
- *   This program is free software; you can redistribute it and/or modify  *\r
- *   it under the terms of the GNU General Public License as published by  *\r
- *   the Free Software Foundation; either version 2 of the License, or     *\r
- *   (at your option) any later version.                                   *\r
- *                                                                         *\r
- *   This program is distributed in the hope that it will be useful,       *\r
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *\r
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *\r
- *   GNU General Public License for more details.                          *\r
- *                                                                         *\r
- *   You should have received a copy of the GNU General Public License     *\r
- *   along with this program; if not, write to the                         *\r
- *   Free Software Foundation, Inc.,                                       *\r
- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *\r
- ***************************************************************************/\r
-#ifdef HAVE_CONFIG_H\r
-#include "config.h"\r
-#endif\r
-\r
-#include "replacements.h"\r
-\r
-#include "jtag.h"\r
-#include "bitbang.h"\r
-\r
-\r
-/* my private tap controller state, which tracks state for calling code */\r
-static tap_state_t dummy_state = TAP_RESET;\r
-\r
-static int dummy_clock;         /* edge detector */\r
-\r
-static int clock_count;         /* count clocks in any stable state, only stable states */\r
-\r
-static u32 dummy_data;\r
-\r
-\r
-static int dummy_speed(int speed);\r
-static int dummy_register_commands(struct command_context_s *cmd_ctx);\r
-static int dummy_init(void);\r
-static int dummy_quit(void);\r
-static int dummy_khz(int khz, int *jtag_speed);\r
-static int dummy_speed_div(int speed, int *khz);\r
-\r
-\r
-/* The dummy driver is used to easily check the code path\r
- * where the target is unresponsive.\r
- */\r
-jtag_interface_t dummy_interface =\r
-{\r
-       .name = "dummy",\r
-\r
-       .execute_queue = bitbang_execute_queue,\r
-\r
-       .speed = dummy_speed,\r
-       .register_commands = dummy_register_commands,\r
-       .khz = dummy_khz,\r
-       .speed_div = dummy_speed_div,\r
-\r
-       .init = dummy_init,\r
-       .quit = dummy_quit,\r
-};\r
-\r
-static int dummy_read(void);\r
-static void dummy_write(int tck, int tms, int tdi);\r
-static void dummy_reset(int trst, int srst);\r
-static void dummy_led(int on);\r
-\r
-static bitbang_interface_t dummy_bitbang =\r
-{\r
-       .read = dummy_read,\r
-       .write = dummy_write,\r
-       .reset = dummy_reset,\r
-       .blink = dummy_led\r
-};\r
-\r
-static int dummy_read(void)\r
-{\r
-       int data = 1 & dummy_data;\r
-       dummy_data = (dummy_data >> 1) | (1<<31);\r
-       return data;\r
-}\r
-\r
-\r
-static void dummy_write(int tck, int tms, int tdi)\r
-{\r
-       /* TAP standard: "state transitions occur on rising edge of clock" */\r
-       if( tck != dummy_clock )\r
-       {\r
-               if( tck )\r
-               {\r
-                       tap_state_t old_state = dummy_state;\r
-                       dummy_state = tap_state_transition( old_state, tms );\r
-\r
-                       if( old_state != dummy_state )\r
-                       {\r
-                               if( clock_count )\r
-                               {\r
-                                       LOG_DEBUG("dummy_tap: %d stable clocks", clock_count);\r
-                                       clock_count = 0;\r
-                               }\r
-\r
-                               LOG_DEBUG("dummy_tap: %s", tap_state_name(dummy_state) );\r
-\r
-#if defined(DEBUG)\r
-                               if(dummy_state == TAP_DRCAPTURE)\r
-                                       dummy_data = 0x01255043;\r
-#endif\r
-                       }\r
-                       else\r
-                       {\r
-                               /* this is a stable state clock edge, no change of state here,\r
-                                * simply increment clock_count for subsequent logging\r
-                                */\r
-                               ++clock_count;\r
-                       }\r
-               }\r
-               dummy_clock = tck;\r
-       }\r
-}\r
-\r
-static void dummy_reset(int trst, int srst)\r
-{\r
-       dummy_clock = 0;\r
-\r
-       if (trst || (srst && (jtag_reset_config & RESET_SRST_PULLS_TRST)))\r
-               dummy_state = TAP_RESET;\r
-\r
-       LOG_DEBUG("reset to: %s", tap_state_name(dummy_state) );\r
-}\r
-\r
-static int dummy_khz(int khz, int *jtag_speed)\r
-{\r
-       if (khz==0)\r
-       {\r
-               *jtag_speed=0;\r
-       }\r
-       else\r
-       {\r
-               *jtag_speed=64000/khz;\r
-       }\r
-       return ERROR_OK;\r
-}\r
-\r
-static int dummy_speed_div(int speed, int *khz)\r
-{\r
-       if (speed==0)\r
-       {\r
-               *khz = 0;\r
-       }\r
-       else\r
-       {\r
-               *khz=64000/speed;\r
-       }\r
-\r
-       return ERROR_OK;\r
-}\r
-\r
-static int dummy_speed(int speed)\r
-{\r
-       return ERROR_OK;\r
-}\r
-\r
-static int dummy_register_commands(struct command_context_s *cmd_ctx)\r
-{\r
-       return ERROR_OK;\r
-}\r
-\r
-static int dummy_init(void)\r
-{\r
-       bitbang_interface = &dummy_bitbang;\r
-\r
-       return ERROR_OK;\r
-}\r
-\r
-static int dummy_quit(void)\r
-{\r
-       return ERROR_OK;\r
-}\r
-\r
-static void dummy_led(int on)\r
-{\r
-}\r
-\r
+/***************************************************************************
+ *   Copyright (C) 2008 by Øyvind Harboe                                   *
+ *   oyvind.harboe@zylin.com                                               *
+ *                                                                         *
+ *   This program 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 2 of the License, or     *
+ *   (at your option) any later version.                                   *
+ *                                                                         *
+ *   This program 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 this program; if not, write to the                         *
+ *   Free Software Foundation, Inc.,                                       *
+ *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ ***************************************************************************/
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "replacements.h"
+
+#include "jtag.h"
+#include "bitbang.h"
+
+
+/* my private tap controller state, which tracks state for calling code */
+static tap_state_t dummy_state = TAP_RESET;
+
+static int dummy_clock;         /* edge detector */
+
+static int clock_count;         /* count clocks in any stable state, only stable states */
+
+static u32 dummy_data;
+
+
+static int dummy_speed(int speed);
+static int dummy_register_commands(struct command_context_s *cmd_ctx);
+static int dummy_init(void);
+static int dummy_quit(void);
+static int dummy_khz(int khz, int *jtag_speed);
+static int dummy_speed_div(int speed, int *khz);
+
+
+/* The dummy driver is used to easily check the code path
+ * where the target is unresponsive.
+ */
+jtag_interface_t dummy_interface =
+{
+       .name = "dummy",
+
+       .execute_queue = bitbang_execute_queue,
+
+       .speed = dummy_speed,
+       .register_commands = dummy_register_commands,
+       .khz = dummy_khz,
+       .speed_div = dummy_speed_div,
+
+       .init = dummy_init,
+       .quit = dummy_quit,
+};
+
+static int dummy_read(void);
+static void dummy_write(int tck, int tms, int tdi);
+static void dummy_reset(int trst, int srst);
+static void dummy_led(int on);
+
+static bitbang_interface_t dummy_bitbang =
+{
+       .read = dummy_read,
+       .write = dummy_write,
+       .reset = dummy_reset,
+       .blink = dummy_led
+};
+
+static int dummy_read(void)
+{
+       int data = 1 & dummy_data;
+       dummy_data = (dummy_data >> 1) | (1<<31);
+       return data;
+}
+
+
+static void dummy_write(int tck, int tms, int tdi)
+{
+       /* TAP standard: "state transitions occur on rising edge of clock" */
+       if( tck != dummy_clock )
+       {
+               if( tck )
+               {
+                       tap_state_t old_state = dummy_state;
+                       dummy_state = tap_state_transition( old_state, tms );
+
+                       if( old_state != dummy_state )
+                       {
+                               if( clock_count )
+                               {
+                                       LOG_DEBUG("dummy_tap: %d stable clocks", clock_count);
+                                       clock_count = 0;
+                               }
+
+                               LOG_DEBUG("dummy_tap: %s", tap_state_name(dummy_state) );
+
+#if defined(DEBUG)
+                               if(dummy_state == TAP_DRCAPTURE)
+                                       dummy_data = 0x01255043;
+#endif
+                       }
+                       else
+                       {
+                               /* this is a stable state clock edge, no change of state here,
+                                * simply increment clock_count for subsequent logging
+                                */
+                               ++clock_count;
+                       }
+               }
+               dummy_clock = tck;
+       }
+}
+
+static void dummy_reset(int trst, int srst)
+{
+       dummy_clock = 0;
+
+       if (trst || (srst && (jtag_reset_config & RESET_SRST_PULLS_TRST)))
+               dummy_state = TAP_RESET;
+
+       LOG_DEBUG("reset to: %s", tap_state_name(dummy_state) );
+}
+
+static int dummy_khz(int khz, int *jtag_speed)
+{
+       if (khz==0)
+       {
+               *jtag_speed=0;
+       }
+       else
+       {
+               *jtag_speed=64000/khz;
+       }
+       return ERROR_OK;
+}
+
+static int dummy_speed_div(int speed, int *khz)
+{
+       if (speed==0)
+       {
+               *khz = 0;
+       }
+       else
+       {
+               *khz=64000/speed;
+       }
+
+       return ERROR_OK;
+}
+
+static int dummy_speed(int speed)
+{
+       return ERROR_OK;
+}
+
+static int dummy_register_commands(struct command_context_s *cmd_ctx)
+{
+       return ERROR_OK;
+}
+
+static int dummy_init(void)
+{
+       bitbang_interface = &dummy_bitbang;
+
+       return ERROR_OK;
+}
+
+static int dummy_quit(void)
+{
+       return ERROR_OK;
+}
+
+static void dummy_led(int on)
+{
+}
+
index 3b8bee3..721e84c 100755 (executable)
-import java.io.File;\r
-import java.io.FileOutputStream;\r
-import java.io.IOException;\r
-import java.io.OutputStream;\r
-\r
-import javax.xml.parsers.DocumentBuilder;\r
-import javax.xml.parsers.DocumentBuilderFactory;\r
-import javax.xml.parsers.ParserConfigurationException;\r
-import javax.xml.transform.Transformer;\r
-import javax.xml.transform.TransformerConfigurationException;\r
-import javax.xml.transform.TransformerException;\r
-import javax.xml.transform.TransformerFactory;\r
-import javax.xml.transform.dom.DOMSource;\r
-import javax.xml.transform.stream.StreamResult;\r
-import javax.xml.transform.stream.StreamSource;\r
-\r
-import org.apache.xpath.XPathAPI;\r
-import org.w3c.dom.Document;\r
-import org.w3c.dom.Node;\r
-import org.w3c.dom.NodeList;\r
-import org.xml.sax.SAXException;\r
-\r
-/** used to generate .tcl files from */\r
-public class Stylizer\r
-{\r
-       // Global value so it can be ref'd by the tree-adapter\r
-       static Document document;\r
-       public static void main(String argv[])\r
-       {\r
-               if (argv.length != 3)\r
-               {\r
-                       System.err.println("Usage: java Stylizer stylesheet xmlfile outputdir");\r
-                       System.exit(1);\r
-               }\r
-               DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();\r
-               try\r
-               {\r
-                       System.err.println("Starting conversion...");\r
-                       \r
-                       File stylesheet = new File(argv[0]);\r
-                       File datafile = new File(argv[1]);\r
-                       DocumentBuilder builder = factory.newDocumentBuilder();\r
-                       document = builder.parse(datafile);\r
-                       \r
-                       NodeList list = XPathAPI.selectNodeList(document, "website/language/page");\r
-\r
-                       for (int i=0; i<list.getLength(); i++)\r
-                       {\r
-                               Node node=list.item(i);\r
-                               \r
-                               // Use a Transformer for output\r
-                               TransformerFactory tFactory = TransformerFactory.newInstance();\r
-                               StreamSource stylesource = new StreamSource(stylesheet);\r
-                               Transformer transformer = tFactory.newTransformer(stylesource);\r
-                               \r
-                               Node fileName = XPathAPI.selectSingleNode(node, "outfile/text()");\r
-                               \r
-                               System.err.println("Converting " + fileName.getNodeValue());\r
-                               DOMSource source = new DOMSource(document);\r
-                               \r
-                               OutputStream output=new FileOutputStream(new File(argv[2], fileName.getNodeValue()));\r
-                               \r
-                               \r
-                               try\r
-                               {\r
-                                       StreamResult result = new StreamResult(output);\r
-                                       \r
-                                       transformer.setParameter("pagetogenerate", fileName.getNodeValue());\r
-                                       transformer.transform(source, result);\r
-                               } \r
-                               finally\r
-                               {\r
-                                       output.close();\r
-                               }\r
-                       }\r
-               } catch (TransformerConfigurationException tce)\r
-               {\r
-                       // Error generated by the parser\r
-                       System.out.println("\n** Transformer Factory error");\r
-                       System.out.println("   " + tce.getMessage());\r
-                       // Use the contained exception, if any\r
-                       Throwable x = tce;\r
-                       if (tce.getException() != null)\r
-                               x = tce.getException();\r
-                       x.printStackTrace();\r
-               } catch (TransformerException te)\r
-               {\r
-                       // Error generated by the parser\r
-                       System.out.println("\n** Transformation error");\r
-                       System.out.println("   " + te.getMessage());\r
-                       // Use the contained exception, if any\r
-                       Throwable x = te;\r
-                       if (te.getException() != null)\r
-                               x = te.getException();\r
-                       x.printStackTrace();\r
-               } catch (SAXException sxe)\r
-               {\r
-                       // Error generated by this application\r
-                       // (or a parser-initialization error)\r
-                       Exception x = sxe;\r
-                       if (sxe.getException() != null)\r
-                               x = sxe.getException();\r
-                       x.printStackTrace();\r
-               } catch (ParserConfigurationException pce)\r
-               {\r
-                       // Parser with specified options can't be built\r
-                       pce.printStackTrace();\r
-               } catch (IOException ioe)\r
-               {\r
-                       // I/O error\r
-                       ioe.printStackTrace();\r
-               }\r
-       } // main\r
-}\r
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerConfigurationException;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.dom.DOMSource;
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+import org.apache.xpath.XPathAPI;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+
+/** used to generate .tcl files from */
+public class Stylizer
+{
+       // Global value so it can be ref'd by the tree-adapter
+       static Document document;
+       public static void main(String argv[])
+       {
+               if (argv.length != 3)
+               {
+                       System.err.println("Usage: java Stylizer stylesheet xmlfile outputdir");
+                       System.exit(1);
+               }
+               DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+               try
+               {
+                       System.err.println("Starting conversion...");
+                       
+                       File stylesheet = new File(argv[0]);
+                       File datafile = new File(argv[1]);
+                       DocumentBuilder builder = factory.newDocumentBuilder();
+                       document = builder.parse(datafile);
+                       
+                       NodeList list = XPathAPI.selectNodeList(document, "website/language/page");
+
+                       for (int i=0; i<list.getLength(); i++)
+                       {
+                               Node node=list.item(i);
+                               
+                               // Use a Transformer for output
+                               TransformerFactory tFactory = TransformerFactory.newInstance();
+                               StreamSource stylesource = new StreamSource(stylesheet);
+                               Transformer transformer = tFactory.newTransformer(stylesource);
+                               
+                               Node fileName = XPathAPI.selectSingleNode(node, "outfile/text()");
+                               
+                               System.err.println("Converting " + fileName.getNodeValue());
+                               DOMSource source = new DOMSource(document);
+                               
+                               OutputStream output=new FileOutputStream(new File(argv[2], fileName.getNodeValue()));
+                               
+                               
+                               try
+                               {
+                                       StreamResult result = new StreamResult(output);
+                                       
+                                       transformer.setParameter("pagetogenerate", fileName.getNodeValue());
+                                       transformer.transform(source, result);
+                               } 
+                               finally
+                               {
+                                       output.close();
+                               }
+                       }
+               } catch (TransformerConfigurationException tce)
+               {
+                       // Error generated by the parser
+                       System.out.println("\n** Transformer Factory error");
+                       System.out.println("   " + tce.getMessage());
+                       // Use the contained exception, if any
+                       Throwable x = tce;
+                       if (tce.getException() != null)
+                               x = tce.getException();
+                       x.printStackTrace();
+               } catch (TransformerException te)
+               {
+                       // Error generated by the parser
+                       System.out.println("\n** Transformation error");
+                       System.out.println("   " + te.getMessage());
+                       // Use the contained exception, if any
+                       Throwable x = te;
+                       if (te.getException() != null)
+                               x = te.getException();
+                       x.printStackTrace();
+               } catch (SAXException sxe)
+               {
+                       // Error generated by this application
+                       // (or a parser-initialization error)
+                       Exception x = sxe;
+                       if (sxe.getException() != null)
+                               x = sxe.getException();
+                       x.printStackTrace();
+               } catch (ParserConfigurationException pce)
+               {
+                       // Parser with specified options can't be built
+                       pce.printStackTrace();
+               } catch (IOException ioe)
+               {
+                       // I/O error
+                       ioe.printStackTrace();
+               }
+       } // main
+}
index 978726d..964542c 100644 (file)
@@ -1,42 +1,42 @@
-# for avr\r
-\r
-   set  _CHIPNAME avr\r
-   set  _ENDIAN little\r
-\r
-# jtag speed\r
-jtag_khz 4500\r
-\r
-reset_config  srst_only\r
-jtag_nsrst_delay 100\r
-\r
-#jtag scan chain\r
-if { [info exists CPUTAPID ] } {\r
-   set _CPUTAPID $CPUTAPID\r
-} else {\r
-   set _CPUTAPID 0x8970203F\r
-}\r
-jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID\r
-\r
-set _TARGETNAME [format "%s.cpu" $_CHIPNAME]\r
-target create $_TARGETNAME avr -endian $_ENDIAN -chain-position $_TARGETNAME\r
-\r
-#$_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x20000000 -work-area-size 16384 -work-area-backup 0\r
-\r
-flash bank avr 0 0 0 0 0\r
-\r
-#to use it, script will be like:\r
-#init\r
-#jtag_khz 4500\r
-#reset init\r
-#verify_ircapture disable\r
-#\r
-#halt\r
-#wait halt\r
-#poll\r
-#avr mass_erase 0\r
-#flash write_image E:/Versaloon/Software/CAMERAPROTOCOLAGENT.hex\r
-#reset run\r
-#shutdown\r
-#\r
-# For more information about the configuration files, take a look at:\r
-# openocd.texi\r
+# for avr
+
+   set  _CHIPNAME avr
+   set  _ENDIAN little
+
+# jtag speed
+jtag_khz 4500
+
+reset_config  srst_only
+jtag_nsrst_delay 100
+
+#jtag scan chain
+if { [info exists CPUTAPID ] } {
+   set _CPUTAPID $CPUTAPID
+} else {
+   set _CPUTAPID 0x8970203F
+}
+jtag newtap $_CHIPNAME cpu -irlen 4 -ircapture 0x1 -irmask 0xf -expected-id $_CPUTAPID
+
+set _TARGETNAME [format "%s.cpu" $_CHIPNAME]
+target create $_TARGETNAME avr -endian $_ENDIAN -chain-position $_TARGETNAME
+
+#$_TARGETNAME configure -work-area-virt 0 -work-area-phys 0x20000000 -work-area-size 16384 -work-area-backup 0
+
+flash bank avr 0 0 0 0 0
+
+#to use it, script will be like:
+#init
+#jtag_khz 4500
+#reset init
+#verify_ircapture disable
+#
+#halt
+#wait halt
+#poll
+#avr mass_erase 0
+#flash write_image E:/Versaloon/Software/CAMERAPROTOCOLAGENT.hex
+#reset run
+#shutdown
+#
+# For more information about the configuration files, take a look at:
+# openocd.texi
index 523cb20..9d9f24d 100644 (file)
@@ -1,32 +1,32 @@
-target remote localhost:3333\r
-monitor reset\r
-monitor sleep 500\r
-monitor poll\r
-monitor soft_reset_halt\r
-monitor arm7_9 sw_bkpts enable\r
-\r
-# WDT_MR, disable watchdog \r
-monitor mww 0xFFFFFD44 0x00008000\r
-\r
-# RSTC_MR, enable user reset\r
-monitor mww 0xfffffd08 0xa5000001\r
-\r
-# CKGR_MOR\r
-monitor mww 0xFFFFFC20 0x00000601\r
-monitor sleep 10\r
-\r
-# CKGR_PLLR\r
-monitor mww 0xFFFFFC2C 0x00481c0e\r
-monitor sleep 10\r
-\r
-# PMC_MCKR\r
-monitor mww 0xFFFFFC30 0x00000007\r
-monitor sleep 10\r
-\r
-# PMC_IER\r
-monitor mww 0xFFFFFF60 0x00480100\r
-monitor sleep 100\r
-\r
-load\r
-break main\r
-continue\r
+target remote localhost:3333
+monitor reset
+monitor sleep 500
+monitor poll
+monitor soft_reset_halt
+monitor arm7_9 sw_bkpts enable
+
+# WDT_MR, disable watchdog 
+monitor mww 0xFFFFFD44 0x00008000
+
+# RSTC_MR, enable user reset
+monitor mww 0xfffffd08 0xa5000001
+
+# CKGR_MOR
+monitor mww 0xFFFFFC20 0x00000601
+monitor sleep 10
+
+# CKGR_PLLR
+monitor mww 0xFFFFFC2C 0x00481c0e
+monitor sleep 10
+
+# PMC_MCKR
+monitor mww 0xFFFFFC30 0x00000007
+monitor sleep 10
+
+# PMC_IER
+monitor mww 0xFFFFFF60 0x00480100
+monitor sleep 100
+
+load
+break main
+continue
index 3aabf84..db2a464 100644 (file)
@@ -1,32 +1,32 @@
-target remote localhost:3333\r
-monitor reset\r
-monitor sleep 500\r
-monitor poll\r
-monitor soft_reset_halt\r
-monitor arm7_9 force_hw_bkpts enable\r
-\r
-# WDT_MR, disable watchdog \r
-monitor mww 0xFFFFFD44 0x00008000\r
-\r
-# RSTC_MR, enable user reset\r
-monitor mww 0xfffffd08 0xa5000001\r
-\r
-# CKGR_MOR\r
-monitor mww 0xFFFFFC20 0x00000601\r
-monitor sleep 10\r
-\r
-# CKGR_PLLR\r
-monitor mww 0xFFFFFC2C 0x00481c0e\r
-monitor sleep 10\r
-\r
-# PMC_MCKR\r
-monitor mww 0xFFFFFC30 0x00000007\r
-monitor sleep 10\r
-\r
-# PMC_IER\r
-monitor mww 0xFFFFFF60 0x00480100\r
-monitor sleep 100\r
-\r
-load\r
-break main\r
-continue\r
+target remote localhost:3333
+monitor reset
+monitor sleep 500
+monitor poll
+monitor soft_reset_halt
+monitor arm7_9 force_hw_bkpts enable
+
+# WDT_MR, disable watchdog 
+monitor mww 0xFFFFFD44 0x00008000
+
+# RSTC_MR, enable user reset
+monitor mww 0xfffffd08 0xa5000001
+
+# CKGR_MOR
+monitor mww 0xFFFFFC20 0x00000601
+monitor sleep 10
+
+# CKGR_PLLR
+monitor mww 0xFFFFFC2C 0x00481c0e
+monitor sleep 10
+
+# PMC_MCKR
+monitor mww 0xFFFFFC30 0x00000007
+monitor sleep 10
+
+# PMC_IER
+monitor mww 0xFFFFFF60 0x00480100
+monitor sleep 100
+
+load
+break main
+continue
index 425505f..17e2716 100644 (file)
@@ -1,40 +1,40 @@
-#daemon configuration\r
-telnet_port 4444\r
-gdb_port 3333\r
-\r
-# tell gdb our flash memory map\r
-# and enable flash programming\r
-gdb_memory_map enable\r
-gdb_flash_program enable\r
-\r
-#interface\r
-interface ft2232\r
-ft2232_device_desc "Amontec JTAGkey A"\r
-ft2232_layout jtagkey\r
-ft2232_vid_pid 0x0403 0xcff8\r
-jtag_speed 0\r
-jtag_nsrst_delay 200\r
-jtag_ntrst_delay 200\r
-\r
-\r
-#use combined on interfaces or targets that can't set TRST/SRST separately\r
-reset_config srst_only srst_pulls_trst\r
-\r
-#jtag scan chain\r
-#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)\r
-jtag_device 4 0x1 0xf 0xe\r
-\r
-#target configuration\r
-target create target0 arm7tdmi -endian little -chain-position 0 -variant arm7tdmi\r
-[new_target_name] configure -work-area-virt 0 -work-area-phys 0x00200000 -work-area-size 0x4000 -work-area-backup false\r
-\r
-target_script 0 reset .\prj\sam7x256_reset.script\r
-\r
-#flash bank <driver> <base> <size> <chip_width> <bus_width>\r
-flash bank at91sam7 0 0 0 0 0\r
-\r
-# For more information about the configuration files, take a look at:\r
-# http://openfacts.berlios.de/index-en.phtml?title=Open+On-Chip+Debugger\r
-\r
-init\r
-reset halt\r
+#daemon configuration
+telnet_port 4444
+gdb_port 3333
+
+# tell gdb our flash memory map
+# and enable flash programming
+gdb_memory_map enable
+gdb_flash_program enable
+
+#interface
+interface ft2232
+ft2232_device_desc "Amontec JTAGkey A"
+ft2232_layout jtagkey
+ft2232_vid_pid 0x0403 0xcff8
+jtag_speed 0
+jtag_nsrst_delay 200
+jtag_ntrst_delay 200
+
+
+#use combined on interfaces or targets that can't set TRST/SRST separately
+reset_config srst_only srst_pulls_trst
+
+#jtag scan chain
+#format L IRC IRCM IDCODE (Length, IR Capture, IR Capture Mask, IDCODE)
+jtag_device 4 0x1 0xf 0xe
+
+#target configuration
+target create target0 arm7tdmi -endian little -chain-position 0 -variant arm7tdmi
+[new_target_name] configure -work-area-virt 0 -work-area-phys 0x00200000 -work-area-size 0x4000 -work-area-backup false
+
+target_script 0 reset .\prj\sam7x256_reset.script
+
+#flash bank <driver> <base> <size> <chip_width> <bus_width>
+flash bank at91sam7 0 0 0 0 0
+
+# For more information about the configuration files, take a look at:
+# http://openfacts.berlios.de/index-en.phtml?title=Open+On-Chip+Debugger
+
+init
+reset halt
index 9fc35c8..1b857c9 100644 (file)
-/****************************************************************************\r
-*  Copyright (c) 2006 by Michael Fischer. All rights reserved.\r
-*\r
-*  Redistribution and use in source and binary forms, with or without \r
-*  modification, are permitted provided that the following conditions \r
-*  are met:\r
-*  \r
-*  1. Redistributions of source code must retain the above copyright \r
-*     notice, this list of conditions and the following disclaimer.\r
-*  2. Redistributions in binary form must reproduce the above copyright\r
-*     notice, this list of conditions and the following disclaimer in the \r
-*     documentation and/or other materials provided with the distribution.\r
-*  3. Neither the name of the author nor the names of its contributors may \r
-*     be used to endorse or promote products derived from this software \r
-*     without specific prior written permission.\r
-*\r
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \r
-*  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT \r
-*  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS \r
-*  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL \r
-*  THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, \r
-*  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \r
-*  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS \r
-*  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED \r
-*  AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, \r
-*  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF \r
-*  THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF \r
-*  SUCH DAMAGE.\r
-*\r
-****************************************************************************\r
-*\r
-*  History:\r
-*\r
-*  30.03.06  mifi   First Version\r
-****************************************************************************/\r
-\r
-\r
-ENTRY(ResetHandler)\r
-SEARCH_DIR(.)\r
-\r
-/*\r
- * Define stack size here\r
- */\r
-FIQ_STACK_SIZE = 0x0100;\r
-IRQ_STACK_SIZE = 0x0100;\r
-ABT_STACK_SIZE = 0x0100;\r
-UND_STACK_SIZE = 0x0100;\r
-SVC_STACK_SIZE = 0x0400;\r
-\r
-\r
-MEMORY\r
-{\r
-  ram : org = 0x00200000, len = 64k\r
-}\r
-\r
-/*\r
- * Do not change the next code\r
- */\r
-SECTIONS\r
-{\r
-  .text :\r
-  {\r
-    *(.vectors);\r
-    . = ALIGN(4);\r
-    *(.init);\r
-    . = ALIGN(4);\r
-    *(.text);\r
-    . = ALIGN(4);\r
-    *(.rodata);\r
-    . = ALIGN(4);\r
-    *(.rodata*);\r
-    . = ALIGN(4);\r
-    *(.glue_7t);\r
-    . = ALIGN(4);\r
-    *(.glue_7);\r
-    . = ALIGN(4);\r
-    etext = .;\r
-  } > ram\r
-\r
-  .data :\r
-  {\r
-    PROVIDE (__data_start = .);\r
-    *(.data)\r
-    . = ALIGN(4);\r
-    edata = .;\r
-    _edata = .;\r
-    PROVIDE (__data_end = .);\r
-  } > ram\r
-\r
-  .bss :\r
-  {\r
-    PROVIDE (__bss_start = .);\r
-    *(.bss)\r
-    *(COMMON)\r
-    . = ALIGN(4);\r
-    PROVIDE (__bss_end = .);\r
-    \r
-    . = ALIGN(256);\r
-    \r
-    PROVIDE (__stack_start = .);\r
-    \r
-    PROVIDE (__stack_fiq_start = .);\r
-    . += FIQ_STACK_SIZE;\r
-    . = ALIGN(4);\r
-    PROVIDE (__stack_fiq_end = .);\r
-\r
-    PROVIDE (__stack_irq_start = .);\r
-    . += IRQ_STACK_SIZE;\r
-    . = ALIGN(4);\r
-    PROVIDE (__stack_irq_end = .);\r
-\r
-    PROVIDE (__stack_abt_start = .);\r
-    . += ABT_STACK_SIZE;\r
-    . = ALIGN(4);\r
-    PROVIDE (__stack_abt_end = .);\r
-\r
-    PROVIDE (__stack_und_start = .);\r
-    . += UND_STACK_SIZE;\r
-    . = ALIGN(4);\r
-    PROVIDE (__stack_und_end = .);\r
-\r
-    PROVIDE (__stack_svc_start = .);\r
-    . += SVC_STACK_SIZE;\r
-    . = ALIGN(4);\r
-    PROVIDE (__stack_svc_end = .);\r
-    PROVIDE (__stack_end = .);\r
-    PROVIDE (__heap_start = .);   \r
-  } > ram\r
-    \r
-}\r
-/*** EOF ***/\r
-\r
+/****************************************************************************
+*  Copyright (c) 2006 by Michael Fischer. All rights reserved.
+*
+*  Redistribution and use in source and binary forms, with or without 
+*  modification, are permitted provided that the following conditions 
+*  are met:
+*  
+*  1. Redistributions of source code must retain the above copyright 
+*     notice, this list of conditions and the following disclaimer.
+*  2. Redistributions in binary form must reproduce the above copyright
+*     notice, this list of conditions and the following disclaimer in the 
+*     documentation and/or other materials provided with the distribution.
+*  3. Neither the name of the author nor the names of its contributors may 
+*     be used to endorse or promote products derived from this software 
+*     without specific prior written permission.
+*
+*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
+*  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
+*  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
+*  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 
+*  THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+*  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
+*  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 
+*  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
+*  AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 
+*  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 
+*  THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
+*  SUCH DAMAGE.
+*
+****************************************************************************
+*
+*  History:
+*
+*  30.03.06  mifi   First Version
+****************************************************************************/
+
+
+ENTRY(ResetHandler)
+SEARCH_DIR(.)
+
+/*
+ * Define stack size here
+ */
+FIQ_STACK_SIZE = 0x0100;
+IRQ_STACK_SIZE = 0x0100;
+ABT_STACK_SIZE = 0x0100;
+UND_STACK_SIZE = 0x0100;
+SVC_STACK_SIZE = 0x0400;
+
+
+MEMORY
+{
+  ram : org = 0x00200000, len = 64k
+}
+
+/*
+ * Do not change the next code
+ */
+SECTIONS
+{
+  .text :
+  {
+    *(.vectors);
+    . = ALIGN(4);
+    *(.init);
+    . = ALIGN(4);
+    *(.text);
+    . = ALIGN(4);
+    *(.rodata);
+    . = ALIGN(4);
+    *(.rodata*);
+    . = ALIGN(4);
+    *(.glue_7t);
+    . = ALIGN(4);
+    *(.glue_7);
+    . = ALIGN(4);
+    etext = .;
+  } > ram
+
+  .data :
+  {
+    PROVIDE (__data_start = .);
+    *(.data)
+    . = ALIGN(4);
+    edata = .;
+    _edata = .;
+    PROVIDE (__data_end = .);
+  } > ram
+
+  .bss :
+  {
+    PROVIDE (__bss_start = .);
+    *(.bss)
+    *(COMMON)
+    . = ALIGN(4);
+    PROVIDE (__bss_end = .);
+    
+    . = ALIGN(256);
+    
+    PROVIDE (__stack_start = .);
+    
+    PROVIDE (__stack_fiq_start = .);
+    . += FIQ_STACK_SIZE;
+    . = ALIGN(4);
+    PROVIDE (__stack_fiq_end = .);
+
+    PROVIDE (__stack_irq_start = .);
+    . += IRQ_STACK_SIZE;
+    . = ALIGN(4);
+    PROVIDE (__stack_irq_end = .);
+
+    PROVIDE (__stack_abt_start = .);
+    . += ABT_STACK_SIZE;
+    . = ALIGN(4);
+    PROVIDE (__stack_abt_end = .);
+
+    PROVIDE (__stack_und_start = .);
+    . += UND_STACK_SIZE;
+    . = ALIGN(4);
+    PROVIDE (__stack_und_end = .);
+
+    PROVIDE (__stack_svc_start = .);
+    . += SVC_STACK_SIZE;
+    . = ALIGN(4);
+    PROVIDE (__stack_svc_end = .);
+    PROVIDE (__stack_end = .);
+    PROVIDE (__heap_start = .);   
+  } > ram
+    
+}
+/*** EOF ***/
+
index ff609b0..456341d 100644 (file)
@@ -1,17 +1,17 @@
-#\r
-# Init - taken form the script openocd_at91sam7_ecr.script \r
-#\r
-# I take this script from the following page:\r
-#\r
-# http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/openocd_intro/index.html\r
-#\r
-mww 0xfffffd44 0x00008000      # disable watchdog\r
-mww 0xfffffd08 0xa5000001      # enable user reset\r
-mww 0xfffffc20 0x00000601      # CKGR_MOR : enable the main oscillator\r
-sleep 10\r
-mww 0xfffffc2c 0x00481c0e      # CKGR_PLLR: 96.1097 MHz\r
-sleep 10\r
-mww 0xfffffc30 0x00000007      # PMC_MCKR : MCK = PLL / 2 ~= 48 MHz\r
-sleep 10\r
-mww 0xffffff60 0x003c0100      # MC_FMR: flash mode (FWS=1,FMCN=60)\r
-sleep 100\r
+#
+# Init - taken form the script openocd_at91sam7_ecr.script 
+#
+# I take this script from the following page:
+#
+# http://www.siwawi.arubi.uni-kl.de/avr_projects/arm_projects/openocd_intro/index.html
+#
+mww 0xfffffd44 0x00008000      # disable watchdog
+mww 0xfffffd08 0xa5000001      # enable user reset
+mww 0xfffffc20 0x00000601      # CKGR_MOR : enable the main oscillator
+sleep 10
+mww 0xfffffc2c 0x00481c0e      # CKGR_PLLR: 96.1097 MHz
+sleep 10
+mww 0xfffffc30 0x00000007      # PMC_MCKR : MCK = PLL / 2 ~= 48 MHz
+sleep 10
+mww 0xffffff60 0x003c0100      # MC_FMR: flash mode (FWS=1,FMCN=60)
+sleep 100
index e38746c..b64854a 100644 (file)
-/****************************************************************************\r
-*  Copyright (c) 2006 by Michael Fischer. All rights reserved.\r
-*\r
-*  Redistribution and use in source and binary forms, with or without \r
-*  modification, are permitted provided that the following conditions \r
-*  are met:\r
-*  \r
-*  1. Redistributions of source code must retain the above copyright \r
-*     notice, this list of conditions and the following disclaimer.\r
-*  2. Redistributions in binary form must reproduce the above copyright\r
-*     notice, this list of conditions and the following disclaimer in the \r
-*     documentation and/or other materials provided with the distribution.\r
-*  3. Neither the name of the author nor the names of its contributors may \r
-*     be used to endorse or promote products derived from this software \r
-*     without specific prior written permission.\r
-*\r
-*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \r
-*  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT \r
-*  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS \r
-*  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL \r
-*  THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, \r
-*  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, \r
-*  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS \r
-*  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED \r
-*  AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, \r
-*  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF \r
-*  THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF \r
-*  SUCH DAMAGE.\r
-*\r
-****************************************************************************\r
-*\r
-*  History:\r
-*\r
-*  26.01.08  mifi   First Version\r
-****************************************************************************/\r
-\r
-\r
-ENTRY(ResetHandler)\r
-SEARCH_DIR(.)\r
-\r
-/*\r
- * Define stack size here\r
- */\r
-FIQ_STACK_SIZE = 0x0100;\r
-IRQ_STACK_SIZE = 0x0100;\r
-ABT_STACK_SIZE = 0x0100;\r
-UND_STACK_SIZE = 0x0100;\r
-SVC_STACK_SIZE = 0x0400;\r
-\r
-\r
-MEMORY\r
-{\r
-  rom : org = 0x00100000, len = 256k\r
-  ram : org = 0x00200000, len = 64k\r
-}\r
-\r
-/*\r
- * Do not change the next code\r
- */\r
-SECTIONS\r
-{\r
-  .text :\r
-  {\r
-    *(.vectors);\r
-    . = ALIGN(4);\r
-    *(.init);\r
-    . = ALIGN(4);\r
-    *(.text);\r
-    . = ALIGN(4);\r
-    *(.rodata);\r
-    . = ALIGN(4);\r
-    *(.rodata*);\r
-    . = ALIGN(4);\r
-    *(.glue_7t);\r
-    . = ALIGN(4);\r
-    *(.glue_7);\r
-    . = ALIGN(4);\r
-    etext = .;\r
-  } > rom\r
-\r
-  .data :\r
-  {\r
-    PROVIDE (__data_start = .);\r
-    *(.data)\r
-    . = ALIGN(4);\r
-    edata = .;\r
-    _edata = .;\r
-    PROVIDE (__data_end = .);\r
-  } > ram\r
-\r
-  .bss :\r
-  {\r
-    PROVIDE (__bss_start = .);\r
-    *(.bss)\r
-    *(COMMON)\r
-    . = ALIGN(4);\r
-    PROVIDE (__bss_end = .);\r
-    \r
-    . = ALIGN(256);\r
-    \r
-    PROVIDE (__stack_start = .);\r
-    \r
-    PROVIDE (__stack_fiq_start = .);\r
-    . += FIQ_STACK_SIZE;\r
-    . = ALIGN(4);\r
-    PROVIDE (__stack_fiq_end = .);\r
-\r
-    PROVIDE (__stack_irq_start = .);\r
-    . += IRQ_STACK_SIZE;\r
-    . = ALIGN(4);\r
-    PROVIDE (__stack_irq_end = .);\r
-\r
-    PROVIDE (__stack_abt_start = .);\r
-    . += ABT_STACK_SIZE;\r
-    . = ALIGN(4);\r
-    PROVIDE (__stack_abt_end = .);\r
-\r
-    PROVIDE (__stack_und_start = .);\r
-    . += UND_STACK_SIZE;\r
-    . = ALIGN(4);\r
-    PROVIDE (__stack_und_end = .);\r
-\r
-    PROVIDE (__stack_svc_start = .);\r
-    . += SVC_STACK_SIZE;\r
-    . = ALIGN(4);\r
-    PROVIDE (__stack_svc_end = .);\r
-    PROVIDE (__stack_end = .);\r
-    PROVIDE (__heap_start = .);   \r
-  } > ram\r
-    \r
-}\r
-/*** EOF ***/\r
-\r
+/****************************************************************************
+*  Copyright (c) 2006 by Michael Fischer. All rights reserved.
+*
+*  Redistribution and use in source and binary forms, with or without 
+*  modification, are permitted provided that the following conditions 
+*  are met:
+*  
+*  1. Redistributions of source code must retain the above copyright 
+*     notice, this list of conditions and the following disclaimer.
+*  2. Redistributions in binary form must reproduce the above copyright
+*     notice, this list of conditions and the following disclaimer in the 
+*     documentation and/or other materials provided with the distribution.
+*  3. Neither the name of the author nor the names of its contributors may 
+*     be used to endorse or promote products derived from this software 
+*     without specific prior written permission.
+*
+*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
+*  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
+*  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
+*  FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 
+*  THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
+*  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
+*  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 
+*  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 
+*  AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 
+*  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 
+*  THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
+*  SUCH DAMAGE.
+*
+****************************************************************************
+*
+*  History:
+*
+*  26.01.08  mifi   First Version
+****************************************************************************/
+
+
+ENTRY(ResetHandler)
+SEARCH_DIR(.)
+
+/*
+ * Define stack size here
+ */
+FIQ_STACK_SIZE = 0x0100;
+IRQ_STACK_SIZE = 0x0100;
+ABT_STACK_SIZE = 0x0100;
+UND_STACK_SIZE = 0x0100;
+SVC_STACK_SIZE = 0x0400;
+
+
+MEMORY
+{
+  rom : org = 0x00100000, len = 256k
+  ram : org = 0x00200000, len = 64k
+}
+
+/*
+ * Do not change the next code
+ */
+SECTIONS
+{
+  .text :
+  {
+    *(.vectors);
+    . = ALIGN(4);
+    *(.init);
+    . = ALIGN(4);
+    *(.text);
+    . = ALIGN(4);
+    *(.rodata);
+    . = ALIGN(4);
+    *(.rodata*);
+    . = ALIGN(4);
+    *(.glue_7t);
+    . = ALIGN(4);
+    *(.glue_7);
+    . = ALIGN(4);
+    etext = .;
+  } > rom
+
+  .data :
+  {
+    PROVIDE (__data_start = .);
+    *(.data)
+    . = ALIGN(4);
+    edata = .;
+    _edata = .;
+    PROVIDE (__data_end = .);
+  } > ram
+
+  .bss :
+  {
+    PROVIDE (__bss_start = .);
+    *(.bss)
+    *(COMMON)
+    . = ALIGN(4);
+    PROVIDE (__bss_end = .);
+    
+    . = ALIGN(256);
+    
+    PROVIDE (__stack_start = .);
+    
+    PROVIDE (__stack_fiq_start = .);
+    . += FIQ_STACK_SIZE;
+    . = ALIGN(4);
+    PROVIDE (__stack_fiq_end = .);
+
+    PROVIDE (__stack_irq_start = .);
+    . += IRQ_STACK_SIZE;
+    . = ALIGN(4);
+    PROVIDE (__stack_irq_end = .);
+
+    PROVIDE (__stack_abt_start = .);
+    . += ABT_STACK_SIZE;
+    . = ALIGN(4);
+    PROVIDE (__stack_abt_end = .);
+
+    PROVIDE (__stack_und_start = .);
+    . += UND_STACK_SIZE;
+    . = ALIGN(4);
+    PROVIDE (__stack_und_end = .);
+
+    PROVIDE (__stack_svc_start = .);
+    . += SVC_STACK_SIZE;
+    . = ALIGN(4);
+    PROVIDE (__stack_svc_end = .);
+    PROVIDE (__stack_end = .);
+    PROVIDE (__heap_start = .);   
+  } > ram
+    
+}
+/*** EOF ***/
+
index 0ad6a3c..39b080d 100644 (file)
@@ -1,6 +1,6 @@
-Olimex STM32-p103 board.\r
-\r
-main.elf is a file that can be programmed to flash for\r
-testing purposes(e.g. test GDB load performance).\r
-\r
+Olimex STM32-p103 board.
+
+main.elf is a file that can be programmed to flash for
+testing purposes(e.g. test GDB load performance).
+
 http://www.olimex.com/dev/stm32-p103.html
\ No newline at end of file