<?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/"><channel><title>Alex Johnson's Groups Activities</title><link>https://community.arm.com/members/alex-johnson</link><description>Recent activity for people in Alex Johnson's group</description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>ARM clang compiler errors out as - error: unknown register name &amp;#39;cp15:0:c9:c12:0&amp;#39;</title><link>https://community.arm.com/developer/tools-software/tools/f/arm-compilers-forum/48020/arm-clang-compiler-errors-out-as---error-unknown-register-name-cp15-0-c9-c12-0</link><pubDate>Tue, 10 Nov 2020 06:57:09 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:8acb5258-6e4a-4a8e-b1bb-34b648382123</guid><dc:creator>Anupam_on</dc:creator><description>&lt;p&gt;I am trying to migrate my source code compilation from armcc compiler v5.06 to armclang v6. And I see armclang errors out saying it can not recognize cp15 registers. It looks like there might be a change in armcc vs clang as how to declare the registers. However, I could not find anything on the migration docs or in compiler doc.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Here is the code snippet -&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;void reset_clock_count(void)
{
    register uint32_t reg_cp15_pmcr __asm(&amp;quot;cp15:0:c9:c12:0&amp;quot;);
    reg_cp15_pmcr |=  RESET_CYCLE_COUNTER;
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;strong&gt;And error snippet -&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;error: unknown register name &amp;#39;cp15:0:c9:c12:0&amp;#39; in asm
    register uint32_t reg_cp15_pmcr __asm(&amp;quot;cp15:0:c9:c12:0&amp;quot;);
                                          ^
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I see same errors for other places for similarly declared register. Any pointer on what might have gone wrong will be helpful.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>getting error as error C141: syntax error near &amp;#39;void&amp;#39;, expected &amp;#39;__asm&amp;#39;   at linevoid lcdcmd(unsigned char val)</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/48007/getting-error-as-error-c141-syntax-error-near-void-expected-__asm-at-linevoid-lcdcmd-unsigned-char-val</link><pubDate>Mon, 09 Nov 2020 05:02:15 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:c0af9076-2ea6-4b0a-9cf1-38e37222fe01</guid><dc:creator>Heth</dc:creator><description>&lt;p&gt;#include&amp;lt;reg51.h&amp;gt;&lt;br /&gt;sbit ir1=P1^0; //entry&lt;br /&gt;sbit ir2=P1^1; //exit&lt;br /&gt;sbit rs=P2^0;&lt;br /&gt;sbit rw=P2^1;&lt;br /&gt;sbit en=P2^2;&lt;br /&gt;void lcdcmd(unsigned char);&lt;br /&gt;void lcddat(unsigned char);&lt;br /&gt;void lcddis(unsigned char *s,unsigned char r );&lt;br /&gt;void lcdconv(unsigned char);&lt;br /&gt;void delay();&lt;br /&gt;void main()&lt;br /&gt;{&lt;br /&gt; unsigned char x,y;&lt;br /&gt; lcdcmd(0x38);&lt;br /&gt; delay();&lt;br /&gt; lcdcmd(0x01);&lt;br /&gt; delay();&lt;br /&gt; lcdcmd(0x10);&lt;br /&gt; delay();&lt;br /&gt; lcdcmd(0x0c);&lt;br /&gt; delay();&lt;br /&gt; lcddis(&amp;quot;WELCOME&amp;quot;,7);&lt;br /&gt; lcdcmd(0xc0);&lt;br /&gt; delay();&lt;br /&gt; lcddis(&amp;quot;VISITOR COUNTER&amp;quot;,15);&lt;br /&gt; delay();&lt;br /&gt; lcdcmd(0x01);&lt;br /&gt; delay(); &lt;br /&gt; while(1)&lt;br /&gt; {&lt;br /&gt; if(ir1==0)&lt;br /&gt; {&lt;br /&gt; lcdcmd(0x80);&lt;br /&gt; delay();&lt;br /&gt; lcddis(&amp;quot;ENTRY:&amp;quot;,6);&lt;br /&gt; lcdcmd(0x87);&lt;br /&gt; delay();&lt;br /&gt; x=x+1;&lt;br /&gt; lcdconv(x);&lt;br /&gt; }&lt;br /&gt; if(ir2==0)&lt;br /&gt; {&lt;br /&gt; lcdcmd(0xc0);&lt;br /&gt; lcddis(&amp;quot;EXIT:&amp;quot;,5);&lt;br /&gt; lcdcmd(0xc6);&lt;br /&gt; delay();&lt;br /&gt; y=y+1;&lt;br /&gt; lcdconv(y);&lt;br /&gt; delay();&lt;br /&gt; }&lt;br /&gt; }&lt;br /&gt;void lcdcmd(unsigned char val)&lt;br /&gt;{&lt;br /&gt;P3=val;&lt;br /&gt;rs=0;&lt;br /&gt;rw=0;&lt;br /&gt;en=1;&lt;br /&gt;delay();&lt;br /&gt;en=0; &lt;br /&gt;} &lt;br /&gt;void lcddat(unsigned char dat)&lt;br /&gt;{&lt;br /&gt;P3=dat;&lt;br /&gt;rs=1;&lt;br /&gt;rw=0;&lt;br /&gt;en=1;&lt;br /&gt;delay();&lt;br /&gt;en=0; &lt;br /&gt;}&lt;br /&gt;void lcddis(unsigned char *s,unsigned char r)&lt;br /&gt;{&lt;br /&gt;unsigned char w;&lt;br /&gt; for(w=0;w&amp;lt;r;w++)&lt;br /&gt; {&lt;br /&gt; lcddat(s[w]);&lt;br /&gt; delay();&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;void lcdconv(unsigned char num)&lt;br /&gt;{&lt;br /&gt;unsigned char p,n;&lt;br /&gt; p=num/10;&lt;br /&gt; n=num%10;&lt;br /&gt; p=p+0x30;&lt;br /&gt; n=n+0x30;&lt;br /&gt; lcddat(p);&lt;br /&gt; lcddat(n);&lt;br /&gt;}&lt;br /&gt;void delay()&lt;br /&gt;{&lt;br /&gt;unsigned char k,l;&lt;br /&gt; for(k=0;k&amp;lt;1000;k++);&lt;br /&gt; for(l=0;l&amp;lt;100;l++);&lt;br /&gt;}&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>