Intel® Quartus® Prime Software
Intel® Quartus® Prime Design Software, Design Entry, Synthesis, Simulation, Verification, Timing Analysis, System Design (Platform Designer, formerly Qsys)
16606 Discussions

NIOS gcc alignment control

Altera_Forum
Honored Contributor II
1,010 Views

Hello, 

 

The bellow given code on NIOS results to var=0x0201, but it shoud result in var=0x0302. I have tried various combinations with __attribute__ ((align(1)), but with no success. Can I somehow set NIOS gcc compiler to produce byte aligned data access? 

 

 

unsigned[/B][/B] char[/B][/B] mmm[3]={0x01,0x02,0x03}; 

unsigned[/B][/B] short[/B][/B] var;  

 

int[/B][/B] main() 

var=*((unsigned[/B][/B] short[/B][/B]*)(mmm+1)); 

}
0 Kudos
1 Reply
Altera_Forum
Honored Contributor II
303 Views

The Nios requires aligned data. If you want to store a 16 bit or 32 bit value at an odd address, you'll need to handle it manually, byte-by-byte, for both reads & writes. Writing your code without any underlying alignment assumptions will make it much more portable.

0 Kudos
Reply