Page 4 of 15

Re: IAR вопросик

PostPosted: 17 Sep 2012, 20:38
by deathsoft
На старых армах (арм7, арм9, арм11) нельзя читать 16 и 32бита по не выровненным адресам (генерится эксцепшен), на кортексе можно читать уже ак угодно, как на х86, проц сам генерирует нужное количество циклов доступа к памяти.

Re: IAR вопросик

PostPosted: 18 Sep 2012, 11:16
by CHRV
deathsoft wrote:На старых армах (арм7, арм9, арм11) нельзя читать 16 и 32бита по не выровненным адресам (генерится эксцепшен)

Не совсем, там типа зависит от корки арма. Некоторые поддерживают некоторые нет.
ВОт че у арма по этому поводу написано: http://infocenter.arm.com/help/index.js ... eghbg.html

MIPS и МОторолла (30 точно) тоже не поддерживают.

Re: IAR вопросик

PostPosted: 18 Sep 2012, 13:02
by lvd
CHRV wrote:Не совсем, там типа зависит от корки арма. Некоторые поддерживают некоторые нет.
ВОт че у арма по этому поводу написано: http://infocenter.arm.com/help/index.js ... eghbg.html
MIPS и МОторолла (30 точно) тоже не поддерживают.

Речь шла что якобы байт может быть невыровненный, что явно гон для всех перечисленных процессоров. А моторола начиная с 68020 может невыровненные ворды и лонги читать.

Re: IAR вопросик

PostPosted: 18 Sep 2012, 14:19
by TS-Labs
Кортекс-М3 тоже не может читать невыровненые ворды, халфы и лонги. Если структура незаалайнена компилер генерит код на LDRB и STRB.

Re: IAR вопросик

PostPosted: 18 Sep 2012, 14:28
by TS-Labs
Хотя нет:
The CM3Core supports ARMv6 unaligned accesses, and performs all accesses as
single, unaligned accesses. They are converted into two or more aligned accesses by the
DCode and System bus interfaces. Unaligned support is only available for load/store singles (LDR, STR). Load/store
double already supports word aligned accesses, but does not permit other unaligned
accesses, and generates a fault if this is attempted.
Unaligned accesses that cross memory map boundaries are architecturally
Unpredictable.

Re: IAR вопросик

PostPosted: 18 Sep 2012, 14:50
by lvd
TS-Labs wrote:невыровненые ворды, халфы и лонги.

третий лишний, не?

Re: IAR вопросик

PostPosted: 19 Sep 2012, 12:47
by TS-Labs
Почему?

Re: IAR вопросик

PostPosted: 19 Sep 2012, 13:06
by lvd
кто у тебя ворд, и кто лонг?

Re: IAR вопросик

PostPosted: 19 Sep 2012, 20:55
by TS-Labs
Не у меня, а у кортекса. ворд - 32, лонг дабл - 64. LDRB / LDRH / LDR / LDRD

Re: IAR вопросик

PostPosted: 19 Sep 2012, 21:58
by lvd
ах вот оно что, великий программист клавиатурой спутал лонг и дабл.