|
|
  |
Cortex-m3 assembler - что значит этот warning?, Вопрос |
|
|
|
Aug 1 2014, 08:07
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 9-04-11
Пользователь №: 64 246

|
Здравствуйте. Такой вопрос - что означает эта ошибка "A1581W: Added 2 bytes of padding at address 0xb2"? У меня МК STM32, компилятор keil, если это поможет. Возникает эта ошибка при удалении, казалось-бы не нужного и нигде не используемого, части кода в ассемблерной части программы. google ответил - http://infocenter.arm.com/help/index.jsp?t...c/CACHCBBJ.html, но я ничего не понял: Added <no_padbytes> bytes of padding at address <address> The assembler warns by default when padding bytes are added to the generated code. This occurs whenever an instruction/directive is used at an address that requires a higher alignment, for example, to ensure ARM instructions start on a four-byte boundary after some Thumb instructions, or where there is a DCB followed by DCD. For example: AREA Test, CODE, READONLY THUMB ThumbCode MOVS r0, #1 ADR r1, ARMProg BX r1 ; ALIGN ; <<< add to avoid the first warning ARM ARMProg ADD r0,r0,#1 BX LR DCB 0xFF DCD 0x1234 END Results in the warnings: A1581W: Added 2 bytes of padding at address 0x6 The warning can also occur when using ADR in Thumb-only code. The ADR Thumb pseudo-instruction can only load addresses that are word aligned, but a label within Thumb code might not be word aligned. Use ALIGN to ensure four-byte alignment of an address within Thumb code.
|
|
|
|
|
Aug 1 2014, 08:53
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 9-04-11
Пользователь №: 64 246

|
Цитата(jcxz @ Aug 1 2014, 12:48)  А Вы вообще понимаете что делаете??? Какие ARM и THUMB если у Вас Cortex?? Он имеет только Thumb2 и ничего более. Этот участок кода: Цитата(jcxz @ Aug 1 2014, 12:48)  For example: AREA Test, CODE, READONLY THUMB ThumbCode MOVS r0, #1 ADR r1, ARMProg BX r1 ; ALIGN ; <<< add to avoid the first warning ARM ARMProg ADD r0,r0,#1 BX LR DCB 0xFF DCD 0x1234 END он не мой, это из примера, который приведен на http://infocenter.arm.com/help/index.jsp?t...c/CACHCBBJ.html к данному warning. А мой код если надо, я тоже могу сбросить - это ассемблерная часть TNKernel, я хотел сделать простейший планировщик и убрать, то что у меня не используется - но этот warning меня смущает.
Сообщение отредактировал Нортон - Aug 1 2014, 08:54
|
|
|
|
|
Aug 1 2014, 09:26
|
Участник

Группа: Участник
Сообщений: 41
Регистрация: 9-04-11
Пользователь №: 64 246

|
Цитата(ViKo @ Aug 1 2014, 13:17)  Разве это ошибка? предупреждение, что добавлено два дополнительных байта, видимо, для выравнивания членов структуры, или, скорее, в вашем случае, кода. Спасибо за пояснение. Я просто именно этого и не мог понять - думал что-то важное, что может повлиять на работу. Теперь буду знать. Да не ошибка, а warning - я там выше не правильно написал.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|