<?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>Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/20440/bootloader-application-structures-and-deep-pointer</link><description> Bootloader: C:0x0000 - C:0x7FFF 
Manages CAN-Communication and in-field update. 
 Application C:0x8000 - C:0xEFFF 
Applications is controlled with bootloader over CAN 2.0. 
 
Compiled both seperatly and merge the Hex-file. Interrupts and function calls</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/153911?ContentTypeID=1</link><pubDate>Wed, 26 Jul 2006 11:04:59 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:1cad98f9-2138-43c1-8acf-af480bdd60ba</guid><dc:creator>Michael Maennel</dc:creator><description>&lt;p&gt;Executing applications ?C_START when switch from bootloader to application.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/153273?ContentTypeID=1</link><pubDate>Tue, 25 Jul 2006 16:35:17 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:669af9bf-eac1-450a-a6ae-d0215dd12903</guid><dc:creator>Christoph Franck</dc:creator><description>&lt;p&gt;&lt;i&gt;Thanks for plenty help. I solved the problem ...&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Great ! So, what was the solution ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/152587?ContentTypeID=1</link><pubDate>Tue, 25 Jul 2006 13:54:01 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:fe33a645-cc10-4908-bf57-e5530c3b079f</guid><dc:creator>Michael M&amp;#228;nnel</dc:creator><description>&lt;p&gt;Thanks for plenty help. I solved the problem but the next problem trapped me.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/153272?ContentTypeID=1</link><pubDate>Tue, 25 Jul 2006 09:13:09 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:1c2b8b87-b5e1-469f-90db-2545744be897</guid><dc:creator>Andy Neil</dc:creator><description>&lt;p&gt;&lt;i&gt;&amp;quot;a &amp;#39;fast approximate square root&amp;#39; may very well be adapted to a particilar processor/compiler as well and thus not &amp;#39;portable&amp;#39;.&amp;quot;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, &amp;quot;maximum performance&amp;quot; and &amp;quot;portable&amp;quot; do tend to be mutually exclusive; as the well-known phrase (almost) goes:&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Cheap, Fast, Portable - Pick &lt;b&gt;one&lt;/b&gt;.&lt;/i&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/152575?ContentTypeID=1</link><pubDate>Tue, 25 Jul 2006 08:52:56 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:7947b136-d81e-417a-9c17-31a7a321b9db</guid><dc:creator>erik  malund</dc:creator><description>&lt;p&gt;&lt;i&gt;Generally, the task of an embedded system is so closely linked to its specific hardware platform that any effort at making it &amp;quot;portable&amp;quot; is largely pointless!&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Well said&lt;br /&gt;
&lt;br /&gt;
The &amp;#39;portability thing&amp;#39; is another academic idea that has virtually no practical value for microcontrollers.&lt;br /&gt;
&lt;br /&gt;
Where &amp;#39;portability&amp;#39; may have a value (things like a &amp;#39;fast approximate square root&amp;#39;), there will be no use of malloc, function pointers etc. and &amp;#39;portability&amp;#39; is automatic.&lt;br /&gt;
&lt;br /&gt;
Now I may be sticking my foot in my mouth, because a &amp;#39;fast approximate square root&amp;#39; may very well be adapted to a particilar processor/compiler as well and thus not &amp;#39;portable&amp;#39;.&lt;br /&gt;
&lt;br /&gt;
When developing a product to be sold in 9 different versions from &amp;#39;economy&amp;#39; to &amp;#39;advanced&amp;#39; I was tasked with developing the &amp;#39;OS&amp;#39; to allow two different processors run the same code and it turned out that the &amp;#39;OS&amp;#39; (the &amp;#39;controller&amp;#39; part) was totally different and the rest (the &amp;#39;processor&amp;#39; part) was identical source.  Which lead to the conclusion that &amp;#39;portability&amp;#39; for a controler is an illusion and for a processor it makes sense.&lt;br /&gt;
&lt;br /&gt;
Erik&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/153908?ContentTypeID=1</link><pubDate>Tue, 25 Jul 2006 07:56:42 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:fad6737d-d68d-4ed1-be4d-7305a38c2a33</guid><dc:creator>erik  malund</dc:creator><description>&lt;p&gt;&lt;i&gt;I&amp;#39;d guess he probably &amp;quot;inherited&amp;quot; the software from someone else. How else could it happen that he already has a really large piece of software and only then finds out that some fairly basic functionality is missing ?&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
As long as we are guessing, this is not the first time a beginner has written a huge project before even understanding what was going on, usually it is &amp;quot;while waiting for the hardware&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Erik&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/151802?ContentTypeID=1</link><pubDate>Tue, 25 Jul 2006 07:52:50 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:cba65a0d-d398-4a1c-b23c-2787bea0c523</guid><dc:creator>erik  malund</dc:creator><description>&lt;p&gt;&lt;i&gt;My &amp;#39;51 project works just fine, and the MCU is quite suited for the task I have.&lt;/i&gt;&lt;br /&gt;
I am amazed you achieved that with a cross between a dinosaur, a mule and a cockroach.&lt;br /&gt;
&lt;br /&gt;
Erik&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/151796?ContentTypeID=1</link><pubDate>Tue, 25 Jul 2006 07:48:35 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:c9f9a0fe-873e-4bbe-8a2d-b1023e6f6f94</guid><dc:creator>erik  malund</dc:creator><description>&lt;p&gt;&lt;i&gt;I am, honestly getting fed up with those that select the wrong processor for the job and them start whining.&lt;br /&gt;
&lt;br /&gt;
Its not always your nice little electronic playground in the basement.&lt;/i&gt;&lt;br /&gt;
I wish I could have the income I have from my job, in &amp;quot;my nice little electronic playground&amp;quot; That would be luvverly.  However, since I work with this 8+ hours a day I do not have a &amp;quot;nice little electronic playground&amp;quot; there are other things in life.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;And if somebody is - like Micheal admitted - still a student who has to deal with this problem he obviously didn&amp;#39;t choose, it is really nice helping him out. If you dont want to help him - leave it - but stop nagging around.&lt;/i&gt;&lt;br /&gt;
I have tried and tried to help him, but what has his response been to my helpful hint  &amp;quot;get rid of function pointers&amp;quot;?&lt;br /&gt;
&lt;br /&gt;
Erik&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/153270?ContentTypeID=1</link><pubDate>Tue, 25 Jul 2006 07:48:02 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:dca9d4d9-b1eb-4e84-a643-8feb8826c2d7</guid><dc:creator>Christoph Franck</dc:creator><description>&lt;p&gt;&lt;i&gt;hold your horses, are you saying that somebody else told him to use function pointers?&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
I&amp;#39;d guess he probably &amp;quot;inherited&amp;quot; the software from someone else. How else could it happen that he already has a really large piece of software and only then finds out that some fairly basic functionality is missing ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/152579?ContentTypeID=1</link><pubDate>Tue, 25 Jul 2006 07:42:17 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:79a7ab3c-54b6-41f4-af37-9afbd86ce97b</guid><dc:creator>erik  malund</dc:creator><description>&lt;p&gt;&lt;i&gt;&amp;quot;a student who has to deal with this problem he obviously didn&amp;#39;t choose&amp;quot;&lt;/i&gt;&lt;br /&gt;
hold your horses, are you saying that somebody else &lt;b&gt;told him&lt;/b&gt; to use function pointers?&lt;br /&gt;
&lt;br /&gt;
In my response to the &amp;quot;the &amp;#39;51 is a piece of $#!^&amp;#39; post I addressed a number of issues, and I think one thing has been lost:&lt;br /&gt;
&lt;br /&gt;
I did not say &amp;quot;what he wants to do can not be done with a &amp;#39;51&amp;quot;, I said &amp;quot;what he wants to do can not be done applying PC coding style to a &amp;#39;51&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Erik&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/151795?ContentTypeID=1</link><pubDate>Tue, 25 Jul 2006 06:56:00 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:fdc1460e-dff6-477c-8897-73d2d5be6d83</guid><dc:creator>Andy Neil</dc:creator><description>&lt;p&gt;&lt;i&gt;&amp;quot;I think one of the biggest challenges in embedded software development is the goal to build cross platform software...&amp;quot;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
I don&amp;#39;t think that is generally a significant goal in embedded development at all!&lt;br /&gt;
&lt;br /&gt;
Generally, the task of an embedded system is so closely linked to its specific hardware platform that any effort at making it &amp;quot;portable&amp;quot; is largely pointless!&lt;br /&gt;
&lt;br /&gt;
Of course, there are some parts of an embedded system that can benefit from portability - comms protocols is one that springs to mind.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&amp;quot;You often do not have the choice of the platform...&amp;quot;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
See above - the platform will usually have been chosen to be suited to the application.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&amp;quot;a student who has to deal with this problem he obviously didn&amp;#39;t choose&amp;quot;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Is it obvious that he didn&amp;#39;t choose it?&lt;br /&gt;
If he didn&amp;#39;t, it is indeed a shame that he&amp;#39;s been given an inapproriate target, and/or inadequate guidance in using it;&lt;br /&gt;
If he did, it is a shame that he&amp;#39;s been given inapproriate and/or inadequate guidance in his choice.&lt;br /&gt;
&lt;br /&gt;
Oh well, he&amp;#39;s probably learned something about selecting an appropriate target byt now...!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/147309?ContentTypeID=1</link><pubDate>Tue, 25 Jul 2006 02:25:29 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:fb00267a-b043-48f2-bbd7-e8efcbe65230</guid><dc:creator>Christian Wehebrink</dc:creator><description>&lt;p&gt;@Erik: Very nice and smart comments, although you are right.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;The post I comment on illustrates how blatantly ignorant some are matching the application and the processor.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
I think one of the biggest challenges in embedded software development is the goal to build cross platform software efficient in size and speed, that is modular and maintainable. You often do not have the choice of the platform and have to make things going. You lucky, seems you lack that experience.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;I am, honestly getting fed up with those that select the wrong processor for the job and them start whining.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;I am fed up&lt;/b&gt; with people beeing so smart and and having no clue about real life. Its not always your nice little electronic playground in the basement.&lt;br /&gt;
And if somebody is - like Micheal admitted - still a student who has to deal with this problem he obviously didn&amp;#39;t choose, it is really nice helping him out. If you dont want to help him - leave it - but stop nagging around.&lt;br /&gt;
&lt;br /&gt;
And by the way, the person whining around is &lt;b&gt;not&lt;/b&gt; him!&lt;br /&gt;
&lt;br /&gt;
cheerz&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/151063?ContentTypeID=1</link><pubDate>Mon, 24 Jul 2006 16:54:19 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:a9ea783f-9a11-456f-b6b0-135e4dcfbeab</guid><dc:creator>Christoph Franck</dc:creator><description>&lt;p&gt;&lt;i&gt;I am very happy with the way it does things, that it is intended for, it does such things beautifully&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
No one would expect a racehorse to do the work of a mule, or vice versa.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;The post I comment on illustrates how blatantly ignorant some are matching the application and the processor.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Whoaaa ... wait a minute. Easy on the coffee, maybe try decaf ?&lt;br /&gt;
&lt;br /&gt;
I&amp;#39;m not the one who&amp;#39;s trying to do floating point math in an ISR, or implement paged virtual memory on a &amp;#39;51, or juggling function pointers around. My &amp;#39;51 project works just fine, and the MCU is quite suited for the task I have.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;If you want &amp;quot;C is C&amp;quot; stay with your beloved PC.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
I haven&amp;#39;t programmed on a PC in, uh, years, and nothing I ever did on a PC was even close to a commercial project. I started directly with DSPs and uCs, and my very first project was pretty much pure assembly, except for some boring clerical parts that were easier to do in C.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/145999?ContentTypeID=1</link><pubDate>Mon, 24 Jul 2006 15:33:36 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:4f7c920f-9e2e-4a2b-9f22-0a22806eefb9</guid><dc:creator>erik  malund</dc:creator><description>&lt;p&gt;&lt;i&gt;Sorry to tell you this, but the &amp;#39;51 is a mix between a dinosaur, a cockroach, and a mule.&lt;/i&gt;&lt;br /&gt;
A very interesting biological experiment&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;A dinosaur because it&amp;#39;s ancient and outdated and shouldn&amp;#39;t be around anymore today.&lt;/i&gt;&lt;br /&gt;
Well, so must the Pentium be, it is an x86 processor dating equally far back as far as the roots go.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;A cockroach because it&amp;#39;s prolific and it won&amp;#39;t go away. Even if you step on it and flush it down the toilet, it&amp;#39;ll just crawl out of the sink again. It&amp;#39;ll probably also be around long after you&amp;#39;re dead and buried.&lt;/i&gt;&lt;br /&gt;
That proves how resilient it is, just look at how much it has mutated.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;A mule because it does things its way. If you want it to do anything meaningful, you need to learn what &amp;quot;its way&amp;quot; is, since it won&amp;#39;t do anything your way.&lt;/i&gt;&lt;br /&gt;
I am very happy with the way it does things, &lt;b&gt;that it is intended for, it does such things beautifully&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The post I comment on illustrates how &lt;b&gt;blatantly ignorant&lt;/b&gt; some are matching the application and the processor.&lt;br /&gt;
&lt;br /&gt;
If you want &amp;quot;C is C&amp;quot; stay with your beloved  PC.&lt;br /&gt;
&lt;br /&gt;
I do feel sorry for you, having accepted a job that required knowledge and actual thought in the belief that your PC &lt;b&gt;coding&lt;/b&gt; skills were applicable to &amp;#39;51 &lt;b&gt;programming&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
I am, honestly getting fed up with those that select the wrong processor for the job and them start whining.&lt;br /&gt;
&lt;br /&gt;
The &amp;#39;51 Is a &lt;b&gt;lousy&lt;/b&gt; processor if you try to use it &lt;b&gt;for what it is not intended for&lt;/b&gt;.  It is a &lt;b&gt;great&lt;/b&gt; processor if you use it &lt;b&gt;for what it is intended for&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
I know that some, who can not accept that the reason they are getting paid is that they are supposed to work, but sit back an whine &amp;quot;why is it not easier to program&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Go ahead and &lt;b&gt;put a pentium in a $2 toy&lt;/b&gt; it is, after all easy to program, I wish you great success with your business.&lt;br /&gt;
&lt;br /&gt;
Erik&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/144131?ContentTypeID=1</link><pubDate>Mon, 24 Jul 2006 14:49:14 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:8b354872-897d-4117-92be-ac3771a9d6f8</guid><dc:creator>Christoph Franck</dc:creator><description>&lt;p&gt;&lt;i&gt;The possible incapacity of microcontroller is disapointing.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Sorry to tell you this, but the &amp;#39;51 is a mix between a dinosaur, a cockroach, and a mule.&lt;br /&gt;
&lt;br /&gt;
A dinosaur because it&amp;#39;s ancient and outdated and shouldn&amp;#39;t be around anymore today.&lt;br /&gt;
&lt;br /&gt;
A cockroach because it&amp;#39;s prolific and it won&amp;#39;t go away. Even if you step on it and flush it down the toilet, it&amp;#39;ll just crawl out of the sink again. It&amp;#39;ll probably also be around long after you&amp;#39;re dead and buried.&lt;br /&gt;
&lt;br /&gt;
A mule because it does things its way. If you want it to do anything meaningful, you need to learn what &amp;quot;its way&amp;quot; is, since it won&amp;#39;t do anything your way.&lt;br /&gt;
&lt;br /&gt;
Look at the instruction set of the &amp;#39;51, it will tell you why the &amp;#39;51 architecture is badly suited for function pointers.&lt;br /&gt;
&lt;br /&gt;
If you have the ability to step through the program, you might be able to figure out at which point in the function the pointer becomes corrupted. Most likely it is during/after a call to sprintf or another function.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/141644?ContentTypeID=1</link><pubDate>Mon, 24 Jul 2006 13:55:16 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:a53dd50e-9120-48bd-9b09-0f96fc7edceb</guid><dc:creator>Michael M&amp;#228;nnel</dc:creator><description>&lt;p&gt;Thanks Christoph for not giving up!&lt;br /&gt;
&lt;br /&gt;
I&amp;#39;m a student at work. Sorry.&lt;br /&gt;
&lt;br /&gt;
Telling the linker wich RAM to use for app or bootloader made in linker-script. I thought. Another idea is the initialisation of constant during startup of application. I wrapped the startup-code into c-function &lt;pre&gt;do_cinit()&lt;/pre&gt;, but it&amp;#39;s impossible to call the C_INITSEG from your  clib, wich should init the applications variables. The Startup-code only writes NULL to memory. When compiled together, bootloaders C_INITSEG do the init and the problem do not apear.&lt;br /&gt;
&lt;br /&gt;
The possible incapacity of micro&lt;b&gt;controller&lt;/b&gt; is disapointing. Whether cisc or risc not the problem can be here. it is available sufficient time, code and RAM, around which desired operations can use. I am to be tried determined it more.&lt;br /&gt;
&lt;br /&gt;
Thanks for your help.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/138242?ContentTypeID=1</link><pubDate>Mon, 24 Jul 2006 13:18:21 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:46310beb-d80b-40ee-85c5-1a5c7e3e57b6</guid><dc:creator>Christoph Franck</dc:creator><description>&lt;p&gt;&lt;i&gt;That&amp;#39;s not correct. Both Projects compilied together work.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
When compiling separately, did you tell the linker which RAM areas it may use for each of the projects ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/144128?ContentTypeID=1</link><pubDate>Mon, 24 Jul 2006 11:31:47 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:eb32653b-90e2-463f-8b43-ae1245480313</guid><dc:creator>erik  malund</dc:creator><description>&lt;p&gt;Your use of function pointers blow &amp;quot;the compilation of the second project&amp;quot; Really? Drop the &amp;#39;really and, as I suggested: read up on the way the &amp;#39;51 and the tools for it work.&lt;br /&gt;
&lt;br /&gt;
NOBODY that has &amp;quot;read up on the way the &amp;#39;51 and the tools for it work&amp;quot; is surprised.&lt;br /&gt;
&lt;br /&gt;
Erik&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/141638?ContentTypeID=1</link><pubDate>Mon, 24 Jul 2006 11:03:28 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:f950299b-8b6c-4703-b5de-a9fc278f5003</guid><dc:creator>Michael Maennel</dc:creator><description>&lt;p&gt;I&amp;#39;m still here.&lt;br /&gt;
&lt;br /&gt;
This testmain() in the applications-µVision-project works fine. Debugging information over serial port. All adresse corect.&lt;br /&gt;
&lt;pre&gt;
void main(void)
{
  tXS_ParameterPtr paramPtr;
  paramPtr-&amp;gt;value[0x00u] = 0x00u;
  XSIM_EventDetachAll(paramPtr);
  while(1);
}
&lt;/pre&gt;
&lt;br /&gt;
&lt;b&gt;XSIM_EventDetachAll&lt;/b&gt; calls XSDevice_GetEventChanByID with the global address of DeviceGroups. The eventChannelPtr is returned correct.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Your use of function pointers blow &amp;quot;the compilation of the second project&amp;quot;&lt;/i&gt; Really?&lt;br /&gt;
&lt;br /&gt;
I go home for today, perhaps solution tomorrow.&lt;br /&gt;
&lt;br /&gt;
Micha&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/138241?ContentTypeID=1</link><pubDate>Mon, 24 Jul 2006 10:14:51 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:7ce2aadc-afd8-411b-aba3-459938718928</guid><dc:creator>erik  malund</dc:creator><description>&lt;p&gt;&lt;i&gt;That&amp;#39;s not correct. Both Projects compilied together work.&lt;br /&gt;
&lt;br /&gt;
The problem is the compilation of the second project.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
WHAT ON EARTH HAS &amp;quot;Both Projects compilied together work&amp;quot; to do with the fact that your use of function pointers blow &amp;quot;the compilation of the second project&amp;quot;&lt;br /&gt;
&lt;br /&gt;
If you took the time to get rid of the utterly stupid attitude that &amp;quot;C IS C&amp;quot; and read up on the way the &amp;#39;51 and the tools for it work, you would understand why you have the problem you have, the reason of which Andy has already posted twice.&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;not really satisfying answer - &amp;quot;the &amp;#39;51 ain&amp;#39;t no PC&amp;quot; got it? &lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Of course, it can not be &amp;#39;satisfying&amp;#39; to someone that insist on ignoring the underlying architecture.  That, however does not change that it is a FACT.&lt;br /&gt;
&lt;br /&gt;
Erik&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/134794?ContentTypeID=1</link><pubDate>Mon, 24 Jul 2006 09:47:04 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:1ec8a665-ac59-4b8d-90db-062250a04c6e</guid><dc:creator>Michael Maennel</dc:creator><description>&lt;p&gt;That&amp;#39;s not correct. Both Projects compilied together work.&lt;br /&gt;
&lt;br /&gt;
The problem is the compilation of the second project.&lt;br /&gt;
Here Startup and linker-script:&lt;br /&gt;
&lt;pre&gt;
NAME	FSWSTARTUP80C515

