<?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>topic Re: Structure Array Missing Values in S12 / MagniV Microcontrollers</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805808#M15778</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Edward,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When the 8 bit values in the struct are added up the debugger gives a value of 65134. You must have not looked at how the checksum id calculated. It adds up all the 8 bit values and then substracts them form 65535. This gives a value of 65134. To find out what the count was you reverce the calculation by substracting the checksum value from 65535 and this gives you 401. This is wrong as when you manualy add up the values you get 1125.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;II will change the checksum function so it just adds up the values. It will be a few hours before I can get to do this for you. If you want to do it yourself with my code change all the main.c code to this,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uint16_t CalculateStruct(uint8_t *StructurePointer, uint16_t pkt);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;void main(void) {&lt;BR /&gt;&amp;nbsp; /* put your own code here */&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; uint16_t cs;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; cs = CalculateStruct((uint8_t *)&amp;amp;can, sizeof(can)); &lt;BR /&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;EnableInterrupts;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp; for(;;) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _FEED_COP(); /* feeds the dog */&lt;BR /&gt;&amp;nbsp; } /* loop forever */&lt;BR /&gt;&amp;nbsp; /* please make sure that you never leave main */&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;//------------------ Calculate Struct&amp;nbsp; --------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uint16_t CalculateStruct(uint8_t *StructurePointer, uint16_t pkt)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint16_t x;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint16_t cnt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;pkt = pkt - 0x0002;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cnt = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (x = 0 ; x &amp;lt; pkt ; x++) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cnt = cnt + StructurePointer[x];&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return(cnt);&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Sun, 15 Jul 2018 21:30:25 GMT</pubDate>
    <dc:creator>rayhall</dc:creator>
    <dc:date>2018-07-15T21:30:25Z</dc:date>
    <item>
      <title>Structure Array Missing Values</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805802#M15772</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am not sure this is the correct place to post this.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using the S12XE and when I transfer the values in a structure to a PC program I find many of the frame[4]&amp;nbsp; values are 0x00.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The structure uses a array of structures. Here is the structure,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------&amp;nbsp; File&amp;nbsp; cal.h&amp;nbsp; ------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;typedef struct CanBusSettings {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t startChar; // $ Start character&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; uint8_t PacketHi;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t PacketLo;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; uint8_t PacketID;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; uint8_t freq;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; uint8_t busEnabled;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; uint8_t readCanData;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; uint16_t readID;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; struct FrameSettings {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t enabled;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t rate;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t id;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t byteOrder;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp; uint8_t data[8];&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; }frame[4];&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t crcCnt;&lt;BR /&gt;}CAN_Bus;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------&amp;nbsp; File cal.c -----------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CAN_Bus can&amp;nbsp; = {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x24,&amp;nbsp;&amp;nbsp;&amp;nbsp; // $ Start character&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10,&amp;nbsp;&amp;nbsp;&amp;nbsp; // Packet Size Hi&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // Packet Size Lo&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x08,&amp;nbsp;&amp;nbsp;&amp;nbsp; // Packet ID&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01,&amp;nbsp;&amp;nbsp;&amp;nbsp; // Freq&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 500 kbit&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01,&amp;nbsp;&amp;nbsp;&amp;nbsp; // busEnabled&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01,&amp;nbsp;&amp;nbsp;&amp;nbsp; // readCanData&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0064,&amp;nbsp; // readID 100&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 0 enabled&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 0 rate&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03E8,&amp;nbsp; // frame 0 id (1000)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame&amp;nbsp; 0 byte order&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {1,0,0,0,0,0,0,0}, // frame 0 data&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 1 enabled&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 1 rate&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03E9,&amp;nbsp; //frame 1 id (1001)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 1 byte order&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {0,1,0,0,0,0,0,0}, // frame 1 data&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 2 enabled&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 2 rate&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03EA,&amp;nbsp; // frame 2 id (1002)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 2 byte order&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {0,0,1,0,0,0,0,0}, // frame 2 data&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 3 enabled&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 3 rate&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03EB,&amp;nbsp;&amp;nbsp; // frame 3 id (1003)&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 3 byte order&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {0,0,0,1,0,0,0,0}, // frame 3 data &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // crcCnt&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The frame[4] struct will only have the values for frame[0]; The rest are 0x00;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have included my test program. I am not capable of using the debugger to see if the values are in memory. This is why I need help to show the problem is not CodeWarrior or the S12XE memory.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Ray.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Jul 2018 08:44:40 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805802#M15772</guid>
      <dc:creator>rayhall</dc:creator>
      <dc:date>2018-07-12T08:44:40Z</dc:date>
    </item>
    <item>
      <title>Re: Structure Array Missing Values</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805803#M15773</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Structs are not portable. Different architectures and compilers have different struct paddings and alignments. More than that,&amp;nbsp;PC is little endian while S12X is big endian.&amp;nbsp;If you send and receive struct as binary, as is, then no wonder PC sees it differently. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Your attachment is virtually blank, no code which sends struct to PC.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edward&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Jul 2018 13:04:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805803#M15773</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2018-07-12T13:04:57Z</dc:date>
    </item>
    <item>
      <title>Re: Structure Array Missing Values</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805804#M15774</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Edward,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I know I have to swap bytes on any 16 bit values the PC software receives.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I did not include anything other then the structure as I wanted help to see if the values are correct in the S12x memory.&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;When I change the structure (see code below) so their is no array of struct,&amp;nbsp; the data the PC receives is correct. Based on this I presume the S12x compiler/linker does not like array of struct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;typedef struct CanBusSettings {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t startChar; // $ Start character&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; uint8_t PacketHi;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t PacketLo;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; uint8_t PacketID;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; uint8_t freq;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; uint8_t busEnabled;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; uint8_t readCanData;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; uint16_t readID;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp; uint8_t enabled_frame1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t rate_frame1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t id_frame1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t byteOrder_frame1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t data[8]_frame1;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;uint8_t enabled_frame2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t rate_frame2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t id_frame2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t byteOrder_frame2;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t data[8]_frame2;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t enabled_frame3;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t rate_frame3;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t id_frame3;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t byteOrder_frame3;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t data[8]_frame3&lt;/P&gt;&lt;P&gt;;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t enabled_frame4;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t rate_frame4;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t id_frame4;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t byteOrder_frame4;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t data[8]_frame4;&amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t crcCnt;&lt;BR /&gt;}CAN_Bus;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 12 Jul 2018 22:05:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805804#M15774</guid>
      <dc:creator>rayhall</dc:creator>
      <dc:date>2018-07-12T22:05:46Z</dc:date>
    </item>
    <item>
      <title>Re: Structure Array Missing Values</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805805#M15775</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;No, your assumptions are wrong. There's no compiler, in which you could assume packed struct without any padding or alignment. Changing optimization settings alignment can be switched on/off to achieve better optimization. Again, you can't&amp;nbsp; send struct as is to different architecture and assume correct operation. Struct doesn't guarantee memory layout, it guarantees only proper storage of specific struct members within the project while all source files accessing the same struct are compiled with same compiler settings.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Try using offsetof() macro from stddef.h on both, S12X and PC. On S12X, default settings:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;typedef struct CanBusSettings {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t startChar; // $ Start character&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t PacketHi;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t PacketLo;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t PacketID;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t freq;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t busEnabled;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t readCanData;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t readID;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; struct FrameSettings {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t enabled;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t rate;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t id;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t byteOrder;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t data[8];&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }frame[4];&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t crcCnt;&lt;BR /&gt;}CAN_Bus;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;#include &amp;lt;stddef.h&amp;gt;&lt;/P&gt;&lt;P&gt;volatile int bs[10];&lt;/P&gt;&lt;P&gt;...&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp; bs[0] = offsetof(CAN_Bus, frame); /*9*/&lt;BR /&gt;&amp;nbsp; bs[1] = offsetof(CAN_Bus, frame[0].byteOrder); /*13*/&lt;BR /&gt;&amp;nbsp; bs[2] = offsetof(CAN_Bus, frame[1]);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*22*/&lt;BR /&gt;&amp;nbsp; bs[4] = offsetof(CAN_Bus, frame[1].byteOrder); /*26*/&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;filed offsets in comments are consistent with unaligned and packed struct, members order in struct unchanged. You can disassemble C source to see field offsets:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;06:&amp;nbsp;&amp;nbsp;&amp;nbsp; bs[0] = offsetof(CAN_Bus, frame); /*9*/&lt;BR /&gt;&amp;nbsp; 0000 c609&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [1]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LDAB&amp;nbsp; #9&amp;nbsp; &amp;lt;----------------&lt;BR /&gt;&amp;nbsp; 0002 87&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [1]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CLRA&amp;nbsp; &lt;BR /&gt;&amp;nbsp; 0003 7c0000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [3]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STD&amp;nbsp;&amp;nbsp; bs&lt;BR /&gt;&amp;nbsp; 107:&amp;nbsp;&amp;nbsp;&amp;nbsp; bs[1] = offsetof(CAN_Bus, frame[0].byteOrder); /*13*/&lt;BR /&gt;&amp;nbsp; 0006 c60d&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [1]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LDAB&amp;nbsp; #13 &amp;lt;---------------&lt;BR /&gt;&amp;nbsp; 0008 7c0000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [3]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STD&amp;nbsp;&amp;nbsp; bs:2&lt;BR /&gt;&amp;nbsp; 108:&amp;nbsp;&amp;nbsp;&amp;nbsp; bs[2] = offsetof(CAN_Bus, frame[1]);&lt;BR /&gt;&amp;nbsp; 000b c616&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [1]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LDAB&amp;nbsp; #22&amp;nbsp;&amp;lt;---------------&lt;BR /&gt;&amp;nbsp; 000d 7c0000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [3]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STD&amp;nbsp;&amp;nbsp; bs:4&lt;BR /&gt;&amp;nbsp; 109:&amp;nbsp;&amp;nbsp;&amp;nbsp; bs[4] = offsetof(CAN_Bus, frame[1].byteOrder); /*13*/&lt;BR /&gt;&amp;nbsp; 0010 c61a&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [1]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LDAB&amp;nbsp; #26&amp;nbsp;&amp;lt;---------------&lt;BR /&gt;&amp;nbsp; 0012 7c0000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [3]&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STD&amp;nbsp;&amp;nbsp; bs:8&lt;BR /&gt;&amp;nbsp; 11&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;On PC you probably will see&amp;nbsp;different offsets, which is&amp;nbsp;perfectly notmal.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edward&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 13 Jul 2018 06:43:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805805#M15775</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2018-07-13T06:43:13Z</dc:date>
    </item>
    <item>
      <title>Re: Structure Array Missing Values</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805806#M15776</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello Edward,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I understand that different micros and PC operating systems store data in memory in different ways.&lt;BR /&gt; &lt;BR /&gt; The problem is I am only looking at the memory in the S12X and data values are missing. Here is the proof. I have attached a new version of my test program that calculates the checksum of the structure. I store the checksum value in the variable "cs"&lt;BR /&gt; &lt;BR /&gt; I have included a screen shot of the debugger showing the calculated value is 65134.&lt;BR /&gt; &lt;BR /&gt; (65535 - 65134) = 401 &lt;BR /&gt; &lt;BR /&gt; The problem is this is wrong. When I add up the values manually I get 1125.&lt;BR /&gt; &lt;BR /&gt; Below shows the point where the count 401 occurs. This is exactly what I found when the data was sent to the PC. Only the first part (frame[0]) had values.&lt;BR /&gt; &lt;BR /&gt; CAN_Bus can&amp;nbsp; = {&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x24,&amp;nbsp;&amp;nbsp;&amp;nbsp; // $ Start character&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10,&amp;nbsp;&amp;nbsp;&amp;nbsp; // Packet Size Hi&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // Packet Size Lo&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x08,&amp;nbsp;&amp;nbsp;&amp;nbsp; // Packet ID&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01,&amp;nbsp;&amp;nbsp;&amp;nbsp; // Freq&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 500 kbit&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01,&amp;nbsp;&amp;nbsp;&amp;nbsp; // busEnabled&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01,&amp;nbsp;&amp;nbsp;&amp;nbsp; // readCanData&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0064,&amp;nbsp; // readID 100&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 0 enabled&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 0 rate&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03E8,&amp;nbsp; // frame 0 id (1000)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame&amp;nbsp; 0 byte order&lt;BR /&gt; //^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^&amp;nbsp; Count 401&amp;nbsp; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {1,0,0,0,0,0,0,0}, // frame 0 data&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 1 enabled&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 1 rate&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03E9,&amp;nbsp; //frame 1 id (1001)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 1 byte order&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {0,1,0,0,0,0,0,0}, // frame 1 data&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 2 enabled&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 2 rate&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03EA,&amp;nbsp; // frame 2 id (1002)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 2 byte order&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {0,0,1,0,0,0,0,0}, // frame 2 data&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 3 enabled&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 3 rate&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03EB,&amp;nbsp;&amp;nbsp; // frame 3 id (1003)&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 3 byte order&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; {0,0,0,1,0,0,0,0}, // frame 3 data &amp;nbsp;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&lt;BR /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // crcCnt&lt;BR /&gt; &lt;BR /&gt; &amp;nbsp; // ^^^^^^^^^^^^^^^^^^^^^^^ Count&amp;nbsp; 1125&amp;nbsp; ^^^^^^^^^^^^^^^^^^^^^^^^^^&amp;nbsp; &lt;BR /&gt; &lt;BR /&gt; };&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 15 Jul 2018 02:49:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805806#M15776</guid>
      <dc:creator>rayhall</dc:creator>
      <dc:date>2018-07-15T02:49:11Z</dc:date>
    </item>
    <item>
      <title>Re: Structure Array Missing Values</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805807#M15777</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I don't see where's your proof and what's wrong. Everything seems well. Which calculation is wrong? What and where do you see and what do you expect? 401 is wong? It's good.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edward&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 15 Jul 2018 13:27:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805807#M15777</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2018-07-15T13:27:09Z</dc:date>
    </item>
    <item>
      <title>Re: Structure Array Missing Values</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805808#M15778</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Edward,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;When the 8 bit values in the struct are added up the debugger gives a value of 65134. You must have not looked at how the checksum id calculated. It adds up all the 8 bit values and then substracts them form 65535. This gives a value of 65134. To find out what the count was you reverce the calculation by substracting the checksum value from 65535 and this gives you 401. This is wrong as when you manualy add up the values you get 1125.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;II will change the checksum function so it just adds up the values. It will be a few hours before I can get to do this for you. If you want to do it yourself with my code change all the main.c code to this,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uint16_t CalculateStruct(uint8_t *StructurePointer, uint16_t pkt);&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;void main(void) {&lt;BR /&gt;&amp;nbsp; /* put your own code here */&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; uint16_t cs;&lt;BR /&gt;&amp;nbsp; &lt;BR /&gt;&amp;nbsp; cs = CalculateStruct((uint8_t *)&amp;amp;can, sizeof(can)); &lt;BR /&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;EnableInterrupts;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;&amp;nbsp; for(;;) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; _FEED_COP(); /* feeds the dog */&lt;BR /&gt;&amp;nbsp; } /* loop forever */&lt;BR /&gt;&amp;nbsp; /* please make sure that you never leave main */&lt;BR /&gt;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;//------------------ Calculate Struct&amp;nbsp; --------------------------&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;uint16_t CalculateStruct(uint8_t *StructurePointer, uint16_t pkt)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint16_t x;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;uint16_t cnt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;pkt = pkt - 0x0002;&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;cnt = 0;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;for (x = 0 ; x &amp;lt; pkt ; x++) {&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;cnt = cnt + StructurePointer[x];&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;}&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;return(cnt);&lt;BR /&gt;}&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 15 Jul 2018 21:30:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805808#M15778</guid>
      <dc:creator>rayhall</dc:creator>
      <dc:date>2018-07-15T21:30:25Z</dc:date>
    </item>
    <item>
      <title>Re: Structure Array Missing Values</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805809#M15779</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Edward,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here is a screen shot of the debugger after I changed the code to just add up the values. It gives 402 which is wrong....&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 15 Jul 2018 21:50:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805809#M15779</guid>
      <dc:creator>rayhall</dc:creator>
      <dc:date>2018-07-15T21:50:19Z</dc:date>
    </item>
    <item>
      <title>Re: Structure Array Missing Values</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805810#M15780</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;your struct initializer doesn't match your struct. Missing curly brackets around struct array initializer part, also missing brackets around struct array struct-element. Only first array element gets initialized.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CAN_Bus can&amp;nbsp; = {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x24,&amp;nbsp;&amp;nbsp;&amp;nbsp; // $ Start character&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10,&amp;nbsp;&amp;nbsp;&amp;nbsp; // Packet Size Hi&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // Packet Size Lo&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x08,&amp;nbsp;&amp;nbsp;&amp;nbsp; // Packet ID&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01,&amp;nbsp;&amp;nbsp;&amp;nbsp; // Freq&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 500 kbit&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01,&amp;nbsp;&amp;nbsp;&amp;nbsp; // busEnabled&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x01,&amp;nbsp;&amp;nbsp;&amp;nbsp; // readCanData&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x0064,&amp;nbsp; // readID 100&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 0 enabled&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 0 rate&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03E8,&amp;nbsp; // frame 0 id (1000)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame&amp;nbsp; 0 byte order&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {1,0,0,0,0,0,0,0}, // frame 0 data&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }, &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 1 enabled&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 1 rate&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03E9,&amp;nbsp; //frame 1 id (1001)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 1 byte order&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {0,1,0,0,0,0,0,0}, // frame 1 data&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }, &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 2 enabled&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 2 rate&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03EA,&amp;nbsp; // frame 2 id (1002)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 2 byte order&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {0,0,1,0,0,0,0,0}, // frame 2 data&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 3 enabled&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 3 rate&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x03EB,&amp;nbsp;&amp;nbsp; // frame 3 id (1003)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00,&amp;nbsp;&amp;nbsp;&amp;nbsp; // frame 3 byte order&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {0,0,0,1,0,0,0,0}, // frame 3 data&amp;nbsp; &lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; },&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0,&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // crcCnt&lt;BR /&gt;};&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Calculations are correct.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edward&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jul 2018 05:29:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805810#M15780</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2018-07-16T05:29:05Z</dc:date>
    </item>
    <item>
      <title>Re: Structure Array Missing Values</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805811#M15781</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Edward,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I would have thought the compiler would have given an error or warning.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Took a long time to get to this point, but if that is going to fix the problem then I am happy.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jul 2018 07:53:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805811#M15781</guid>
      <dc:creator>rayhall</dc:creator>
      <dc:date>2018-07-16T07:53:01Z</dc:date>
    </item>
    <item>
      <title>Re: Structure Array Missing Values</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805812#M15782</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Ray,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I tried with different and much more modern C99&amp;nbsp;compiler for&amp;nbsp;different architecture, no warning either. Remove array of structs member and both start complaining about extra data.&amp;nbsp;Yet another&amp;nbsp;C compiler oddity.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edward&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 16 Jul 2018 17:34:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/Structure-Array-Missing-Values/m-p/805812#M15782</guid>
      <dc:creator>kef2</dc:creator>
      <dc:date>2018-07-16T17:34:10Z</dc:date>
    </item>
  </channel>
</rss>

