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

NIOS gcc alignment control

Altera_Forum
名誉分销商 II
1,199 次查看

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 项奖励
1 回复
Altera_Forum
名誉分销商 II
492 次查看

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 项奖励
回复