?PR?_do_cinit?FSWSTARTUP80C515           SEGMENT CODE
?PR?_do_deinit?FSWSTARTUP80C515          SEGMENT CODE
?CO?FSWSTARTUP80C515                     SEGMENT CODE

	PUBLIC	_cinit_scn
	PUBLIC	_do_deinit
	PUBLIC	_do_cinit

	RSEG  ?CO?FSWSTARTUP80C515
_cinit_scn:
	DB  000H,000H
	RSEG ?CO?FSWSTARTUP80C515

    IDATALEN        EQU     00H
    XDATASTART      EQU     8000H
    XDATALEN        EQU     6FFFH
    PDATASTART      EQU     0H
    PDATALEN        EQU     000H
    IBPSTACK        EQU     0
    IBPSTACKTOP     EQU     0xFF +1
    XBPSTACK        EQU     0
    XBPSTACKTOP     EQU     0xFFFF +1
    PBPSTACK        EQU     0
    PBPSTACKTOP     EQU     0xFF +1
    PPAGEENABLE     EQU     0
    PPAGE           EQU     0
    PPAGE_SFR       DATA    0A0H


  ?XSIMSTACK          SEGMENT   IDATA
  RSEG    ?XSIMSTACK
  DS     0x1
RSEG  ?PR?_do_cinit?FSWSTARTUP80C515
_do_cinit:
	USING	0
