<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.arm.com/utility/feedstylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Do I REALLY need a scatter file (and license ?)</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/26165/do-i-really-need-a-scatter-file-and-license</link><description> 
Hi all. 
I&amp;#39;m using CortexM3 (STM32F103VB) with Keil uVision3 v.3.85. 
I&amp;#39;ve developed my own bootloader allocated between 0x08000000 and
0x08001FFF. 
4 bytes from 0x08002000 to 0x08002003 are used for FW checksums. 
Bytes from 0x080002004 on are used</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: Do I REALLY need a scatter file (and license ?)</title><link>https://community.arm.com/thread/101937?ContentTypeID=1</link><pubDate>Mon, 21 Sep 2009 06:19:40 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:1cd338b7-65cd-4026-b54d-746406ca715f</guid><dc:creator>M D</dc:creator><description>&lt;p&gt;&lt;p&gt;
Sorry i meant&lt;/p&gt;

&lt;p&gt;
0x08002000, 0x08002080, 0x08002100, 0x08002200 and 0x08002300&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Do I REALLY need a scatter file (and license ?)</title><link>https://community.arm.com/thread/92108?ContentTypeID=1</link><pubDate>Mon, 21 Sep 2009 06:16:32 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:08384d8d-b84e-49a0-a1bb-7bc0fd66fc35</guid><dc:creator>M D</dc:creator><description>&lt;p&gt;&lt;p&gt;
Hi Robert,&lt;/p&gt;

&lt;p&gt;
you&amp;#39;re right, I didn&amp;#39;t read the details on NVIC offset, vectors
shall be aligned to 0x80 blocks!&lt;br /&gt;
I moved my FW to 0x08002400, called&lt;/p&gt;

&lt;pre&gt;
NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x2400);
&lt;/pre&gt;

&lt;p&gt;
and the application successfully run if I left out all checksum
stuff.&lt;br /&gt;
However if I re-introduce the checksum &lt;i&gt;BEFORE&lt;/i&gt; 0x08002400 the
execution get lost as soon the bootloader jumps to FW (I&amp;#39;ve tried
placing checksums at 0x08000000, 0x08000080, 0x08000100, 0x08000200
and 0x08000300).&lt;/p&gt;

&lt;p&gt;
If I move the checsum to &amp;quot;&lt;i&gt;high&lt;/i&gt;&amp;quot; pages (after the FW,
&lt;b&gt;inside&lt;/b&gt; the flash zone delimited by FW project target
properties) all is well.&lt;/p&gt;

&lt;p&gt;
I could consider the problem &lt;i&gt;solved&lt;/i&gt; and move checksums to
high pages, however I&amp;#39;d like to understand if the problem of placing
const data &lt;i&gt;BEFORE&lt;/i&gt; the vectors is related to lacking/poor
linker settings or something else.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Do I REALLY need a scatter file (and license ?)</title><link>https://community.arm.com/thread/56848?ContentTypeID=1</link><pubDate>Mon, 21 Sep 2009 01:16:11 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:29351a19-491c-4c0f-a8f5-0797e0d95038</guid><dc:creator>Robert &amp;#160;</dc:creator><description>&lt;p&gt;&lt;pre&gt;
NVIC_SetVectorTable(NVIC_VectTab_FLASH,0x2004);
&lt;/pre&gt;

&lt;p&gt;
Your NVIC Vector table is not properly aligned.&lt;/p&gt;

&lt;p&gt;
Minimum alignment for the Vector table is 32 words (up to 16
interrupts). STM32 devices have slightly less then 60 external
interrupts (+ 16 exceptions) therefore proper alignment is 128
words.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Do I REALLY need a scatter file (and license ?)</title><link>https://community.arm.com/thread/89986?ContentTypeID=1</link><pubDate>Sun, 20 Sep 2009 18:16:12 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:cced7f34-6a5e-4517-9064-1c3ee0dea7a4</guid><dc:creator>John Linq</dc:creator><description>&lt;p&gt;&lt;p&gt;
I don&amp;#39;t have any experience on ST MCU and ARM Cortex-M.&lt;/p&gt;

&lt;p&gt;
I did a quick google search, and found something.&lt;/p&gt;

&lt;pre&gt;
#ifdef  VECT_TAB_RAM
  /* Set the Vector Table base location at 0x20000000 */
  NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
#else  /* VECT_TAB_FLASH  */
  /* Set the Vector Table base location at 0x08000000 */
  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);
#endif
&lt;/pre&gt;

&lt;p&gt;
It seems that 0x08000000 is for NVIC_VectTab in FLASH, so can not
be used for other purpose.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Do I REALLY need a scatter file (and license ?)</title><link>https://community.arm.com/thread/56864?ContentTypeID=1</link><pubDate>Fri, 18 Sep 2009 07:11:46 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:0da6c25a-9d09-4a83-bdd6-a9d55de50f7f</guid><dc:creator>M D</dc:creator><description>&lt;p&gt;&lt;p&gt;
I realized that another important test was missing.&lt;br /&gt;
I left out all the checksum stuff, but left the sample fw at
0x8002004.&lt;br /&gt;
It &lt;b&gt;doesn&amp;#39;t&lt;/b&gt; work.&lt;/p&gt;

&lt;p&gt;
So, the problems of irq not working seems not to be related to
memory access to a constant out of linker parameters.&lt;/p&gt;

&lt;p&gt;
Still need some help&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>