<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>CodeWarrior for MCUのトピックRe: long bit field problem</title>
    <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/long-bit-field-problem/m-p/145424#M3299</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Hi Lundin,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;This is a endianism problem. I changed the byte order of bitfield. And I saw it worked like I expected.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN class="msg_source_code"&gt;&lt;SPAN class="text_smallest"&gt;Code:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;PRE&gt;typedef struct { unsigned char R24:1; unsigned char R25:1; unsigned char R26:1; unsigned char R27:1;  unsigned char R28:1; unsigned char R29:1; unsigned char R30:1; unsigned char R31:1;&lt;/PRE&gt;&lt;PRE&gt; unsigned char R16:1; unsigned char R17:1; unsigned char R18:1; unsigned char R19:1; unsigned char R20:1; unsigned char R21:1; unsigned char R22:1; unsigned char R23:1;&lt;/PRE&gt;&lt;PRE&gt; unsigned char R8:1; unsigned char R9:1; unsigned char R10:1; unsigned char R11:1; unsigned char R12:1; unsigned char R13:1; unsigned char R14:1; unsigned char R15:1;&lt;/PRE&gt;&lt;PRE&gt; unsigned char R0:1; unsigned char R1:1; unsigned char R2:1; unsigned char R3:1; unsigned char R4:1; unsigned char R5:1; unsigned char R6:1; unsigned char R7:1;} TMaskBits;&lt;/PRE&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 29 Oct 2020 08:46:39 GMT</pubDate>
    <dc:creator>BasePointer</dc:creator>
    <dc:date>2020-10-29T08:46:39Z</dc:date>
    <item>
      <title>long bit field problem</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/long-bit-field-problem/m-p/145422#M3297</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;DIV&gt;Hi,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;I'm using CW 5.1 with MC9S08LC60.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN class="msg_source_code"&gt;&lt;SPAN class="text_smallest"&gt;Code:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;PRE&gt;typedef struct { unsigned char R0:1; unsigned char R1:1; unsigned char R2:1; unsigned char R3:1; unsigned char R4:1; unsigned char R5:1; unsigned char R6:1; unsigned char R7:1; unsigned char R8:1; unsigned char R9:1; unsigned char R10:1; unsigned char R11:1; unsigned char R12:1; unsigned char R13:1; unsigned char R14:1; unsigned char R15:1;&amp;nbsp; unsigned char R16:1; unsigned char R17:1; unsigned char R18:1; unsigned char R19:1; unsigned char R20:1; unsigned char R21:1; unsigned char R22:1; unsigned char R23:1; unsigned char R24:1; unsigned char R25:1; unsigned char R26:1; unsigned char R27:1;&amp;nbsp; unsigned char R28:1; unsigned char R29:1; unsigned char R30:1; unsigned char R31:1;} TMaskBits;typedef union { unsigned long Val; TMaskBits Bit;} TMASK;&lt;/PRE&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&lt;/DIV&gt;&lt;DIV&gt;I'm declaring a variable:&lt;/DIV&gt;&lt;SPAN class="msg_source_code"&gt;&lt;SPAN class="text_smallest"&gt;Code:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;PRE&gt;TMASK tmp;tmp.Val = 531968; // 0b10000001111000000000&lt;/PRE&gt;&lt;DIV&gt;&lt;BR /&gt;If I test tmp.Bit.R12, I see it is not 1.&lt;/DIV&gt;&lt;DIV&gt;If I test tmp.Bit.R19, I see it is not 0.&lt;BR /&gt;But all they should be.&lt;/DIV&gt;&lt;DIV&gt;What do you thing about the problem here? Is this a bug?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Here is the result:&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN class="msg_source_code"&gt;&lt;SPAN class="text_smallest"&gt;Code:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;PRE&gt;R0 -&amp;gt; 0R1 -&amp;gt; 0R2 -&amp;gt; 0R3 -&amp;gt; 0R4 -&amp;gt; 0R5 -&amp;gt; 0R6 -&amp;gt; 0R7 -&amp;gt; 0R8 -&amp;gt; 0R9 -&amp;gt; 0R10-&amp;gt; 0R11-&amp;gt; 1R12-&amp;gt; 0R13-&amp;gt; 0R14-&amp;gt; 0R15-&amp;gt; 0R16-&amp;gt; 0R17-&amp;gt; 1R18-&amp;gt; 1R19-&amp;gt; 1R20-&amp;gt; 1R21-&amp;gt; 0R22-&amp;gt; 0R23-&amp;gt; 0R24-&amp;gt; 0R25-&amp;gt; 0R26-&amp;gt; 0R27-&amp;gt; 0R28-&amp;gt; 0R29-&amp;gt; 0R30-&amp;gt; 0R31-&amp;gt; 0&lt;/PRE&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 08:46:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/long-bit-field-problem/m-p/145422#M3297</guid>
      <dc:creator>BasePointer</dc:creator>
      <dc:date>2020-10-29T08:46:37Z</dc:date>
    </item>
    <item>
      <title>Re: long bit field problem</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/long-bit-field-problem/m-p/145423#M3298</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;You can't use the type long for bitfields.&lt;BR /&gt;&lt;BR /&gt;Problems with and suggestions about bitfields can be found here:&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://forums.freescale.com/freescale/board/message?board.id=CWCOMM&amp;amp;message.id=3751" target="_blank"&gt;http://forums.freescale.com/freescale/board/message?board.id=CWCOMM&amp;amp;message.id=3751&lt;/A&gt; &lt;P&gt;Message Edited by Lundin on &lt;SPAN class="date_text"&gt;2007-02-20&lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;08:52 AM&lt;BR /&gt;&lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;&lt;FONT size="1"&gt;Alban fixed link.&lt;/FONT&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;Message Edited by Alban on &lt;SPAN class="date_text"&gt;2007-02-20&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;08:39 AM&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Feb 2007 15:50:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/long-bit-field-problem/m-p/145423#M3298</guid>
      <dc:creator>Lundin</dc:creator>
      <dc:date>2007-02-20T15:50:19Z</dc:date>
    </item>
    <item>
      <title>Re: long bit field problem</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/long-bit-field-problem/m-p/145424#M3299</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;Hi Lundin,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;This is a endianism problem. I changed the byte order of bitfield. And I saw it worked like I expected.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;SPAN class="msg_source_code"&gt;&lt;SPAN class="text_smallest"&gt;Code:&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;PRE&gt;typedef struct { unsigned char R24:1; unsigned char R25:1; unsigned char R26:1; unsigned char R27:1;  unsigned char R28:1; unsigned char R29:1; unsigned char R30:1; unsigned char R31:1;&lt;/PRE&gt;&lt;PRE&gt; unsigned char R16:1; unsigned char R17:1; unsigned char R18:1; unsigned char R19:1; unsigned char R20:1; unsigned char R21:1; unsigned char R22:1; unsigned char R23:1;&lt;/PRE&gt;&lt;PRE&gt; unsigned char R8:1; unsigned char R9:1; unsigned char R10:1; unsigned char R11:1; unsigned char R12:1; unsigned char R13:1; unsigned char R14:1; unsigned char R15:1;&lt;/PRE&gt;&lt;PRE&gt; unsigned char R0:1; unsigned char R1:1; unsigned char R2:1; unsigned char R3:1; unsigned char R4:1; unsigned char R5:1; unsigned char R6:1; unsigned char R7:1;} TMaskBits;&lt;/PRE&gt;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 29 Oct 2020 08:46:39 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/long-bit-field-problem/m-p/145424#M3299</guid>
      <dc:creator>BasePointer</dc:creator>
      <dc:date>2020-10-29T08:46:39Z</dc:date>
    </item>
    <item>
      <title>Re: long bit field problem</title>
      <link>https://community.nxp.com/t5/CodeWarrior-for-MCU/long-bit-field-problem/m-p/145425#M3300</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Yes, as mentioned in my post, the endianess of bitfields is not specified in the standard, nor is the result you get from using long. That code will not be portable.&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 20 Feb 2007 18:34:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/CodeWarrior-for-MCU/long-bit-field-problem/m-p/145425#M3300</guid>
      <dc:creator>Lundin</dc:creator>
      <dc:date>2007-02-20T18:34:22Z</dc:date>
    </item>
  </channel>
</rss>