STARTUP1:

IF IDATALEN &amp;lt;&amp;gt; 0
	  MOV     R0,#IDATALEN - 1
	  CLR     A
IDATALOOP:      MOV     @R0,A
      	  DJNZ    R0,IDATALOOP
ENDIF


IF XDATALEN &amp;lt;&amp;gt; 0
	  MOV     DPTR,#XDATASTART
	  MOV     R7,#LOW (XDATALEN)
IF (LOW (XDATALEN)) &amp;lt;&amp;gt; 0
	  MOV     R6,#(HIGH (XDATALEN)) +1
ELSE
	  MOV     R6,#HIGH (XDATALEN)
ENDIF
	  CLR     A
XDATALOOP:      MOVX    @DPTR,A
	  INC     DPTR
	  DJNZ    R7,XDATALOOP
	  DJNZ    R6,XDATALOOP
ENDIF

IF PPAGEENABLE &amp;lt;&amp;gt; 0
	  MOV     PPAGE_SFR,#PPAGE
ENDIF

IF PDATALEN &amp;lt;&amp;gt; 0
    MOV     R0,#PDATASTART
    MOV     R7,#LOW (PDATALEN)
    CLR     A
PDATALOOP:      MOVX    @R0,A
	  INC     R0
	  DJNZ    R7,PDATALOOP
