This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: pragma pack


First try reorganizing your structure to have the biggest item at the beginning, that will avoid 'loosing' intermediary bytes:

typedef struct {
  cyg_uint16 timestamp;
  cyg_uint8 command2_byte;
  cyg_uint8 data3;
  cyg_uint8 data4;
} pelco_pattern;

Your target may also require that all items have to be 16 bits aligned (that would explain whyt #prama pack(1) gave nothing). In that case try, as you are not looking for speed:

typedef struct {
  cyg_uint16 timestamp;
  cyg_uint16 command2_byte_and_data3;
  cyg_uint8 data4;
} pelco_pattern;

With 16bits alignment you should fall back to a 6 bytes data structure, but you'll need code to manage 'command2_byte' and 'data3', so this will add to your program size, as it will slow processing.

Hope it helps!

Bernard

Alexandre wrote:
Hi everybody (and happy new year would i add),

I'd like to use the pragma pack(1) in one of my applications to align
properly a 5 bytes structures array into flash.
I know that packing reduces greatly the performances of the system but
performance is not really my problem here as i'm actually looking for
more memory and would greatly need to pack things up a little bit.

I tried to declare the next structure as shown, with the pragmas, but
it's still 8 bytes large, either read with a sizeof(pelco_pattern) or
after being written in rom:

#pragma pack(1)
typedef struct {
   cyg_uint8 command2_byte;
   cyg_uint8 data3;
   cyg_uint8 data4;
   cyg_uint16 timestamp;
} pelco_pattern;
#pragma pack()


Am I doing something wrong here ? Is it even possible to use "pack"'s pragmas within ecos ? Am I missing some compiler directives ?

I am using the arm-elf-gcc compiler and the lpc2xxx / arm version of ecos.
The compiler does not say anything about the line with the pragma in it.

Thanks in advance for you answers ^^

Alex Garcia
Hymatom SA



--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]