Jump to content

    
Sign in to follow this  
toweroff

ARMCC и little endian

Recommended Posts

Добрый день

 

Код генерится явно как big endian

На вкладке Target чекбокс big endian серый, выключен

 

Скормил компилятору директиву --li, все равно то же самое, т.е. если

unsigned char b[4];

  *((unsigned int*)b) = 0x12345678;

то получится

b[0] = 0x78
b[1] = 0x56
b[2] = 0x43
b[3] = 0x12

 

Ну и вопрос - куда копнуть, что сказать компилятору? :)

Share this post


Link to post
Share on other sites
Это и есть Little Endian.

мда.. перепутал

лучше было скопипастить :biggrin:

нужно наоборот, и, тогда, только в конкретном случае. Такое возможно?

#pragma be

не работает

Share this post


Link to post
Share on other sites
На вкладке Target чекбокс big endian серый, выключен

Это просто так называемый foolproof.

Даже если компилятору приказать делать вид, что кругом big endian, результаты работы АЛУ, например, вас совсем не устроят.

 

Данный процессор поддерживает big endian исключительно в DMA и LCD. ПО вполне понятным причинам. Разные бывают внешние устройства... Заточенные на big endian, например...

 

Share this post


Link to post
Share on other sites
Ну, руками собрать - не годится?

почему? пока работает такая конструкция

#define SWAP16(x)    ((U16)(((x)>>8) | ((x)<<8)))

мне нужны 16-разрядные числа

 

И ntohl() для обратного преобразования. Не годится?

спасибо, не знал про них

 

Это просто так называемый foolproof.

Даже если компилятору приказать делать вид, что кругом big endian, результаты работы АЛУ, например, вас совсем не устроят.

 

Данный процессор поддерживает big endian исключительно в DMA и LCD. ПО вполне понятным причинам. Разные бывают внешние устройства... Заточенные на big endian, например...

ну вот теперь совсем все на своих местах :)

 

всем спасибо!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this