ENDIF

IF IBPSTACK &amp;lt;&amp;gt; 0
 	  MOV     ?C_IBP,#LOW IBPSTACKTOP
	  ENDIF

IF XBPSTACK &amp;lt;&amp;gt; 0
	  MOV     ?C_XBP,#HIGH XBPSTACKTOP
	  MOV     ?C_XBP+1,#LOW XBPSTACKTOP
	  ENDIF

IF PBPSTACK &amp;lt;&amp;gt; 0
          MOV     ?C_PBP,#LOW PBPSTACKTOP
ENDIF

	  ;MOV     SP,#?XSIMSTACK-1

	  ;LJMP    ?C_START

?C0003:
	RET


	RSEG  ?PR?_do_deinit?FSWSTARTUP80C515
_do_deinit:
	USING	0

?C0004:
	RET

	END
&lt;/pre&gt;
&lt;pre&gt;
REGFILE (..\05_out\xsim_debug.ORC)
PRINT(&amp;quot;..\05_out\xsim_debug.map&amp;quot;) NOOVERLAY
CLASSES (
XDATA (X:0x8000-X:0xF7FF, X:0xF800-X:0xFFFF),
XDATA_ADL(X:0x0000 - X:0x2FFF),
XDATA_HISIO (X:0x3000-X:0x3FFF),
XDATA_HISFF (X:0x7000-X:0x74FF),
XDATA_XSIM (X:0x8000-X:0xEFFF),
CODE  (C:0x8000-C:0xEFFF),
CODE_ADL(C:0x0000-C:0x6AFF),
CODE_HISFF(C:0x7600-C:0x7FFF),
CODE_HISIO (C:0xE600-C:0xEFFF),
CODE_XSIM(C:0x8100-C:0xB2FF),
CONST_XSIM(C:0x8000-C:0xFFFF)
)&amp;amp;
SEGMENTS(
?CO?ADLATUS_ASWENTRYTABLE(C:0x8000),
?C?LIB_CODE(C:0x807C),
?C_INITSEG(C:0x841F),
?PR?XSIM_ASMREFRESHWDT?XSIM_ASMREFRESHWDT(C:0x8070),
?PR?XSIM_ISR_TIMER1?XSIM_INTERRUPTS(C:0x801b),
?XSIMSTACK(I:0x91)
)
)
&lt;/pre&gt;
&lt;br /&gt;
not really satisfying answer - &amp;quot;the &amp;#39;51 ain&amp;#39;t no PC&amp;quot; got it?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/123340?ContentTypeID=1</link><pubDate>Mon, 24 Jul 2006 08:36:40 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:96e1a314-0b89-4f92-984a-599f75700f82</guid><dc:creator>erik  malund</dc:creator><description>&lt;p&gt;you have been told again and again that your problems are related to yout &lt;b&gt;total refusal&lt;/b&gt; to appreciate the architecture of the microcontroller you use and just push on with the function pointers that is one of the micro&lt;b&gt;processor&lt;/b&gt; methods which this micro&lt;b&gt;controller&lt;/b&gt; is incapable of.  I can appreciate that Keil, to stay ANSI compliant, has somehow &lt;b&gt;wrangled&lt;/b&gt; this functionality into the compiler, does that make it what you should use &lt;b&gt;by no means&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Why on earth would anyone want to continue helping you when you refuse to follow advice given several times (get rid of the function pointers).&lt;br /&gt;
&lt;br /&gt;
&amp;quot;the &amp;#39;51 ain&amp;#39;t no PC&amp;quot; got it?&lt;br /&gt;
&lt;br /&gt;
Erik&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/138243?ContentTypeID=1</link><pubDate>Mon, 24 Jul 2006 08:21:06 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:9aea1a7a-3a07-4eb5-afd3-c9ff20669d10</guid><dc:creator>Michael Maennel</dc:creator><description>&lt;p&gt;I disabled NOOVERLAY to get a call tree in my map-file.&lt;br /&gt;
&lt;br /&gt;
But the calling tree of the application is empty. Perhaps it&amp;#39;s a problem with my startup-code and linker-script inside application-project.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/134788?ContentTypeID=1</link><pubDate>Mon, 24 Jul 2006 08:11:00 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:aed8dd72-debf-456d-92df-4270508c3346</guid><dc:creator>Christoph Franck</dc:creator><description>&lt;p&gt;&lt;i&gt;A lot of Linker Errors with different Datatypes and Unresolved Externals.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
I guess you will have to hunt down all declarations of the function and change them accordingly.&lt;br /&gt;
&lt;br /&gt;
However, this was just something I noted on the side.&lt;br /&gt;
&lt;br /&gt;
The cause for your problem is most likely related to the call tree. Read the application note and the chapter in the linker&amp;#39;s documentation.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Bootloader, Application, Structures and deep pointer</title><link>https://community.arm.com/thread/123349?ContentTypeID=1</link><pubDate>Mon, 24 Jul 2006 07:26:09 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:6c18eb57-c825-4d1b-bcfc-6212aea2eec4</guid><dc:creator>Michael Maennel</dc:creator><description>&lt;p&gt;&lt;pre&gt;
tXSDevice_DeviceEntry xdata * deviceEntryPtr
&lt;/pre&gt;
A lot of Linker Errors with different Datatypes and Unresolved Externals. I change my typedef from&lt;br /&gt;
&lt;pre&gt;
typedef struct _XSIMDEVICE {

  tXS_UINT8 numEvents;             /**&amp;lt; Event entry count for the device.*/
  tXS_UINT8 groupCount;                     /**&amp;lt; Group entry count for the device.*/

  tXSEvent_SourcePtr eventListPtr; /**&amp;lt; Event group pointer. */
  struct _XSIMDEVICEGROUPINFO groupList[0x10u]; /**&amp;lt; Pointer to list of group entries. */

} tXSDevice_DeviceEntry;
&lt;/pre&gt;
to&lt;br /&gt;
&lt;pre&gt;
typedef xdata struct _XSIMDEVICE {

  tXS_UINT8 numEvents;             /**&amp;lt; Event entry count for the device.*/
  tXS_UINT8 groupCount;                     /**&amp;lt; Group entry count for the device.*/

  tXSEvent_SourcePtr eventListPtr; /**&amp;lt; Event group pointer. */
  struct _XSIMDEVICEGROUPINFO groupList[0x10u]; /**&amp;lt; Pointer to list of group entries. */

} tXSDevice_DeviceEntry;
&lt;/pre&gt;
&lt;br /&gt;
But do not work.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>