<?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>Keil RTX and bootloading</title><link>https://community.arm.com/developer/tools-software/tools/f/armds-forum/500/keil-rtx-and-bootloading</link><description> Note: This was originally posted on 25th January 2011 at http://forums.arm.com Hi all. I&amp;#39;ve recently written a secondary bootloader for NXP LPC17xx devices. The design is relatively simple: All our products have embedded serial flash connected with an</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: Keil RTX and bootloading</title><link>https://community.arm.com/thread/13867?ContentTypeID=1</link><pubDate>Fri, 23 May 2014 15:30:31 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:fe65bb00-4de6-4258-a2ca-2d23f758558e</guid><dc:creator>Antony Pace</dc:creator><description>&lt;div&gt;&lt;p&gt;Thank you so much for posting this. I really can&amp;#39;t understand why it is set to 0 in this file. Took me 2 days to find why the boot code ran, the main app ran but I couldn&amp;#39;t start the RTOS. Of course it&amp;#39;s because the vectors were in the wrong place - even though I had set them to the right place in the boot code!&lt;/p&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Keil RTX and bootloading</title><link>https://community.arm.com/thread/1040?ContentTypeID=1</link><pubDate>Wed, 11 Sep 2013 10:55:59 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:d1fdad97-b2b4-476a-a172-613407ed91b3</guid><dc:creator>Jean Fernandes</dc:creator><description>&lt;div&gt;&lt;i&gt;Note: This was originally posted on 21st August 2011 at &lt;a href="http://forums.arm.com"&gt;http://forums.arm.com&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Johan&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;I have a booloader running on 0x00000000 and another application starting 0x00002000, where the first read the external&lt;/span&gt;&lt;br /&gt;&lt;span&gt;flash and copy the firmware upgrade to 0x00002000 and jump the pc for it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;So What do I need modify on &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;startup_lpc17xx.s&lt;/span&gt;&lt;br /&gt;&lt;span&gt;core_cm3.h&lt;/span&gt;&lt;br /&gt;&lt;span&gt;system_lpc17xx.c&lt;/span&gt;&lt;br /&gt;&lt;span&gt;lpc17xx.h&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;In order to :&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;- Use the 0x00002000 application on normal and debug mode, avoiding undesired writes on bootloader region.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;- Remap all vector address to run the application normally.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Should you explain, what the correct order of code execution before the PC go to the main ?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Regards.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Jean Fernandes&lt;/span&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Keil RTX and bootloading</title><link>https://community.arm.com/thread/1038?ContentTypeID=1</link><pubDate>Wed, 11 Sep 2013 10:55:58 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:b0cfd800-1a81-4555-bb9c-3ef2be492e73</guid><dc:creator>Johan Moraal</dc:creator><description>&lt;div&gt;&lt;i&gt;Note: This was originally posted on 25th January 2011 at &lt;a href="http://forums.arm.com"&gt;http://forums.arm.com&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;I&amp;#39;ve found my problem:&lt;/span&gt;&lt;br /&gt;&lt;span&gt;in the file system_LPC17xx.c I found this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;//&amp;#160; Set Vector table offset value&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#if (__RAM_MODE__==1)&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;#160; SCB-&amp;gt;VTOR&amp;#160; = 0x10000000 &amp;amp; 0x3FFFFF80;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#else&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&amp;#160; SCB-&amp;gt;VTOR&amp;#160; = 0x00000000 &amp;amp; 0x3FFFFF80;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;#endif&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;this obviously sets the VTOR to the incorrect location. It&amp;#39;s merely a coincidence that the application running priveledged mode had the above code and the one running unpriveledged mode did not have it.. SVC is the first IRQ in my RTX app&lt;/span&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Keil RTX and bootloading</title><link>https://community.arm.com/thread/1036?ContentTypeID=1</link><pubDate>Wed, 11 Sep 2013 10:55:58 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:9baa2904-3424-4e8a-95f8-f474058d8810</guid><dc:creator>Joseph Yiu</dc:creator><description>&lt;div&gt;&lt;i&gt;Note: This was originally posted on 25th January 2011 at &lt;a href="http://forums.arm.com"&gt;http://forums.arm.com&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Hi there,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;The Keil RTX Kernel should contain the require SVC handler. For some unknown reasons, the SVC vector in your compiled image might be&amp;#160; pointing to the dummy SVC handler in the startup code rather than the OS kernel.&amp;#160; You might need to check your compile and linking options to see if anything can affect it.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;The dummy SVC handler in the startup code should be declared as [WEAK], which mean it can be overridden by a real SVC handler is it is presented. You can also try remove the dummy SVC handler in the startup code to see if it can solve the problem.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Are you using the source code version or precompiled RTX kernel library?&lt;/span&gt;&lt;br /&gt;&lt;span&gt;If using the source version, make sure HAL_CM3.c is included in the project.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;This contains the &amp;quot;SVC_Handler&amp;quot;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;regards,&lt;/span&gt;&lt;br /&gt;&lt;span&gt;Joseph&lt;/span&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>